@@ -89,6 +89,7 @@ void main() {
8989 optOutOfNullSafety,
9090 nullableElements;
9191 Class b;
92+ Class c;
9293
9394 setUpAll (() async {
9495 lateFinalWithoutInitializer = (await _testPackageGraphExperiments)
@@ -105,6 +106,8 @@ void main() {
105106 .firstWhere ((lib) => lib.name == 'nullable_elements' );
106107 b = nullSafetyClassMemberDeclarations.allClasses
107108 .firstWhere ((c) => c.name == 'B' );
109+ c = nullSafetyClassMemberDeclarations.allClasses
110+ .firstWhere ((c) => c.name == 'C' );
108111 });
109112
110113 test ('isNullSafety is set correctly for libraries' , () {
@@ -154,6 +157,24 @@ void main() {
154157 '</ol>' ));
155158 });
156159
160+ test ('anonymous callback parameters are correctly marked as nullable' , () {
161+ var m3 = c.instanceMethods.firstWhere ((m) => m.name == 'm3' );
162+ var listen = m3.allParameters.firstWhere ((p) => p.name == 'listen' );
163+ var onDone = m3.allParameters.firstWhere ((p) => p.name == 'onDone' );
164+ expect (listen.isRequiredPositional, isTrue);
165+ expect (onDone.isNamed, isTrue);
166+
167+ expect (
168+ m3.linkedParamsLines,
169+ equals (
170+ '<ol class="parameter-list"><li><span class="parameter" id="m3-param-listen"><span class="type-annotation">void</span> <span class="parameter-name">listen</span>(<ol class="parameter-list"><li><span class="parameter" id="param-t"><span class="type-annotation">int</span> <span class="parameter-name">t</span></span></li>\n '
171+ '</ol>\n '
172+ ')?, </span></li>\n '
173+ '<li><span class="parameter" id="m3-param-onDone">{<span class="type-annotation">void</span> <span class="parameter-name">onDone</span>(<ol class="parameter-list"></ol>\n '
174+ ')?}</span></li>\n '
175+ '</ol>' ));
176+ });
177+
157178 test ('Late final class member test' , () {
158179 var c = lateFinalWithoutInitializer.allClasses
159180 .firstWhere ((c) => c.name == 'C' );
0 commit comments