| // Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'package:analyzer/dart/element/element.dart'; |
| import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| |
| import '../../dart/resolution/node_text_expectations.dart'; |
| import '../element_text.dart'; |
| import '../elements_base.dart'; |
| |
| main() { |
| defineReflectiveSuite(() { |
| defineReflectiveTests(EnumElementTest_keepLinking); |
| defineReflectiveTests(EnumElementTest_fromBytes); |
| defineReflectiveTests(EnumElementTest_augmentation_keepLinking); |
| defineReflectiveTests(EnumElementTest_augmentation_fromBytes); |
| defineReflectiveTests(UpdateNodeTextExpectations); |
| }); |
| } |
| |
| abstract class EnumElementTest extends ElementsBaseTest { |
| test_codeRange_enum() async { |
| var library = await buildLibrary(''' |
| enum E { |
| aaa, bbb, ccc |
| } |
| '''); |
| configuration.withCodeRanges = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| codeOffset: 0 |
| codeLength: 26 |
| supertype: Enum |
| fields |
| static const enumConstant aaa @11 |
| reference: <testLibraryFragment>::@enum::E::@field::aaa |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| codeOffset: 11 |
| codeLength: 3 |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| static const enumConstant bbb @16 |
| reference: <testLibraryFragment>::@enum::E::@field::bbb |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| codeOffset: 16 |
| codeLength: 3 |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| static const enumConstant ccc @21 |
| reference: <testLibraryFragment>::@enum::E::@field::ccc |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| codeOffset: 21 |
| codeLength: 3 |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: aaa @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::aaa |
| element: <testLibraryFragment>::@enum::E::@getter::aaa#element |
| staticType: E |
| SimpleIdentifier |
| token: bbb @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::bbb |
| element: <testLibraryFragment>::@enum::E::@getter::bbb#element |
| staticType: E |
| SimpleIdentifier |
| token: ccc @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::ccc |
| element: <testLibraryFragment>::@enum::E::@getter::ccc#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get aaa @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::aaa |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get bbb @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::bbb |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get ccc @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::ccc |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer aaa @11 |
| reference: <testLibraryFragment>::@enum::E::@field::aaa |
| element: <testLibraryFragment>::@enum::E::@field::aaa#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::aaa |
| hasInitializer bbb @16 |
| reference: <testLibraryFragment>::@enum::E::@field::bbb |
| element: <testLibraryFragment>::@enum::E::@field::bbb#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::bbb |
| hasInitializer ccc @21 |
| reference: <testLibraryFragment>::@enum::E::@field::ccc |
| element: <testLibraryFragment>::@enum::E::@field::ccc#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::ccc |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get aaa |
| reference: <testLibraryFragment>::@enum::E::@getter::aaa |
| element: <testLibraryFragment>::@enum::E::@getter::aaa#element |
| synthetic get bbb |
| reference: <testLibraryFragment>::@enum::E::@getter::bbb |
| element: <testLibraryFragment>::@enum::E::@getter::bbb#element |
| synthetic get ccc |
| reference: <testLibraryFragment>::@enum::E::@getter::ccc |
| element: <testLibraryFragment>::@enum::E::@getter::ccc#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer aaa |
| firstFragment: <testLibraryFragment>::@enum::E::@field::aaa |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::aaa#element |
| static const enumConstant hasInitializer bbb |
| firstFragment: <testLibraryFragment>::@enum::E::@field::bbb |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::bbb#element |
| static const enumConstant hasInitializer ccc |
| firstFragment: <testLibraryFragment>::@enum::E::@field::ccc |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::ccc#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get aaa |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::aaa |
| synthetic static get bbb |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::bbb |
| synthetic static get ccc |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::ccc |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_constant_inference() async { |
| var library = await buildLibrary(r''' |
| enum E<T> { |
| int(1), string('2'); |
| const E(T a); |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @7 |
| defaultType: dynamic |
| supertype: Enum |
| fields |
| static const enumConstant int @14 |
| reference: <testLibraryFragment>::@enum::E::@field::int |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E<int> |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E<int> |
| staticElement: ConstructorMember |
| base: <testLibraryFragment>::@enum::E::@constructor::new |
| substitution: {T: int} |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| arguments |
| IntegerLiteral |
| literal: 1 @18 |
| staticType: int |
| rightParenthesis: ) @0 |
| staticType: E<int> |
| static const enumConstant string @22 |
| reference: <testLibraryFragment>::@enum::E::@field::string |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E<String> |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E<String> |
| staticElement: ConstructorMember |
| base: <testLibraryFragment>::@enum::E::@constructor::new |
| substitution: {T: String} |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| arguments |
| SimpleStringLiteral |
| literal: '2' @29 |
| rightParenthesis: ) @0 |
| staticType: E<String> |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: int @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::int |
| element: <testLibraryFragment>::@enum::E::@getter::int#element |
| staticType: E<int> |
| SimpleIdentifier |
| token: string @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::string |
| element: <testLibraryFragment>::@enum::E::@getter::string#element |
| staticType: E<String> |
| rightBracket: ] @0 |
| staticType: List<E<dynamic>> |
| constructors |
| const @43 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| parameters |
| requiredPositional a @47 |
| type: T |
| accessors |
| synthetic static get int @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::int |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E<int> |
| synthetic static get string @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::string |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E<String> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic>> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @7 |
| element: <not-implemented> |
| fields |
| hasInitializer int @14 |
| reference: <testLibraryFragment>::@enum::E::@field::int |
| element: <testLibraryFragment>::@enum::E::@field::int#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::int |
| hasInitializer string @22 |
| reference: <testLibraryFragment>::@enum::E::@field::string |
| element: <testLibraryFragment>::@enum::E::@field::string#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::string |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| typeNameOffset: 43 |
| formalParameters |
| a @47 |
| element: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::a#element |
| getters |
| synthetic get int |
| reference: <testLibraryFragment>::@enum::E::@getter::int |
| element: <testLibraryFragment>::@enum::E::@getter::int#element |
| synthetic get string |
| reference: <testLibraryFragment>::@enum::E::@getter::string |
| element: <testLibraryFragment>::@enum::E::@getter::string#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer int |
| firstFragment: <testLibraryFragment>::@enum::E::@field::int |
| type: E<int> |
| getter: <testLibraryFragment>::@enum::E::@getter::int#element |
| static const enumConstant hasInitializer string |
| firstFragment: <testLibraryFragment>::@enum::E::@field::string |
| type: E<String> |
| getter: <testLibraryFragment>::@enum::E::@getter::string#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| formalParameters |
| requiredPositional a |
| type: T |
| getters |
| synthetic static get int |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::int |
| synthetic static get string |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::string |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| /// Test that a constant named `_name` renames the synthetic `name` field. |
| test_enum_constant_name() async { |
| var library = await buildLibrary(r''' |
| enum E { |
| _name; |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant _name @11 |
| reference: <testLibraryFragment>::@enum::E::@field::_name |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: _name @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::_name |
| element: <testLibraryFragment>::@enum::E::@getter::_name#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get _name @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::_name |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer _name @11 |
| reference: <testLibraryFragment>::@enum::E::@field::_name |
| element: <testLibraryFragment>::@enum::E::@field::_name#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::_name |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get _name |
| reference: <testLibraryFragment>::@enum::E::@getter::_name |
| element: <testLibraryFragment>::@enum::E::@getter::_name#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer _name |
| firstFragment: <testLibraryFragment>::@enum::E::@field::_name |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::_name#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get _name |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::_name |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_constant_typeArguments() async { |
| var library = await buildLibrary(r''' |
| enum E<T> { |
| v<double>(42); |
| const E(T a); |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @7 |
| defaultType: dynamic |
| supertype: Enum |
| fields |
| static const enumConstant v @14 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E<double> |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| typeArguments: TypeArgumentList |
| leftBracket: < @15 |
| arguments |
| NamedType |
| name: double @16 |
| element: dart:core::<fragment>::@class::double |
| element2: dart:core::@class::double |
| type: double |
| rightBracket: > @22 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E<double> |
| staticElement: ConstructorMember |
| base: <testLibraryFragment>::@enum::E::@constructor::new |
| substitution: {T: double} |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| arguments |
| IntegerLiteral |
| literal: 42 @24 |
| staticType: double |
| rightParenthesis: ) @0 |
| staticType: E<double> |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E<double> |
| rightBracket: ] @0 |
| staticType: List<E<dynamic>> |
| constructors |
| const @37 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| parameters |
| requiredPositional a @41 |
| type: T |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E<double> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic>> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @7 |
| element: <not-implemented> |
| fields |
| hasInitializer v @14 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| typeNameOffset: 37 |
| formalParameters |
| a @41 |
| element: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::a#element |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E<double> |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| formalParameters |
| requiredPositional a |
| type: T |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_constant_underscore() async { |
| var library = await buildLibrary(''' |
| enum E { |
| _ |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant _ @11 |
| reference: <testLibraryFragment>::@enum::E::@field::_ |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: _ @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::_ |
| element: <testLibraryFragment>::@enum::E::@getter::_#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get _ @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::_ |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer _ @11 |
| reference: <testLibraryFragment>::@enum::E::@field::_ |
| element: <testLibraryFragment>::@enum::E::@field::_#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::_ |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get _ |
| reference: <testLibraryFragment>::@enum::E::@getter::_ |
| element: <testLibraryFragment>::@enum::E::@getter::_#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer _ |
| firstFragment: <testLibraryFragment>::@enum::E::@field::_ |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::_#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get _ |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::_ |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_constructor_factory_named() async { |
| var library = await buildLibrary(r''' |
| enum E { |
| v; |
| factory E.named() => v; |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| factory named @26 |
| reference: <testLibraryFragment>::@enum::E::@constructor::named |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| periodOffset: 25 |
| nameEnd: 31 |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| factory named @26 |
| reference: <testLibraryFragment>::@enum::E::@constructor::named |
| element: <testLibraryFragment>::@enum::E::@constructor::named#element |
| typeName: E |
| typeNameOffset: 24 |
| periodOffset: 25 |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| factory named |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::named |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_constructor_factory_unnamed() async { |
| var library = await buildLibrary(r''' |
| enum E { |
| v; |
| factory E() => v; |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| factory @24 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| factory new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| typeNameOffset: 24 |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| factory new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_constructor_fieldFormal_functionTyped_withReturnType() async { |
| var library = await buildLibrary(r''' |
| enum E { |
| v; |
| final x; |
| const E(int this.x(double a)); |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| final x @22 |
| reference: <testLibraryFragment>::@enum::E::@field::x |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: dynamic |
| constructors |
| const @33 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| parameters |
| requiredPositional final this.x @44 |
| type: int Function(double) |
| parameters |
| requiredPositional a @53 |
| type: double |
| field: <testLibraryFragment>::@enum::E::@field::x |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| synthetic get x @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::x |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: dynamic |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| x @22 |
| reference: <testLibraryFragment>::@enum::E::@field::x |
| element: <testLibraryFragment>::@enum::E::@field::x#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::x |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| typeNameOffset: 33 |
| formalParameters |
| this.x @44 |
| element: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::x#element |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| synthetic get x |
| reference: <testLibraryFragment>::@enum::E::@getter::x |
| element: <testLibraryFragment>::@enum::E::@getter::x#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| final x |
| firstFragment: <testLibraryFragment>::@enum::E::@field::x |
| type: dynamic |
| getter: <testLibraryFragment>::@enum::E::@getter::x#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| formalParameters |
| requiredPositional final x |
| type: int Function(double) |
| formalParameters |
| requiredPositional a |
| type: double |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| synthetic get x |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::x |
| '''); |
| } |
| |
| test_enum_constructor_fieldFormal_multiple_matching_fields() async { |
| var library = await buildLibrary(''' |
| enum E { |
| v; |
| final int x; |
| final String x; |
| const E(this.x); |
| } |
| '''); |
| |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| final x @26 |
| reference: <testLibraryFragment>::@enum::E::@field::x::@def::0 |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: int |
| final x @44 |
| reference: <testLibraryFragment>::@enum::E::@field::x::@def::1 |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: String |
| constructors |
| const @55 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| parameters |
| requiredPositional final this.x @62 |
| type: int |
| field: <testLibraryFragment>::@enum::E::@field::x::@def::0 |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| synthetic get x @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::x::@def::0 |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: int |
| synthetic get x @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::x::@def::1 |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: String |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| x @26 |
| reference: <testLibraryFragment>::@enum::E::@field::x::@def::0 |
| element: <testLibraryFragment>::@enum::E::@field::x::@def::0#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::x::@def::0 |
| x @44 |
| reference: <testLibraryFragment>::@enum::E::@field::x::@def::1 |
| element: <testLibraryFragment>::@enum::E::@field::x::@def::1#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::x::@def::1 |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| typeNameOffset: 55 |
| formalParameters |
| this.x @62 |
| element: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::x#element |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| synthetic get x |
| reference: <testLibraryFragment>::@enum::E::@getter::x::@def::0 |
| element: <testLibraryFragment>::@enum::E::@getter::x::@def::0#element |
| synthetic get x |
| reference: <testLibraryFragment>::@enum::E::@getter::x::@def::1 |
| element: <testLibraryFragment>::@enum::E::@getter::x::@def::1#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| final x |
| firstFragment: <testLibraryFragment>::@enum::E::@field::x::@def::0 |
| type: int |
| getter: <testLibraryFragment>::@enum::E::@getter::x::@def::0#element |
| final x |
| firstFragment: <testLibraryFragment>::@enum::E::@field::x::@def::1 |
| type: String |
| getter: <testLibraryFragment>::@enum::E::@getter::x::@def::1#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| formalParameters |
| requiredPositional final x |
| type: int |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| synthetic get x |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::x::@def::0 |
| synthetic get x |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::x::@def::1 |
| '''); |
| } |
| |
| test_enum_constructor_fieldFormal_no_matching_field() async { |
| var library = await buildLibrary(''' |
| enum E { |
| v; |
| const E(this.x); |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| const @22 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| parameters |
| requiredPositional final this.x @29 |
| type: dynamic |
| field: <null> |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| typeNameOffset: 22 |
| formalParameters |
| this.x @29 |
| element: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::x#element |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| formalParameters |
| requiredPositional final x |
| type: dynamic |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_constructor_fieldFormal_optionalNamed_defaultValue() async { |
| var library = await buildLibrary(r''' |
| enum E { |
| v; |
| final int x; |
| const E({this.x = 1 + 2}); |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| final x @26 |
| reference: <testLibraryFragment>::@enum::E::@field::x |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: int |
| constructors |
| const @37 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| parameters |
| optionalNamed default final this.x @45 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::x |
| type: int |
| constantInitializer |
| BinaryExpression |
| leftOperand: IntegerLiteral |
| literal: 1 @49 |
| staticType: int |
| operator: + @51 |
| rightOperand: IntegerLiteral |
| literal: 2 @53 |
| staticType: int |
| staticElement: dart:core::<fragment>::@class::num::@method::+ |
| element: dart:core::<fragment>::@class::num::@method::+#element |
| staticInvokeType: num Function(num) |
| staticType: int |
| field: <testLibraryFragment>::@enum::E::@field::x |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| synthetic get x @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::x |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| x @26 |
| reference: <testLibraryFragment>::@enum::E::@field::x |
| element: <testLibraryFragment>::@enum::E::@field::x#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::x |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| typeNameOffset: 37 |
| formalParameters |
| default this.x @45 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::x |
| element: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::x#element |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| synthetic get x |
| reference: <testLibraryFragment>::@enum::E::@getter::x |
| element: <testLibraryFragment>::@enum::E::@getter::x#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| final x |
| firstFragment: <testLibraryFragment>::@enum::E::@field::x |
| type: int |
| getter: <testLibraryFragment>::@enum::E::@getter::x#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| formalParameters |
| optionalNamed final x |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::x |
| type: int |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| synthetic get x |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::x |
| '''); |
| } |
| |
| test_enum_constructor_fieldFormal_typed_typed() async { |
| var library = await buildLibrary(''' |
| enum E { |
| v; |
| final num x; |
| const E(int this.x); |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| final x @26 |
| reference: <testLibraryFragment>::@enum::E::@field::x |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: num |
| constructors |
| const @37 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| parameters |
| requiredPositional final this.x @48 |
| type: int |
| field: <testLibraryFragment>::@enum::E::@field::x |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| synthetic get x @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::x |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: num |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| x @26 |
| reference: <testLibraryFragment>::@enum::E::@field::x |
| element: <testLibraryFragment>::@enum::E::@field::x#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::x |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| typeNameOffset: 37 |
| formalParameters |
| this.x @48 |
| element: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::x#element |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| synthetic get x |
| reference: <testLibraryFragment>::@enum::E::@getter::x |
| element: <testLibraryFragment>::@enum::E::@getter::x#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| final x |
| firstFragment: <testLibraryFragment>::@enum::E::@field::x |
| type: num |
| getter: <testLibraryFragment>::@enum::E::@getter::x#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| formalParameters |
| requiredPositional final x |
| type: int |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| synthetic get x |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::x |
| '''); |
| } |
| |
| test_enum_constructor_fieldFormal_untyped_typed() async { |
| var library = await buildLibrary(r''' |
| enum E { |
| v; |
| final x; |
| E(int this.x); |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| final x @22 |
| reference: <testLibraryFragment>::@enum::E::@field::x |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: dynamic |
| constructors |
| @27 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| parameters |
| requiredPositional final this.x @38 |
| type: int |
| field: <testLibraryFragment>::@enum::E::@field::x |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| synthetic get x @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::x |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: dynamic |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| x @22 |
| reference: <testLibraryFragment>::@enum::E::@field::x |
| element: <testLibraryFragment>::@enum::E::@field::x#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::x |
| constructors |
| new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| typeNameOffset: 27 |
| formalParameters |
| this.x @38 |
| element: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::x#element |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| synthetic get x |
| reference: <testLibraryFragment>::@enum::E::@getter::x |
| element: <testLibraryFragment>::@enum::E::@getter::x#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| final x |
| firstFragment: <testLibraryFragment>::@enum::E::@field::x |
| type: dynamic |
| getter: <testLibraryFragment>::@enum::E::@getter::x#element |
| constructors |
| new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| formalParameters |
| requiredPositional final x |
| type: int |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| synthetic get x |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::x |
| '''); |
| } |
| |
| test_enum_constructor_fieldFormal_untyped_untyped() async { |
| var library = await buildLibrary(r''' |
| enum E { |
| v; |
| final x; |
| E(this.x); |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| final x @22 |
| reference: <testLibraryFragment>::@enum::E::@field::x |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: dynamic |
| constructors |
| @27 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| parameters |
| requiredPositional final this.x @34 |
| type: dynamic |
| field: <testLibraryFragment>::@enum::E::@field::x |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| synthetic get x @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::x |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: dynamic |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| x @22 |
| reference: <testLibraryFragment>::@enum::E::@field::x |
| element: <testLibraryFragment>::@enum::E::@field::x#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::x |
| constructors |
| new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| typeNameOffset: 27 |
| formalParameters |
| this.x @34 |
| element: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::x#element |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| synthetic get x |
| reference: <testLibraryFragment>::@enum::E::@getter::x |
| element: <testLibraryFragment>::@enum::E::@getter::x#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| final x |
| firstFragment: <testLibraryFragment>::@enum::E::@field::x |
| type: dynamic |
| getter: <testLibraryFragment>::@enum::E::@getter::x#element |
| constructors |
| new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| formalParameters |
| requiredPositional final x |
| type: dynamic |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| synthetic get x |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::x |
| '''); |
| } |
| |
| test_enum_constructor_generative_named() async { |
| var library = await buildLibrary(r''' |
| enum E { |
| v.named(42); |
| const E.named(int a); |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| period: . @0 |
| name: SimpleIdentifier |
| token: named @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::named |
| element: <testLibraryFragment>::@enum::E::@constructor::named#element |
| staticType: null |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::named |
| element: <testLibraryFragment>::@enum::E::@constructor::named#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| arguments |
| IntegerLiteral |
| literal: 42 @19 |
| staticType: int |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| const named @34 |
| reference: <testLibraryFragment>::@enum::E::@constructor::named |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| periodOffset: 33 |
| nameEnd: 39 |
| parameters |
| requiredPositional a @44 |
| type: int |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| const named @34 |
| reference: <testLibraryFragment>::@enum::E::@constructor::named |
| element: <testLibraryFragment>::@enum::E::@constructor::named#element |
| typeName: E |
| typeNameOffset: 32 |
| periodOffset: 33 |
| formalParameters |
| a @44 |
| element: <testLibraryFragment>::@enum::E::@constructor::named::@parameter::a#element |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| const named |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::named |
| formalParameters |
| requiredPositional a |
| type: int |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_constructor_generative_unnamed() async { |
| var library = await buildLibrary(r''' |
| enum E { |
| v(42); |
| const E(int a); |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| arguments |
| IntegerLiteral |
| literal: 42 @13 |
| staticType: int |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| const @26 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| parameters |
| requiredPositional a @32 |
| type: int |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| typeNameOffset: 26 |
| formalParameters |
| a @32 |
| element: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::a#element |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| formalParameters |
| requiredPositional a |
| type: int |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_constructor_initializer() async { |
| var library = await buildLibrary(r''' |
| enum E<T> { |
| v; |
| final int x; |
| const E(T? a) : assert(a is T), x = 0; |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @7 |
| defaultType: dynamic |
| supertype: Enum |
| fields |
| static const enumConstant v @14 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E<dynamic> |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E<dynamic> |
| staticElement: ConstructorMember |
| base: <testLibraryFragment>::@enum::E::@constructor::new |
| substitution: {T: dynamic} |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E<dynamic> |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E<dynamic> |
| rightBracket: ] @0 |
| staticType: List<E<dynamic>> |
| final x @29 |
| reference: <testLibraryFragment>::@enum::E::@field::x |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: int |
| constructors |
| const @40 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| parameters |
| requiredPositional a @45 |
| type: T? |
| constantInitializers |
| AssertInitializer |
| assertKeyword: assert @50 |
| leftParenthesis: ( @56 |
| condition: IsExpression |
| expression: SimpleIdentifier |
| token: a @57 |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::a |
| element: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::a#element |
| staticType: T? |
| isOperator: is @59 |
| type: NamedType |
| name: T @62 |
| element: T@7 |
| element2: <not-implemented> |
| type: T |
| staticType: bool |
| rightParenthesis: ) @63 |
| ConstructorFieldInitializer |
| fieldName: SimpleIdentifier |
| token: x @66 |
| staticElement: <testLibraryFragment>::@enum::E::@field::x |
| element: <testLibraryFragment>::@enum::E::@field::x#element |
| staticType: null |
| equals: = @68 |
| expression: IntegerLiteral |
| literal: 0 @70 |
| staticType: int |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E<dynamic> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic>> |
| synthetic get x @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::x |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @7 |
| element: <not-implemented> |
| fields |
| hasInitializer v @14 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| x @29 |
| reference: <testLibraryFragment>::@enum::E::@field::x |
| element: <testLibraryFragment>::@enum::E::@field::x#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::x |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| typeNameOffset: 40 |
| formalParameters |
| a @45 |
| element: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::a#element |
| constantInitializers |
| AssertInitializer |
| assertKeyword: assert @50 |
| leftParenthesis: ( @56 |
| condition: IsExpression |
| expression: SimpleIdentifier |
| token: a @57 |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::a |
| element: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::a#element |
| staticType: T? |
| isOperator: is @59 |
| type: NamedType |
| name: T @62 |
| element: T@7 |
| element2: <not-implemented> |
| type: T |
| staticType: bool |
| rightParenthesis: ) @63 |
| ConstructorFieldInitializer |
| fieldName: SimpleIdentifier |
| token: x @66 |
| staticElement: <testLibraryFragment>::@enum::E::@field::x |
| element: <testLibraryFragment>::@enum::E::@field::x#element |
| staticType: null |
| equals: = @68 |
| expression: IntegerLiteral |
| literal: 0 @70 |
| staticType: int |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| synthetic get x |
| reference: <testLibraryFragment>::@enum::E::@getter::x |
| element: <testLibraryFragment>::@enum::E::@getter::x#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E<dynamic> |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| final x |
| firstFragment: <testLibraryFragment>::@enum::E::@field::x |
| type: int |
| getter: <testLibraryFragment>::@enum::E::@getter::x#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| formalParameters |
| requiredPositional a |
| type: T? |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| synthetic get x |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::x |
| '''); |
| } |
| |
| test_enum_documented() async { |
| var library = await buildLibrary(''' |
| // Extra comment so doc comment offset != 0 |
| /** |
| * Docs |
| */ |
| enum E { v }'''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @65 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| documentationComment: /**\n * Docs\n */ |
| supertype: Enum |
| fields |
| static const enumConstant v @69 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @65 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @69 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| documentationComment: /**\n * Docs\n */ |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_field() async { |
| var library = await buildLibrary(r''' |
| enum E { |
| v; |
| final foo = 42; |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| final foo @22 |
| reference: <testLibraryFragment>::@enum::E::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: int |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| IntegerLiteral |
| literal: 42 @28 |
| staticType: int |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| synthetic get foo @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| hasInitializer foo @22 |
| reference: <testLibraryFragment>::@enum::E::@field::foo |
| element: <testLibraryFragment>::@enum::E::@field::foo#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| synthetic get foo |
| reference: <testLibraryFragment>::@enum::E::@getter::foo |
| element: <testLibraryFragment>::@enum::E::@getter::foo#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| final hasInitializer foo |
| firstFragment: <testLibraryFragment>::@enum::E::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::E::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| synthetic get foo |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::foo |
| '''); |
| } |
| |
| test_enum_field_isPromotable() async { |
| var library = await buildLibrary(r''' |
| enum E { |
| v(null); |
| final int? _foo; |
| E(this._foo); |
| } |
| '''); |
| configuration.forPromotableFields( |
| enumNames: {'E'}, |
| fieldNames: {'_foo'}, |
| ); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| final promotable _foo @33 |
| reference: <testLibraryFragment>::@enum::E::@field::_foo |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: int? |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| _foo @33 |
| reference: <testLibraryFragment>::@enum::E::@field::_foo |
| element: <testLibraryFragment>::@enum::E::@field::_foo#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::_foo |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| final promotable _foo |
| firstFragment: <testLibraryFragment>::@enum::E::@field::_foo |
| type: int? |
| getter: <testLibraryFragment>::@enum::E::@getter::_foo#element |
| constructors |
| new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| formalParameters |
| requiredPositional final _foo |
| type: int? |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| synthetic get _foo |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::_foo |
| '''); |
| } |
| |
| test_enum_getter() async { |
| var library = await buildLibrary(r''' |
| enum E{ |
| v; |
| int get foo => 0; |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @10 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| synthetic foo @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: int |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| get foo @23 |
| reference: <testLibraryFragment>::@enum::E::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @10 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| synthetic foo |
| reference: <testLibraryFragment>::@enum::E::@field::foo |
| element: <testLibraryFragment>::@enum::E::@field::foo#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| get foo @23 |
| reference: <testLibraryFragment>::@enum::E::@getter::foo |
| element: <testLibraryFragment>::@enum::E::@getter::foo#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| synthetic foo |
| firstFragment: <testLibraryFragment>::@enum::E::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::E::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| get foo |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::foo |
| '''); |
| } |
| |
| test_enum_interfaces() async { |
| var library = await buildLibrary(r''' |
| class I {} |
| enum E implements I { |
| v; |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| classes |
| class I @6 |
| reference: <testLibraryFragment>::@class::I |
| enclosingElement3: <testLibraryFragment> |
| constructors |
| synthetic @-1 |
| reference: <testLibraryFragment>::@class::I::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::I |
| enums |
| enum E @16 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| interfaces |
| I |
| fields |
| static const enumConstant v @35 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| classes |
| class I @6 |
| reference: <testLibraryFragment>::@class::I |
| element: <testLibrary>::@class::I |
| constructors |
| synthetic new |
| reference: <testLibraryFragment>::@class::I::@constructor::new |
| element: <testLibraryFragment>::@class::I::@constructor::new#element |
| typeName: I |
| enums |
| enum E @16 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @35 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| classes |
| class I |
| reference: <testLibrary>::@class::I |
| firstFragment: <testLibraryFragment>::@class::I |
| constructors |
| synthetic new |
| firstFragment: <testLibraryFragment>::@class::I::@constructor::new |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| interfaces |
| I |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_interfaces_extensionType() async { |
| var library = await buildLibrary(r''' |
| class A {} |
| extension type B(int it) {} |
| class C {} |
| enum E implements A, B, C { v } |
| '''); |
| configuration |
| ..withConstructors = false |
| ..withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| classes |
| class A @6 |
| reference: <testLibraryFragment>::@class::A |
| enclosingElement3: <testLibraryFragment> |
| class C @45 |
| reference: <testLibraryFragment>::@class::C |
| enclosingElement3: <testLibraryFragment> |
| enums |
| enum E @55 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| interfaces |
| A |
| C |
| fields |
| static const enumConstant v @78 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| extensionTypes |
| B @26 |
| reference: <testLibraryFragment>::@extensionType::B |
| enclosingElement3: <testLibraryFragment> |
| representation: <testLibraryFragment>::@extensionType::B::@field::it |
| primaryConstructor: <testLibraryFragment>::@extensionType::B::@constructor::new |
| typeErasure: int |
| fields |
| final it @32 |
| reference: <testLibraryFragment>::@extensionType::B::@field::it |
| enclosingElement3: <testLibraryFragment>::@extensionType::B |
| type: int |
| accessors |
| synthetic get it @-1 |
| reference: <testLibraryFragment>::@extensionType::B::@getter::it |
| enclosingElement3: <testLibraryFragment>::@extensionType::B |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| classes |
| class A @6 |
| reference: <testLibraryFragment>::@class::A |
| element: <testLibrary>::@class::A |
| class C @45 |
| reference: <testLibraryFragment>::@class::C |
| element: <testLibrary>::@class::C |
| enums |
| enum E @55 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @78 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| extensionTypes |
| extension type B @26 |
| reference: <testLibraryFragment>::@extensionType::B |
| element: <testLibrary>::@extensionType::B |
| fields |
| it @32 |
| reference: <testLibraryFragment>::@extensionType::B::@field::it |
| element: <testLibraryFragment>::@extensionType::B::@field::it#element |
| getter2: <testLibraryFragment>::@extensionType::B::@getter::it |
| getters |
| synthetic get it |
| reference: <testLibraryFragment>::@extensionType::B::@getter::it |
| element: <testLibraryFragment>::@extensionType::B::@getter::it#element |
| classes |
| class A |
| reference: <testLibrary>::@class::A |
| firstFragment: <testLibraryFragment>::@class::A |
| class C |
| reference: <testLibrary>::@class::C |
| firstFragment: <testLibraryFragment>::@class::C |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| interfaces |
| A |
| C |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| extensionTypes |
| extension type B |
| reference: <testLibrary>::@extensionType::B |
| firstFragment: <testLibraryFragment>::@extensionType::B |
| representation: <testLibraryFragment>::@extensionType::B::@field::it#element |
| primaryConstructor: <testLibraryFragment>::@extensionType::B::@constructor::new#element |
| typeErasure: int |
| fields |
| final it |
| firstFragment: <testLibraryFragment>::@extensionType::B::@field::it |
| type: int |
| getter: <testLibraryFragment>::@extensionType::B::@getter::it#element |
| getters |
| synthetic get it |
| firstFragment: <testLibraryFragment>::@extensionType::B::@getter::it |
| '''); |
| } |
| |
| test_enum_interfaces_generic() async { |
| var library = await buildLibrary(r''' |
| class I<T> {} |
| enum E<U> implements I<U> { |
| v; |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| classes |
| class I @6 |
| reference: <testLibraryFragment>::@class::I |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @8 |
| defaultType: dynamic |
| constructors |
| synthetic @-1 |
| reference: <testLibraryFragment>::@class::I::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::I |
| enums |
| enum E @19 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant U @21 |
| defaultType: dynamic |
| supertype: Enum |
| interfaces |
| I<U> |
| fields |
| static const enumConstant v @44 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E<dynamic> |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E<dynamic> |
| staticElement: ConstructorMember |
| base: <testLibraryFragment>::@enum::E::@constructor::new |
| substitution: {U: dynamic} |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E<dynamic> |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E<dynamic> |
| rightBracket: ] @0 |
| staticType: List<E<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E<dynamic> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic>> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| classes |
| class I @6 |
| reference: <testLibraryFragment>::@class::I |
| element: <testLibrary>::@class::I |
| typeParameters |
| T @8 |
| element: <not-implemented> |
| constructors |
| synthetic new |
| reference: <testLibraryFragment>::@class::I::@constructor::new |
| element: <testLibraryFragment>::@class::I::@constructor::new#element |
| typeName: I |
| enums |
| enum E @19 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| U @21 |
| element: <not-implemented> |
| fields |
| hasInitializer v @44 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| classes |
| class I |
| reference: <testLibrary>::@class::I |
| firstFragment: <testLibraryFragment>::@class::I |
| typeParameters |
| T |
| constructors |
| synthetic new |
| firstFragment: <testLibraryFragment>::@class::I::@constructor::new |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| U |
| supertype: Enum |
| interfaces |
| I<U> |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E<dynamic> |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_interfaces_unresolved() async { |
| var library = await buildLibrary(''' |
| class X {} |
| class Z {} |
| enum E implements X, Y, Z { |
| v |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| classes |
| class X @6 |
| reference: <testLibraryFragment>::@class::X |
| enclosingElement3: <testLibraryFragment> |
| constructors |
| synthetic @-1 |
| reference: <testLibraryFragment>::@class::X::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::X |
| class Z @17 |
| reference: <testLibraryFragment>::@class::Z |
| enclosingElement3: <testLibraryFragment> |
| constructors |
| synthetic @-1 |
| reference: <testLibraryFragment>::@class::Z::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::Z |
| enums |
| enum E @27 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| interfaces |
| X |
| Z |
| fields |
| static const enumConstant v @52 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| classes |
| class X @6 |
| reference: <testLibraryFragment>::@class::X |
| element: <testLibrary>::@class::X |
| constructors |
| synthetic new |
| reference: <testLibraryFragment>::@class::X::@constructor::new |
| element: <testLibraryFragment>::@class::X::@constructor::new#element |
| typeName: X |
| class Z @17 |
| reference: <testLibraryFragment>::@class::Z |
| element: <testLibrary>::@class::Z |
| constructors |
| synthetic new |
| reference: <testLibraryFragment>::@class::Z::@constructor::new |
| element: <testLibraryFragment>::@class::Z::@constructor::new#element |
| typeName: Z |
| enums |
| enum E @27 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @52 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| classes |
| class X |
| reference: <testLibrary>::@class::X |
| firstFragment: <testLibraryFragment>::@class::X |
| constructors |
| synthetic new |
| firstFragment: <testLibraryFragment>::@class::X::@constructor::new |
| class Z |
| reference: <testLibrary>::@class::Z |
| firstFragment: <testLibraryFragment>::@class::Z |
| constructors |
| synthetic new |
| firstFragment: <testLibraryFragment>::@class::Z::@constructor::new |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| interfaces |
| X |
| Z |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_method() async { |
| var library = await buildLibrary(r''' |
| enum E<T> { |
| v; |
| int foo<U>(T t, U u) => 0; |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @7 |
| defaultType: dynamic |
| supertype: Enum |
| fields |
| static const enumConstant v @14 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E<dynamic> |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E<dynamic> |
| staticElement: ConstructorMember |
| base: <testLibraryFragment>::@enum::E::@constructor::new |
| substitution: {T: dynamic} |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E<dynamic> |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E<dynamic> |
| rightBracket: ] @0 |
| staticType: List<E<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E<dynamic> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic>> |
| methods |
| foo @23 |
| reference: <testLibraryFragment>::@enum::E::@method::foo |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| typeParameters |
| covariant U @27 |
| defaultType: dynamic |
| parameters |
| requiredPositional t @32 |
| type: T |
| requiredPositional u @37 |
| type: U |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @7 |
| element: <not-implemented> |
| fields |
| hasInitializer v @14 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| methods |
| foo @23 |
| reference: <testLibraryFragment>::@enum::E::@method::foo |
| element: <testLibraryFragment>::@enum::E::@method::foo#element |
| typeParameters |
| U @27 |
| element: <not-implemented> |
| formalParameters |
| t @32 |
| element: <testLibraryFragment>::@enum::E::@method::foo::@parameter::t#element |
| u @37 |
| element: <testLibraryFragment>::@enum::E::@method::foo::@parameter::u#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E<dynamic> |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| methods |
| foo |
| reference: <testLibrary>::@enum::E::@method::foo |
| firstFragment: <testLibraryFragment>::@enum::E::@method::foo |
| typeParameters |
| U |
| formalParameters |
| requiredPositional t |
| type: T |
| requiredPositional u |
| type: U |
| '''); |
| } |
| |
| test_enum_method_toString() async { |
| var library = await buildLibrary(r''' |
| enum E { |
| v; |
| String toString() => 'E'; |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| methods |
| toString @23 |
| reference: <testLibraryFragment>::@enum::E::@method::toString |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: String |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @11 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| methods |
| toString @23 |
| reference: <testLibraryFragment>::@enum::E::@method::toString |
| element: <testLibraryFragment>::@enum::E::@method::toString#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| methods |
| toString |
| reference: <testLibrary>::@enum::E::@method::toString |
| firstFragment: <testLibraryFragment>::@enum::E::@method::toString |
| '''); |
| } |
| |
| test_enum_missingName() async { |
| var library = await buildLibrary(r''' |
| enum {v} |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum @5 |
| reference: <testLibraryFragment>::@enum::0 |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @6 |
| reference: <testLibraryFragment>::@enum::0::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::0 |
| type: |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: <empty> @-1 <synthetic> |
| element: <testLibraryFragment>::@enum::0 |
| element2: <testLibrary>::@enum::0 |
| type: |
| staticElement: <testLibraryFragment>::@enum::0::@constructor::new |
| element: <testLibraryFragment>::@enum::0::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::0::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::0 |
| type: List<> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::0::@getter::v |
| element: <testLibraryFragment>::@enum::0::@getter::v#element |
| staticType: |
| rightBracket: ] @0 |
| staticType: List<> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::0::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::0 |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::0::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::0 |
| returnType: |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::0::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::0 |
| returnType: List<> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum <null-name> |
| reference: <testLibraryFragment>::@enum::0 |
| element: <testLibrary>::@enum::0 |
| fields |
| hasInitializer v @6 |
| reference: <testLibraryFragment>::@enum::0::@field::v |
| element: <testLibraryFragment>::@enum::0::@field::v#element |
| getter2: <testLibraryFragment>::@enum::0::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::0::@field::values |
| element: <testLibraryFragment>::@enum::0::@field::values#element |
| getter2: <testLibraryFragment>::@enum::0::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::0::@constructor::new |
| element: <testLibraryFragment>::@enum::0::@constructor::new#element |
| typeName: null |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::0::@getter::v |
| element: <testLibraryFragment>::@enum::0::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::0::@getter::values |
| element: <testLibraryFragment>::@enum::0::@getter::values#element |
| enums |
| enum |
| reference: <testLibrary>::@enum::0 |
| firstFragment: <testLibraryFragment>::@enum::0 |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::0::@field::v |
| type: |
| getter: <testLibraryFragment>::@enum::0::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::0::@field::values |
| type: List<> |
| getter: <testLibraryFragment>::@enum::0::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::0::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::0::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::0::@getter::values |
| '''); |
| } |
| |
| test_enum_mixins() async { |
| var library = await buildLibrary(r''' |
| mixin M {} |
| enum E with M { |
| v; |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @16 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| mixins |
| M |
| fields |
| static const enumConstant v @29 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| mixins |
| mixin M @6 |
| reference: <testLibraryFragment>::@mixin::M |
| enclosingElement3: <testLibraryFragment> |
| superclassConstraints |
| Object |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @16 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @29 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| mixins |
| mixin M @6 |
| reference: <testLibraryFragment>::@mixin::M |
| element: <testLibrary>::@mixin::M |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| mixins |
| M |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| mixins |
| mixin M |
| reference: <testLibrary>::@mixin::M |
| firstFragment: <testLibraryFragment>::@mixin::M |
| superclassConstraints |
| Object |
| '''); |
| } |
| |
| test_enum_mixins_extensionType() async { |
| var library = await buildLibrary(r''' |
| class A {} |
| extension type B(int it) {} |
| class C {} |
| enum E with A, B, C { v } |
| '''); |
| configuration |
| ..withConstructors = false |
| ..withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| classes |
| class A @6 |
| reference: <testLibraryFragment>::@class::A |
| enclosingElement3: <testLibraryFragment> |
| class C @45 |
| reference: <testLibraryFragment>::@class::C |
| enclosingElement3: <testLibraryFragment> |
| enums |
| enum E @55 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| mixins |
| A |
| C |
| fields |
| static const enumConstant v @72 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| extensionTypes |
| B @26 |
| reference: <testLibraryFragment>::@extensionType::B |
| enclosingElement3: <testLibraryFragment> |
| representation: <testLibraryFragment>::@extensionType::B::@field::it |
| primaryConstructor: <testLibraryFragment>::@extensionType::B::@constructor::new |
| typeErasure: int |
| fields |
| final it @32 |
| reference: <testLibraryFragment>::@extensionType::B::@field::it |
| enclosingElement3: <testLibraryFragment>::@extensionType::B |
| type: int |
| accessors |
| synthetic get it @-1 |
| reference: <testLibraryFragment>::@extensionType::B::@getter::it |
| enclosingElement3: <testLibraryFragment>::@extensionType::B |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| classes |
| class A @6 |
| reference: <testLibraryFragment>::@class::A |
| element: <testLibrary>::@class::A |
| class C @45 |
| reference: <testLibraryFragment>::@class::C |
| element: <testLibrary>::@class::C |
| enums |
| enum E @55 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @72 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| extensionTypes |
| extension type B @26 |
| reference: <testLibraryFragment>::@extensionType::B |
| element: <testLibrary>::@extensionType::B |
| fields |
| it @32 |
| reference: <testLibraryFragment>::@extensionType::B::@field::it |
| element: <testLibraryFragment>::@extensionType::B::@field::it#element |
| getter2: <testLibraryFragment>::@extensionType::B::@getter::it |
| getters |
| synthetic get it |
| reference: <testLibraryFragment>::@extensionType::B::@getter::it |
| element: <testLibraryFragment>::@extensionType::B::@getter::it#element |
| classes |
| class A |
| reference: <testLibrary>::@class::A |
| firstFragment: <testLibraryFragment>::@class::A |
| class C |
| reference: <testLibrary>::@class::C |
| firstFragment: <testLibraryFragment>::@class::C |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| mixins |
| A |
| C |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| extensionTypes |
| extension type B |
| reference: <testLibrary>::@extensionType::B |
| firstFragment: <testLibraryFragment>::@extensionType::B |
| representation: <testLibraryFragment>::@extensionType::B::@field::it#element |
| primaryConstructor: <testLibraryFragment>::@extensionType::B::@constructor::new#element |
| typeErasure: int |
| fields |
| final it |
| firstFragment: <testLibraryFragment>::@extensionType::B::@field::it |
| type: int |
| getter: <testLibraryFragment>::@extensionType::B::@getter::it#element |
| getters |
| synthetic get it |
| firstFragment: <testLibraryFragment>::@extensionType::B::@getter::it |
| '''); |
| } |
| |
| test_enum_mixins_inference() async { |
| var library = await buildLibrary(r''' |
| mixin M1<T> {} |
| mixin M2<T> on M1<T> {} |
| enum E with M1<int>, M2 { |
| v; |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @44 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| mixins |
| M1<int> |
| M2<int> |
| fields |
| static const enumConstant v @67 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| mixins |
| mixin M1 @6 |
| reference: <testLibraryFragment>::@mixin::M1 |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @9 |
| defaultType: dynamic |
| superclassConstraints |
| Object |
| mixin M2 @21 |
| reference: <testLibraryFragment>::@mixin::M2 |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @24 |
| defaultType: dynamic |
| superclassConstraints |
| M1<T> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @44 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @67 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| mixins |
| mixin M1 @6 |
| reference: <testLibraryFragment>::@mixin::M1 |
| element: <testLibrary>::@mixin::M1 |
| typeParameters |
| T @9 |
| element: <not-implemented> |
| mixin M2 @21 |
| reference: <testLibraryFragment>::@mixin::M2 |
| element: <testLibrary>::@mixin::M2 |
| typeParameters |
| T @24 |
| element: <not-implemented> |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| mixins |
| M1<int> |
| M2<int> |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| mixins |
| mixin M1 |
| reference: <testLibrary>::@mixin::M1 |
| firstFragment: <testLibraryFragment>::@mixin::M1 |
| typeParameters |
| T |
| superclassConstraints |
| Object |
| mixin M2 |
| reference: <testLibrary>::@mixin::M2 |
| firstFragment: <testLibraryFragment>::@mixin::M2 |
| typeParameters |
| T |
| superclassConstraints |
| M1<T> |
| '''); |
| } |
| |
| test_enum_setter() async { |
| var library = await buildLibrary(r''' |
| enum E{ |
| v; |
| set foo(int _) {} |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @10 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| synthetic foo @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: int |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| set foo= @19 |
| reference: <testLibraryFragment>::@enum::E::@setter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| parameters |
| requiredPositional _ @27 |
| type: int |
| returnType: void |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @10 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| synthetic foo |
| reference: <testLibraryFragment>::@enum::E::@field::foo |
| element: <testLibraryFragment>::@enum::E::@field::foo#element |
| setter2: <testLibraryFragment>::@enum::E::@setter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| setters |
| set foo @19 |
| reference: <testLibraryFragment>::@enum::E::@setter::foo |
| element: <testLibraryFragment>::@enum::E::@setter::foo#element |
| formalParameters |
| _ @27 |
| element: <testLibraryFragment>::@enum::E::@setter::foo::@parameter::_#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| synthetic foo |
| firstFragment: <testLibraryFragment>::@enum::E::@field::foo |
| type: int |
| setter: <testLibraryFragment>::@enum::E::@setter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| setters |
| set foo |
| firstFragment: <testLibraryFragment>::@enum::E::@setter::foo |
| formalParameters |
| requiredPositional _ |
| type: int |
| '''); |
| } |
| |
| test_enum_typeParameters() async { |
| var library = await buildLibrary(''' |
| enum E<T> { |
| v |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @7 |
| defaultType: dynamic |
| supertype: Enum |
| fields |
| static const enumConstant v @14 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E<dynamic> |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E<dynamic> |
| staticElement: ConstructorMember |
| base: <testLibraryFragment>::@enum::E::@constructor::new |
| substitution: {T: dynamic} |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E<dynamic> |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E<dynamic> |
| rightBracket: ] @0 |
| staticType: List<E<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E<dynamic> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic>> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @7 |
| element: <not-implemented> |
| fields |
| hasInitializer v @14 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E<dynamic> |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_typeParameters_bound() async { |
| var library = await buildLibrary(''' |
| enum E<T extends num, U extends T> { |
| v |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| notSimplyBounded enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @7 |
| bound: num |
| defaultType: num |
| covariant U @22 |
| bound: T |
| defaultType: num |
| supertype: Enum |
| fields |
| static const enumConstant v @39 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E<num, num> |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E<num, num> |
| staticElement: ConstructorMember |
| base: <testLibraryFragment>::@enum::E::@constructor::new |
| substitution: {T: num, U: num} |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E<num, num> |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<num, num>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E<num, num> |
| rightBracket: ] @0 |
| staticType: List<E<num, num>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E<num, num> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<num, num>> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @7 |
| element: <not-implemented> |
| U @22 |
| element: <not-implemented> |
| fields |
| hasInitializer v @39 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| bound: num |
| U |
| bound: T |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E<num, num> |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<num, num>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_typeParameters_cycle_1of1() async { |
| var library = await buildLibrary(''' |
| enum E<T extends T> {} |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| notSimplyBounded enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @7 |
| bound: dynamic |
| defaultType: dynamic |
| supertype: Enum |
| fields |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| rightBracket: ] @0 |
| staticType: List<E<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic>> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @7 |
| element: <not-implemented> |
| fields |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| bound: dynamic |
| supertype: Enum |
| fields |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_typeParameters_cycle_2of3() async { |
| var library = await buildLibrary(r''' |
| enum E<T extends V, U extends num, V extends T> {} |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| notSimplyBounded enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @7 |
| bound: dynamic |
| defaultType: dynamic |
| covariant U @20 |
| bound: num |
| defaultType: num |
| covariant V @35 |
| bound: dynamic |
| defaultType: dynamic |
| supertype: Enum |
| fields |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic, num, dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| rightBracket: ] @0 |
| staticType: List<E<dynamic, num, dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic, num, dynamic>> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @7 |
| element: <not-implemented> |
| U @20 |
| element: <not-implemented> |
| V @35 |
| element: <not-implemented> |
| fields |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| bound: dynamic |
| U |
| bound: num |
| V |
| bound: dynamic |
| supertype: Enum |
| fields |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic, num, dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_typeParameters_defaultType_cycle_genericFunctionType() async { |
| var library = await buildLibrary(r''' |
| enum E<T extends void Function(E)> {} |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| notSimplyBounded enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @7 |
| bound: void Function(E<dynamic>) |
| defaultType: dynamic |
| supertype: Enum |
| fields |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| rightBracket: ] @0 |
| staticType: List<E<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic>> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @7 |
| element: <not-implemented> |
| fields |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| bound: void Function(E<dynamic>) |
| supertype: Enum |
| fields |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_typeParameters_variance_contravariant() async { |
| var library = await buildLibrary(''' |
| enum E<in T> {} |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| contravariant T @10 |
| defaultType: dynamic |
| supertype: Enum |
| fields |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| rightBracket: ] @0 |
| staticType: List<E<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic>> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @10 |
| element: <not-implemented> |
| fields |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| supertype: Enum |
| fields |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_typeParameters_variance_covariant() async { |
| var library = await buildLibrary(''' |
| enum E<out T> {} |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @11 |
| defaultType: dynamic |
| supertype: Enum |
| fields |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| rightBracket: ] @0 |
| staticType: List<E<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic>> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @11 |
| element: <not-implemented> |
| fields |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| supertype: Enum |
| fields |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_typeParameters_variance_invariant() async { |
| var library = await buildLibrary(''' |
| enum E<inout T> {} |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| invariant T @13 |
| defaultType: dynamic |
| supertype: Enum |
| fields |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| rightBracket: ] @0 |
| staticType: List<E<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic>> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @13 |
| element: <not-implemented> |
| fields |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| supertype: Enum |
| fields |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_typeParameters_variance_multiple() async { |
| var library = await buildLibrary(''' |
| enum E<inout T, in U, out V> {} |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| invariant T @13 |
| defaultType: dynamic |
| contravariant U @19 |
| defaultType: dynamic |
| covariant V @26 |
| defaultType: dynamic |
| supertype: Enum |
| fields |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic, dynamic, dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| rightBracket: ] @0 |
| staticType: List<E<dynamic, dynamic, dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic, dynamic, dynamic>> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @13 |
| element: <not-implemented> |
| U @19 |
| element: <not-implemented> |
| V @26 |
| element: <not-implemented> |
| fields |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| U |
| V |
| supertype: Enum |
| fields |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic, dynamic, dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_value_documented() async { |
| var library = await buildLibrary(''' |
| enum E { |
| /** |
| * aaa |
| */ |
| a, |
| /// bbb |
| b |
| }'''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant a @32 |
| reference: <testLibraryFragment>::@enum::E::@field::a |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| documentationComment: /**\n * aaa\n */ |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| static const enumConstant b @47 |
| reference: <testLibraryFragment>::@enum::E::@field::b |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| documentationComment: /// bbb |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: a @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::a |
| element: <testLibraryFragment>::@enum::E::@getter::a#element |
| staticType: E |
| SimpleIdentifier |
| token: b @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::b |
| element: <testLibraryFragment>::@enum::E::@getter::b#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get a @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::a |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get b @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::b |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer a @32 |
| reference: <testLibraryFragment>::@enum::E::@field::a |
| element: <testLibraryFragment>::@enum::E::@field::a#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::a |
| hasInitializer b @47 |
| reference: <testLibraryFragment>::@enum::E::@field::b |
| element: <testLibraryFragment>::@enum::E::@field::b#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::b |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get a |
| reference: <testLibraryFragment>::@enum::E::@getter::a |
| element: <testLibraryFragment>::@enum::E::@getter::a#element |
| synthetic get b |
| reference: <testLibraryFragment>::@enum::E::@getter::b |
| element: <testLibraryFragment>::@enum::E::@getter::b#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer a |
| firstFragment: <testLibraryFragment>::@enum::E::@field::a |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::a#element |
| static const enumConstant hasInitializer b |
| firstFragment: <testLibraryFragment>::@enum::E::@field::b |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::b#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get a |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::a |
| synthetic static get b |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::b |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_value_documented_withMetadata() async { |
| var library = await buildLibrary(''' |
| enum E { |
| /** |
| * aaa |
| */ |
| @annotation |
| a, |
| /// bbb |
| @annotation |
| b, |
| } |
| |
| const int annotation = 0; |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant a @46 |
| reference: <testLibraryFragment>::@enum::E::@field::a |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| documentationComment: /**\n * aaa\n */ |
| metadata |
| Annotation |
| atSign: @ @32 |
| name: SimpleIdentifier |
| token: annotation @33 |
| staticElement: <testLibraryFragment>::@getter::annotation |
| element: <testLibraryFragment>::@getter::annotation#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::annotation |
| element2: <testLibraryFragment>::@getter::annotation#element |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| static const enumConstant b @75 |
| reference: <testLibraryFragment>::@enum::E::@field::b |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| documentationComment: /// bbb |
| metadata |
| Annotation |
| atSign: @ @61 |
| name: SimpleIdentifier |
| token: annotation @62 |
| staticElement: <testLibraryFragment>::@getter::annotation |
| element: <testLibraryFragment>::@getter::annotation#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::annotation |
| element2: <testLibraryFragment>::@getter::annotation#element |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: a @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::a |
| element: <testLibraryFragment>::@enum::E::@getter::a#element |
| staticType: E |
| SimpleIdentifier |
| token: b @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::b |
| element: <testLibraryFragment>::@enum::E::@getter::b#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get a @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::a |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get b @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::b |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| topLevelVariables |
| static const annotation @91 |
| reference: <testLibraryFragment>::@topLevelVariable::annotation |
| enclosingElement3: <testLibraryFragment> |
| type: int |
| shouldUseTypeForInitializerInference: true |
| constantInitializer |
| IntegerLiteral |
| literal: 0 @104 |
| staticType: int |
| accessors |
| synthetic static get annotation @-1 |
| reference: <testLibraryFragment>::@getter::annotation |
| enclosingElement3: <testLibraryFragment> |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer a @46 |
| reference: <testLibraryFragment>::@enum::E::@field::a |
| element: <testLibraryFragment>::@enum::E::@field::a#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::a |
| hasInitializer b @75 |
| reference: <testLibraryFragment>::@enum::E::@field::b |
| element: <testLibraryFragment>::@enum::E::@field::b#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::b |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get a |
| reference: <testLibraryFragment>::@enum::E::@getter::a |
| element: <testLibraryFragment>::@enum::E::@getter::a#element |
| synthetic get b |
| reference: <testLibraryFragment>::@enum::E::@getter::b |
| element: <testLibraryFragment>::@enum::E::@getter::b#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| topLevelVariables |
| hasInitializer annotation @91 |
| reference: <testLibraryFragment>::@topLevelVariable::annotation |
| element: <testLibrary>::@topLevelVariable::annotation |
| getter2: <testLibraryFragment>::@getter::annotation |
| getters |
| synthetic get annotation |
| reference: <testLibraryFragment>::@getter::annotation |
| element: <testLibraryFragment>::@getter::annotation#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer a |
| firstFragment: <testLibraryFragment>::@enum::E::@field::a |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::a#element |
| static const enumConstant hasInitializer b |
| firstFragment: <testLibraryFragment>::@enum::E::@field::b |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::b#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get a |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::a |
| synthetic static get b |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::b |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| topLevelVariables |
| const hasInitializer annotation |
| reference: <testLibrary>::@topLevelVariable::annotation |
| firstFragment: <testLibraryFragment>::@topLevelVariable::annotation |
| type: int |
| getter: <testLibraryFragment>::@getter::annotation#element |
| getters |
| synthetic static get annotation |
| firstFragment: <testLibraryFragment>::@getter::annotation |
| '''); |
| } |
| |
| test_enum_value_missingName() async { |
| var library = await buildLibrary(r''' |
| enum E {v,,} |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @8 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| static const enumConstant @10 |
| reference: <testLibraryFragment>::@enum::E::@field::0 |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| SimpleIdentifier |
| token: <empty> @-1 <synthetic> |
| staticElement: <null> |
| element: <null> |
| staticType: InvalidType |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::0 |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @8 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| hasInitializer <null-name> |
| reference: <testLibraryFragment>::@enum::E::@field::0 |
| element: <testLibraryFragment>::@enum::E::@field::0#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::0 |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get <null-name> |
| reference: <testLibraryFragment>::@enum::E::@getter::0 |
| element: <testLibraryFragment>::@enum::E::@getter::0#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| static const enumConstant hasInitializer <null-name> |
| firstFragment: <testLibraryFragment>::@enum::E::@field::0 |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::0#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get <null-name> |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::0 |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enum_values() async { |
| var library = await buildLibrary('enum E { v1, v2 }'); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v1 @9 |
| reference: <testLibraryFragment>::@enum::E::@field::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| static const enumConstant v2 @13 |
| reference: <testLibraryFragment>::@enum::E::@field::v2 |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v1 @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v1 |
| element: <testLibraryFragment>::@enum::E::@getter::v1#element |
| staticType: E |
| SimpleIdentifier |
| token: v2 @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v2 |
| element: <testLibraryFragment>::@enum::E::@getter::v2#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v1 @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get v2 @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v2 |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v1 @9 |
| reference: <testLibraryFragment>::@enum::E::@field::v1 |
| element: <testLibraryFragment>::@enum::E::@field::v1#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v1 |
| hasInitializer v2 @13 |
| reference: <testLibraryFragment>::@enum::E::@field::v2 |
| element: <testLibraryFragment>::@enum::E::@field::v2#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v2 |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v1 |
| element: <testLibraryFragment>::@enum::E::@getter::v1#element |
| synthetic get v2 |
| reference: <testLibraryFragment>::@enum::E::@getter::v2 |
| element: <testLibraryFragment>::@enum::E::@getter::v2#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v1 |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v1 |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v1#element |
| static const enumConstant hasInitializer v2 |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v2 |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v2#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v1 |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v1 |
| synthetic static get v2 |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v2 |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_enums() async { |
| var library = await buildLibrary('enum E1 { v1 } enum E2 { v2 }'); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E1 @5 |
| reference: <testLibraryFragment>::@enum::E1 |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v1 @10 |
| reference: <testLibraryFragment>::@enum::E1::@field::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::E1 |
| type: E1 |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E1 @-1 |
| element: <testLibraryFragment>::@enum::E1 |
| element2: <testLibrary>::@enum::E1 |
| type: E1 |
| staticElement: <testLibraryFragment>::@enum::E1::@constructor::new |
| element: <testLibraryFragment>::@enum::E1::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E1 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E1::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E1 |
| type: List<E1> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v1 @-1 |
| staticElement: <testLibraryFragment>::@enum::E1::@getter::v1 |
| element: <testLibraryFragment>::@enum::E1::@getter::v1#element |
| staticType: E1 |
| rightBracket: ] @0 |
| staticType: List<E1> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E1::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E1 |
| accessors |
| synthetic static get v1 @-1 |
| reference: <testLibraryFragment>::@enum::E1::@getter::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::E1 |
| returnType: E1 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E1::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E1 |
| returnType: List<E1> |
| enum E2 @20 |
| reference: <testLibraryFragment>::@enum::E2 |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v2 @25 |
| reference: <testLibraryFragment>::@enum::E2::@field::v2 |
| enclosingElement3: <testLibraryFragment>::@enum::E2 |
| type: E2 |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E2 @-1 |
| element: <testLibraryFragment>::@enum::E2 |
| element2: <testLibrary>::@enum::E2 |
| type: E2 |
| staticElement: <testLibraryFragment>::@enum::E2::@constructor::new |
| element: <testLibraryFragment>::@enum::E2::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E2 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E2::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E2 |
| type: List<E2> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v2 @-1 |
| staticElement: <testLibraryFragment>::@enum::E2::@getter::v2 |
| element: <testLibraryFragment>::@enum::E2::@getter::v2#element |
| staticType: E2 |
| rightBracket: ] @0 |
| staticType: List<E2> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E2::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E2 |
| accessors |
| synthetic static get v2 @-1 |
| reference: <testLibraryFragment>::@enum::E2::@getter::v2 |
| enclosingElement3: <testLibraryFragment>::@enum::E2 |
| returnType: E2 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E2::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E2 |
| returnType: List<E2> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E1 @5 |
| reference: <testLibraryFragment>::@enum::E1 |
| element: <testLibrary>::@enum::E1 |
| fields |
| hasInitializer v1 @10 |
| reference: <testLibraryFragment>::@enum::E1::@field::v1 |
| element: <testLibraryFragment>::@enum::E1::@field::v1#element |
| getter2: <testLibraryFragment>::@enum::E1::@getter::v1 |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E1::@field::values |
| element: <testLibraryFragment>::@enum::E1::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E1::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E1::@constructor::new |
| element: <testLibraryFragment>::@enum::E1::@constructor::new#element |
| typeName: E1 |
| getters |
| synthetic get v1 |
| reference: <testLibraryFragment>::@enum::E1::@getter::v1 |
| element: <testLibraryFragment>::@enum::E1::@getter::v1#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E1::@getter::values |
| element: <testLibraryFragment>::@enum::E1::@getter::values#element |
| enum E2 @20 |
| reference: <testLibraryFragment>::@enum::E2 |
| element: <testLibrary>::@enum::E2 |
| fields |
| hasInitializer v2 @25 |
| reference: <testLibraryFragment>::@enum::E2::@field::v2 |
| element: <testLibraryFragment>::@enum::E2::@field::v2#element |
| getter2: <testLibraryFragment>::@enum::E2::@getter::v2 |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E2::@field::values |
| element: <testLibraryFragment>::@enum::E2::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E2::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E2::@constructor::new |
| element: <testLibraryFragment>::@enum::E2::@constructor::new#element |
| typeName: E2 |
| getters |
| synthetic get v2 |
| reference: <testLibraryFragment>::@enum::E2::@getter::v2 |
| element: <testLibraryFragment>::@enum::E2::@getter::v2#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E2::@getter::values |
| element: <testLibraryFragment>::@enum::E2::@getter::values#element |
| enums |
| enum E1 |
| reference: <testLibrary>::@enum::E1 |
| firstFragment: <testLibraryFragment>::@enum::E1 |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v1 |
| firstFragment: <testLibraryFragment>::@enum::E1::@field::v1 |
| type: E1 |
| getter: <testLibraryFragment>::@enum::E1::@getter::v1#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E1::@field::values |
| type: List<E1> |
| getter: <testLibraryFragment>::@enum::E1::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E1::@constructor::new |
| getters |
| synthetic static get v1 |
| firstFragment: <testLibraryFragment>::@enum::E1::@getter::v1 |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E1::@getter::values |
| enum E2 |
| reference: <testLibrary>::@enum::E2 |
| firstFragment: <testLibraryFragment>::@enum::E2 |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v2 |
| firstFragment: <testLibraryFragment>::@enum::E2::@field::v2 |
| type: E2 |
| getter: <testLibraryFragment>::@enum::E2::@getter::v2#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E2::@field::values |
| type: List<E2> |
| getter: <testLibraryFragment>::@enum::E2::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E2::@constructor::new |
| getters |
| synthetic static get v2 |
| firstFragment: <testLibraryFragment>::@enum::E2::@getter::v2 |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E2::@getter::values |
| '''); |
| } |
| |
| test_error_extendsEnum() async { |
| var library = await buildLibrary(''' |
| enum E {a, b, c} |
| |
| class M {} |
| |
| class A extends E { |
| foo() {} |
| } |
| |
| class B implements E, M { |
| foo() {} |
| } |
| |
| class C extends Object with E, M { |
| foo() {} |
| } |
| |
| class D = Object with M, E; |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| classes |
| class M @24 |
| reference: <testLibraryFragment>::@class::M |
| enclosingElement3: <testLibraryFragment> |
| constructors |
| synthetic @-1 |
| reference: <testLibraryFragment>::@class::M::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::M |
| class A @36 |
| reference: <testLibraryFragment>::@class::A |
| enclosingElement3: <testLibraryFragment> |
| constructors |
| synthetic @-1 |
| reference: <testLibraryFragment>::@class::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::A |
| methods |
| foo @52 |
| reference: <testLibraryFragment>::@class::A::@method::foo |
| enclosingElement3: <testLibraryFragment>::@class::A |
| returnType: dynamic |
| class B @70 |
| reference: <testLibraryFragment>::@class::B |
| enclosingElement3: <testLibraryFragment> |
| interfaces |
| M |
| constructors |
| synthetic @-1 |
| reference: <testLibraryFragment>::@class::B::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::B |
| methods |
| foo @92 |
| reference: <testLibraryFragment>::@class::B::@method::foo |
| enclosingElement3: <testLibraryFragment>::@class::B |
| returnType: dynamic |
| class C @110 |
| reference: <testLibraryFragment>::@class::C |
| enclosingElement3: <testLibraryFragment> |
| supertype: Object |
| mixins |
| M |
| constructors |
| synthetic @-1 |
| reference: <testLibraryFragment>::@class::C::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::C |
| methods |
| foo @141 |
| reference: <testLibraryFragment>::@class::C::@method::foo |
| enclosingElement3: <testLibraryFragment>::@class::C |
| returnType: dynamic |
| class alias D @159 |
| reference: <testLibraryFragment>::@class::D |
| enclosingElement3: <testLibraryFragment> |
| supertype: Object |
| mixins |
| M |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@class::D::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::D |
| constantInitializers |
| SuperConstructorInvocation |
| superKeyword: super @0 |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticElement: dart:core::<fragment>::@class::Object::@constructor::new |
| element: dart:core::<fragment>::@class::Object::@constructor::new#element |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant a @8 |
| reference: <testLibraryFragment>::@enum::E::@field::a |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| static const enumConstant b @11 |
| reference: <testLibraryFragment>::@enum::E::@field::b |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| static const enumConstant c @14 |
| reference: <testLibraryFragment>::@enum::E::@field::c |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: a @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::a |
| element: <testLibraryFragment>::@enum::E::@getter::a#element |
| staticType: E |
| SimpleIdentifier |
| token: b @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::b |
| element: <testLibraryFragment>::@enum::E::@getter::b#element |
| staticType: E |
| SimpleIdentifier |
| token: c @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::c |
| element: <testLibraryFragment>::@enum::E::@getter::c#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get a @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::a |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get b @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::b |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get c @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::c |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| classes |
| class M @24 |
| reference: <testLibraryFragment>::@class::M |
| element: <testLibrary>::@class::M |
| constructors |
| synthetic new |
| reference: <testLibraryFragment>::@class::M::@constructor::new |
| element: <testLibraryFragment>::@class::M::@constructor::new#element |
| typeName: M |
| class A @36 |
| reference: <testLibraryFragment>::@class::A |
| element: <testLibrary>::@class::A |
| constructors |
| synthetic new |
| reference: <testLibraryFragment>::@class::A::@constructor::new |
| element: <testLibraryFragment>::@class::A::@constructor::new#element |
| typeName: A |
| methods |
| foo @52 |
| reference: <testLibraryFragment>::@class::A::@method::foo |
| element: <testLibraryFragment>::@class::A::@method::foo#element |
| class B @70 |
| reference: <testLibraryFragment>::@class::B |
| element: <testLibrary>::@class::B |
| constructors |
| synthetic new |
| reference: <testLibraryFragment>::@class::B::@constructor::new |
| element: <testLibraryFragment>::@class::B::@constructor::new#element |
| typeName: B |
| methods |
| foo @92 |
| reference: <testLibraryFragment>::@class::B::@method::foo |
| element: <testLibraryFragment>::@class::B::@method::foo#element |
| class C @110 |
| reference: <testLibraryFragment>::@class::C |
| element: <testLibrary>::@class::C |
| constructors |
| synthetic new |
| reference: <testLibraryFragment>::@class::C::@constructor::new |
| element: <testLibraryFragment>::@class::C::@constructor::new#element |
| typeName: C |
| methods |
| foo @141 |
| reference: <testLibraryFragment>::@class::C::@method::foo |
| element: <testLibraryFragment>::@class::C::@method::foo#element |
| class D @159 |
| reference: <testLibraryFragment>::@class::D |
| element: <testLibrary>::@class::D |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@class::D::@constructor::new |
| element: <testLibraryFragment>::@class::D::@constructor::new#element |
| typeName: D |
| constantInitializers |
| SuperConstructorInvocation |
| superKeyword: super @0 |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticElement: dart:core::<fragment>::@class::Object::@constructor::new |
| element: dart:core::<fragment>::@class::Object::@constructor::new#element |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer a @8 |
| reference: <testLibraryFragment>::@enum::E::@field::a |
| element: <testLibraryFragment>::@enum::E::@field::a#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::a |
| hasInitializer b @11 |
| reference: <testLibraryFragment>::@enum::E::@field::b |
| element: <testLibraryFragment>::@enum::E::@field::b#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::b |
| hasInitializer c @14 |
| reference: <testLibraryFragment>::@enum::E::@field::c |
| element: <testLibraryFragment>::@enum::E::@field::c#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::c |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get a |
| reference: <testLibraryFragment>::@enum::E::@getter::a |
| element: <testLibraryFragment>::@enum::E::@getter::a#element |
| synthetic get b |
| reference: <testLibraryFragment>::@enum::E::@getter::b |
| element: <testLibraryFragment>::@enum::E::@getter::b#element |
| synthetic get c |
| reference: <testLibraryFragment>::@enum::E::@getter::c |
| element: <testLibraryFragment>::@enum::E::@getter::c#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| classes |
| class M |
| reference: <testLibrary>::@class::M |
| firstFragment: <testLibraryFragment>::@class::M |
| constructors |
| synthetic new |
| firstFragment: <testLibraryFragment>::@class::M::@constructor::new |
| class A |
| reference: <testLibrary>::@class::A |
| firstFragment: <testLibraryFragment>::@class::A |
| constructors |
| synthetic new |
| firstFragment: <testLibraryFragment>::@class::A::@constructor::new |
| methods |
| foo |
| reference: <testLibrary>::@class::A::@method::foo |
| firstFragment: <testLibraryFragment>::@class::A::@method::foo |
| class B |
| reference: <testLibrary>::@class::B |
| firstFragment: <testLibraryFragment>::@class::B |
| interfaces |
| M |
| constructors |
| synthetic new |
| firstFragment: <testLibraryFragment>::@class::B::@constructor::new |
| methods |
| foo |
| reference: <testLibrary>::@class::B::@method::foo |
| firstFragment: <testLibraryFragment>::@class::B::@method::foo |
| class C |
| reference: <testLibrary>::@class::C |
| firstFragment: <testLibraryFragment>::@class::C |
| supertype: Object |
| mixins |
| M |
| constructors |
| synthetic new |
| firstFragment: <testLibraryFragment>::@class::C::@constructor::new |
| methods |
| foo |
| reference: <testLibrary>::@class::C::@method::foo |
| firstFragment: <testLibraryFragment>::@class::C::@method::foo |
| class alias D |
| reference: <testLibrary>::@class::D |
| firstFragment: <testLibraryFragment>::@class::D |
| supertype: Object |
| mixins |
| M |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@class::D::@constructor::new |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer a |
| firstFragment: <testLibraryFragment>::@enum::E::@field::a |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::a#element |
| static const enumConstant hasInitializer b |
| firstFragment: <testLibraryFragment>::@enum::E::@field::b |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::b#element |
| static const enumConstant hasInitializer c |
| firstFragment: <testLibraryFragment>::@enum::E::@field::c |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::c#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get a |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::a |
| synthetic static get b |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::b |
| synthetic static get c |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::c |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_metadata_enum_constant() async { |
| var library = await buildLibrary('const a = 42; enum E { @a v }'); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @19 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| metadata |
| Annotation |
| atSign: @ @23 |
| name: SimpleIdentifier |
| token: a @24 |
| staticElement: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::a |
| element2: <testLibraryFragment>::@getter::a#element |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| topLevelVariables |
| static const a @6 |
| reference: <testLibraryFragment>::@topLevelVariable::a |
| enclosingElement3: <testLibraryFragment> |
| type: int |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| IntegerLiteral |
| literal: 42 @10 |
| staticType: int |
| accessors |
| synthetic static get a @-1 |
| reference: <testLibraryFragment>::@getter::a |
| enclosingElement3: <testLibraryFragment> |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @19 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| topLevelVariables |
| hasInitializer a @6 |
| reference: <testLibraryFragment>::@topLevelVariable::a |
| element: <testLibrary>::@topLevelVariable::a |
| getter2: <testLibraryFragment>::@getter::a |
| getters |
| synthetic get a |
| reference: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| topLevelVariables |
| const hasInitializer a |
| reference: <testLibrary>::@topLevelVariable::a |
| firstFragment: <testLibraryFragment>::@topLevelVariable::a |
| type: int |
| getter: <testLibraryFragment>::@getter::a#element |
| getters |
| synthetic static get a |
| firstFragment: <testLibraryFragment>::@getter::a |
| '''); |
| } |
| |
| test_metadata_enum_constant_instanceCreation() async { |
| var library = await buildLibrary(''' |
| class A { |
| final dynamic value; |
| const A(this.value); |
| } |
| |
| enum E { |
| @A(100) a, |
| b, |
| @A(300) c, |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| classes |
| class A @6 |
| reference: <testLibraryFragment>::@class::A |
| enclosingElement3: <testLibraryFragment> |
| fields |
| final value @26 |
| reference: <testLibraryFragment>::@class::A::@field::value |
| enclosingElement3: <testLibraryFragment>::@class::A |
| type: dynamic |
| constructors |
| const @41 |
| reference: <testLibraryFragment>::@class::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::A |
| parameters |
| requiredPositional final this.value @48 |
| type: dynamic |
| field: <testLibraryFragment>::@class::A::@field::value |
| accessors |
| synthetic get value @-1 |
| reference: <testLibraryFragment>::@class::A::@getter::value |
| enclosingElement3: <testLibraryFragment>::@class::A |
| returnType: dynamic |
| enums |
| enum E @64 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant a @78 |
| reference: <testLibraryFragment>::@enum::E::@field::a |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| metadata |
| Annotation |
| atSign: @ @70 |
| name: SimpleIdentifier |
| token: A @71 |
| staticElement: <testLibraryFragment>::@class::A |
| element: <testLibrary>::@class::A |
| staticType: null |
| arguments: ArgumentList |
| leftParenthesis: ( @72 |
| arguments |
| IntegerLiteral |
| literal: 100 @73 |
| staticType: int |
| rightParenthesis: ) @76 |
| element: <testLibraryFragment>::@class::A::@constructor::new |
| element2: <testLibraryFragment>::@class::A::@constructor::new#element |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| static const enumConstant b @83 |
| reference: <testLibraryFragment>::@enum::E::@field::b |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| static const enumConstant c @96 |
| reference: <testLibraryFragment>::@enum::E::@field::c |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| metadata |
| Annotation |
| atSign: @ @88 |
| name: SimpleIdentifier |
| token: A @89 |
| staticElement: <testLibraryFragment>::@class::A |
| element: <testLibrary>::@class::A |
| staticType: null |
| arguments: ArgumentList |
| leftParenthesis: ( @90 |
| arguments |
| IntegerLiteral |
| literal: 300 @91 |
| staticType: int |
| rightParenthesis: ) @94 |
| element: <testLibraryFragment>::@class::A::@constructor::new |
| element2: <testLibraryFragment>::@class::A::@constructor::new#element |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: a @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::a |
| element: <testLibraryFragment>::@enum::E::@getter::a#element |
| staticType: E |
| SimpleIdentifier |
| token: b @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::b |
| element: <testLibraryFragment>::@enum::E::@getter::b#element |
| staticType: E |
| SimpleIdentifier |
| token: c @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::c |
| element: <testLibraryFragment>::@enum::E::@getter::c#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get a @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::a |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get b @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::b |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get c @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::c |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| classes |
| class A @6 |
| reference: <testLibraryFragment>::@class::A |
| element: <testLibrary>::@class::A |
| fields |
| value @26 |
| reference: <testLibraryFragment>::@class::A::@field::value |
| element: <testLibraryFragment>::@class::A::@field::value#element |
| getter2: <testLibraryFragment>::@class::A::@getter::value |
| constructors |
| const new |
| reference: <testLibraryFragment>::@class::A::@constructor::new |
| element: <testLibraryFragment>::@class::A::@constructor::new#element |
| typeName: A |
| typeNameOffset: 41 |
| formalParameters |
| this.value @48 |
| element: <testLibraryFragment>::@class::A::@constructor::new::@parameter::value#element |
| getters |
| synthetic get value |
| reference: <testLibraryFragment>::@class::A::@getter::value |
| element: <testLibraryFragment>::@class::A::@getter::value#element |
| enums |
| enum E @64 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer a @78 |
| reference: <testLibraryFragment>::@enum::E::@field::a |
| element: <testLibraryFragment>::@enum::E::@field::a#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::a |
| hasInitializer b @83 |
| reference: <testLibraryFragment>::@enum::E::@field::b |
| element: <testLibraryFragment>::@enum::E::@field::b#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::b |
| hasInitializer c @96 |
| reference: <testLibraryFragment>::@enum::E::@field::c |
| element: <testLibraryFragment>::@enum::E::@field::c#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::c |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get a |
| reference: <testLibraryFragment>::@enum::E::@getter::a |
| element: <testLibraryFragment>::@enum::E::@getter::a#element |
| synthetic get b |
| reference: <testLibraryFragment>::@enum::E::@getter::b |
| element: <testLibraryFragment>::@enum::E::@getter::b#element |
| synthetic get c |
| reference: <testLibraryFragment>::@enum::E::@getter::c |
| element: <testLibraryFragment>::@enum::E::@getter::c#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| classes |
| class A |
| reference: <testLibrary>::@class::A |
| firstFragment: <testLibraryFragment>::@class::A |
| fields |
| final value |
| firstFragment: <testLibraryFragment>::@class::A::@field::value |
| type: dynamic |
| getter: <testLibraryFragment>::@class::A::@getter::value#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@class::A::@constructor::new |
| formalParameters |
| requiredPositional final value |
| type: dynamic |
| getters |
| synthetic get value |
| firstFragment: <testLibraryFragment>::@class::A::@getter::value |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer a |
| firstFragment: <testLibraryFragment>::@enum::E::@field::a |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::a#element |
| static const enumConstant hasInitializer b |
| firstFragment: <testLibraryFragment>::@enum::E::@field::b |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::b#element |
| static const enumConstant hasInitializer c |
| firstFragment: <testLibraryFragment>::@enum::E::@field::c |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::c#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get a |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::a |
| synthetic static get b |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::b |
| synthetic static get c |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::c |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_metadata_enum_constant_self() async { |
| var library = await buildLibrary(r''' |
| enum E { |
| @v |
| v |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @16 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| metadata |
| Annotation |
| atSign: @ @11 |
| name: SimpleIdentifier |
| token: v @12 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: null |
| element: <testLibraryFragment>::@enum::E::@getter::v |
| element2: <testLibraryFragment>::@enum::E::@getter::v#element |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @5 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @16 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| '''); |
| } |
| |
| test_metadata_enum_constructor() async { |
| var library = await buildLibrary(r''' |
| const a = 42; |
| enum E { |
| v; |
| @a |
| const E(); |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @19 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @25 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| const @41 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| metadata |
| Annotation |
| atSign: @ @30 |
| name: SimpleIdentifier |
| token: a @31 |
| staticElement: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::a |
| element2: <testLibraryFragment>::@getter::a#element |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| topLevelVariables |
| static const a @6 |
| reference: <testLibraryFragment>::@topLevelVariable::a |
| enclosingElement3: <testLibraryFragment> |
| type: int |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| IntegerLiteral |
| literal: 42 @10 |
| staticType: int |
| accessors |
| synthetic static get a @-1 |
| reference: <testLibraryFragment>::@getter::a |
| enclosingElement3: <testLibraryFragment> |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @19 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @25 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| metadata |
| Annotation |
| atSign: @ @30 |
| name: SimpleIdentifier |
| token: a @31 |
| staticElement: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::a |
| element2: <testLibraryFragment>::@getter::a#element |
| typeName: E |
| typeNameOffset: 41 |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| topLevelVariables |
| hasInitializer a @6 |
| reference: <testLibraryFragment>::@topLevelVariable::a |
| element: <testLibrary>::@topLevelVariable::a |
| getter2: <testLibraryFragment>::@getter::a |
| getters |
| synthetic get a |
| reference: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| metadata |
| Annotation |
| atSign: @ @30 |
| name: SimpleIdentifier |
| token: a @31 |
| staticElement: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::a |
| element2: <testLibraryFragment>::@getter::a#element |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| topLevelVariables |
| const hasInitializer a |
| reference: <testLibrary>::@topLevelVariable::a |
| firstFragment: <testLibraryFragment>::@topLevelVariable::a |
| type: int |
| getter: <testLibraryFragment>::@getter::a#element |
| getters |
| synthetic static get a |
| firstFragment: <testLibraryFragment>::@getter::a |
| '''); |
| } |
| |
| test_metadata_enum_method() async { |
| var library = await buildLibrary(r''' |
| const a = 42; |
| enum E { |
| v; |
| @a |
| void foo() {} |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @19 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @25 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| methods |
| foo @40 |
| reference: <testLibraryFragment>::@enum::E::@method::foo |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| metadata |
| Annotation |
| atSign: @ @30 |
| name: SimpleIdentifier |
| token: a @31 |
| staticElement: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::a |
| element2: <testLibraryFragment>::@getter::a#element |
| returnType: void |
| topLevelVariables |
| static const a @6 |
| reference: <testLibraryFragment>::@topLevelVariable::a |
| enclosingElement3: <testLibraryFragment> |
| type: int |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| IntegerLiteral |
| literal: 42 @10 |
| staticType: int |
| accessors |
| synthetic static get a @-1 |
| reference: <testLibraryFragment>::@getter::a |
| enclosingElement3: <testLibraryFragment> |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @19 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @25 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| methods |
| foo @40 |
| reference: <testLibraryFragment>::@enum::E::@method::foo |
| element: <testLibraryFragment>::@enum::E::@method::foo#element |
| metadata |
| Annotation |
| atSign: @ @30 |
| name: SimpleIdentifier |
| token: a @31 |
| staticElement: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::a |
| element2: <testLibraryFragment>::@getter::a#element |
| topLevelVariables |
| hasInitializer a @6 |
| reference: <testLibraryFragment>::@topLevelVariable::a |
| element: <testLibrary>::@topLevelVariable::a |
| getter2: <testLibraryFragment>::@getter::a |
| getters |
| synthetic get a |
| reference: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| methods |
| foo |
| reference: <testLibrary>::@enum::E::@method::foo |
| firstFragment: <testLibraryFragment>::@enum::E::@method::foo |
| metadata |
| Annotation |
| atSign: @ @30 |
| name: SimpleIdentifier |
| token: a @31 |
| staticElement: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::a |
| element2: <testLibraryFragment>::@getter::a#element |
| topLevelVariables |
| const hasInitializer a |
| reference: <testLibrary>::@topLevelVariable::a |
| firstFragment: <testLibraryFragment>::@topLevelVariable::a |
| type: int |
| getter: <testLibraryFragment>::@getter::a#element |
| getters |
| synthetic static get a |
| firstFragment: <testLibraryFragment>::@getter::a |
| '''); |
| } |
| |
| test_metadata_enum_scope() async { |
| var library = await buildLibrary(r''' |
| const foo = 0; |
| |
| @foo |
| enum E<@foo T> { |
| v; |
| static const foo = 1; |
| @foo |
| void bar() {} |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @26 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| metadata |
| Annotation |
| atSign: @ @16 |
| name: SimpleIdentifier |
| token: foo @17 |
| staticElement: <testLibraryFragment>::@getter::foo |
| element: <testLibraryFragment>::@getter::foo#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::foo |
| element2: <testLibraryFragment>::@getter::foo#element |
| typeParameters |
| covariant T @33 |
| defaultType: dynamic |
| metadata |
| Annotation |
| atSign: @ @28 |
| name: SimpleIdentifier |
| token: foo @29 |
| staticElement: <testLibraryFragment>::@getter::foo |
| element: <testLibraryFragment>::@getter::foo#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::foo |
| element2: <testLibraryFragment>::@getter::foo#element |
| supertype: Enum |
| fields |
| static const enumConstant v @40 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E<dynamic> |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E<dynamic> |
| staticElement: ConstructorMember |
| base: <testLibraryFragment>::@enum::E::@constructor::new |
| substitution: {T: dynamic} |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E<dynamic> |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E<dynamic> |
| rightBracket: ] @0 |
| staticType: List<E<dynamic>> |
| static const foo @58 |
| reference: <testLibraryFragment>::@enum::E::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: int |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| IntegerLiteral |
| literal: 1 @64 |
| staticType: int |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E<dynamic> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic>> |
| synthetic static get foo @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: int |
| methods |
| bar @81 |
| reference: <testLibraryFragment>::@enum::E::@method::bar |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| metadata |
| Annotation |
| atSign: @ @69 |
| name: SimpleIdentifier |
| token: foo @70 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::foo |
| element: <testLibraryFragment>::@enum::E::@getter::foo#element |
| staticType: null |
| element: <testLibraryFragment>::@enum::E::@getter::foo |
| element2: <testLibraryFragment>::@enum::E::@getter::foo#element |
| returnType: void |
| topLevelVariables |
| static const foo @6 |
| reference: <testLibraryFragment>::@topLevelVariable::foo |
| enclosingElement3: <testLibraryFragment> |
| type: int |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| IntegerLiteral |
| literal: 0 @12 |
| staticType: int |
| accessors |
| synthetic static get foo @-1 |
| reference: <testLibraryFragment>::@getter::foo |
| enclosingElement3: <testLibraryFragment> |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @26 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @33 |
| element: <not-implemented> |
| metadata |
| Annotation |
| atSign: @ @28 |
| name: SimpleIdentifier |
| token: foo @29 |
| staticElement: <testLibraryFragment>::@getter::foo |
| element: <testLibraryFragment>::@getter::foo#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::foo |
| element2: <testLibraryFragment>::@getter::foo#element |
| fields |
| hasInitializer v @40 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| hasInitializer foo @58 |
| reference: <testLibraryFragment>::@enum::E::@field::foo |
| element: <testLibraryFragment>::@enum::E::@field::foo#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| synthetic get foo |
| reference: <testLibraryFragment>::@enum::E::@getter::foo |
| element: <testLibraryFragment>::@enum::E::@getter::foo#element |
| methods |
| bar @81 |
| reference: <testLibraryFragment>::@enum::E::@method::bar |
| element: <testLibraryFragment>::@enum::E::@method::bar#element |
| metadata |
| Annotation |
| atSign: @ @69 |
| name: SimpleIdentifier |
| token: foo @70 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::foo |
| element: <testLibraryFragment>::@enum::E::@getter::foo#element |
| staticType: null |
| element: <testLibraryFragment>::@enum::E::@getter::foo |
| element2: <testLibraryFragment>::@enum::E::@getter::foo#element |
| topLevelVariables |
| hasInitializer foo @6 |
| reference: <testLibraryFragment>::@topLevelVariable::foo |
| element: <testLibrary>::@topLevelVariable::foo |
| getter2: <testLibraryFragment>::@getter::foo |
| getters |
| synthetic get foo |
| reference: <testLibraryFragment>::@getter::foo |
| element: <testLibraryFragment>::@getter::foo#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| metadata |
| Annotation |
| atSign: @ @28 |
| name: SimpleIdentifier |
| token: foo @29 |
| staticElement: <testLibraryFragment>::@getter::foo |
| element: <testLibraryFragment>::@getter::foo#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::foo |
| element2: <testLibraryFragment>::@getter::foo#element |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E<dynamic> |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| static const hasInitializer foo |
| firstFragment: <testLibraryFragment>::@enum::E::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::E::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| synthetic static get foo |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::foo |
| methods |
| bar |
| reference: <testLibrary>::@enum::E::@method::bar |
| firstFragment: <testLibraryFragment>::@enum::E::@method::bar |
| metadata |
| Annotation |
| atSign: @ @69 |
| name: SimpleIdentifier |
| token: foo @70 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::foo |
| element: <testLibraryFragment>::@enum::E::@getter::foo#element |
| staticType: null |
| element: <testLibraryFragment>::@enum::E::@getter::foo |
| element2: <testLibraryFragment>::@enum::E::@getter::foo#element |
| topLevelVariables |
| const hasInitializer foo |
| reference: <testLibrary>::@topLevelVariable::foo |
| firstFragment: <testLibraryFragment>::@topLevelVariable::foo |
| type: int |
| getter: <testLibraryFragment>::@getter::foo#element |
| getters |
| synthetic static get foo |
| firstFragment: <testLibraryFragment>::@getter::foo |
| '''); |
| } |
| |
| test_metadata_enum_typeParameter() async { |
| var library = await buildLibrary(''' |
| const a = 42; |
| enum E<@a T> { |
| v |
| } |
| '''); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @19 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @24 |
| defaultType: dynamic |
| metadata |
| Annotation |
| atSign: @ @21 |
| name: SimpleIdentifier |
| token: a @22 |
| staticElement: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::a |
| element2: <testLibraryFragment>::@getter::a#element |
| supertype: Enum |
| fields |
| static const enumConstant v @31 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E<dynamic> |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E<dynamic> |
| staticElement: ConstructorMember |
| base: <testLibraryFragment>::@enum::E::@constructor::new |
| substitution: {T: dynamic} |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E<dynamic> |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E<dynamic>> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E<dynamic> |
| rightBracket: ] @0 |
| staticType: List<E<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E<dynamic> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E<dynamic>> |
| topLevelVariables |
| static const a @6 |
| reference: <testLibraryFragment>::@topLevelVariable::a |
| enclosingElement3: <testLibraryFragment> |
| type: int |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| IntegerLiteral |
| literal: 42 @10 |
| staticType: int |
| accessors |
| synthetic static get a @-1 |
| reference: <testLibraryFragment>::@getter::a |
| enclosingElement3: <testLibraryFragment> |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @19 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| typeParameters |
| T @24 |
| element: <not-implemented> |
| metadata |
| Annotation |
| atSign: @ @21 |
| name: SimpleIdentifier |
| token: a @22 |
| staticElement: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::a |
| element2: <testLibraryFragment>::@getter::a#element |
| fields |
| hasInitializer v @31 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| topLevelVariables |
| hasInitializer a @6 |
| reference: <testLibraryFragment>::@topLevelVariable::a |
| element: <testLibrary>::@topLevelVariable::a |
| getter2: <testLibraryFragment>::@getter::a |
| getters |
| synthetic get a |
| reference: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| typeParameters |
| T |
| metadata |
| Annotation |
| atSign: @ @21 |
| name: SimpleIdentifier |
| token: a @22 |
| staticElement: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::a |
| element2: <testLibraryFragment>::@getter::a#element |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E<dynamic> |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E<dynamic>> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| topLevelVariables |
| const hasInitializer a |
| reference: <testLibrary>::@topLevelVariable::a |
| firstFragment: <testLibraryFragment>::@topLevelVariable::a |
| type: int |
| getter: <testLibraryFragment>::@getter::a#element |
| getters |
| synthetic static get a |
| firstFragment: <testLibraryFragment>::@getter::a |
| '''); |
| } |
| |
| test_metadata_enumDeclaration() async { |
| var library = await buildLibrary('const a = 42; @a enum E { v }'); |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| enums |
| enum E @22 |
| reference: <testLibraryFragment>::@enum::E |
| enclosingElement3: <testLibraryFragment> |
| metadata |
| Annotation |
| atSign: @ @14 |
| name: SimpleIdentifier |
| token: a @15 |
| staticElement: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| staticType: null |
| element: <testLibraryFragment>::@getter::a |
| element2: <testLibraryFragment>::@getter::a#element |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: E |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: E @-1 |
| element: <testLibraryFragment>::@enum::E |
| element2: <testLibrary>::@enum::E |
| type: E |
| staticElement: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: E |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| type: List<E> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| staticType: E |
| rightBracket: ] @0 |
| staticType: List<E> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: E |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::E |
| returnType: List<E> |
| topLevelVariables |
| static const a @6 |
| reference: <testLibraryFragment>::@topLevelVariable::a |
| enclosingElement3: <testLibraryFragment> |
| type: int |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| IntegerLiteral |
| literal: 42 @10 |
| staticType: int |
| accessors |
| synthetic static get a @-1 |
| reference: <testLibraryFragment>::@getter::a |
| enclosingElement3: <testLibraryFragment> |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| enums |
| enum E @22 |
| reference: <testLibraryFragment>::@enum::E |
| element: <testLibrary>::@enum::E |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::E::@field::v |
| element: <testLibraryFragment>::@enum::E::@field::v#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::E::@field::values |
| element: <testLibraryFragment>::@enum::E::@field::values#element |
| getter2: <testLibraryFragment>::@enum::E::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::E::@constructor::new |
| element: <testLibraryFragment>::@enum::E::@constructor::new#element |
| typeName: E |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::E::@getter::v |
| element: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::E::@getter::values |
| element: <testLibraryFragment>::@enum::E::@getter::values#element |
| topLevelVariables |
| hasInitializer a @6 |
| reference: <testLibraryFragment>::@topLevelVariable::a |
| element: <testLibrary>::@topLevelVariable::a |
| getter2: <testLibraryFragment>::@getter::a |
| getters |
| synthetic get a |
| reference: <testLibraryFragment>::@getter::a |
| element: <testLibraryFragment>::@getter::a#element |
| enums |
| enum E |
| reference: <testLibrary>::@enum::E |
| firstFragment: <testLibraryFragment>::@enum::E |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::E::@field::v |
| type: E |
| getter: <testLibraryFragment>::@enum::E::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::E::@field::values |
| type: List<E> |
| getter: <testLibraryFragment>::@enum::E::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::E::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::E::@getter::values |
| topLevelVariables |
| const hasInitializer a |
| reference: <testLibrary>::@topLevelVariable::a |
| firstFragment: <testLibraryFragment>::@topLevelVariable::a |
| type: int |
| getter: <testLibraryFragment>::@getter::a#element |
| getters |
| synthetic static get a |
| firstFragment: <testLibraryFragment>::@getter::a |
| '''); |
| } |
| } |
| |
| abstract class EnumElementTest_augmentation extends ElementsBaseTest { |
| test_add_augment() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| |
| enum A { |
| v; |
| void foo() {} |
| } |
| |
| augment enum A {; |
| void bar() {} |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| enum A @27 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @33 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::v |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::values |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| type: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@constructor::new |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| returnType: List<A> |
| methods |
| foo @43 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@method::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| returnType: void |
| augmented |
| fields |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::v |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::values |
| constants |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::v |
| constructors |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@constructor::new |
| accessors |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values |
| methods |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@method::foo |
| augment enum A @68 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| methods |
| bar @80 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: void |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @27 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @33 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::v |
| element: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::v#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::values |
| element: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::values#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@constructor::new |
| element: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v |
| element: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values |
| element: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values#element |
| methods |
| foo @43 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@method::foo |
| element: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@method::foo#element |
| enum A @68 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| methods |
| bar @80 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::v |
| type: A |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values |
| methods |
| foo |
| reference: <testLibrary>::@enum::A::@method::foo |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@method::foo |
| bar |
| reference: <testLibrary>::@enum::A::@method::bar |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar |
| '''); |
| } |
| |
| test_augmentationTarget() async { |
| newFile('$testPackageLibPath/a1.dart', r''' |
| part of 'test.dart'; |
| part 'a11.dart'; |
| part 'a12.dart'; |
| augment enum A {} |
| '''); |
| |
| newFile('$testPackageLibPath/a11.dart', r''' |
| part of 'a1.dart'; |
| augment enum A {} |
| '''); |
| |
| newFile('$testPackageLibPath/a12.dart', r''' |
| part of 'a1.dart'; |
| augment enum A {} |
| '''); |
| |
| newFile('$testPackageLibPath/a2.dart', r''' |
| part of 'test.dart'; |
| part 'a21.dart'; |
| part 'a22.dart'; |
| augment enum A {} |
| '''); |
| |
| newFile('$testPackageLibPath/a21.dart', r''' |
| part of 'a2.dart'; |
| augment enum A {} |
| '''); |
| |
| newFile('$testPackageLibPath/a22.dart', r''' |
| part of 'a2.dart'; |
| augment enum A {} |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a1.dart'; |
| part 'a2.dart'; |
| enum A { |
| v |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withExportScope = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a1.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a1.dart |
| part_1 |
| uri: package:test/a2.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a2.dart |
| enums |
| enum A @37 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a1.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @43 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a1.dart |
| enclosingElement3: <testLibraryFragment> |
| parts |
| part_2 |
| uri: package:test/a11.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a1.dart |
| unit: <testLibrary>::@fragment::package:test/a11.dart |
| part_3 |
| uri: package:test/a12.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a1.dart |
| unit: <testLibrary>::@fragment::package:test/a12.dart |
| enums |
| augment enum A @68 |
| reference: <testLibrary>::@fragment::package:test/a1.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a1.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/a11.dart::@enumAugmentation::A |
| <testLibrary>::@fragment::package:test/a11.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a1.dart |
| enums |
| augment enum A @32 |
| reference: <testLibrary>::@fragment::package:test/a11.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a11.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a1.dart::@enumAugmentation::A |
| augmentation: <testLibrary>::@fragment::package:test/a12.dart::@enumAugmentation::A |
| <testLibrary>::@fragment::package:test/a12.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a1.dart |
| enums |
| augment enum A @32 |
| reference: <testLibrary>::@fragment::package:test/a12.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a12.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a11.dart::@enumAugmentation::A |
| augmentation: <testLibrary>::@fragment::package:test/a2.dart::@enumAugmentation::A |
| <testLibrary>::@fragment::package:test/a2.dart |
| enclosingElement3: <testLibraryFragment> |
| parts |
| part_4 |
| uri: package:test/a21.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a2.dart |
| unit: <testLibrary>::@fragment::package:test/a21.dart |
| part_5 |
| uri: package:test/a22.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a2.dart |
| unit: <testLibrary>::@fragment::package:test/a22.dart |
| enums |
| augment enum A @68 |
| reference: <testLibrary>::@fragment::package:test/a2.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a2.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a12.dart::@enumAugmentation::A |
| augmentation: <testLibrary>::@fragment::package:test/a21.dart::@enumAugmentation::A |
| <testLibrary>::@fragment::package:test/a21.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a2.dart |
| enums |
| augment enum A @32 |
| reference: <testLibrary>::@fragment::package:test/a21.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a21.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a2.dart::@enumAugmentation::A |
| augmentation: <testLibrary>::@fragment::package:test/a22.dart::@enumAugmentation::A |
| <testLibrary>::@fragment::package:test/a22.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a2.dart |
| enums |
| augment enum A @32 |
| reference: <testLibrary>::@fragment::package:test/a22.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a22.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a21.dart::@enumAugmentation::A |
| exportedReferences |
| declared <testLibraryFragment>::@enum::A |
| exportNamespace |
| A: <testLibraryFragment>::@enum::A |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a1.dart |
| enums |
| enum A @37 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a1.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @43 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a1.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/a11.dart |
| enums |
| enum A @68 |
| reference: <testLibrary>::@fragment::package:test/a1.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a11.dart::@enumAugmentation::A |
| <testLibrary>::@fragment::package:test/a11.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibrary>::@fragment::package:test/a1.dart |
| previousFragment: <testLibrary>::@fragment::package:test/a1.dart |
| nextFragment: <testLibrary>::@fragment::package:test/a12.dart |
| enums |
| enum A @32 |
| reference: <testLibrary>::@fragment::package:test/a11.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a1.dart::@enumAugmentation::A |
| nextFragment: <testLibrary>::@fragment::package:test/a12.dart::@enumAugmentation::A |
| <testLibrary>::@fragment::package:test/a12.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibrary>::@fragment::package:test/a1.dart |
| previousFragment: <testLibrary>::@fragment::package:test/a11.dart |
| nextFragment: <testLibrary>::@fragment::package:test/a2.dart |
| enums |
| enum A @32 |
| reference: <testLibrary>::@fragment::package:test/a12.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a11.dart::@enumAugmentation::A |
| nextFragment: <testLibrary>::@fragment::package:test/a2.dart::@enumAugmentation::A |
| <testLibrary>::@fragment::package:test/a2.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibrary>::@fragment::package:test/a12.dart |
| nextFragment: <testLibrary>::@fragment::package:test/a21.dart |
| enums |
| enum A @68 |
| reference: <testLibrary>::@fragment::package:test/a2.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a12.dart::@enumAugmentation::A |
| nextFragment: <testLibrary>::@fragment::package:test/a21.dart::@enumAugmentation::A |
| <testLibrary>::@fragment::package:test/a21.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibrary>::@fragment::package:test/a2.dart |
| previousFragment: <testLibrary>::@fragment::package:test/a2.dart |
| nextFragment: <testLibrary>::@fragment::package:test/a22.dart |
| enums |
| enum A @32 |
| reference: <testLibrary>::@fragment::package:test/a21.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a2.dart::@enumAugmentation::A |
| nextFragment: <testLibrary>::@fragment::package:test/a22.dart::@enumAugmentation::A |
| <testLibrary>::@fragment::package:test/a22.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibrary>::@fragment::package:test/a2.dart |
| previousFragment: <testLibrary>::@fragment::package:test/a21.dart |
| enums |
| enum A @32 |
| reference: <testLibrary>::@fragment::package:test/a22.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a21.dart::@enumAugmentation::A |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| exportedReferences |
| declared <testLibraryFragment>::@enum::A |
| exportNamespace |
| A: <testLibraryFragment>::@enum::A |
| '''); |
| } |
| |
| test_augmentationTarget_augmentationThenDeclaration() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| |
| augment enum A {; |
| void foo1() {} |
| } |
| |
| enum A { |
| v; |
| void foo2() {} |
| } |
| |
| augment enum A {; |
| void foo3() {} |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @35 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| fields |
| synthetic static const values @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@field::values |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| type: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@constructor::new |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| accessors |
| synthetic static get values @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@getter::values |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| returnType: List<A> |
| methods |
| foo1 @47 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@method::foo1 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| returnType: void |
| enum A @65 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1 |
| supertype: Enum |
| fields |
| static const enumConstant v @71 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::v |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::values |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| type: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@constructor::new |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| returnType: List<A> |
| methods |
| foo2 @81 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@method::foo2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| returnType: void |
| augmented |
| fields |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::v |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::values |
| constants |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::v |
| constructors |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@constructor::new |
| accessors |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values |
| methods |
| <testLibrary>::@fragment::package:test/a.dart::@enum::A::@method::foo2 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1::@method::foo3 |
| augment enum A @107 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| methods |
| foo3 @119 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1::@method::foo3 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1 |
| returnType: void |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @35 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| element: <testLibrary>::@enum::A::@def::0 |
| fields |
| synthetic values |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@field::values |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@field::values#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@constructor::new |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get values |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@getter::values |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@getter::values#element |
| methods |
| foo1 @47 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@method::foo1 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@method::foo1#element |
| enum A @65 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| element: <testLibrary>::@enum::A::@def::1 |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1 |
| fields |
| hasInitializer v @71 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::v |
| element: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::v#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::values |
| element: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::values#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@constructor::new |
| element: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v |
| element: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values |
| element: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values#element |
| methods |
| foo2 @81 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@method::foo2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@method::foo2#element |
| enum A @107 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1 |
| element: <testLibrary>::@enum::A::@def::1 |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| methods |
| foo3 @119 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1::@method::foo3 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1::@method::foo3#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A::@def::0 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| supertype: Enum |
| fields |
| synthetic static const values |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@field::values |
| type: List<A> |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@constructor::new |
| getters |
| synthetic static get values |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@getter::values |
| methods |
| foo1 |
| reference: <testLibrary>::@enum::A::@def::0::@method::foo1 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@method::foo1 |
| enum A |
| reference: <testLibrary>::@enum::A::@def::1 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::v |
| type: A |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@getter::values |
| methods |
| foo2 |
| reference: <testLibrary>::@enum::A::@def::1::@method::foo2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enum::A::@method::foo2 |
| foo3 |
| reference: <testLibrary>::@enum::A::@def::1::@method::foo3 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1::@method::foo3 |
| '''); |
| } |
| |
| test_augmentationTarget_no2() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| part 'b.dart'; |
| augment enum A {; |
| void foo1() {} |
| } |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'a.dart'; |
| augment enum A {; |
| void foo2() {} |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| '''); |
| |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| parts |
| part_1 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| augment enum A @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| fields |
| synthetic static const values @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::values |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: List<A> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| rightBracket: ] @0 |
| staticType: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| accessors |
| synthetic static get values @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::values |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: List<A> |
| methods |
| foo1 @61 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::foo1 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: void |
| augmented |
| fields |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::values |
| constructors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new |
| accessors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::values |
| methods |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::foo1 |
| <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@method::foo2 |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| augment enum A @31 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| methods |
| foo2 @43 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@method::foo2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| returnType: void |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| fields |
| synthetic values |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::values |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::values#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get values |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::values |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::values#element |
| methods |
| foo1 @61 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::foo1 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::foo1#element |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibrary>::@fragment::package:test/a.dart |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @31 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| methods |
| foo2 @43 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@method::foo2 |
| element: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@method::foo2#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| synthetic static const values |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::values |
| type: List<A> |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new |
| getters |
| synthetic static get values |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::values |
| methods |
| foo1 |
| reference: <testLibrary>::@enum::A::@method::foo1 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::foo1 |
| foo2 |
| reference: <testLibrary>::@enum::A::@method::foo2 |
| firstFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@method::foo2 |
| '''); |
| } |
| |
| test_augmented_constants_add() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A { |
| v2 |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v1 |
| } |
| '''); |
| |
| configuration.withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v1 @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v1 @-1 |
| staticElement: <testLibraryFragment>::@enum::A::@getter::v1 |
| element: <testLibraryFragment>::@enum::A::@getter::v1#element |
| staticType: A |
| SimpleIdentifier |
| token: v2 @-1 |
| staticElement: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2#element |
| staticType: A |
| rightBracket: ] @0 |
| staticType: List<A> |
| id: field_1 |
| getter: getter_1 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v1 @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| static const enumConstant v2 @40 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_2 |
| getter: getter_2 |
| accessors |
| synthetic static get v2 @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: A |
| id: getter_2 |
| variable: field_2 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v1 @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v1 |
| element: <testLibraryFragment>::@enum::A::@field::v1#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v1 |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v1 |
| element: <testLibraryFragment>::@enum::A::@getter::v1#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| fields |
| hasInitializer v2 @40 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| getters |
| synthetic get v2 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v1 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v1 |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v1#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| static const enumConstant hasInitializer v2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| type: A |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v1 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v1 |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic static get v2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| '''); |
| } |
| |
| test_augmented_constants_add2() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A { |
| v2 |
| } |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'test.dart'; |
| augment enum A { |
| v3 |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| part 'b.dart'; |
| enum A { |
| v1 |
| } |
| '''); |
| |
| configuration.withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| part_1 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v1 @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v1 @-1 |
| staticElement: <testLibraryFragment>::@enum::A::@getter::v1 |
| element: <testLibraryFragment>::@enum::A::@getter::v1#element |
| staticType: A |
| SimpleIdentifier |
| token: v2 @-1 |
| staticElement: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2#element |
| staticType: A |
| SimpleIdentifier |
| token: v3 @-1 |
| staticElement: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::v3 |
| element: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::v3#element |
| staticType: A |
| rightBracket: ] @0 |
| staticType: List<A> |
| id: field_1 |
| getter: getter_1 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v1 @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@field::v3 |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@field::v3 |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::v3 |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| fields |
| static const enumConstant v2 @40 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_2 |
| getter: getter_2 |
| accessors |
| synthetic static get v2 @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: A |
| id: getter_2 |
| variable: field_2 |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| static const enumConstant v3 @40 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@field::v3 |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_3 |
| getter: getter_3 |
| accessors |
| synthetic static get v3 @-1 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::v3 |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| returnType: A |
| id: getter_3 |
| variable: field_3 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v1 @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v1 |
| element: <testLibraryFragment>::@enum::A::@field::v1#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v1 |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v1 |
| element: <testLibraryFragment>::@enum::A::@getter::v1#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| fields |
| hasInitializer v2 @40 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| getters |
| synthetic get v2 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2#element |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v3 @40 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@field::v3 |
| element: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@field::v3#element |
| getter2: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::v3 |
| getters |
| synthetic get v3 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::v3 |
| element: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::v3#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v1 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v1 |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v1#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| static const enumConstant hasInitializer v2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| type: A |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2#element |
| static const enumConstant hasInitializer v3 |
| firstFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@field::v3 |
| type: A |
| getter: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::v3#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v1 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v1 |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic static get v2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| synthetic static get v3 |
| firstFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::v3 |
| '''); |
| } |
| |
| test_augmented_constants_add_augment() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A { |
| v2, |
| augment v2 |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v1 |
| } |
| '''); |
| |
| configuration.withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v1 @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v1 @-1 |
| staticElement: <testLibraryFragment>::@enum::A::@getter::v1 |
| element: <testLibraryFragment>::@enum::A::@getter::v1#element |
| staticType: A |
| SimpleIdentifier |
| token: v2 @-1 |
| staticElement: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2#element |
| staticType: A |
| rightBracket: ] @0 |
| staticType: List<A> |
| id: field_1 |
| getter: getter_1 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v1 @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v2 |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v2 |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| static const enumConstant v2 @40 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_2 |
| getter: getter_2 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v2 |
| augment static const enumConstant v2 @54 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_3 |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| accessors |
| synthetic static get v2 @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: A |
| id: getter_2 |
| variable: field_2 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v1 @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v1 |
| element: <testLibraryFragment>::@enum::A::@field::v1#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v1 |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v1 |
| element: <testLibraryFragment>::@enum::A::@getter::v1#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| fields |
| hasInitializer v2 @40 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v2 |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| augment hasInitializer v2 @54 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2#element |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| getters |
| synthetic get v2 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v1 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v1 |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v1#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| static const enumConstant hasInitializer v2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::v2 |
| type: A |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v1 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v1 |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic static get v2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::v2 |
| '''); |
| } |
| |
| test_augmented_constants_augment() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A { |
| augment v2 |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v1, v2, v3 |
| } |
| '''); |
| |
| configuration.withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v1 @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_0 |
| getter: getter_0 |
| static const enumConstant v2 @30 |
| reference: <testLibraryFragment>::@enum::A::@field::v2 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_1 |
| getter: getter_1 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v2 |
| static const enumConstant v3 @34 |
| reference: <testLibraryFragment>::@enum::A::@field::v3 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_2 |
| getter: getter_2 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v1 @-1 |
| staticElement: <testLibraryFragment>::@enum::A::@getter::v1 |
| element: <testLibraryFragment>::@enum::A::@getter::v1#element |
| staticType: A |
| SimpleIdentifier |
| token: v2 @-1 |
| staticElement: <testLibraryFragment>::@enum::A::@getter::v2 |
| element: <testLibraryFragment>::@enum::A::@getter::v2#element |
| staticType: A |
| SimpleIdentifier |
| token: v3 @-1 |
| staticElement: <testLibraryFragment>::@enum::A::@getter::v3 |
| element: <testLibraryFragment>::@enum::A::@getter::v3#element |
| staticType: A |
| rightBracket: ] @0 |
| staticType: List<A> |
| id: field_3 |
| getter: getter_3 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v1 @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get v2 @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v2 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_1 |
| variable: field_1 |
| synthetic static get v3 @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v3 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_2 |
| variable: field_2 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_3 |
| variable: field_3 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v2 |
| <testLibraryFragment>::@enum::A::@field::v3 |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v2 |
| <testLibraryFragment>::@enum::A::@field::v3 |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v1 |
| <testLibraryFragment>::@enum::A::@getter::v2 |
| <testLibraryFragment>::@enum::A::@getter::v3 |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| augment static const enumConstant v2 @48 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_4 |
| augmentationTarget: <testLibraryFragment>::@enum::A::@field::v2 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v1 @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v1 |
| element: <testLibraryFragment>::@enum::A::@field::v1#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v1 |
| hasInitializer v2 @30 |
| reference: <testLibraryFragment>::@enum::A::@field::v2 |
| element: <testLibraryFragment>::@enum::A::@field::v2#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v2 |
| getter2: <testLibraryFragment>::@enum::A::@getter::v2 |
| hasInitializer v3 @34 |
| reference: <testLibraryFragment>::@enum::A::@field::v3 |
| element: <testLibraryFragment>::@enum::A::@field::v3#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v3 |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v1 |
| element: <testLibraryFragment>::@enum::A::@getter::v1#element |
| synthetic get v2 |
| reference: <testLibraryFragment>::@enum::A::@getter::v2 |
| element: <testLibraryFragment>::@enum::A::@getter::v2#element |
| synthetic get v3 |
| reference: <testLibraryFragment>::@enum::A::@getter::v3 |
| element: <testLibraryFragment>::@enum::A::@getter::v3#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| fields |
| augment hasInitializer v2 @48 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v2 |
| element: <testLibraryFragment>::@enum::A::@field::v2#element |
| previousFragment: <testLibraryFragment>::@enum::A::@field::v2 |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v1 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v1 |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v1#element |
| static const enumConstant hasInitializer v3 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v3 |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v3#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| static const enumConstant hasInitializer v2 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v2 |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v2#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v1 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v1 |
| synthetic static get v2 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v2 |
| synthetic static get v3 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v3 |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_augmented_constants_augment_withArguments() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A { |
| augment v1(3) |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v1(1), v2(2); |
| const A(int value); |
| } |
| '''); |
| |
| configuration.withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v1 @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| arguments |
| IntegerLiteral |
| literal: 1 @29 |
| staticType: int |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_0 |
| getter: getter_0 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v1 |
| static const enumConstant v2 @33 |
| reference: <testLibraryFragment>::@enum::A::@field::v2 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| arguments |
| IntegerLiteral |
| literal: 2 @36 |
| staticType: int |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_1 |
| getter: getter_1 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v1 @-1 |
| staticElement: <testLibraryFragment>::@enum::A::@getter::v1 |
| element: <testLibraryFragment>::@enum::A::@getter::v1#element |
| staticType: A |
| SimpleIdentifier |
| token: v2 @-1 |
| staticElement: <testLibraryFragment>::@enum::A::@getter::v2 |
| element: <testLibraryFragment>::@enum::A::@getter::v2#element |
| staticType: A |
| rightBracket: ] @0 |
| staticType: List<A> |
| id: field_2 |
| getter: getter_2 |
| constructors |
| const @48 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| parameters |
| requiredPositional value @54 |
| type: int |
| accessors |
| synthetic static get v1 @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get v2 @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v2 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_1 |
| variable: field_1 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_2 |
| variable: field_2 |
| augmented |
| fields |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v1 |
| <testLibraryFragment>::@enum::A::@field::v2 |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v1 |
| <testLibraryFragment>::@enum::A::@field::v2 |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v1 |
| <testLibraryFragment>::@enum::A::@getter::v2 |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| augment static const enumConstant v1 @48 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v1 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| arguments |
| IntegerLiteral |
| literal: 3 @51 |
| staticType: int |
| rightParenthesis: ) @0 |
| staticType: A |
| id: field_3 |
| augmentationTarget: <testLibraryFragment>::@enum::A::@field::v1 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v1 @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v1 |
| element: <testLibraryFragment>::@enum::A::@field::v1#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v1 |
| getter2: <testLibraryFragment>::@enum::A::@getter::v1 |
| hasInitializer v2 @33 |
| reference: <testLibraryFragment>::@enum::A::@field::v2 |
| element: <testLibraryFragment>::@enum::A::@field::v2#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v2 |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| typeNameOffset: 48 |
| formalParameters |
| value @54 |
| element: <testLibraryFragment>::@enum::A::@constructor::new::@parameter::value#element |
| getters |
| synthetic get v1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v1 |
| element: <testLibraryFragment>::@enum::A::@getter::v1#element |
| synthetic get v2 |
| reference: <testLibraryFragment>::@enum::A::@getter::v2 |
| element: <testLibraryFragment>::@enum::A::@getter::v2#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| fields |
| augment hasInitializer v1 @48 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v1 |
| element: <testLibraryFragment>::@enum::A::@field::v1#element |
| previousFragment: <testLibraryFragment>::@enum::A::@field::v1 |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v2 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v2 |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v2#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| static const enumConstant hasInitializer v1 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v1 |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v1#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| formalParameters |
| requiredPositional value |
| type: int |
| getters |
| synthetic static get v1 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v1 |
| synthetic static get v2 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v2 |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_augmented_constants_typeParameterCountMismatch() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A<T> { |
| augment v |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v, v2 |
| } |
| '''); |
| |
| configuration |
| ..withConstructors = false |
| ..withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v |
| static const enumConstant v2 @29 |
| reference: <testLibraryFragment>::@enum::A::@field::v2 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get v2 @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v2 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| fields |
| FieldMember |
| base: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v |
| augmentationSubstitution: {T: InvalidType} |
| <testLibraryFragment>::@enum::A::@field::v2 |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| FieldMember |
| base: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v |
| augmentationSubstitution: {T: InvalidType} |
| <testLibraryFragment>::@enum::A::@field::v2 |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::v2 |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| typeParameters |
| covariant T @36 |
| defaultType: dynamic |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| augment static const enumConstant v @51 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| augmentationTarget: <testLibraryFragment>::@enum::A::@field::v |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| hasInitializer v2 @29 |
| reference: <testLibraryFragment>::@enum::A::@field::v2 |
| element: <testLibraryFragment>::@enum::A::@field::v2#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v2 |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get v2 |
| reference: <testLibraryFragment>::@enum::A::@getter::v2 |
| element: <testLibraryFragment>::@enum::A::@getter::v2#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T @36 |
| element: <not-implemented> |
| fields |
| augment hasInitializer v @51 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| previousFragment: <testLibraryFragment>::@enum::A::@field::v |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v2 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v2 |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v2#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get v2 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v2 |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_augmented_constructors_add_named() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| const A.named(); |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v.named(); |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| constructors |
| const named @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| periodOffset: 48 |
| nameEnd: 54 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| constructors |
| const named @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named#element |
| typeName: A |
| typeNameOffset: 47 |
| periodOffset: 48 |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| const named |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_augmented_constructors_add_named_generic() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A<T2> {; |
| const A.named(T2 a); |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A<T1> { |
| v<int>.named() |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T1 @22 |
| defaultType: dynamic |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @30 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A<int> |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A<dynamic>> |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A<int> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A<dynamic>> |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| ConstructorMember |
| base: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| augmentationSubstitution: {T2: T1} |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| typeParameters |
| covariant T2 @36 |
| defaultType: dynamic |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| constructors |
| const named @53 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| periodOffset: 52 |
| nameEnd: 58 |
| parameters |
| requiredPositional a @62 |
| type: T2 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| typeParameters |
| T1 @22 |
| element: <not-implemented> |
| fields |
| hasInitializer v @30 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T2 @36 |
| element: <not-implemented> |
| constructors |
| const named @53 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named#element |
| typeName: A |
| typeNameOffset: 51 |
| periodOffset: 52 |
| formalParameters |
| a @62 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named::@parameter::a#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T1 |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A<int> |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A<dynamic>> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| const named |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| formalParameters |
| requiredPositional a |
| type: T2 |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_augmented_constructors_add_named_hasUnnamed() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| const A.named(); |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| const A(); |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| const @37 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| constructors |
| const named @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| periodOffset: 48 |
| nameEnd: 54 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| typeNameOffset: 37 |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| constructors |
| const named @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named#element |
| typeName: A |
| typeNameOffset: 47 |
| periodOffset: 48 |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| const named |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_augmented_constructors_add_unnamed() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| const A(); |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| constructors |
| const @47 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| constructors |
| const new |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new#element |
| typeName: A |
| typeNameOffset: 47 |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| const new |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_augmented_constructors_add_unnamed_hasNamed() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| const A(); |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| const A.named(); |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| const named @39 |
| reference: <testLibraryFragment>::@enum::A::@constructor::named |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| periodOffset: 38 |
| nameEnd: 44 |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new |
| <testLibraryFragment>::@enum::A::@constructor::named |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| constructors |
| const @47 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| const named @39 |
| reference: <testLibraryFragment>::@enum::A::@constructor::named |
| element: <testLibraryFragment>::@enum::A::@constructor::named#element |
| typeName: A |
| typeNameOffset: 37 |
| periodOffset: 38 |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| constructors |
| const new |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new#element |
| typeName: A |
| typeNameOffset: 47 |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| const named |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::named |
| const new |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_augmented_constructors_add_useFieldFormal() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| const A.named(this.f); |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v(0); |
| final int f; |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| final f @44 |
| reference: <testLibraryFragment>::@enum::A::@field::f |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| synthetic get f @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::f |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::f |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::f |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| constructors |
| const named @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| periodOffset: 48 |
| nameEnd: 54 |
| parameters |
| requiredPositional final this.f @60 |
| type: int |
| field: <testLibraryFragment>::@enum::A::@field::f |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| f @44 |
| reference: <testLibraryFragment>::@enum::A::@field::f |
| element: <testLibraryFragment>::@enum::A::@field::f#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::f |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic get f |
| reference: <testLibraryFragment>::@enum::A::@getter::f |
| element: <testLibraryFragment>::@enum::A::@getter::f#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| constructors |
| const named @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named#element |
| typeName: A |
| typeNameOffset: 47 |
| periodOffset: 48 |
| formalParameters |
| this.f @60 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named::@parameter::f#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final f |
| firstFragment: <testLibraryFragment>::@enum::A::@field::f |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::f#element |
| constructors |
| const named |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| formalParameters |
| requiredPositional final f |
| type: int |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get f |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::f |
| '''); |
| } |
| |
| test_augmented_constructors_add_useFieldInitializer() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| const A.named() : f = 0; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| final int f; |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| final f @41 |
| reference: <testLibraryFragment>::@enum::A::@field::f |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| synthetic get f @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::f |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::f |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::f |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| constructors |
| const named @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| periodOffset: 48 |
| nameEnd: 54 |
| constantInitializers |
| ConstructorFieldInitializer |
| fieldName: SimpleIdentifier |
| token: f @59 |
| staticElement: <testLibraryFragment>::@enum::A::@field::f |
| element: <testLibraryFragment>::@enum::A::@field::f#element |
| staticType: null |
| equals: = @61 |
| expression: IntegerLiteral |
| literal: 0 @63 |
| staticType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| f @41 |
| reference: <testLibraryFragment>::@enum::A::@field::f |
| element: <testLibraryFragment>::@enum::A::@field::f#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::f |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic get f |
| reference: <testLibraryFragment>::@enum::A::@getter::f |
| element: <testLibraryFragment>::@enum::A::@getter::f#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| constructors |
| const named @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named#element |
| typeName: A |
| typeNameOffset: 47 |
| periodOffset: 48 |
| constantInitializers |
| ConstructorFieldInitializer |
| fieldName: SimpleIdentifier |
| token: f @59 |
| staticElement: <testLibraryFragment>::@enum::A::@field::f |
| element: <testLibraryFragment>::@enum::A::@field::f#element |
| staticType: null |
| equals: = @61 |
| expression: IntegerLiteral |
| literal: 0 @63 |
| staticType: int |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final f |
| firstFragment: <testLibraryFragment>::@enum::A::@field::f |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::f#element |
| constructors |
| const named |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructor::named |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get f |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::f |
| '''); |
| } |
| |
| test_augmented_field_augment_field() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment final int foo = 1; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| final int foo = 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| final foo @41 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_2 |
| getter: getter_2 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| synthetic get foo @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmented |
| fields |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| augment final foo @59 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_3 |
| augmentationTarget: <testLibraryFragment>::@enum::A::@field::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| hasInitializer foo @41 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic get foo |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| fields |
| augment hasInitializer foo @59 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@field::foo |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final hasInitializer foo |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get foo |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| '''); |
| } |
| |
| test_augmented_field_augment_field2() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment final int foo = 1; |
| } |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment final int foo = 2; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| part 'b.dart'; |
| enum A { |
| v; |
| final int foo = 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| part_1 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| final foo @56 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_2 |
| getter: getter_2 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| synthetic get foo @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmented |
| fields |
| <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| fields |
| augment final foo @59 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_3 |
| augmentationTarget: <testLibraryFragment>::@enum::A::@field::foo |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| augment final foo @59 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_4 |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| hasInitializer foo @56 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic get foo |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| fields |
| augment hasInitializer foo @59 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@field::foo |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| augment hasInitializer foo @59 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final hasInitializer foo |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get foo |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| '''); |
| } |
| |
| test_augmented_field_augment_field_afterGetter() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment int get foo => 1; |
| } |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment final int foo = 2; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| part 'b.dart'; |
| enum A { |
| v; |
| final int foo = 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| part_1 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| final foo @56 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_2 |
| getter: getter_2 |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| synthetic get foo @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| augmented |
| fields |
| <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| accessors |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: int |
| id: getter_3 |
| variable: <null> |
| augmentationTarget: <testLibraryFragment>::@enum::A::@getter::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| augment final foo @59 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_3 |
| augmentationTarget: <testLibraryFragment>::@enum::A::@field::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| hasInitializer foo @56 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic get foo |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| getters |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| augment hasInitializer foo @59 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@field::foo |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final hasInitializer foo |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get foo |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| '''); |
| } |
| |
| test_augmented_field_augment_field_afterSetter() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment set foo(int _) {} |
| } |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment final int foo = 2; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| part 'b.dart'; |
| enum A { |
| v; |
| final int foo = 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| part_1 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| final foo @56 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_2 |
| getter: getter_2 |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| synthetic get foo @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmented |
| fields |
| <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::foo |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| accessors |
| augment set foo= @53 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| parameters |
| requiredPositional _ @61 |
| type: int |
| returnType: void |
| id: setter_0 |
| variable: <null> |
| augmentationTargetAny: <testLibraryFragment>::@enum::A::@getter::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| augment final foo @59 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_3 |
| augmentationTarget: <testLibraryFragment>::@enum::A::@field::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| hasInitializer foo @56 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic get foo |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| setters |
| augment set foo @53 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo#element |
| formalParameters |
| _ @61 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo::@parameter::_#element |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| augment hasInitializer foo @59 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@field::foo |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final hasInitializer foo |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get foo |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| setters |
| set foo |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo |
| formalParameters |
| requiredPositional _ |
| type: int |
| '''); |
| } |
| |
| test_augmented_field_augment_field_differentTypes() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment final double foo = 1.2; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| final int foo = 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| final foo @41 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_2 |
| getter: getter_2 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| synthetic get foo @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmented |
| fields |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| augment final foo @62 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: double |
| shouldUseTypeForInitializerInference: true |
| id: field_3 |
| augmentationTarget: <testLibraryFragment>::@enum::A::@field::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| hasInitializer foo @41 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic get foo |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| fields |
| augment hasInitializer foo @62 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@field::foo |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final hasInitializer foo |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get foo |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| '''); |
| } |
| |
| test_augmented_field_augment_field_functionExpression() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment final int Function() foo = () { |
| return augmented() + 1; |
| }; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| final int Function() foo = () { |
| return 0; |
| }; |
| } |
| '''); |
| |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| staticType: A |
| rightBracket: ] @0 |
| staticType: List<A> |
| final foo @52 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int Function() |
| shouldUseTypeForInitializerInference: true |
| constantInitializer |
| SimpleIdentifier |
| token: _notSerializableExpression @-1 |
| staticElement: <null> |
| element: <null> |
| staticType: null |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| synthetic get foo @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int Function() |
| augmented |
| fields |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| augment final foo @70 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: int Function() |
| shouldUseTypeForInitializerInference: true |
| constantInitializer |
| SimpleIdentifier |
| token: _notSerializableExpression @-1 |
| staticElement: <null> |
| element: <null> |
| staticType: null |
| augmentationTarget: <testLibraryFragment>::@enum::A::@field::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| hasInitializer foo @52 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic get foo |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| fields |
| augment hasInitializer foo @70 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@field::foo |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final hasInitializer foo |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo |
| type: int Function() |
| getter: <testLibraryFragment>::@enum::A::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get foo |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| '''); |
| } |
| |
| /// This is not allowed by the specification, but allowed syntactically, |
| /// so we need a way to handle it. |
| test_augmented_field_augment_getter() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment final int foo = 1; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| int get foo => 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| synthetic foo @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| id: field_2 |
| getter: getter_2 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| get foo @39 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmented |
| fields |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| augment final foo @59 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_3 |
| augmentationTarget: <testLibraryFragment>::@enum::A::@field::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic foo |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| get foo @39 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| fields |
| augment hasInitializer foo @59 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@fieldAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@field::foo |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic hasInitializer foo |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| get foo |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| '''); |
| } |
| |
| test_augmented_fields_add() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| final int foo2 = 0; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| final int foo1 = 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| final foo1 @41 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_2 |
| getter: getter_2 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| synthetic get foo1 @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::foo1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::foo1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| final foo2 @51 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_3 |
| getter: getter_3 |
| accessors |
| synthetic get foo2 @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: int |
| id: getter_3 |
| variable: field_3 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| hasInitializer foo1 @41 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| element: <testLibraryFragment>::@enum::A::@field::foo1#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo1 |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic get foo1 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo1 |
| element: <testLibraryFragment>::@enum::A::@getter::foo1#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| fields |
| hasInitializer foo2 @51 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| getters |
| synthetic get foo2 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final hasInitializer foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo1 |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo1#element |
| final hasInitializer foo2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| type: int |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo1 |
| synthetic get foo2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| '''); |
| } |
| |
| test_augmented_fields_add_generic() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A<T1> {; |
| final T1 foo2; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A<T1> { |
| v<int>(); |
| final T1 foo1; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T1 @22 |
| defaultType: dynamic |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @30 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A<int> |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A<dynamic>> |
| id: field_1 |
| getter: getter_1 |
| final foo1 @51 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: T1 |
| id: field_2 |
| getter: getter_2 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A<int> |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A<dynamic>> |
| id: getter_1 |
| variable: field_1 |
| synthetic get foo1 @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: T1 |
| id: getter_2 |
| variable: field_2 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::foo1 |
| FieldMember |
| base: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| augmentationSubstitution: {T1: T1} |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::foo1 |
| GetterMember |
| base: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| augmentationSubstitution: {T1: T1} |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| typeParameters |
| covariant T1 @36 |
| defaultType: dynamic |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| final foo2 @54 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: T1 |
| id: field_3 |
| getter: getter_3 |
| accessors |
| synthetic get foo2 @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: T1 |
| id: getter_3 |
| variable: field_3 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| typeParameters |
| T1 @22 |
| element: <not-implemented> |
| fields |
| hasInitializer v @30 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| foo1 @51 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| element: <testLibraryFragment>::@enum::A::@field::foo1#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo1 |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic get foo1 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo1 |
| element: <testLibraryFragment>::@enum::A::@getter::foo1#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T1 @36 |
| element: <not-implemented> |
| fields |
| foo2 @54 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| getters |
| synthetic get foo2 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T1 |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A<int> |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A<dynamic>> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo1 |
| type: T1 |
| getter: <testLibraryFragment>::@enum::A::@getter::foo1#element |
| final foo2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| type: T1 |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo1 |
| synthetic get foo2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| '''); |
| } |
| |
| test_augmented_fields_add_useFieldFormal() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| final int foo; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v(0); |
| const A(this.foo); |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| const @40 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| parameters |
| requiredPositional final this.foo @47 |
| type: int |
| field: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| fields |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| final foo @51 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: int |
| accessors |
| synthetic get foo @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| typeNameOffset: 40 |
| formalParameters |
| this.foo @47 |
| element: <testLibraryFragment>::@enum::A::@constructor::new::@parameter::foo#element |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| fields |
| foo @51 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo |
| getters |
| synthetic get foo |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final foo |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo |
| type: int |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| formalParameters |
| requiredPositional final foo |
| type: int |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get foo |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo |
| '''); |
| } |
| |
| test_augmented_fields_add_useFieldInitializer() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| final int foo; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| const A() : foo = 0; |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| const @37 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| constantInitializers |
| ConstructorFieldInitializer |
| fieldName: SimpleIdentifier |
| token: foo @43 |
| staticElement: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo#element |
| staticType: null |
| equals: = @47 |
| expression: IntegerLiteral |
| literal: 0 @49 |
| staticType: int |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| fields |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| final foo @51 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: int |
| accessors |
| synthetic get foo @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| typeNameOffset: 37 |
| constantInitializers |
| ConstructorFieldInitializer |
| fieldName: SimpleIdentifier |
| token: foo @43 |
| staticElement: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo#element |
| staticType: null |
| equals: = @47 |
| expression: IntegerLiteral |
| literal: 0 @49 |
| staticType: int |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| fields |
| foo @51 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo |
| getters |
| synthetic get foo |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final foo |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo |
| type: int |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get foo |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo |
| '''); |
| } |
| |
| test_augmented_getters_add() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| int get foo2 => 0; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| int get foo1 => 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| synthetic foo1 @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| id: field_2 |
| getter: getter_2 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| get foo1 @39 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::foo1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::foo1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| synthetic foo2 @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: int |
| id: field_3 |
| getter: getter_3 |
| accessors |
| get foo2 @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: int |
| id: getter_3 |
| variable: field_3 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic foo1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| element: <testLibraryFragment>::@enum::A::@field::foo1#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo1 |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| get foo1 @39 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo1 |
| element: <testLibraryFragment>::@enum::A::@getter::foo1#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| fields |
| synthetic foo2 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| getters |
| get foo2 @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo1 |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo1#element |
| synthetic foo2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| type: int |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| get foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo1 |
| get foo2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| '''); |
| } |
| |
| test_augmented_getters_add_generic() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A<T1> {; |
| T1 get foo2; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A<T1> { |
| v<int>(); |
| T1 get foo1; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T1 @22 |
| defaultType: dynamic |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @30 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A<int> |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A<dynamic>> |
| id: field_1 |
| getter: getter_1 |
| synthetic foo1 @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: T1 |
| id: field_2 |
| getter: getter_2 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A<int> |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A<dynamic>> |
| id: getter_1 |
| variable: field_1 |
| abstract get foo1 @49 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: T1 |
| id: getter_2 |
| variable: field_2 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::foo1 |
| FieldMember |
| base: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| augmentationSubstitution: {T1: T1} |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::foo1 |
| GetterMember |
| base: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| augmentationSubstitution: {T1: T1} |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| typeParameters |
| covariant T1 @36 |
| defaultType: dynamic |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| synthetic foo2 @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: T1 |
| id: field_3 |
| getter: getter_3 |
| accessors |
| abstract get foo2 @52 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: T1 |
| id: getter_3 |
| variable: field_3 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| typeParameters |
| T1 @22 |
| element: <not-implemented> |
| fields |
| hasInitializer v @30 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic foo1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| element: <testLibraryFragment>::@enum::A::@field::foo1#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo1 |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| get foo1 @49 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo1 |
| element: <testLibraryFragment>::@enum::A::@getter::foo1#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T1 @36 |
| element: <not-implemented> |
| fields |
| synthetic foo2 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2#element |
| getter2: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| getters |
| get foo2 @52 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T1 |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A<int> |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A<dynamic>> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo1 |
| type: T1 |
| getter: <testLibraryFragment>::@enum::A::@getter::foo1#element |
| synthetic foo2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| type: T1 |
| getter: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| abstract get foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo1 |
| abstract get foo2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getter::foo2 |
| '''); |
| } |
| |
| test_augmented_getters_augment_field() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment int get foo => 0; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| final int foo = 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| final foo @41 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_2 |
| getter: getter_2 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| synthetic get foo @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| accessors |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: int |
| id: getter_3 |
| variable: <null> |
| augmentationTarget: <testLibraryFragment>::@enum::A::@getter::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| hasInitializer foo @41 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic get foo |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| getters |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final hasInitializer foo |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get foo |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| '''); |
| } |
| |
| test_augmented_getters_augment_field2() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment int get foo => 0; |
| } |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment int get foo => 0; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| part 'b.dart'; |
| enum A { |
| v; |
| final int foo = 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| part_1 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| final foo @56 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_2 |
| getter: getter_2 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| synthetic get foo @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getterAugmentation::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| accessors |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: int |
| id: getter_3 |
| variable: <null> |
| augmentationTarget: <testLibraryFragment>::@enum::A::@getter::foo |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getterAugmentation::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| accessors |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getterAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| returnType: int |
| id: getter_4 |
| variable: <null> |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| hasInitializer foo @56 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic get foo |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| getters |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getterAugmentation::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| getters |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getterAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final hasInitializer foo |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get foo |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| '''); |
| } |
| |
| test_augmented_getters_augment_getter() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment int get foo1 => 0; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| int get foo1 => 0; |
| int get foo2 => 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| synthetic foo1 @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| id: field_2 |
| getter: getter_2 |
| synthetic foo2 @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo2 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| id: field_3 |
| getter: getter_3 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| get foo1 @39 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo1 |
| get foo2 @60 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo2 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_3 |
| variable: field_3 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::foo1 |
| <testLibraryFragment>::@enum::A::@field::foo2 |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo1 |
| <testLibraryFragment>::@enum::A::@getter::foo2 |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| accessors |
| augment get foo1 @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo1 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: int |
| id: getter_4 |
| variable: <null> |
| augmentationTarget: <testLibraryFragment>::@enum::A::@getter::foo1 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic foo1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| element: <testLibraryFragment>::@enum::A::@field::foo1#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo1 |
| synthetic foo2 |
| reference: <testLibraryFragment>::@enum::A::@field::foo2 |
| element: <testLibraryFragment>::@enum::A::@field::foo2#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo2 |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| get foo1 @39 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo1 |
| element: <testLibraryFragment>::@enum::A::@getter::foo1#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo1 |
| get foo2 @60 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo2 |
| element: <testLibraryFragment>::@enum::A::@getter::foo2#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| getters |
| augment get foo1 @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo1 |
| element: <testLibraryFragment>::@enum::A::@getter::foo1#element |
| previousFragment: <testLibraryFragment>::@enum::A::@getter::foo1 |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo1 |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo1#element |
| synthetic foo2 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo2 |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo2#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| get foo2 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo2 |
| get foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo1 |
| '''); |
| } |
| |
| test_augmented_getters_augment_getter2_oneLib_oneTop() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment int get foo => 0; |
| augment int get foo => 0; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| int get foo => 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| synthetic foo @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| id: field_2 |
| getter: getter_2 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| get foo @39 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo::@def::0 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo::@def::1 |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| accessors |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo::@def::0 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: int |
| id: getter_3 |
| variable: <null> |
| augmentationTarget: <testLibraryFragment>::@enum::A::@getter::foo |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo::@def::1 |
| augment get foo @85 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo::@def::1 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: int |
| id: getter_4 |
| variable: <null> |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo::@def::0 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic foo |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| get foo @39 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo::@def::0 |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| getters |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo::@def::0 |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo::@def::1 |
| augment get foo @85 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo::@def::1 |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo::@def::0 |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic foo |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| get foo |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| '''); |
| } |
| |
| test_augmented_getters_augment_getter2_twoLib() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment int get foo => 0; |
| } |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment int get foo => 0; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| part 'b.dart'; |
| enum A { |
| v; |
| int get foo => 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| part_1 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| synthetic foo @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| id: field_2 |
| getter: getter_2 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| get foo @54 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getterAugmentation::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| accessors |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: int |
| id: getter_3 |
| variable: <null> |
| augmentationTarget: <testLibraryFragment>::@enum::A::@getter::foo |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getterAugmentation::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| accessors |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getterAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| returnType: int |
| id: getter_4 |
| variable: <null> |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic foo |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| get foo @54 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| getters |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getterAugmentation::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| getters |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getterAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic foo |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| get foo |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| '''); |
| } |
| |
| test_augmented_getters_augment_nothing() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment int get foo => 0; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withConstructors = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| accessors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| accessors |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: int |
| id: getter_2 |
| variable: <null> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| getters |
| augment get foo @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| get foo |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@getterAugmentation::foo |
| '''); |
| } |
| |
| test_augmented_interfaces() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A implements I2 {} |
| class I2 {} |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A implements I1 { |
| v |
| } |
| class I1 {} |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| classes |
| class I1 @50 |
| reference: <testLibraryFragment>::@class::I1 |
| enclosingElement3: <testLibraryFragment> |
| constructors |
| synthetic @-1 |
| reference: <testLibraryFragment>::@class::I1::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::I1 |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| interfaces |
| I1 |
| fields |
| static const enumConstant v @40 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| interfaces |
| I1 |
| I2 |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| classes |
| class I2 @59 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| constructors |
| synthetic @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| interfaces |
| I2 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| classes |
| class I1 @50 |
| reference: <testLibraryFragment>::@class::I1 |
| element: <testLibrary>::@class::I1 |
| constructors |
| synthetic new |
| reference: <testLibraryFragment>::@class::I1::@constructor::new |
| element: <testLibraryFragment>::@class::I1::@constructor::new#element |
| typeName: I1 |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @40 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| classes |
| class I2 @59 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| element: <testLibrary>::@class::I2 |
| constructors |
| synthetic new |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new |
| element: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new#element |
| typeName: I2 |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| classes |
| class I1 |
| reference: <testLibrary>::@class::I1 |
| firstFragment: <testLibraryFragment>::@class::I1 |
| constructors |
| synthetic new |
| firstFragment: <testLibraryFragment>::@class::I1::@constructor::new |
| class I2 |
| reference: <testLibrary>::@class::I2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| constructors |
| synthetic new |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| interfaces |
| I1 |
| I2 |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_augmented_interfaces_chain() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| part 'b.dart'; |
| augment enum A implements I2 {} |
| class I2 {} |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'a.dart'; |
| augment enum A implements I3 {} |
| class I3 {} |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A implements I1 { |
| v |
| } |
| class I1 {} |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| classes |
| class I1 @50 |
| reference: <testLibraryFragment>::@class::I1 |
| enclosingElement3: <testLibraryFragment> |
| constructors |
| synthetic @-1 |
| reference: <testLibraryFragment>::@class::I1::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::I1 |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| interfaces |
| I1 |
| fields |
| static const enumConstant v @40 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| interfaces |
| I1 |
| I2 |
| I3 |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| parts |
| part_1 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| classes |
| class I2 @74 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| constructors |
| synthetic @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| enums |
| augment enum A @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| interfaces |
| I2 |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| classes |
| class I3 @56 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@class::I3 |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| constructors |
| synthetic @-1 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@class::I3::@constructor::new |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@class::I3 |
| enums |
| augment enum A @31 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| interfaces |
| I3 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| classes |
| class I1 @50 |
| reference: <testLibraryFragment>::@class::I1 |
| element: <testLibrary>::@class::I1 |
| constructors |
| synthetic new |
| reference: <testLibraryFragment>::@class::I1::@constructor::new |
| element: <testLibraryFragment>::@class::I1::@constructor::new#element |
| typeName: I1 |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @40 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| classes |
| class I2 @74 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| element: <testLibrary>::@class::I2 |
| constructors |
| synthetic new |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new |
| element: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new#element |
| typeName: I2 |
| enums |
| enum A @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibrary>::@fragment::package:test/a.dart |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart |
| classes |
| class I3 @56 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@class::I3 |
| element: <testLibrary>::@class::I3 |
| constructors |
| synthetic new |
| reference: <testLibrary>::@fragment::package:test/b.dart::@class::I3::@constructor::new |
| element: <testLibrary>::@fragment::package:test/b.dart::@class::I3::@constructor::new#element |
| typeName: I3 |
| enums |
| enum A @31 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| classes |
| class I1 |
| reference: <testLibrary>::@class::I1 |
| firstFragment: <testLibraryFragment>::@class::I1 |
| constructors |
| synthetic new |
| firstFragment: <testLibraryFragment>::@class::I1::@constructor::new |
| class I2 |
| reference: <testLibrary>::@class::I2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| constructors |
| synthetic new |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new |
| class I3 |
| reference: <testLibrary>::@class::I3 |
| firstFragment: <testLibrary>::@fragment::package:test/b.dart::@class::I3 |
| constructors |
| synthetic new |
| firstFragment: <testLibrary>::@fragment::package:test/b.dart::@class::I3::@constructor::new |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| interfaces |
| I1 |
| I2 |
| I3 |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_augmented_interfaces_generic() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A<T2> implements I2<T2> {} |
| class I2<E> {} |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A<T> implements I1 { |
| v<int>() |
| } |
| class I1 {} |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| classes |
| class I1 @60 |
| reference: <testLibraryFragment>::@class::I1 |
| enclosingElement3: <testLibraryFragment> |
| constructors |
| synthetic @-1 |
| reference: <testLibraryFragment>::@class::I1::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::I1 |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @22 |
| defaultType: dynamic |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| interfaces |
| I1 |
| fields |
| static const enumConstant v @43 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A<int> |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A<int> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A<dynamic>> |
| augmented |
| interfaces |
| I1 |
| I2<T> |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| classes |
| class I2 @67 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| typeParameters |
| covariant E @70 |
| defaultType: dynamic |
| constructors |
| synthetic @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| typeParameters |
| covariant T2 @36 |
| defaultType: dynamic |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| interfaces |
| I2<T2> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| classes |
| class I1 @60 |
| reference: <testLibraryFragment>::@class::I1 |
| element: <testLibrary>::@class::I1 |
| constructors |
| synthetic new |
| reference: <testLibraryFragment>::@class::I1::@constructor::new |
| element: <testLibraryFragment>::@class::I1::@constructor::new#element |
| typeName: I1 |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| typeParameters |
| T @22 |
| element: <not-implemented> |
| fields |
| hasInitializer v @43 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| classes |
| class I2 @67 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| element: <testLibrary>::@class::I2 |
| typeParameters |
| E @70 |
| element: <not-implemented> |
| constructors |
| synthetic new |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new |
| element: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new#element |
| typeName: I2 |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T2 @36 |
| element: <not-implemented> |
| classes |
| class I1 |
| reference: <testLibrary>::@class::I1 |
| firstFragment: <testLibraryFragment>::@class::I1 |
| constructors |
| synthetic new |
| firstFragment: <testLibraryFragment>::@class::I1::@constructor::new |
| class I2 |
| reference: <testLibrary>::@class::I2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| typeParameters |
| E |
| constructors |
| synthetic new |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T |
| supertype: Enum |
| interfaces |
| I1 |
| I2<T> |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A<int> |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A<dynamic>> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_augmented_interfaces_generic_mismatch() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A<T2, T3> implements I2<T2> {} |
| class I2<E> {} |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A<T> implements I1 { |
| v |
| } |
| class I1 {} |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| classes |
| class I1 @53 |
| reference: <testLibraryFragment>::@class::I1 |
| enclosingElement3: <testLibraryFragment> |
| constructors |
| synthetic @-1 |
| reference: <testLibraryFragment>::@class::I1::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::I1 |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @22 |
| defaultType: dynamic |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| interfaces |
| I1 |
| fields |
| static const enumConstant v @43 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A<dynamic> |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A<dynamic> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A<dynamic>> |
| augmented |
| interfaces |
| I1 |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| classes |
| class I2 @71 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| typeParameters |
| covariant E @74 |
| defaultType: dynamic |
| constructors |
| synthetic @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| typeParameters |
| covariant T2 @36 |
| defaultType: dynamic |
| covariant T3 @40 |
| defaultType: dynamic |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| interfaces |
| I2<T2> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| classes |
| class I1 @53 |
| reference: <testLibraryFragment>::@class::I1 |
| element: <testLibrary>::@class::I1 |
| constructors |
| synthetic new |
| reference: <testLibraryFragment>::@class::I1::@constructor::new |
| element: <testLibraryFragment>::@class::I1::@constructor::new#element |
| typeName: I1 |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| typeParameters |
| T @22 |
| element: <not-implemented> |
| fields |
| hasInitializer v @43 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| classes |
| class I2 @71 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| element: <testLibrary>::@class::I2 |
| typeParameters |
| E @74 |
| element: <not-implemented> |
| constructors |
| synthetic new |
| reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new |
| element: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new#element |
| typeName: I2 |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T2 @36 |
| element: <not-implemented> |
| T3 @40 |
| element: <not-implemented> |
| classes |
| class I1 |
| reference: <testLibrary>::@class::I1 |
| firstFragment: <testLibraryFragment>::@class::I1 |
| constructors |
| synthetic new |
| firstFragment: <testLibraryFragment>::@class::I1::@constructor::new |
| class I2 |
| reference: <testLibrary>::@class::I2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@class::I2 |
| typeParameters |
| E |
| constructors |
| synthetic new |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T |
| supertype: Enum |
| interfaces |
| I1 |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A<dynamic> |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A<dynamic>> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_augmented_methods() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| void bar() {} |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| void foo() {} |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| methods |
| foo @36 |
| reference: <testLibraryFragment>::@enum::A::@method::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: void |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar |
| <testLibraryFragment>::@enum::A::@method::foo |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| methods |
| bar @46 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: void |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| methods |
| foo @36 |
| reference: <testLibraryFragment>::@enum::A::@method::foo |
| element: <testLibraryFragment>::@enum::A::@method::foo#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| methods |
| bar @46 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| foo |
| reference: <testLibrary>::@enum::A::@method::foo |
| firstFragment: <testLibraryFragment>::@enum::A::@method::foo |
| bar |
| reference: <testLibrary>::@enum::A::@method::bar |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar |
| '''); |
| } |
| |
| test_augmented_methods_add_withDefaultValue() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| void foo([int x = 42]) {} |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v |
| } |
| '''); |
| |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| staticType: A |
| rightBracket: ] @0 |
| staticType: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::foo |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| methods |
| foo @46 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| parameters |
| optionalPositional default x @55 |
| type: int |
| constantInitializer |
| IntegerLiteral |
| literal: 42 @59 |
| staticType: int |
| returnType: void |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| methods |
| foo @46 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::foo |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::foo#element |
| formalParameters |
| default x @55 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::foo::@parameter::x#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| foo |
| reference: <testLibrary>::@enum::A::@method::foo |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::foo |
| formalParameters |
| optionalPositional x |
| type: int |
| '''); |
| } |
| |
| test_augmented_methods_augment() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment void foo1() {} |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| void foo1() {} |
| void foo2() {} |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| methods |
| foo1 @36 |
| reference: <testLibraryFragment>::@enum::A::@method::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: void |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo1 |
| foo2 @53 |
| reference: <testLibraryFragment>::@enum::A::@method::foo2 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: void |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo1 |
| <testLibraryFragment>::@enum::A::@method::foo2 |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| methods |
| augment foo1 @54 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo1 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: void |
| augmentationTarget: <testLibraryFragment>::@enum::A::@method::foo1 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| methods |
| foo1 @36 |
| reference: <testLibraryFragment>::@enum::A::@method::foo1 |
| element: <testLibraryFragment>::@enum::A::@method::foo1#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo1 |
| foo2 @53 |
| reference: <testLibraryFragment>::@enum::A::@method::foo2 |
| element: <testLibraryFragment>::@enum::A::@method::foo2#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| methods |
| augment foo1 @54 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo1 |
| element: <testLibraryFragment>::@enum::A::@method::foo1#element |
| previousFragment: <testLibraryFragment>::@enum::A::@method::foo1 |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| foo1 |
| reference: <testLibrary>::@enum::A::@method::foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@method::foo1 |
| foo2 |
| reference: <testLibrary>::@enum::A::@method::foo2 |
| firstFragment: <testLibraryFragment>::@enum::A::@method::foo2 |
| '''); |
| } |
| |
| test_augmented_methods_augment2_oneLib_oneTop() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment void foo() {} |
| augment void foo() {} |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| void foo() {} |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| methods |
| foo @36 |
| reference: <testLibraryFragment>::@enum::A::@method::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: void |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo::@def::0 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo::@def::1 |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| methods |
| augment foo @54 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo::@def::0 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: void |
| augmentationTarget: <testLibraryFragment>::@enum::A::@method::foo |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo::@def::1 |
| augment foo @78 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo::@def::1 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: void |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo::@def::0 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| methods |
| foo @36 |
| reference: <testLibraryFragment>::@enum::A::@method::foo |
| element: <testLibraryFragment>::@enum::A::@method::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo::@def::0 |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| methods |
| augment foo @54 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo::@def::0 |
| element: <testLibraryFragment>::@enum::A::@method::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@method::foo |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo::@def::1 |
| augment foo @78 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo::@def::1 |
| element: <testLibraryFragment>::@enum::A::@method::foo#element |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo::@def::0 |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| foo |
| reference: <testLibrary>::@enum::A::@method::foo |
| firstFragment: <testLibraryFragment>::@enum::A::@method::foo |
| '''); |
| } |
| |
| test_augmented_methods_augment2_oneLib_twoTop() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment void foo() {} |
| } |
| augment enum A {; |
| augment void foo() {} |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| void foo() {} |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| methods |
| foo @36 |
| reference: <testLibraryFragment>::@enum::A::@method::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: void |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@methodAugmentation::foo |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1::@methodAugmentation::foo |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1 |
| methods |
| augment foo @54 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@methodAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| returnType: void |
| augmentationTarget: <testLibraryFragment>::@enum::A::@method::foo |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1::@methodAugmentation::foo |
| augment enum A @78 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| methods |
| augment foo @98 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1::@methodAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1 |
| returnType: void |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@methodAugmentation::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| methods |
| foo @36 |
| reference: <testLibraryFragment>::@enum::A::@method::foo |
| element: <testLibraryFragment>::@enum::A::@method::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@methodAugmentation::foo |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1 |
| methods |
| augment foo @54 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@methodAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@method::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@method::foo |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1::@methodAugmentation::foo |
| enum A @78 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1 |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0 |
| methods |
| augment foo @98 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::1::@methodAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@method::foo#element |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@def::0::@methodAugmentation::foo |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| foo |
| reference: <testLibrary>::@enum::A::@method::foo |
| firstFragment: <testLibraryFragment>::@enum::A::@method::foo |
| '''); |
| } |
| |
| test_augmented_methods_augment2_twoLib() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| part 'b.dart'; |
| augment enum A {; |
| augment void foo() {} |
| } |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'a.dart'; |
| augment enum A {; |
| augment void foo() {} |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| void foo() {} |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| methods |
| foo @36 |
| reference: <testLibraryFragment>::@enum::A::@method::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: void |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@methodAugmentation::foo |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| parts |
| part_1 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| augment enum A @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| methods |
| augment foo @69 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: void |
| augmentationTarget: <testLibraryFragment>::@enum::A::@method::foo |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@methodAugmentation::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| augment enum A @31 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| methods |
| augment foo @51 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@methodAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| returnType: void |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| methods |
| foo @36 |
| reference: <testLibraryFragment>::@enum::A::@method::foo |
| element: <testLibraryFragment>::@enum::A::@method::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @49 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| methods |
| augment foo @69 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@method::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@method::foo |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@methodAugmentation::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibrary>::@fragment::package:test/a.dart |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @31 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| methods |
| augment foo @51 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@methodAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@method::foo#element |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| foo |
| reference: <testLibrary>::@enum::A::@method::foo |
| firstFragment: <testLibraryFragment>::@enum::A::@method::foo |
| '''); |
| } |
| |
| test_augmented_methods_generic() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A<T2> {; |
| T2 bar() => throw 0; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A<T> { |
| v<int>(); |
| T foo() => throw 0; |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @22 |
| defaultType: dynamic |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @29 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A<int> |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A<int> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A<dynamic>> |
| methods |
| foo @43 |
| reference: <testLibraryFragment>::@enum::A::@method::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: T |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| MethodMember |
| base: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar |
| augmentationSubstitution: {T2: T} |
| <testLibraryFragment>::@enum::A::@method::foo |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| typeParameters |
| covariant T2 @36 |
| defaultType: dynamic |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| methods |
| bar @48 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: T2 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| typeParameters |
| T @22 |
| element: <not-implemented> |
| fields |
| hasInitializer v @29 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| methods |
| foo @43 |
| reference: <testLibraryFragment>::@enum::A::@method::foo |
| element: <testLibraryFragment>::@enum::A::@method::foo#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T2 @36 |
| element: <not-implemented> |
| methods |
| bar @48 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A<int> |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A<dynamic>> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| foo |
| reference: <testLibrary>::@enum::A::@method::foo |
| firstFragment: <testLibraryFragment>::@enum::A::@method::foo |
| bar |
| reference: <testLibrary>::@enum::A::@method::bar |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@method::bar |
| '''); |
| } |
| |
| test_augmented_methods_generic_augment() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A<T2> {; |
| augment T2 foo() => throw 0; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A<T> { |
| v<int>(); |
| T foo() => throw 0; |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @22 |
| defaultType: dynamic |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @29 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A<int> |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A<int> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A<dynamic>> |
| methods |
| foo @43 |
| reference: <testLibraryFragment>::@enum::A::@method::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: T |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| MethodMember |
| base: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo |
| augmentationSubstitution: {T2: T} |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| typeParameters |
| covariant T2 @36 |
| defaultType: dynamic |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| methods |
| augment foo @56 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| returnType: T2 |
| augmentationTarget: <testLibraryFragment>::@enum::A::@method::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| typeParameters |
| T @22 |
| element: <not-implemented> |
| fields |
| hasInitializer v @29 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| methods |
| foo @43 |
| reference: <testLibraryFragment>::@enum::A::@method::foo |
| element: <testLibraryFragment>::@enum::A::@method::foo#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T2 @36 |
| element: <not-implemented> |
| methods |
| augment foo @56 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@methodAugmentation::foo |
| element: <testLibraryFragment>::@enum::A::@method::foo#element |
| previousFragment: <testLibraryFragment>::@enum::A::@method::foo |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A<int> |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A<dynamic>> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| methods |
| foo |
| reference: <testLibrary>::@enum::A::@method::foo |
| firstFragment: <testLibraryFragment>::@enum::A::@method::foo |
| '''); |
| } |
| |
| test_augmented_mixins() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A with M2 {} |
| mixin M2 {} |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A with M1 { |
| v |
| } |
| mixin M1 {} |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| mixins |
| M1 |
| fields |
| static const enumConstant v @34 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| mixins |
| M1 |
| M2 |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| mixins |
| mixin M1 @44 |
| reference: <testLibraryFragment>::@mixin::M1 |
| enclosingElement3: <testLibraryFragment> |
| superclassConstraints |
| Object |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| mixins |
| M2 |
| mixins |
| mixin M2 @53 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@mixin::M2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| superclassConstraints |
| Object |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @34 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| mixins |
| mixin M1 @44 |
| reference: <testLibraryFragment>::@mixin::M1 |
| element: <testLibrary>::@mixin::M1 |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| mixins |
| mixin M2 @53 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@mixin::M2 |
| element: <testLibrary>::@mixin::M2 |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| mixins |
| M1 |
| M2 |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| mixins |
| mixin M1 |
| reference: <testLibrary>::@mixin::M1 |
| firstFragment: <testLibraryFragment>::@mixin::M1 |
| superclassConstraints |
| Object |
| mixin M2 |
| reference: <testLibrary>::@mixin::M2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@mixin::M2 |
| superclassConstraints |
| Object |
| '''); |
| } |
| |
| test_augmented_mixins_inferredTypeArguments() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A<T2> with M2 {} |
| mixin M2<U2> on M1<U2> {} |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'test.dart'; |
| augment enum A<T3> with M3 {} |
| mixin M3<U3> on M2<U3> {} |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| part 'b.dart'; |
| enum A<T1> with M1<T1> { |
| v<int>() |
| } |
| mixin M1<U1> {} |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| part_1 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T1 @37 |
| defaultType: dynamic |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| mixins |
| M1<T1> |
| fields |
| static const enumConstant v @57 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A<int> |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A<dynamic>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A<int> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A<dynamic>> |
| augmented |
| mixins |
| M1<T1> |
| M2<T1> |
| M3<T1> |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| mixins |
| mixin M1 @74 |
| reference: <testLibraryFragment>::@mixin::M1 |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant U1 @77 |
| defaultType: dynamic |
| superclassConstraints |
| Object |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| typeParameters |
| covariant T2 @36 |
| defaultType: dynamic |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| mixins |
| M2<T2> |
| mixins |
| mixin M2 @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@mixin::M2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| typeParameters |
| covariant U2 @60 |
| defaultType: dynamic |
| superclassConstraints |
| M1<U2> |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| typeParameters |
| covariant T3 @36 |
| defaultType: dynamic |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| mixins |
| M3<T3> |
| mixins |
| mixin M3 @57 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@mixin::M3 |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| typeParameters |
| covariant U3 @60 |
| defaultType: dynamic |
| superclassConstraints |
| M2<U3> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| typeParameters |
| T1 @37 |
| element: <not-implemented> |
| fields |
| hasInitializer v @57 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| mixins |
| mixin M1 @74 |
| reference: <testLibraryFragment>::@mixin::M1 |
| element: <testLibrary>::@mixin::M1 |
| typeParameters |
| U1 @77 |
| element: <not-implemented> |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| typeParameters |
| T2 @36 |
| element: <not-implemented> |
| mixins |
| mixin M2 @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@mixin::M2 |
| element: <testLibrary>::@mixin::M2 |
| typeParameters |
| U2 @60 |
| element: <not-implemented> |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| typeParameters |
| T3 @36 |
| element: <not-implemented> |
| mixins |
| mixin M3 @57 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@mixin::M3 |
| element: <testLibrary>::@mixin::M3 |
| typeParameters |
| U3 @60 |
| element: <not-implemented> |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T1 |
| supertype: Enum |
| mixins |
| M1<T1> |
| M2<T1> |
| M3<T1> |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A<int> |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A<dynamic>> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| mixins |
| mixin M1 |
| reference: <testLibrary>::@mixin::M1 |
| firstFragment: <testLibraryFragment>::@mixin::M1 |
| typeParameters |
| U1 |
| superclassConstraints |
| Object |
| mixin M2 |
| reference: <testLibrary>::@mixin::M2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@mixin::M2 |
| typeParameters |
| U2 |
| superclassConstraints |
| M1<U2> |
| mixin M3 |
| reference: <testLibrary>::@mixin::M3 |
| firstFragment: <testLibrary>::@fragment::package:test/b.dart::@mixin::M3 |
| typeParameters |
| U3 |
| superclassConstraints |
| M2<U3> |
| '''); |
| } |
| |
| test_augmented_setters_add() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| set foo2(int _) {} |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| set foo1(int _) {} |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| synthetic foo1 @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| id: field_2 |
| setter: setter_0 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| set foo1= @35 |
| reference: <testLibraryFragment>::@enum::A::@setter::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| parameters |
| requiredPositional _ @44 |
| type: int |
| returnType: void |
| id: setter_0 |
| variable: field_2 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::foo1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@setter::foo1 |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setter::foo2 |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| fields |
| synthetic foo2 @-1 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| type: int |
| id: field_3 |
| setter: setter_1 |
| accessors |
| set foo2= @45 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setter::foo2 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| parameters |
| requiredPositional _ @54 |
| type: int |
| returnType: void |
| id: setter_1 |
| variable: field_3 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic foo1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| element: <testLibraryFragment>::@enum::A::@field::foo1#element |
| setter2: <testLibraryFragment>::@enum::A::@setter::foo1 |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| setters |
| set foo1 @35 |
| reference: <testLibraryFragment>::@enum::A::@setter::foo1 |
| element: <testLibraryFragment>::@enum::A::@setter::foo1#element |
| formalParameters |
| _ @44 |
| element: <testLibraryFragment>::@enum::A::@setter::foo1::@parameter::_#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| fields |
| synthetic foo2 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2#element |
| setter2: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setter::foo2 |
| setters |
| set foo2 @45 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setter::foo2 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setter::foo2#element |
| formalParameters |
| _ @54 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setter::foo2::@parameter::_#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo1 |
| type: int |
| setter: <testLibraryFragment>::@enum::A::@setter::foo1#element |
| synthetic foo2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@field::foo2 |
| type: int |
| setter: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setter::foo2#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| setters |
| set foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@setter::foo1 |
| formalParameters |
| requiredPositional _ |
| type: int |
| set foo2 |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setter::foo2 |
| formalParameters |
| requiredPositional _ |
| type: int |
| '''); |
| } |
| |
| test_augmented_setters_augment_field() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment set foo(int _) {} |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| final int foo = 0; |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| final foo @41 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| shouldUseTypeForInitializerInference: true |
| id: field_2 |
| getter: getter_2 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| synthetic get foo @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: int |
| id: getter_2 |
| variable: field_2 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::foo |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::foo |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| accessors |
| augment set foo= @53 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| parameters |
| requiredPositional _ @61 |
| type: int |
| returnType: void |
| id: setter_0 |
| variable: <null> |
| augmentationTargetAny: <testLibraryFragment>::@enum::A::@getter::foo |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| hasInitializer foo @41 |
| reference: <testLibraryFragment>::@enum::A::@field::foo |
| element: <testLibraryFragment>::@enum::A::@field::foo#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::foo |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic get foo |
| reference: <testLibraryFragment>::@enum::A::@getter::foo |
| element: <testLibraryFragment>::@enum::A::@getter::foo#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| setters |
| augment set foo @53 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo#element |
| formalParameters |
| _ @61 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo::@parameter::_#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| final hasInitializer foo |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo |
| type: int |
| getter: <testLibraryFragment>::@enum::A::@getter::foo#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic get foo |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::foo |
| setters |
| set foo |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo |
| formalParameters |
| requiredPositional _ |
| type: int |
| '''); |
| } |
| |
| test_augmented_setters_augment_nothing() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment set foo(int _) {} |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| accessors |
| augment set foo= @53 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| parameters |
| requiredPositional _ @61 |
| type: int |
| returnType: void |
| id: setter_0 |
| variable: <null> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| setters |
| augment set foo @53 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo#element |
| formalParameters |
| _ @61 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo::@parameter::_#element |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| setters |
| set foo |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo |
| formalParameters |
| requiredPositional _ |
| type: int |
| '''); |
| } |
| |
| test_augmented_setters_augment_setter() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment set foo1(int _) {} |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| set foo1(int _) {} |
| set foo2(int _) {} |
| } |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withPropertyLinking = true; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| id: field_0 |
| getter: getter_0 |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| id: field_1 |
| getter: getter_1 |
| synthetic foo1 @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| id: field_2 |
| setter: setter_0 |
| synthetic foo2 @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo2 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: int |
| id: field_3 |
| setter: setter_1 |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| id: getter_0 |
| variable: field_0 |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| id: getter_1 |
| variable: field_1 |
| set foo1= @35 |
| reference: <testLibraryFragment>::@enum::A::@setter::foo1 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| parameters |
| requiredPositional _ @44 |
| type: int |
| returnType: void |
| id: setter_0 |
| variable: field_2 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo1 |
| set foo2= @56 |
| reference: <testLibraryFragment>::@enum::A::@setter::foo2 |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| parameters |
| requiredPositional _ @65 |
| type: int |
| returnType: void |
| id: setter_1 |
| variable: field_3 |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::foo1 |
| <testLibraryFragment>::@enum::A::@field::foo2 |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo1 |
| <testLibraryFragment>::@enum::A::@setter::foo2 |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| accessors |
| augment set foo1= @53 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo1 |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| parameters |
| requiredPositional _ @62 |
| type: int |
| returnType: void |
| id: setter_2 |
| variable: <null> |
| augmentationTarget: <testLibraryFragment>::@enum::A::@setter::foo1 |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| synthetic foo1 |
| reference: <testLibraryFragment>::@enum::A::@field::foo1 |
| element: <testLibraryFragment>::@enum::A::@field::foo1#element |
| setter2: <testLibraryFragment>::@enum::A::@setter::foo1 |
| synthetic foo2 |
| reference: <testLibraryFragment>::@enum::A::@field::foo2 |
| element: <testLibraryFragment>::@enum::A::@field::foo2#element |
| setter2: <testLibraryFragment>::@enum::A::@setter::foo2 |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| setters |
| set foo1 @35 |
| reference: <testLibraryFragment>::@enum::A::@setter::foo1 |
| element: <testLibraryFragment>::@enum::A::@setter::foo1#element |
| formalParameters |
| _ @44 |
| element: <testLibraryFragment>::@enum::A::@setter::foo1::@parameter::_#element |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo1 |
| set foo2 @56 |
| reference: <testLibraryFragment>::@enum::A::@setter::foo2 |
| element: <testLibraryFragment>::@enum::A::@setter::foo2#element |
| formalParameters |
| _ @65 |
| element: <testLibraryFragment>::@enum::A::@setter::foo2::@parameter::_#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| setters |
| augment set foo1 @53 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo1 |
| element: <testLibraryFragment>::@enum::A::@setter::foo1#element |
| formalParameters |
| _ @62 |
| element: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@setterAugmentation::foo1::@parameter::_#element |
| previousFragment: <testLibraryFragment>::@enum::A::@setter::foo1 |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| synthetic foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo1 |
| type: int |
| setter: <testLibraryFragment>::@enum::A::@setter::foo1#element |
| synthetic foo2 |
| firstFragment: <testLibraryFragment>::@enum::A::@field::foo2 |
| type: int |
| setter: <testLibraryFragment>::@enum::A::@setter::foo2#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| setters |
| set foo2 |
| firstFragment: <testLibraryFragment>::@enum::A::@setter::foo2 |
| formalParameters |
| requiredPositional _ |
| type: int |
| set foo1 |
| firstFragment: <testLibraryFragment>::@enum::A::@setter::foo1 |
| formalParameters |
| requiredPositional _ |
| type: int |
| '''); |
| } |
| |
| test_augmentedBy_class2() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| |
| augment class A {} |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'test.dart'; |
| |
| augment class A {} |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| part 'b.dart'; |
| |
| enum A {v} |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withConstructors = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| part_1 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @36 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @39 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| classes |
| augment class A @36 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTargetAny: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A |
| augmented |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| classes |
| augment class A @36 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @36 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| fields |
| hasInitializer v @39 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| classes |
| class A @36 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A |
| element: <testLibrary>::@class::A |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart |
| classes |
| class A @36 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A |
| element: <testLibrary>::@class::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A |
| classes |
| class A |
| reference: <testLibrary>::@class::A |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_augmentedBy_class_enum() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| |
| augment class A {} |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'test.dart'; |
| |
| augment enum A {} |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| part 'b.dart'; |
| |
| enum A {v} |
| '''); |
| |
| configuration |
| ..withConstantInitializers = false |
| ..withConstructors = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| part_1 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @36 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| supertype: Enum |
| fields |
| static const enumConstant v @39 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| classes |
| augment class A @36 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTargetAny: <testLibraryFragment>::@enum::A |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @35 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTargetAny: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A |
| fields |
| synthetic static const values @-1 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@field::values |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| type: List<A> |
| accessors |
| synthetic static get values @-1 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::values |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| returnType: List<A> |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @36 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A::@def::0 |
| fields |
| hasInitializer v @39 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| classes |
| class A @36 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A |
| element: <testLibrary>::@class::A |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @35 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A::@def::1 |
| fields |
| synthetic values |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@field::values |
| element: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@field::values#element |
| getter2: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::values |
| getters |
| synthetic get values |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::values |
| element: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::values#element |
| classes |
| class A |
| reference: <testLibrary>::@class::A |
| firstFragment: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A::@def::0 |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| enum A |
| reference: <testLibrary>::@enum::A::@def::1 |
| firstFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| synthetic static const values |
| firstFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@field::values |
| type: List<A> |
| getter: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::values#element |
| getters |
| synthetic static get values |
| firstFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@getter::values |
| '''); |
| } |
| |
| test_constructors_augment2() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment const A.named(); |
| } |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment const A.named(); |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| part 'b.dart'; |
| enum A { |
| v.named(); |
| const A.named(); |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| part_1 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constructors |
| const named @62 |
| reference: <testLibraryFragment>::@enum::A::@constructor::named |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| periodOffset: 61 |
| nameEnd: 67 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::named |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@constructorAugmentation::named |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| constructors |
| augment const named @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::named |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| periodOffset: 56 |
| nameEnd: 62 |
| augmentationTarget: <testLibraryFragment>::@enum::A::@constructor::named |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@constructorAugmentation::named |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| constructors |
| augment const named @57 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@constructorAugmentation::named |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| periodOffset: 56 |
| nameEnd: 62 |
| augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::named |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @35 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @41 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| const named @62 |
| reference: <testLibraryFragment>::@enum::A::@constructor::named |
| element: <testLibraryFragment>::@enum::A::@constructor::named#element |
| typeName: A |
| typeNameOffset: 60 |
| periodOffset: 61 |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::named |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| constructors |
| augment const named @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::named |
| element: <testLibraryFragment>::@enum::A::@constructor::named#element |
| typeName: A |
| typeNameOffset: 55 |
| periodOffset: 56 |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@constructorAugmentation::named |
| previousFragment: <testLibraryFragment>::@enum::A::@constructor::named |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| constructors |
| augment const named @57 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::A::@constructorAugmentation::named |
| element: <testLibraryFragment>::@enum::A::@constructor::named#element |
| typeName: A |
| typeNameOffset: 55 |
| periodOffset: 56 |
| previousFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::named |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| const named |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::named |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_constructors_augment_named() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment const A.named(); |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v.named(); |
| const A.named(); |
| } |
| '''); |
| |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| period: . @0 |
| name: SimpleIdentifier |
| token: named @-1 |
| staticElement: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::named |
| element: <testLibraryFragment>::@enum::A::@constructor::named#element |
| staticType: null |
| staticElement: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::named |
| element: <testLibraryFragment>::@enum::A::@constructor::named#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| staticType: A |
| rightBracket: ] @0 |
| staticType: List<A> |
| constructors |
| const named @47 |
| reference: <testLibraryFragment>::@enum::A::@constructor::named |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| periodOffset: 46 |
| nameEnd: 52 |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::named |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::named |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| constructors |
| augment const named @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::named |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| periodOffset: 56 |
| nameEnd: 62 |
| augmentationTarget: <testLibraryFragment>::@enum::A::@constructor::named |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| const named @47 |
| reference: <testLibraryFragment>::@enum::A::@constructor::named |
| element: <testLibraryFragment>::@enum::A::@constructor::named#element |
| typeName: A |
| typeNameOffset: 45 |
| periodOffset: 46 |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::named |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| constructors |
| augment const named @57 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::named |
| element: <testLibraryFragment>::@enum::A::@constructor::named#element |
| typeName: A |
| typeNameOffset: 55 |
| periodOffset: 56 |
| previousFragment: <testLibraryFragment>::@enum::A::@constructor::named |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| const named |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::named |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_constructors_augment_unnamed() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A {; |
| augment const A(); |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A { |
| v; |
| const A(); |
| } |
| '''); |
| |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A |
| shouldUseTypeForInitializerInference: false |
| constantInitializer |
| InstanceCreationExpression |
| constructorName: ConstructorName |
| type: NamedType |
| name: A @-1 |
| element: <testLibraryFragment>::@enum::A |
| element2: <testLibrary>::@enum::A |
| type: A |
| staticElement: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| argumentList: ArgumentList |
| leftParenthesis: ( @0 |
| rightParenthesis: ) @0 |
| staticType: A |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A> |
| constantInitializer |
| ListLiteral |
| leftBracket: [ @0 |
| elements |
| SimpleIdentifier |
| token: v @-1 |
| staticElement: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| staticType: A |
| rightBracket: ] @0 |
| staticType: List<A> |
| constructors |
| const @37 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::new |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A> |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| constructors |
| augment const @55 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::new |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| augmentationTarget: <testLibraryFragment>::@enum::A::@constructor::new |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| fields |
| hasInitializer v @26 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| typeNameOffset: 37 |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::new |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| constructors |
| augment const new |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A::@constructorAugmentation::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| typeNameOffset: 55 |
| previousFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| |
| test_inferTypes_method_ofAugment() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| abstract class A { |
| int foo(String a); |
| } |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'test.dart'; |
| augment enum B {; |
| foo(a) => 0; |
| } |
| '''); |
| |
| var library = await buildLibrary(r''' |
| import 'a.dart'; |
| part 'b.dart'; |
| |
| enum B implements A { |
| v |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| libraryImports |
| package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| parts |
| part_0 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum B @38 |
| reference: <testLibraryFragment>::@enum::B |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B |
| supertype: Enum |
| interfaces |
| A |
| fields |
| static const enumConstant v @57 |
| reference: <testLibraryFragment>::@enum::B::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| type: B |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::B::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| type: List<B> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::B::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::B::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| returnType: B |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::B::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| returnType: List<B> |
| augmented |
| interfaces |
| A |
| fields |
| <testLibraryFragment>::@enum::B::@field::v |
| <testLibraryFragment>::@enum::B::@field::values |
| constants |
| <testLibraryFragment>::@enum::B::@field::v |
| constructors |
| <testLibraryFragment>::@enum::B::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::B::@getter::v |
| <testLibraryFragment>::@enum::B::@getter::values |
| methods |
| <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B::@method::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum B @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibraryFragment>::@enum::B |
| methods |
| foo @41 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B::@method::foo |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B |
| parameters |
| requiredPositional a @45 |
| type: String |
| returnType: int |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| libraryImports |
| package:test/a.dart |
| enums |
| enum B @38 |
| reference: <testLibraryFragment>::@enum::B |
| element: <testLibrary>::@enum::B |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B |
| fields |
| hasInitializer v @57 |
| reference: <testLibraryFragment>::@enum::B::@field::v |
| element: <testLibraryFragment>::@enum::B::@field::v#element |
| getter2: <testLibraryFragment>::@enum::B::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::B::@field::values |
| element: <testLibraryFragment>::@enum::B::@field::values#element |
| getter2: <testLibraryFragment>::@enum::B::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::B::@constructor::new |
| element: <testLibraryFragment>::@enum::B::@constructor::new#element |
| typeName: B |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::B::@getter::v |
| element: <testLibraryFragment>::@enum::B::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::B::@getter::values |
| element: <testLibraryFragment>::@enum::B::@getter::values#element |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum B @34 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B |
| element: <testLibrary>::@enum::B |
| previousFragment: <testLibraryFragment>::@enum::B |
| methods |
| foo @41 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B::@method::foo |
| element: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B::@method::foo#element |
| formalParameters |
| a @45 |
| element: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B::@method::foo::@parameter::a#element |
| enums |
| enum B |
| reference: <testLibrary>::@enum::B |
| firstFragment: <testLibraryFragment>::@enum::B |
| supertype: Enum |
| interfaces |
| A |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::B::@field::v |
| type: B |
| getter: <testLibraryFragment>::@enum::B::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::B::@field::values |
| type: List<B> |
| getter: <testLibraryFragment>::@enum::B::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::B::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::B::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::B::@getter::values |
| methods |
| foo |
| reference: <testLibrary>::@enum::B::@method::foo |
| firstFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B::@method::foo |
| formalParameters |
| requiredPositional a |
| type: String |
| '''); |
| } |
| |
| test_inferTypes_method_usingAugmentation_interface() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| class A { |
| int foo(String a) => 0; |
| } |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'test.dart'; |
| import 'a.dart'; |
| augment enum B implements A {} |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'b.dart'; |
| |
| enum B { |
| v; |
| foo(a) => 0; |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum B @21 |
| reference: <testLibraryFragment>::@enum::B |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B |
| supertype: Enum |
| fields |
| static const enumConstant v @27 |
| reference: <testLibraryFragment>::@enum::B::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| type: B |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::B::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| type: List<B> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::B::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::B::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| returnType: B |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::B::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| returnType: List<B> |
| methods |
| foo @32 |
| reference: <testLibraryFragment>::@enum::B::@method::foo |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| parameters |
| requiredPositional a @36 |
| type: String |
| returnType: int |
| augmented |
| interfaces |
| A |
| fields |
| <testLibraryFragment>::@enum::B::@field::v |
| <testLibraryFragment>::@enum::B::@field::values |
| constants |
| <testLibraryFragment>::@enum::B::@field::v |
| constructors |
| <testLibraryFragment>::@enum::B::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::B::@getter::v |
| <testLibraryFragment>::@enum::B::@getter::values |
| methods |
| <testLibraryFragment>::@enum::B::@method::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| libraryImports |
| package:test/a.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| augment enum B @51 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibraryFragment>::@enum::B |
| interfaces |
| A |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum B @21 |
| reference: <testLibraryFragment>::@enum::B |
| element: <testLibrary>::@enum::B |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B |
| fields |
| hasInitializer v @27 |
| reference: <testLibraryFragment>::@enum::B::@field::v |
| element: <testLibraryFragment>::@enum::B::@field::v#element |
| getter2: <testLibraryFragment>::@enum::B::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::B::@field::values |
| element: <testLibraryFragment>::@enum::B::@field::values#element |
| getter2: <testLibraryFragment>::@enum::B::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::B::@constructor::new |
| element: <testLibraryFragment>::@enum::B::@constructor::new#element |
| typeName: B |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::B::@getter::v |
| element: <testLibraryFragment>::@enum::B::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::B::@getter::values |
| element: <testLibraryFragment>::@enum::B::@getter::values#element |
| methods |
| foo @32 |
| reference: <testLibraryFragment>::@enum::B::@method::foo |
| element: <testLibraryFragment>::@enum::B::@method::foo#element |
| formalParameters |
| a @36 |
| element: <testLibraryFragment>::@enum::B::@method::foo::@parameter::a#element |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| libraryImports |
| package:test/a.dart |
| enums |
| enum B @51 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B |
| element: <testLibrary>::@enum::B |
| previousFragment: <testLibraryFragment>::@enum::B |
| enums |
| enum B |
| reference: <testLibrary>::@enum::B |
| firstFragment: <testLibraryFragment>::@enum::B |
| supertype: Enum |
| interfaces |
| A |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::B::@field::v |
| type: B |
| getter: <testLibraryFragment>::@enum::B::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::B::@field::values |
| type: List<B> |
| getter: <testLibraryFragment>::@enum::B::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::B::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::B::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::B::@getter::values |
| methods |
| foo |
| reference: <testLibrary>::@enum::B::@method::foo |
| firstFragment: <testLibraryFragment>::@enum::B::@method::foo |
| formalParameters |
| requiredPositional a |
| type: String |
| '''); |
| } |
| |
| test_inferTypes_method_usingAugmentation_mixin() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| mixin A { |
| int foo(String a) => 0; |
| } |
| '''); |
| |
| newFile('$testPackageLibPath/b.dart', r''' |
| part of 'test.dart'; |
| import 'a.dart'; |
| augment enum B with A {} |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'b.dart'; |
| |
| enum B { |
| v; |
| foo(a) => 0; |
| } |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum B @21 |
| reference: <testLibraryFragment>::@enum::B |
| enclosingElement3: <testLibraryFragment> |
| augmentation: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B |
| supertype: Enum |
| fields |
| static const enumConstant v @27 |
| reference: <testLibraryFragment>::@enum::B::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| type: B |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::B::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| type: List<B> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::B::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::B::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| returnType: B |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::B::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| returnType: List<B> |
| methods |
| foo @32 |
| reference: <testLibraryFragment>::@enum::B::@method::foo |
| enclosingElement3: <testLibraryFragment>::@enum::B |
| parameters |
| requiredPositional a @36 |
| type: String |
| returnType: int |
| augmented |
| mixins |
| A |
| fields |
| <testLibraryFragment>::@enum::B::@field::v |
| <testLibraryFragment>::@enum::B::@field::values |
| constants |
| <testLibraryFragment>::@enum::B::@field::v |
| constructors |
| <testLibraryFragment>::@enum::B::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::B::@getter::v |
| <testLibraryFragment>::@enum::B::@getter::values |
| methods |
| <testLibraryFragment>::@enum::B::@method::foo |
| <testLibrary>::@fragment::package:test/b.dart |
| enclosingElement3: <testLibraryFragment> |
| libraryImports |
| package:test/a.dart |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| augment enum B @51 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B |
| enclosingElement3: <testLibrary>::@fragment::package:test/b.dart |
| augmentationTarget: <testLibraryFragment>::@enum::B |
| mixins |
| A |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart |
| enums |
| enum B @21 |
| reference: <testLibraryFragment>::@enum::B |
| element: <testLibrary>::@enum::B |
| nextFragment: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B |
| fields |
| hasInitializer v @27 |
| reference: <testLibraryFragment>::@enum::B::@field::v |
| element: <testLibraryFragment>::@enum::B::@field::v#element |
| getter2: <testLibraryFragment>::@enum::B::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::B::@field::values |
| element: <testLibraryFragment>::@enum::B::@field::values#element |
| getter2: <testLibraryFragment>::@enum::B::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::B::@constructor::new |
| element: <testLibraryFragment>::@enum::B::@constructor::new#element |
| typeName: B |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::B::@getter::v |
| element: <testLibraryFragment>::@enum::B::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::B::@getter::values |
| element: <testLibraryFragment>::@enum::B::@getter::values#element |
| methods |
| foo @32 |
| reference: <testLibraryFragment>::@enum::B::@method::foo |
| element: <testLibraryFragment>::@enum::B::@method::foo#element |
| formalParameters |
| a @36 |
| element: <testLibraryFragment>::@enum::B::@method::foo::@parameter::a#element |
| <testLibrary>::@fragment::package:test/b.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| libraryImports |
| package:test/a.dart |
| enums |
| enum B @51 |
| reference: <testLibrary>::@fragment::package:test/b.dart::@enumAugmentation::B |
| element: <testLibrary>::@enum::B |
| previousFragment: <testLibraryFragment>::@enum::B |
| enums |
| enum B |
| reference: <testLibrary>::@enum::B |
| firstFragment: <testLibraryFragment>::@enum::B |
| supertype: Enum |
| mixins |
| A |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::B::@field::v |
| type: B |
| getter: <testLibraryFragment>::@enum::B::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::B::@field::values |
| type: List<B> |
| getter: <testLibraryFragment>::@enum::B::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::B::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::B::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::B::@getter::values |
| methods |
| foo |
| reference: <testLibrary>::@enum::B::@method::foo |
| firstFragment: <testLibraryFragment>::@enum::B::@method::foo |
| formalParameters |
| requiredPositional a |
| type: String |
| '''); |
| } |
| |
| test_typeParameters_defaultType() async { |
| newFile('$testPackageLibPath/a.dart', r''' |
| part of 'test.dart'; |
| augment enum A<T extends B> {} |
| '''); |
| |
| var library = await buildLibrary(r''' |
| part 'a.dart'; |
| enum A<T extends B> { |
| v |
| } |
| class B {} |
| '''); |
| |
| configuration.withConstantInitializers = false; |
| checkElementText(library, r''' |
| library |
| reference: <testLibrary> |
| definingUnit: <testLibraryFragment> |
| units |
| <testLibraryFragment> |
| enclosingElement3: <null> |
| parts |
| part_0 |
| uri: package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| unit: <testLibrary>::@fragment::package:test/a.dart |
| classes |
| class B @49 |
| reference: <testLibraryFragment>::@class::B |
| enclosingElement3: <testLibraryFragment> |
| constructors |
| synthetic @-1 |
| reference: <testLibraryFragment>::@class::B::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@class::B |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| enclosingElement3: <testLibraryFragment> |
| typeParameters |
| covariant T @22 |
| bound: B |
| defaultType: B |
| augmentation: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| supertype: Enum |
| fields |
| static const enumConstant v @39 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: A<B> |
| shouldUseTypeForInitializerInference: false |
| synthetic static const values @-1 |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| type: List<A<B>> |
| constructors |
| synthetic const @-1 |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| accessors |
| synthetic static get v @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: A<B> |
| synthetic static get values @-1 |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| enclosingElement3: <testLibraryFragment>::@enum::A |
| returnType: List<A<B>> |
| augmented |
| fields |
| <testLibraryFragment>::@enum::A::@field::v |
| <testLibraryFragment>::@enum::A::@field::values |
| constants |
| <testLibraryFragment>::@enum::A::@field::v |
| constructors |
| <testLibraryFragment>::@enum::A::@constructor::new |
| accessors |
| <testLibraryFragment>::@enum::A::@getter::v |
| <testLibraryFragment>::@enum::A::@getter::values |
| <testLibrary>::@fragment::package:test/a.dart |
| enclosingElement3: <testLibraryFragment> |
| enums |
| augment enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| enclosingElement3: <testLibrary>::@fragment::package:test/a.dart |
| typeParameters |
| covariant T @36 |
| bound: B |
| defaultType: B |
| augmentationTarget: <testLibraryFragment>::@enum::A |
| ---------------------------------------- |
| library |
| reference: <testLibrary> |
| fragments |
| <testLibraryFragment> |
| element: <testLibrary> |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart |
| classes |
| class B @49 |
| reference: <testLibraryFragment>::@class::B |
| element: <testLibrary>::@class::B |
| constructors |
| synthetic new |
| reference: <testLibraryFragment>::@class::B::@constructor::new |
| element: <testLibraryFragment>::@class::B::@constructor::new#element |
| typeName: B |
| enums |
| enum A @20 |
| reference: <testLibraryFragment>::@enum::A |
| element: <testLibrary>::@enum::A |
| nextFragment: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| typeParameters |
| T @22 |
| element: <not-implemented> |
| fields |
| hasInitializer v @39 |
| reference: <testLibraryFragment>::@enum::A::@field::v |
| element: <testLibraryFragment>::@enum::A::@field::v#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic values |
| reference: <testLibraryFragment>::@enum::A::@field::values |
| element: <testLibraryFragment>::@enum::A::@field::values#element |
| getter2: <testLibraryFragment>::@enum::A::@getter::values |
| constructors |
| synthetic const new |
| reference: <testLibraryFragment>::@enum::A::@constructor::new |
| element: <testLibraryFragment>::@enum::A::@constructor::new#element |
| typeName: A |
| getters |
| synthetic get v |
| reference: <testLibraryFragment>::@enum::A::@getter::v |
| element: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic get values |
| reference: <testLibraryFragment>::@enum::A::@getter::values |
| element: <testLibraryFragment>::@enum::A::@getter::values#element |
| <testLibrary>::@fragment::package:test/a.dart |
| element: <testLibrary> |
| enclosingFragment: <testLibraryFragment> |
| previousFragment: <testLibraryFragment> |
| enums |
| enum A @34 |
| reference: <testLibrary>::@fragment::package:test/a.dart::@enumAugmentation::A |
| element: <testLibrary>::@enum::A |
| previousFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T @36 |
| element: <not-implemented> |
| classes |
| class B |
| reference: <testLibrary>::@class::B |
| firstFragment: <testLibraryFragment>::@class::B |
| constructors |
| synthetic new |
| firstFragment: <testLibraryFragment>::@class::B::@constructor::new |
| enums |
| enum A |
| reference: <testLibrary>::@enum::A |
| firstFragment: <testLibraryFragment>::@enum::A |
| typeParameters |
| T |
| bound: B |
| supertype: Enum |
| fields |
| static const enumConstant hasInitializer v |
| firstFragment: <testLibraryFragment>::@enum::A::@field::v |
| type: A<B> |
| getter: <testLibraryFragment>::@enum::A::@getter::v#element |
| synthetic static const values |
| firstFragment: <testLibraryFragment>::@enum::A::@field::values |
| type: List<A<B>> |
| getter: <testLibraryFragment>::@enum::A::@getter::values#element |
| constructors |
| synthetic const new |
| firstFragment: <testLibraryFragment>::@enum::A::@constructor::new |
| getters |
| synthetic static get v |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::v |
| synthetic static get values |
| firstFragment: <testLibraryFragment>::@enum::A::@getter::values |
| '''); |
| } |
| } |
| |
| @reflectiveTest |
| class EnumElementTest_augmentation_fromBytes |
| extends EnumElementTest_augmentation { |
| @override |
| bool get keepLinkingLibraries => false; |
| } |
| |
| @reflectiveTest |
| class EnumElementTest_augmentation_keepLinking |
| extends EnumElementTest_augmentation { |
| @override |
| bool get keepLinkingLibraries => true; |
| } |
| |
| @reflectiveTest |
| class EnumElementTest_fromBytes extends EnumElementTest { |
| @override |
| bool get keepLinkingLibraries => false; |
| } |
| |
| @reflectiveTest |
| class EnumElementTest_keepLinking extends EnumElementTest { |
| @override |
| bool get keepLinkingLibraries => true; |
| } |
| |
| // TODO(scheglov): This is duplicate. |
| extension on ElementTextConfiguration { |
| void forPromotableFields({ |
| Set<String> classNames = const {}, |
| Set<String> enumNames = const {}, |
| Set<String> extensionTypeNames = const {}, |
| Set<String> mixinNames = const {}, |
| Set<String> fieldNames = const {}, |
| }) { |
| filter = (e) { |
| if (e is ClassElement) { |
| return classNames.contains(e.name); |
| } else if (e is ConstructorElement) { |
| return false; |
| } else if (e is EnumElement) { |
| return enumNames.contains(e.name); |
| } else if (e is ExtensionTypeElement) { |
| return extensionTypeNames.contains(e.name); |
| } else if (e is FieldElement) { |
| return fieldNames.isEmpty || fieldNames.contains(e.name); |
| } else if (e is MixinElement) { |
| return mixinNames.contains(e.name); |
| } else if (e is PartElement) { |
| return false; |
| } else if (e is PropertyAccessorElement) { |
| return false; |
| } |
| return true; |
| }; |
| } |
| } |