@@ -2136,12 +2136,13 @@ void main() {
21362136 nameWithTwoUnderscores,
21372137 nameWithSingleUnderscore,
21382138 theOnlyThingInTheLibrary;
2139+ Constructor aNonDefaultConstructor, defaultConstructor;
21392140 Class Apple , BaseClass , baseForDocComments, ExtraSpecialList , string;
21402141 Method doAwesomeStuff, anotherMethod;
21412142 // ignore: unused_local_variable
21422143 Operator bracketOperator, bracketOperatorOtherClass;
21432144 Parameter doAwesomeStuffParam;
2144- Field forInheriting, action;
2145+ Field forInheriting, action, initializeMe ;
21452146
21462147 setUpAll (() async {
21472148 nameWithTwoUnderscores = fakeLibrary.constants
@@ -2154,6 +2155,12 @@ void main() {
21542155 .firstWhere ((c) => c.name == 'String' );
21552156 baseForDocComments =
21562157 fakeLibrary.classes.firstWhere ((c) => c.name == 'BaseForDocComments' );
2158+ aNonDefaultConstructor = baseForDocComments.constructors.firstWhere (
2159+ (c) => c.name == 'BaseForDocComments.aNonDefaultConstructor' );
2160+ defaultConstructor = baseForDocComments.constructors
2161+ .firstWhere ((c) => c.name == 'BaseForDocComments' );
2162+ initializeMe = baseForDocComments.allFields
2163+ .firstWhere ((f) => f.name == 'initializeMe' );
21572164 doAwesomeStuff = baseForDocComments.instanceMethods
21582165 .firstWhere ((m) => m.name == 'doAwesomeStuff' );
21592166 anotherMethod = baseForDocComments.instanceMethods
@@ -2228,7 +2235,33 @@ void main() {
22282235 return newLookupResult;
22292236 }
22302237
2238+ test ('Verify basic linking inside a constructor' , () {
2239+ // Field formal parameters worked sometimes by accident in the old code,
2240+ // but should work reliably now.
2241+ expect (newLookup (aNonDefaultConstructor, 'initializeMe' ),
2242+ equals (MatchingLinkResult (initializeMe)));
2243+ expect (newLookup (aNonDefaultConstructor, 'aNonDefaultConstructor' ),
2244+ equals (MatchingLinkResult (aNonDefaultConstructor)));
2245+ expect (
2246+ bothLookup (aNonDefaultConstructor,
2247+ 'BaseForDocComments.aNonDefaultConstructor' ),
2248+ equals (MatchingLinkResult (aNonDefaultConstructor)));
2249+ });
2250+
22312251 test ('Verify basic linking inside class' , () {
2252+ expect (
2253+ bothLookup (
2254+ baseForDocComments, 'BaseForDocComments.BaseForDocComments' ),
2255+ equals (MatchingLinkResult (defaultConstructor)));
2256+
2257+ expect (bothLookup (doAwesomeStuff, 'aNonDefaultConstructor' ),
2258+ equals (MatchingLinkResult (aNonDefaultConstructor)));
2259+
2260+ expect (
2261+ bothLookup (
2262+ doAwesomeStuff, 'BaseForDocComments.aNonDefaultConstructor' ),
2263+ equals (MatchingLinkResult (aNonDefaultConstructor)));
2264+
22322265 expect (bothLookup (doAwesomeStuff, 'this' ),
22332266 equals (MatchingLinkResult (baseForDocComments)));
22342267
@@ -2287,7 +2320,6 @@ void main() {
22872320 equals (MatchingLinkResult (BaseClass )));
22882321
22892322 // A bracket operator within this class.
2290- // TODO(jcollins-g): operator lookups not yet implemented with the new lookup code.
22912323 expect (bothLookup (doAwesomeStuff, 'operator []' ),
22922324 equals (MatchingLinkResult (bracketOperator)));
22932325
0 commit comments