File tree Expand file tree Collapse file tree 5 files changed +29
-5
lines changed Expand file tree Collapse file tree 5 files changed +29
-5
lines changed Original file line number Diff line number Diff line change @@ -44,6 +44,9 @@ abstract class LibraryBuilder implements ModifierBuilder {
44
44
45
45
List <Export > get exporters;
46
46
47
+ @override
48
+ LibraryBuilder get origin;
49
+
47
50
abstract LibraryBuilder ? partOfLibrary;
48
51
49
52
LibraryBuilder get nameOriginBuilder;
@@ -380,6 +383,6 @@ abstract class LibraryBuilderImpl extends ModifierBuilderImpl
380
383
381
384
@override
382
385
StringBuffer printOn (StringBuffer buffer) {
383
- return buffer..write (name ?? (isPart ? fileUri : importUri) );
386
+ return buffer..write (isPart || isPatch ? fileUri : importUri);
384
387
}
385
388
}
Original file line number Diff line number Diff line change @@ -88,6 +88,9 @@ class DillLibraryBuilder extends LibraryBuilderImpl {
88
88
lazyExportScope.libraryBuilder = this ;
89
89
}
90
90
91
+ @override
92
+ LibraryBuilder get origin => this ;
93
+
91
94
void ensureLoaded () {
92
95
if (! isReadyToBuild) throw new StateError ("Not ready to build." );
93
96
if (isBuilt && ! isBuiltAndMarked) {
Original file line number Diff line number Diff line change @@ -174,7 +174,7 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
174
174
@override
175
175
final Library library;
176
176
177
- final SourceLibraryBuilder ? _origin ;
177
+ final SourceLibraryBuilder ? _immediateOrigin ;
178
178
179
179
final List <SourceFunctionBuilder > nativeMethods = < SourceFunctionBuilder > [];
180
180
@@ -307,7 +307,7 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
307
307
currentTypeParameterScopeBuilder = _libraryTypeParameterScopeBuilder,
308
308
referencesFromIndexed =
309
309
referencesFrom == null ? null : new IndexedLibrary (referencesFrom),
310
- _origin = origin,
310
+ _immediateOrigin = origin,
311
311
_omittedTypeDeclarationBuilders = omittedTypes,
312
312
super (
313
313
fileUri,
@@ -1587,7 +1587,16 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
1587
1587
}
1588
1588
1589
1589
@override
1590
- SourceLibraryBuilder get origin => _origin ?? this ;
1590
+ bool get isPatch => _immediateOrigin != null ;
1591
+
1592
+ @override
1593
+ SourceLibraryBuilder get origin {
1594
+ SourceLibraryBuilder ? origin = _immediateOrigin;
1595
+ if (origin != null && origin.isPart) {
1596
+ origin = origin.partOfLibrary as SourceLibraryBuilder ;
1597
+ }
1598
+ return origin? .origin ?? this ;
1599
+ }
1591
1600
1592
1601
@override
1593
1602
Uri get importUri => library.importUri;
Original file line number Diff line number Diff line change @@ -888,7 +888,7 @@ UndefinedExtensionSetter/example: Fail
888
888
UnexpectedToken/part_wrapped_script1: Fail
889
889
UnexpectedToken/script1: Fail
890
890
UnmatchedAugmentationClassMember/analyzerCode: Fail
891
- UnmatchedAugmentationClassMember/example : Fail
891
+ UnmatchedAugmentationClassMember/part_wrapped_script : Fail # Uses imports
892
892
UnmatchedToken/part_wrapped_script1: Fail
893
893
UnmatchedToken/part_wrapped_script3: Fail
894
894
UnmatchedToken/script1: Fail
Original file line number Diff line number Diff line change @@ -5622,6 +5622,15 @@ MacroClassNotDeclaredMacro:
5622
5622
UnmatchedAugmentationClassMember :
5623
5623
problemMessage : " Augmentation member '#name' doesn't match a member in the augmented class."
5624
5624
correctionMessage : " Try changing the name to an existing member or removing the 'augment' modifier."
5625
+ experiments : macros
5626
+ script :
5627
+ main.dart :
5628
+ import augment 'lib.dart';
5629
+ class Class {}
5630
+ lib.dart :
5631
+ augment class Class {
5632
+ augment void method() {}
5633
+ }
5625
5634
5626
5635
NonAugmentationClassMemberConflict :
5627
5636
problemMessage : " Member '#name' conflicts with an existing member of the same name in the augmented class."
You can’t perform that action at this time.
0 commit comments