Last active
November 7, 2025 16:55
-
-
Save eernstg/e89821d300bcecf72150c332776a0212 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // From pkg/analyzer/lib/src/lint/pub.dart | |
| // Original code. | |
| String toString() { | |
| var sb = StringBuffer(); | |
| sb.maybeWrite(name); | |
| sb.maybeWrite(version); | |
| sb.maybeWrite(author); | |
| sb.maybeWrite(authors); | |
| sb.maybeWrite(description); | |
| sb.maybeWrite(homepage); | |
| sb.maybeWrite(repository); | |
| sb.maybeWrite(issueTracker); | |
| sb.maybeWrite(dependencies); | |
| sb.maybeWrite(devDependencies); | |
| sb.maybeWrite(dependencyOverrides); | |
| return sb.toString(); | |
| } | |
| // Using anonymous methods. | |
| String toString() => StringBuffer().{ | |
| maybeWrite(name); | |
| maybeWrite(version); | |
| maybeWrite(author); | |
| maybeWrite(authors); | |
| maybeWrite(description); | |
| maybeWrite(homepage); | |
| maybeWrite(repository); | |
| maybeWrite(issueTracker); | |
| maybeWrite(dependencies); | |
| maybeWrite(devDependencies); | |
| maybeWrite(dependencyOverrides); | |
| return toString(); | |
| }; | |
| // From pkg/analyzer/lib/src/fine/requirements.dart | |
| // Original code. | |
| var instanceItem = | |
| libraryManifest.declaredClasses[instanceName] ?? | |
| libraryManifest.declaredEnums[instanceName] ?? | |
| libraryManifest.declaredExtensions[instanceName] ?? | |
| libraryManifest.declaredExtensionTypes[instanceName] ?? | |
| libraryManifest.declaredMixins[instanceName]; | |
| // Using an anonymous method. | |
| var instanceItem = libraryManifest.=> | |
| declaredClasses[instanceName] ?? | |
| declaredEnums[instanceName] ?? | |
| declaredExtensions[instanceName] ?? | |
| declaredExtensionTypes[instanceName] ?? | |
| declaredMixins[instanceName]; | |
| // From pkg/analyzer/lib/src/fine/library_manifest.dart | |
| // Original code. | |
| void addInstanceChildren(InstanceItem instanceItem) { | |
| addMapOfIds(instanceItem.declaredConflicts); | |
| addMapOfItems(instanceItem.declaredFields); | |
| addMapOfItems(instanceItem.declaredGetters); | |
| addMapOfItems(instanceItem.declaredSetters); | |
| addMapOfItems(instanceItem.declaredMethods); | |
| addMapOfItems(instanceItem.declaredConstructors); | |
| addMapOfIds(instanceItem.inheritedConstructors); | |
| } | |
| // Using an anonymous method. | |
| void addInstanceChildren(InstanceItem instanceItem) => instanceItem.{ | |
| addMapOfIds(declaredConflicts); | |
| addMapOfItems(declaredFields); | |
| addMapOfItems(declaredGetters); | |
| addMapOfItems(declaredSetters); | |
| addMapOfItems(declaredMethods); | |
| addMapOfItems(declaredConstructors); | |
| addMapOfIds(inheritedConstructors); | |
| }; | |
| // From pkg/analyzer/lib/src/error/annotation_verifier.dart | |
| // Original code. | |
| if (classElement.isFinal || | |
| classElement.isMixinClass || | |
| classElement.isSealed) { | |
| _diagnosticReporter.atNode( | |
| node.name, | |
| WarningCode.invalidReopenAnnotation, | |
| ); | |
| return; | |
| } | |
| if (classElement.library != superElement.library) { | |
| _diagnosticReporter.atNode( | |
| node.name, | |
| WarningCode.invalidReopenAnnotation, | |
| ); | |
| return; | |
| } | |
| if (classElement.isBase) { | |
| if (!superElement.isFinal && !superElement.isInterface) { | |
| _diagnosticReporter.atNode( | |
| node.name, | |
| WarningCode.invalidReopenAnnotation, | |
| ); | |
| return; | |
| } | |
| } else if (!classElement.isBase && | |
| !classElement.isFinal && | |
| !classElement.isInterface && | |
| !classElement.isSealed) { | |
| if (!superElement.isInterface) { | |
| _diagnosticReporter.atNode( | |
| node.name, | |
| WarningCode.invalidReopenAnnotation, | |
| ); | |
| return; | |
| } | |
| } | |
| // Using anonymous methods. | |
| classElement.{ | |
| if (isFinal || | |
| isMixinClass || | |
| isSealed || | |
| library != superElement.library || | |
| isBase && (superElement.=> !isFinal && !isInterface) || | |
| !isBase && | |
| !isFinal && | |
| !isInterface && | |
| !isSealed && | |
| !superElement.isInterface) { | |
| _diagnosticReporter.atNode( | |
| node.name, | |
| WarningCode.invalidReopenAnnotation, | |
| ); | |
| } | |
| }; | |
| // From pkg/analyzer/lib/src/dart/ast/ast.dart | |
| // Original code. | |
| InternalFormalParameterElement? get correspondingParameter { | |
| var parent = this.parent; | |
| if (parent is ArgumentListImpl) { | |
| return parent._getStaticParameterElementFor(this); | |
| } else if (parent is IndexExpressionImpl) { | |
| if (identical(parent.index, this)) { | |
| return parent._staticParameterElementForIndex; | |
| } | |
| } else if (parent is BinaryExpressionImpl) { | |
| if (identical(parent.rightOperand, this)) { | |
| var parameters = parent.staticInvokeType?.formalParameters; | |
| if (parameters != null && parameters.isNotEmpty) { | |
| return parameters[0]; | |
| } | |
| return null; | |
| } | |
| } else if (parent is AssignmentExpressionImpl) { | |
| if (identical(parent.rightHandSide, this)) { | |
| return parent._staticParameterElementForRightHandSide; | |
| } | |
| } else if (parent is PrefixExpressionImpl) { | |
| return parent._staticParameterElementForOperand; | |
| } else if (parent is PostfixExpressionImpl) { | |
| return parent._staticParameterElementForOperand; | |
| } | |
| return null; | |
| } | |
| // Using anonymous methods. | |
| InternalFormalParameterElement? get correspondingParameter => | |
| this.(outerThis) => parent.=> switch (this) { | |
| ArgumentListImpl() => _getStaticParameterElementFor(outerThis), | |
| IndexExpressionImpl() when identical(index, outerThis) => | |
| _staticParameterElementForIndex, | |
| BinaryExpressionImpl() when identical(rightOperand, outerThis) => | |
| staticInvokeType?.formalParameters?.=> isNotEmpty ? this[0] : null | |
| AssignmentExpressionImpl() | |
| when identical(rightHandSide, outerThis) => | |
| _staticParameterElementForRightHandSide, | |
| PrefixExpressionImpl() || PostfixExpressionImpl() => | |
| _staticParameterElementForOperand, | |
| _ => null, | |
| }; | |
| // From sdk/pkg/analyzer/lib/src/dart/resolver/comment_reference_resolver.dart | |
| // Original code. | |
| if (prefixElement is InterfaceElement) { | |
| name.element = | |
| _resolver.inheritance.getMember( | |
| prefixElement, | |
| Name(prefixElement.library.uri, name.name), | |
| ) ?? | |
| prefixElement.getMethod(name.name) ?? | |
| prefixElement.getGetter(name.name) ?? | |
| prefixElement.getSetter(name.name) ?? | |
| prefixElement.getNamedConstructor(name.name); | |
| } else if (prefixElement is ExtensionElement) { | |
| name.element = | |
| prefixElement.getMethod(name.name) ?? | |
| prefixElement.getGetter(name.name) ?? | |
| prefixElement.getSetter(name.name); | |
| } | |
| // Using anonymous methods. | |
| if (prefixElement is InterfaceElement) { | |
| name.element = prefixElement.=> | |
| _resolver.inheritance.getMember(this, Name(library.uri, name.name)) ?? | |
| getMethod(name.name) ?? | |
| getGetter(name.name) ?? | |
| getSetter(name.name) ?? | |
| getNamedConstructor(name.name); | |
| } else if (prefixElement is ExtensionElement) { | |
| name.element = prefixElement.=> | |
| getMethod(name.name) ?? | |
| getGetter(name.name) ?? | |
| getSetter(name.name); | |
| } | |
| // Using anonymous methods and taking one more step. | |
| name.name.(name) => prefixElement.=> switch (this) { | |
| InterfaceElement() => | |
| _resolver.inheritance.getMember(this, Name(library.uri, name)) ?? | |
| getMethod(name) ?? | |
| getGetter(name) ?? | |
| getSetter(name) ?? | |
| getNamedConstructor(name), | |
| ExtensionElement() => | |
| getMethod(name) ?? | |
| getGetter(name) ?? | |
| getSetter(name), | |
| _ => null, | |
| }?.=> name.element = this; | |
| // From pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart | |
| // Original code. | |
| void visitSimpleIdentifier(SimpleIdentifier node) { | |
| if (node.inDeclarationContext()) { | |
| var element = node.element; | |
| if (element is ConstructorElement) { | |
| _visitConstructorElement(element); | |
| } else if (element is FieldElement) { | |
| _visitFieldElement(element); | |
| } else if (element is LocalFunctionElement) { | |
| _visitLocalFunctionElement(element); | |
| } else if (element is InterfaceElement) { | |
| _visitClassElement(element); | |
| } else if (element is LocalVariableElement) { | |
| _visitLocalVariableElement(element); | |
| } else if (element is MethodElement) { | |
| _visitMethodElement(element); | |
| } else if (element is PropertyAccessorElement) { | |
| _visitPropertyAccessorElement(element); | |
| } else if (element is TopLevelVariableElement) { | |
| _visitTopLevelVariableElement(element); | |
| } else if (element is TypeAliasElement) { | |
| _visitTypeAliasElement(element); | |
| } | |
| } | |
| } | |
| // Using recent Dart | |
| void visitSimpleIdentifier(SimpleIdentifier node) { | |
| if (node.inDeclarationContext()) { | |
| var element = node.element; | |
| switch (element) { | |
| ConstructorElement(): | |
| _visitConstructorElement(element); | |
| FieldElement(): | |
| _visitFieldElement(element); | |
| LocalFunctionElement(): | |
| _visitLocalFunctionElement(element); | |
| InterfaceElement(): | |
| _visitClassElement(element); | |
| LocalVariableElement(): | |
| _visitLocalVariableElement(element); | |
| MethodElement(): | |
| _visitMethodElement(element); | |
| PropertyAccessorElement(): | |
| _visitPropertyAccessorElement(element); | |
| TopLevelVariableElement(): | |
| _visitTopLevelVariableElement(element); | |
| TypeAliasElement(): | |
| _visitTypeAliasElement(element); | |
| } | |
| } | |
| } | |
| // Using anonymous methods. | |
| void visitSimpleIdentifier(SimpleIdentifier node) { | |
| if (node.inDeclarationContext()) { | |
| node.element.=> switch (this) { | |
| ConstructorElement() => _visitConstructorElement(this), | |
| FieldElement() => _visitFieldElement(this), | |
| LocalFunctionElement() => _visitLocalFunctionElement(this), | |
| InterfaceElement() => _visitClassElement(this), | |
| LocalVariableElement() => _visitLocalVariableElement(this), | |
| MethodElement() => _visitMethodElement(this), | |
| PropertyAccessorElement() => _visitPropertyAccessorElement(this), | |
| TopLevelVariableElement() => _visitTopLevelVariableElement(this), | |
| TypeAliasElement() => _visitTypeAliasElement(this), | |
| _ => null, | |
| }; | |
| } | |
| } | |
| // From pkg/analyzer/lib/src/summary2/bundle_reader.dart | |
| // Original code. | |
| List<ClassFragmentImpl> _readClassFragments() { | |
| return _reader.readTypedList(() { | |
| return _readTemplateFragment( | |
| create: (name) { | |
| var fragment = ClassFragmentImpl(name: name); | |
| fragment.readModifiers(_reader); | |
| fragment.typeParameters = _readTypeParameters(); | |
| _lazyRead((membersOffset) { | |
| fragment.deferReadMembers(() { | |
| _reader.runAtOffset(membersOffset, () { | |
| fragment.fields = _readFieldFragments(); | |
| fragment.getters = _readGetterFragments(); | |
| fragment.setters = _readSetterFragments(); | |
| fragment.methods = _readMethodFragments(); | |
| if (!fragment.isMixinApplication) { | |
| fragment.constructors = _readConstructorFragments(); | |
| } | |
| }); | |
| }); | |
| }); | |
| return fragment; | |
| }, | |
| readResolution: (fragment, reader) { | |
| _readTypeParameters2( | |
| fragment.libraryFragment, | |
| reader, | |
| fragment.typeParameters, | |
| ); | |
| fragment.metadata = reader._readMetadata(); | |
| }, | |
| ); | |
| }); | |
| } | |
| // Using anonymous methods. | |
| List<ClassFragmentImpl> _readClassFragments() => _reader.readTypedList( | |
| () => _readTemplateFragment( | |
| create: (name) => ClassFragmentImpl(name: name)..{ | |
| readModifiers(_reader); | |
| typeParameters = _readTypeParameters(); | |
| _lazyRead((membersOffset) { | |
| deferReadMembers(() { | |
| _reader.runAtOffset(membersOffset, () { | |
| fields = _readFieldFragments(); | |
| getters = _readGetterFragments(); | |
| setters = _readSetterFragments(); | |
| methods = _readMethodFragments(); | |
| if (!isMixinApplication) { | |
| constructors = _readConstructorFragments(); | |
| } | |
| }); | |
| }); | |
| }); | |
| }, | |
| readResolution: (fragment, reader) => fragment.{ | |
| _readTypeParameters2(libraryFragment, reader, typeParameters); | |
| metadata = reader._readMetadata(); | |
| }, | |
| ) | |
| ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment