File tree Expand file tree Collapse file tree 3 files changed +112
-0
lines changed Expand file tree Collapse file tree 3 files changed +112
-0
lines changed Original file line number Diff line number Diff line change @@ -207,6 +207,7 @@ final class ManifestElement {
207207enum ManifestElementKind {
208208 class_,
209209 enum_,
210+ extension_,
210211 extensionType,
211212 mixin_,
212213 typeAlias,
@@ -226,6 +227,8 @@ enum ManifestElementKind {
226227 return ManifestElementKind .class_;
227228 case EnumElement ():
228229 return ManifestElementKind .enum_;
230+ case ExtensionElement ():
231+ return ManifestElementKind .extension_;
229232 case ExtensionTypeElement ():
230233 return ManifestElementKind .extensionType;
231234 case MixinElement ():
Original file line number Diff line number Diff line change @@ -44672,6 +44672,66 @@ const d = A.b;
4467244672 );
4467344673 }
4467444674
44675+ test_manifest_constInitializer_prefixedIdentifier_extensionName_fieldName() async {
44676+ await _runLibraryManifestScenario(
44677+ initialCode: r'''
44678+ extension A on Object {
44679+ static const a = 0;
44680+ static const b = 0;
44681+ }
44682+
44683+ const c = A.a;
44684+ const d = A.b;
44685+ ''',
44686+ expectedInitialEvents: r'''
44687+ [operation] linkLibraryCycle SDK
44688+ [operation] linkLibraryCycle
44689+ package:test/test.dart
44690+ declaredExtensions
44691+ A: #M0
44692+ declaredFields
44693+ a: #M1
44694+ b: #M2
44695+ declaredGetters
44696+ a: #M3
44697+ b: #M4
44698+ declaredGetters
44699+ c: #M5
44700+ d: #M6
44701+ declaredVariables
44702+ c: #M7
44703+ d: #M8
44704+ ''',
44705+ updatedCode: r'''
44706+ extension A on Object {
44707+ static const a = 0;
44708+ static const b = 1;
44709+ }
44710+
44711+ const c = A.a;
44712+ const d = A.b;
44713+ ''',
44714+ expectedUpdatedEvents: r'''
44715+ [operation] linkLibraryCycle
44716+ package:test/test.dart
44717+ declaredExtensions
44718+ A: #M0
44719+ declaredFields
44720+ a: #M1
44721+ b: #M9
44722+ declaredGetters
44723+ a: #M3
44724+ b: #M4
44725+ declaredGetters
44726+ c: #M5
44727+ d: #M6
44728+ declaredVariables
44729+ c: #M7
44730+ d: #M10
44731+ ''',
44732+ );
44733+ }
44734+
4467544735 test_manifest_constInitializer_prefixedIdentifier_importPrefix_className_fieldName() async {
4467644736 var a = newFile('$testPackageLibPath/a.dart', r'''
4467744737class A {
Original file line number Diff line number Diff line change @@ -6932,6 +6932,55 @@ library
69326932''' );
69336933 }
69346934
6935+ test_metadata_value_extension_staticField_unnamed () async {
6936+ var library = await buildLibrary ('''
6937+ extension on Object {
6938+ @foo
6939+ static const foo = 0;
6940+ }
6941+ ''' );
6942+ checkElementText (library, r'''
6943+ library
6944+ reference: <testLibrary>
6945+ fragments
6946+ #F0 <testLibraryFragment>
6947+ element: <testLibrary>
6948+ extensions
6949+ #F1 extension <null-name> (nameOffset:<null>) (firstTokenOffset:0) (offset:0)
6950+ element: <testLibrary>::@extension::0
6951+ fields
6952+ #F2 hasInitializer foo (nameOffset:44) (firstTokenOffset:44) (offset:44)
6953+ element: <testLibrary>::@extension::0::@field::foo
6954+ initializer: expression_0
6955+ IntegerLiteral
6956+ literal: 0 @50
6957+ staticType: int
6958+ getters
6959+ #F3 synthetic foo (nameOffset:<null>) (firstTokenOffset:<null>) (offset:44)
6960+ element: <testLibrary>::@extension::0::@getter::foo
6961+ extensions
6962+ extension <null-name>
6963+ reference: <testLibrary>::@extension::0
6964+ firstFragment: #F1
6965+ extendedType: Object
6966+ fields
6967+ static const hasInitializer foo
6968+ reference: <testLibrary>::@extension::0::@field::foo
6969+ firstFragment: #F2
6970+ type: int
6971+ constantInitializer
6972+ fragment: #F2
6973+ expression: expression_0
6974+ getter: <testLibrary>::@extension::0::@getter::foo
6975+ getters
6976+ synthetic static foo
6977+ reference: <testLibrary>::@extension::0::@getter::foo
6978+ firstFragment: #F3
6979+ returnType: int
6980+ variable: <testLibrary>::@extension::0::@field::foo
6981+ ''' );
6982+ }
6983+
69356984 test_metadata_value_prefix_extension_staticField () async {
69366985 newFile ('$testPackageLibPath /foo.dart' , '''
69376986extension E on int {
You can’t perform that action at this time.
0 commit comments