@@ -19,7 +19,7 @@ main() {
1919
2020@reflectiveTest
2121class MissingRequiredParamTest extends DriverResolutionTest with PackageMixin {
22- test_constructorParam_argumentGiven () async {
22+ test_constructor_argumentGiven () async {
2323 addMetaPackage ();
2424 await assertNoErrorsInCode (r'''
2525import 'package:meta/meta.dart';
@@ -34,7 +34,7 @@ main() {
3434''' );
3535 }
3636
37- test_constructorParam_missingArgument () async {
37+ test_constructor_hasReason () async {
3838 addMetaPackage ();
3939 await assertErrorsInCode (r'''
4040import 'package:meta/meta.dart';
@@ -49,7 +49,7 @@ main() {
4949 ]);
5050 }
5151
52- test_constructorParam_noReason () async {
52+ test_constructor_noReason () async {
5353 addMetaPackage ();
5454 await assertErrorsInCode (r'''
5555import 'package:meta/meta.dart';
@@ -66,7 +66,24 @@ main() {
6666 ]);
6767 }
6868
69- test_constructorParam_nullReason () async {
69+ test_constructor_noReason_generic () async {
70+ addMetaPackage ();
71+ await assertErrorsInCode (r'''
72+ import 'package:meta/meta.dart';
73+
74+ class C<T> {
75+ C({@required int a}) {}
76+ }
77+
78+ main() {
79+ new C();
80+ }
81+ ''' , [
82+ error (HintCode .MISSING_REQUIRED_PARAM , 91 , 1 ),
83+ ]);
84+ }
85+
86+ test_constructor_nullReason () async {
7087 addMetaPackage ();
7188 await assertErrorsInCode (r'''
7289import 'package:meta/meta.dart';
@@ -83,7 +100,7 @@ main() {
83100 ]);
84101 }
85102
86- test_constructorParam_redirectingConstructorCall () async {
103+ test_constructor_redirectingConstructorCall () async {
87104 addMetaPackage ();
88105 await assertErrorsInCode (r'''
89106import 'package:meta/meta.dart';
@@ -96,7 +113,7 @@ class C {
96113 ]);
97114 }
98115
99- test_constructorParam_superCall () async {
116+ test_constructor_superCall () async {
100117 addMetaPackage ();
101118 await assertErrorsInCode (r'''
102119import 'package:meta/meta.dart';
@@ -113,7 +130,7 @@ class D extends C {
113130 ]);
114131 }
115132
116- test_functionParam () async {
133+ test_function () async {
117134 addMetaPackage ();
118135 await assertErrorsInCode (r'''
119136import 'package:meta/meta.dart';
@@ -128,7 +145,7 @@ main() {
128145 ]);
129146 }
130147
131- test_methodParam () async {
148+ test_method () async {
132149 addMetaPackage ();
133150 await assertErrorsInCode (r'''
134151import 'package:meta/meta.dart';
@@ -143,7 +160,23 @@ f() {
143160 ]);
144161 }
145162
146- test_methodParam_inOtherLib () async {
163+ test_method_generic () async {
164+ addMetaPackage ();
165+ await assertErrorsInCode (r'''
166+ import 'package:meta/meta.dart';
167+
168+ class A<T> {
169+ void m<U>(U a, {@Required('must specify an `b`') int b}) {}
170+ }
171+ f() {
172+ new A<double>().m(true);
173+ }
174+ ''' , [
175+ error (HintCode .MISSING_REQUIRED_PARAM_WITH_DETAILS , 135 , 1 ),
176+ ]);
177+ }
178+
179+ test_method_inOtherLib () async {
147180 addMetaPackage ();
148181 newFile ('/a_lib.dart' , content: r'''
149182library a_lib;
@@ -170,7 +203,7 @@ the return type of `C.m` is a structural FunctionType, which does
170203not know its elements, and does not know that there was a parameter
171204marked `@required`. There is exactly one such typedef in Flutter.
172205''' )
173- test_typedef_functionParam () async {
206+ test_typedef_function () async {
174207 addMetaPackage ();
175208 await assertErrorsInCode (r'''
176209import 'package:meta/meta.dart';
@@ -202,7 +235,7 @@ class MissingRequiredParamWithNnbdTest extends DriverResolutionTest {
202235 ..contextFeatures = new FeatureSet .forTesting (
203236 sdkVersion: '2.3.0' , additionalFeatures: [Feature .non_nullable]);
204237
205- test_constructorParam_argumentGiven () async {
238+ test_constructor_argumentGiven () async {
206239 await assertNoErrorsInCode (r'''
207240class C {
208241 C({required int a}) {}
@@ -214,7 +247,7 @@ main() {
214247''' );
215248 }
216249
217- test_constructorParam_missingArgument () async {
250+ test_constructor_missingArgument () async {
218251 await assertErrorsInCode (r'''
219252class C {
220253 C({required int a}) {}
@@ -227,7 +260,7 @@ main() {
227260 ]);
228261 }
229262
230- test_constructorParam_redirectingConstructorCall () async {
263+ test_constructor_redirectingConstructorCall () async {
231264 await assertErrorsInCode (r'''
232265class C {
233266 C({required int x});
@@ -238,7 +271,7 @@ class C {
238271 ]);
239272 }
240273
241- test_constructorParam_superCall () async {
274+ test_constructor_superCall () async {
242275 await assertErrorsInCode (r'''
243276class C {
244277 C({required int a}) {}
@@ -252,30 +285,30 @@ class D extends C {
252285 ]);
253286 }
254287
255- test_functionInvocation () async {
288+ test_function () async {
256289 await assertErrorsInCode (r'''
257- void Function({required int a}) f() => throw '';
258- g() {
259- f()();
290+ void f({required int a}) {}
291+
292+ main() {
293+ f();
260294}
261295''' , [
262- error (CompileTimeErrorCode .MISSING_REQUIRED_ARGUMENT , 57 , 5 ),
296+ error (CompileTimeErrorCode .MISSING_REQUIRED_ARGUMENT , 40 , 1 ),
263297 ]);
264298 }
265299
266- test_functionParam () async {
300+ test_functionInvocation () async {
267301 await assertErrorsInCode (r'''
268- void f({required int a}) {}
269-
270- main() {
271- f();
302+ void Function({required int a}) f() => throw '';
303+ g() {
304+ f()();
272305}
273306''' , [
274- error (CompileTimeErrorCode .MISSING_REQUIRED_ARGUMENT , 40 , 1 ),
307+ error (CompileTimeErrorCode .MISSING_REQUIRED_ARGUMENT , 57 , 5 ),
275308 ]);
276309 }
277310
278- test_methodParam () async {
311+ test_method () async {
279312 await assertErrorsInCode (r'''
280313class A {
281314 void m({required int a}) {}
@@ -288,7 +321,7 @@ f() {
288321 ]);
289322 }
290323
291- test_methodParam_inOtherLib () async {
324+ test_method_inOtherLib () async {
292325 newFile ('/test/lib/a_lib.dart' , content: r'''
293326class A {
294327 void m({required int a}) {}
@@ -304,7 +337,7 @@ f() {
304337 ]);
305338 }
306339
307- test_typedef_functionParam () async {
340+ test_typedef_function () async {
308341 await assertErrorsInCode (r'''
309342String test(C c) => c.m()();
310343
0 commit comments