@@ -31,46 +31,44 @@ class _ReferenceChildrenLookup {
31
31
32
32
/// Support comment reference lookups on a Nameable object.
33
33
mixin CommentReferable implements Nameable {
34
- //, ModelBuilderInterface {
35
34
/// For any [CommentReferable] where an analyzer [Scope] exists (or can
36
35
/// be constructed), implement this. This will take priority over
37
36
/// lookups via [referenceChildren] . Can be cached.
38
37
Scope ? get scope => null ;
39
38
40
39
String ? get href => null ;
41
40
42
- /// Look up a comment reference by its component parts.
41
+ /// Looks up a comment reference by its component parts.
43
42
///
44
43
/// If [tryParents] is true, try looking up the same reference in any parents
45
44
/// of `this` . Will skip over results that do not pass a given [filter] and
46
- /// keep searching. Will skip over entire subtrees whose parent node does not
47
- /// pass [allowTree] .
45
+ /// keep searching.
48
46
@nonVirtual
49
47
CommentReferable ? referenceBy (
50
48
List <String > reference, {
51
49
required bool Function (CommentReferable ? ) filter,
52
- required bool Function (CommentReferable ? ) allowTree,
53
50
bool tryParents = true ,
54
51
Iterable <CommentReferable >? parentOverrides,
55
52
}) {
56
53
parentOverrides ?? = referenceParents;
57
54
if (reference.isEmpty) {
58
55
return tryParents ? null : this ;
59
56
}
60
-
61
57
for (var referenceLookup in _childLookups (reference)) {
62
58
if (scope != null ) {
63
- var result = _lookupViaScope (referenceLookup,
64
- filter: filter, allowTree: allowTree);
59
+ var result = _lookupViaScope (referenceLookup, filter: filter);
65
60
if (result != null ) {
66
61
return result;
67
62
}
68
63
}
69
64
final referenceChildren = this .referenceChildren;
70
65
final childrenResult = referenceChildren[referenceLookup.lookup];
71
66
if (childrenResult != null ) {
72
- var result = _recurseChildrenAndFilter (referenceLookup, childrenResult,
73
- allowTree: allowTree, filter: filter);
67
+ var result = _recurseChildrenAndFilter (
68
+ referenceLookup,
69
+ childrenResult,
70
+ filter: filter,
71
+ );
74
72
if (result != null ) {
75
73
return result;
76
74
}
@@ -79,11 +77,12 @@ mixin CommentReferable implements Nameable {
79
77
// If we can't find it in children, try searching parents if allowed.
80
78
if (tryParents) {
81
79
for (var parent in parentOverrides) {
82
- var result = parent.referenceBy (reference,
83
- tryParents: true ,
84
- parentOverrides: referenceGrandparentOverrides,
85
- allowTree: allowTree,
86
- filter: filter);
80
+ var result = parent.referenceBy (
81
+ reference,
82
+ tryParents: true ,
83
+ parentOverrides: referenceGrandparentOverrides,
84
+ filter: filter,
85
+ );
87
86
if (result != null ) return result;
88
87
}
89
88
}
@@ -99,7 +98,6 @@ mixin CommentReferable implements Nameable {
99
98
CommentReferable ? _lookupViaScope (
100
99
_ReferenceChildrenLookup referenceLookup, {
101
100
required bool Function (CommentReferable ? ) filter,
102
- required bool Function (CommentReferable ? ) allowTree,
103
101
}) {
104
102
final resultElement = scope! .lookupPreferGetter (referenceLookup.lookup);
105
103
if (resultElement == null ) return null ;
@@ -122,9 +120,7 @@ mixin CommentReferable implements Nameable {
122
120
);
123
121
return null ;
124
122
}
125
- if (! allowTree (result)) return null ;
126
- return _recurseChildrenAndFilter (referenceLookup, result,
127
- allowTree: allowTree, filter: filter);
123
+ return _recurseChildrenAndFilter (referenceLookup, result, filter: filter);
128
124
}
129
125
130
126
/// Given a [result] found in an implementation of [_lookupViaScope] or
@@ -134,19 +130,14 @@ mixin CommentReferable implements Nameable {
134
130
_ReferenceChildrenLookup referenceLookup,
135
131
CommentReferable result, {
136
132
required bool Function (CommentReferable ? ) filter,
137
- required bool Function (CommentReferable ? ) allowTree,
138
133
}) {
139
134
CommentReferable ? returnValue = result;
140
135
if (referenceLookup.remaining.isNotEmpty) {
141
- if (allowTree (result)) {
142
- returnValue = result.referenceBy (referenceLookup.remaining,
143
- tryParents: false , allowTree: allowTree, filter: filter);
144
- } else {
145
- returnValue = null ;
146
- }
136
+ returnValue = result.referenceBy (referenceLookup.remaining,
137
+ tryParents: false , filter: filter);
147
138
} else if (! filter (result)) {
148
139
returnValue = result.referenceBy ([referenceLookup.lookup],
149
- tryParents: false , allowTree : allowTree, filter: filter);
140
+ tryParents: false , filter: filter);
150
141
}
151
142
if (! filter (returnValue)) {
152
143
returnValue = null ;
0 commit comments