File tree Expand file tree Collapse file tree 3 files changed +89
-1
lines changed Expand file tree Collapse file tree 3 files changed +89
-1
lines changed Original file line number Diff line number Diff line change @@ -23,7 +23,8 @@ enum ManifestAstElementKind {
2323 formalParameter,
2424 importPrefix,
2525 typeParameter,
26- regular;
26+ regular,
27+ multiplyDefined;
2728
2829 static final _bitCount = values.length.bitLength;
2930 static final _bitMask = (1 << _bitCount) - 1 ;
@@ -433,6 +434,9 @@ class _ElementCollector extends GeneralizingAstVisitor<void> {
433434 case DynamicElementImpl ():
434435 kind = ManifestAstElementKind .dynamic_;
435436 rawIndex = 0 ;
437+ case MultiplyDefinedElementImpl ():
438+ kind = ManifestAstElementKind .multiplyDefined;
439+ rawIndex = 0 ;
436440 case FormalParameterElementImpl ():
437441 kind = ManifestAstElementKind .formalParameter;
438442 rawIndex = indexOfFormalParameter (element);
Original file line number Diff line number Diff line change @@ -44456,6 +44456,88 @@ const b = 0;
4445644456 );
4445744457 }
4445844458
44459+ test_manifest_constInitializer_multiplyDefinedElement() async {
44460+ newFile('$testPackageLibPath/a.dart', r'''
44461+ const foo = 0;
44462+ ''');
44463+
44464+ newFile('$testPackageLibPath/b.dart', r'''
44465+ const foo = 0;
44466+ ''');
44467+
44468+ configuration.withElementManifests = true;
44469+ await _runLibraryManifestScenario(
44470+ initialCode: r'''
44471+ import 'a.dart';
44472+ import 'b.dart';
44473+ const x = foo;
44474+ ''',
44475+ expectedInitialEvents: r'''
44476+ [operation] linkLibraryCycle SDK
44477+ [operation] linkLibraryCycle
44478+ package:test/a.dart
44479+ declaredGetters
44480+ foo: #M0
44481+ returnType: int @ dart:core
44482+ declaredVariables
44483+ foo: #M1
44484+ type: int @ dart:core
44485+ constInitializer
44486+ tokenBuffer: 0
44487+ tokenLengthList: [1]
44488+ [operation] linkLibraryCycle
44489+ package:test/b.dart
44490+ declaredGetters
44491+ foo: #M2
44492+ returnType: int @ dart:core
44493+ declaredVariables
44494+ foo: #M3
44495+ type: int @ dart:core
44496+ constInitializer
44497+ tokenBuffer: 0
44498+ tokenLengthList: [1]
44499+ [operation] linkLibraryCycle
44500+ package:test/test.dart
44501+ declaredGetters
44502+ x: #M4
44503+ returnType: InvalidType
44504+ declaredVariables
44505+ x: #M5
44506+ type: InvalidType
44507+ constInitializer
44508+ tokenBuffer: foo
44509+ tokenLengthList: [3]
44510+ elementIndexList
44511+ 6 = multiplyDefined
44512+ ''',
44513+ updatedCode: r'''
44514+ import 'a.dart';
44515+ import 'b.dart';
44516+ const x = foo;
44517+ class A {}
44518+ ''',
44519+ expectedUpdatedEvents: r'''
44520+ [operation] linkLibraryCycle
44521+ package:test/test.dart
44522+ declaredClasses
44523+ A: #M6
44524+ supertype: Object @ dart:core
44525+ interface: #M7
44526+ declaredGetters
44527+ x: #M4
44528+ returnType: InvalidType
44529+ declaredVariables
44530+ x: #M5
44531+ type: InvalidType
44532+ constInitializer
44533+ tokenBuffer: foo
44534+ tokenLengthList: [3]
44535+ elementIndexList
44536+ 6 = multiplyDefined
44537+ ''',
44538+ );
44539+ }
44540+
4445944541 test_manifest_constInitializer_namedType() async {
4446044542 await _runLibraryManifestScenario(
4446144543 initialCode: r'''
Original file line number Diff line number Diff line change @@ -1315,6 +1315,8 @@ class LibraryManifestPrinter {
13151315 sink.writelnWithIndent ('$index = null' );
13161316 case ManifestAstElementKind .dynamic_:
13171317 sink.writelnWithIndent ('$index = dynamic' );
1318+ case ManifestAstElementKind .multiplyDefined:
1319+ sink.writelnWithIndent ('$index = multiplyDefined' );
13181320 case ManifestAstElementKind .formalParameter:
13191321 sink.writelnWithIndent ('$index = formalParameter $rawIndex ' );
13201322 case ManifestAstElementKind .importPrefix:
You can’t perform that action at this time.
0 commit comments