@@ -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