File tree 3 files changed +22
-5
lines changed
3 files changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -113,7 +113,8 @@ class Method extends ModelElement
113
113
return null ;
114
114
}
115
115
var parent = element.enclosingElement as InterfaceElement ;
116
- for (var t in parent.allSupertypes) {
116
+ var parentDeclaration = parent.augmented ? .declaration ?? parent;
117
+ for (var t in parentDeclaration.allSupertypes) {
117
118
Element ? e = t.getMethod (element.name);
118
119
if (e != null ) {
119
120
assert (
Original file line number Diff line number Diff line change 4
4
5
5
import 'dart:async' ;
6
6
7
- import 'package:analyzer/dart/analysis/analysis_context_collection.dart' ;
8
7
import 'package:analyzer/dart/analysis/context_root.dart' ;
9
8
import 'package:analyzer/dart/analysis/results.dart' ;
10
9
import 'package:analyzer/dart/ast/ast.dart' ;
@@ -136,8 +135,7 @@ class PubPackageBuilder implements PackageBuilder {
136
135
137
136
late final Map <String , List <Folder >> _packageMap;
138
137
139
- late final AnalysisContextCollection _contextCollection =
140
- AnalysisContextCollectionImpl (
138
+ late final _contextCollection = AnalysisContextCollectionImpl (
141
139
includedPaths: [_config.inputDir],
142
140
// TODO(jcollins-g): should we pass excluded directories here instead of
143
141
// handling it ourselves?
@@ -464,6 +462,8 @@ class PubPackageBuilder implements PackageBuilder {
464
462
specialFiles.difference (files),
465
463
addingSpecials: true ,
466
464
);
465
+ // Shutdown macro support.
466
+ await _contextCollection.dispose ();
467
467
}
468
468
469
469
/// Throws an exception if any configured-to-be-included files were not found
Original file line number Diff line number Diff line change @@ -13,7 +13,8 @@ mixin SourceCode implements Documentable {
13
13
14
14
Element ? get element;
15
15
16
- bool get hasSourceCode => config.includeSource && sourceCode.isNotEmpty;
16
+ bool get hasSourceCode =>
17
+ config.includeSource && ! element.isAugmentation && sourceCode.isNotEmpty;
17
18
18
19
Library ? get library;
19
20
@@ -22,3 +23,18 @@ mixin SourceCode implements Documentable {
22
23
return modelNode == null ? '' : modelNode.sourceCode;
23
24
}
24
25
}
26
+
27
+ extension on Element ? {
28
+ /// Whether `this` is an augmentation method or property.
29
+ ///
30
+ /// This property should only be referenced for elements whose source code we
31
+ /// may wish to refer to.
32
+ bool get isAugmentation {
33
+ final self = this ;
34
+ return switch (self) {
35
+ ExecutableElement () => self.augmentationTarget != null ,
36
+ PropertyInducingElement () => self.augmentationTarget != null ,
37
+ _ => false ,
38
+ };
39
+ }
40
+ }
You can’t perform that action at this time.
0 commit comments