2
2
// for details. All rights reserved. Use of this source code is governed by a
3
3
// BSD-style license that can be found in the LICENSE file.
4
4
5
- // @dart=2.9
6
-
7
5
library dartdoc.comment_reference_test;
8
6
7
+ import 'package:collection/collection.dart' ;
9
8
import 'package:dartdoc/src/model/comment_referable.dart' ;
10
9
import 'package:dartdoc/src/model/model_object_builder.dart' ;
11
10
import 'package:dartdoc/src/model/nameable.dart' ;
@@ -20,21 +19,22 @@ abstract class Base extends Nameable with CommentReferable {
20
19
21
20
List <Base > get children;
22
21
23
- Base parent;
22
+ Base ? parent;
24
23
25
24
/// Utility function to quickly build structures similar to [ModelElement]
26
25
/// hierarchies in dartdoc in tests.
27
26
/// Returns the added (or already existing) [Base] .
28
27
Base add (String newName);
29
28
30
- T lookup <T extends CommentReferable >(String value,
31
- {bool Function (CommentReferable ) allowTree,
32
- bool Function (CommentReferable ) filter}) =>
33
- referenceBy (value.split (_separator),
34
- allowTree: allowTree ?? (_) => true , filter: filter ?? (_) => true );
29
+ CommentReferable ? lookup <T extends CommentReferable ?>(String value,
30
+ {bool Function (CommentReferable ? )? allowTree,
31
+ bool Function (CommentReferable ? )? filter}) {
32
+ return referenceBy (value.split (_separator),
33
+ allowTree: allowTree ?? (_) => true , filter: filter ?? (_) => true );
34
+ }
35
35
36
36
@override
37
- Iterable <CommentReferable > get referenceGrandparentOverrides => null ;
37
+ Iterable <CommentReferable >? get referenceGrandparentOverrides => null ;
38
38
}
39
39
40
40
class Top extends Base {
@@ -49,13 +49,13 @@ class Top extends Base {
49
49
Base add (String newName) {
50
50
Base retval;
51
51
var newNameSplit = newName.split (_separator).toList ();
52
- var parent = children.firstWhere ((c) => c.name == newNameSplit.first,
53
- orElse: () => null );
52
+ var parent = children.firstWhereOrNull ((c) => c.name == newNameSplit.first);
54
53
if (parent == null ) {
55
54
parent = TopChild (newNameSplit.last, [], this );
56
55
children.add (parent);
57
56
retval = parent;
58
57
}
58
+ retval = parent;
59
59
if (newNameSplit.length > 1 ) {
60
60
retval = parent.add (newNameSplit.sublist (1 ).join (_separator));
61
61
}
@@ -78,13 +78,13 @@ abstract class Child extends Base {
78
78
Base add (String newName) {
79
79
Base retval;
80
80
var newNameSplit = newName.split (_separator).toList ();
81
- var child = children.firstWhere ((c) => c.name == newNameSplit.first,
82
- orElse: () => null );
81
+ var child = children.firstWhereOrNull ((c) => c.name == newNameSplit.first);
83
82
if (child == null ) {
84
83
child = GenericChild (newNameSplit.last, [], this );
85
84
children.add (child);
86
- retval = child;
87
85
}
86
+
87
+ retval = child;
88
88
if (newNameSplit.length > 1 ) {
89
89
retval = child.add (newNameSplit.sublist (1 ).join (_separator));
90
90
}
@@ -141,7 +141,7 @@ class GrandparentOverrider extends GenericChild {
141
141
142
142
void main () {
143
143
group ('Basic comment reference lookups' , () {
144
- Top referable;
144
+ late Top referable;
145
145
146
146
setUp (() {
147
147
referable = Top ('top' , []);
@@ -157,10 +157,10 @@ void main() {
157
157
});
158
158
159
159
test ('Check that basic lookups work' , () {
160
- expect (referable.lookup ('lib1' ).name, equals ('lib1' ));
161
- expect (referable.lookup ('lib2' ).name, equals ('lib2' ));
162
- expect (referable.lookup ('lib1.class2.member1' ).name, equals ('member1' ));
163
- expect (referable.lookup ('lib2.class3' ).name, equals ('class3' ));
160
+ expect (referable.lookup ('lib1' )? .name, equals ('lib1' ));
161
+ expect (referable.lookup ('lib2' )? .name, equals ('lib2' ));
162
+ expect (referable.lookup ('lib1.class2.member1' )? .name, equals ('member1' ));
163
+ expect (referable.lookup ('lib2.class3' )? .name, equals ('class3' ));
164
164
});
165
165
166
166
test ('Check that filters work' , () {
0 commit comments