Skip to content

Commit d1cc44c

Browse files
authored
Additional tests in the area of #2755 (#2757)
1 parent a4ca86f commit d1cc44c

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

test/end2end/model_test.dart

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2153,6 +2153,41 @@ void main() {
21532153
return newLookupResult;
21542154
}
21552155

2156+
group('Linking for generalized typedef cases works', () {
2157+
Library generalizedTypedefs;
2158+
Typedef T0, T2, T5, T8;
2159+
Class C2;
2160+
2161+
setUpAll(() {
2162+
generalizedTypedefs = packageGraph.libraries
2163+
.firstWhere((l) => l.name == 'generalized_typedefs');
2164+
T0 = generalizedTypedefs.typedefs.firstWhere((a) => a.name == 'T0');
2165+
T2 = generalizedTypedefs.typedefs.firstWhere((a) => a.name == 'T2');
2166+
T5 = generalizedTypedefs.typedefs.firstWhere((a) => a.name == 'T5');
2167+
T8 = generalizedTypedefs.typedefs.firstWhere((a) => a.name == 'T8');
2168+
C2 = generalizedTypedefs.classes.firstWhere((c) => c.name == 'C2');
2169+
});
2170+
2171+
test('Verify basic ability to link anything', () {
2172+
expect(bothLookup(T0, 'C2'), equals(MatchingLinkResult(C2)));
2173+
expect(bothLookup(T2, 'C2'), equals(MatchingLinkResult(C2)));
2174+
expect(bothLookup(T5, 'C2'), equals(MatchingLinkResult(C2)));
2175+
expect(bothLookup(T8, 'C2'), equals(MatchingLinkResult(C2)));
2176+
});
2177+
2178+
test('Verify ability to link to type parameters', () {
2179+
var T2X = T2.typeParameters.firstWhere((t) => t.name == 'X');
2180+
expect(bothLookup(T2, 'X'), equals(MatchingLinkResult(T2X)));
2181+
var T5X = T5.typeParameters.firstWhere((t) => t.name == 'X');
2182+
expect(bothLookup(T5, 'X'), equals(MatchingLinkResult(T5X)));
2183+
});
2184+
2185+
test('Verify ability to link to parameters', () {
2186+
var T5name = T5.parameters.firstWhere((t) => t.name == 'name');
2187+
expect(bothLookup(T5, 'name'), equals(MatchingLinkResult(T5name)));
2188+
});
2189+
});
2190+
21562191
group('Linking for complex inheritance and reexport cases', () {
21572192
Library base, extending, local_scope, two_exports;
21582193
Class BaseWithMembers, ExtendingAgain;

0 commit comments

Comments
 (0)