@@ -390,7 +390,23 @@ void m(Impl impl) {
390390 """ ,
391391 Result .Warning ,
392392 "compiler.warn.incompatible.null.restrictions" ,
393- 2 )
393+ 2 ),
394+ new DiagAndCode (
395+ """
396+ interface I {
397+ String! m();
398+ }
399+ class Test {
400+ public String! m() { return ""; }
401+ }
402+ class Sub extends Test implements I {
403+ @Override
404+ public String m() { return null; }
405+ }
406+ """ ,
407+ Result .Warning ,
408+ "compiler.warn.incompatible.null.restrictions" ,
409+ 2 ) // one warning per each method in the corresponding parents
394410 )
395411 );
396412 }
@@ -412,7 +428,7 @@ class Sub extends Super {
412428 }
413429 """ ,
414430 List .of (
415- "Sub.java:3:5: compiler.warn.incompatible.null.restrictions: (compiler.misc.return.type.nullability.mismatch: java.lang.String, java.lang.String!)" ,
431+ "Sub.java:3:5: compiler.warn.incompatible.null.restrictions: (compiler.misc.return.type.nullability.mismatch: java.lang.String, java.lang.String!, Super, m(java.lang.String) )" ,
416432 "1 warning"
417433 )
418434 );
@@ -430,8 +446,8 @@ class Sub extends Super {
430446 }
431447 """ ,
432448 List .of (
433- "Sub.java:3:14: compiler.warn.incompatible.null.restrictions: (compiler.misc.argument.type.nullability.mismatch: java.lang.String, java.lang.String!)" ,
434- "Sub.java:3:24: compiler.warn.incompatible.null.restrictions: (compiler.misc.argument.type.nullability.mismatch: java.lang.Integer, java.lang.Integer!)" ,
449+ "Sub.java:3:14: compiler.warn.incompatible.null.restrictions: (compiler.misc.argument.type.nullability.mismatch: java.lang.String, java.lang.String!, Super, m(java.lang.String!,java.lang.Integer!) )" ,
450+ "Sub.java:3:24: compiler.warn.incompatible.null.restrictions: (compiler.misc.argument.type.nullability.mismatch: java.lang.Integer, java.lang.Integer!, Super, m(java.lang.String!,java.lang.Integer!) )" ,
435451 "2 warnings"
436452 )
437453 );
@@ -451,8 +467,8 @@ class Sub extends Super {
451467 }
452468 """ ,
453469 List .of (
454- "Sub.java:4:14: compiler.warn.incompatible.null.restrictions: (compiler.misc.argument.type.nullability.mismatch: java.util.List, java.util.List<java.lang.String>!)" ,
455- "Sub.java:4:22: compiler.warn.incompatible.null.restrictions: (compiler.misc.argument.type.nullability.mismatch: java.util.List, java.util.List<java.lang.Integer>!)" ,
470+ "Sub.java:4:14: compiler.warn.incompatible.null.restrictions: (compiler.misc.argument.type.nullability.mismatch: java.util.List, java.util.List<java.lang.String>!, Super, m(java.util.List<java.lang.String>!,java.util.List<java.lang.Integer>!) )" ,
471+ "Sub.java:4:22: compiler.warn.incompatible.null.restrictions: (compiler.misc.argument.type.nullability.mismatch: java.util.List, java.util.List<java.lang.Integer>!, Super, m(java.util.List<java.lang.String>!,java.util.List<java.lang.Integer>!) )" ,
456472 "2 warnings"
457473 )
458474 );
@@ -469,8 +485,8 @@ class Sub {
469485 }
470486 """ ,
471487 List .of (
472- "Sub.java:2:16: compiler.warn.incompatible.null.restrictions: (compiler.misc.lambda.argument.type.nullability.mismatch: java.lang.String, java.lang.String!)" ,
473- "Sub.java:2:26: compiler.warn.incompatible.null.restrictions: (compiler.misc.lambda.argument.type.nullability.mismatch: java.lang.Integer, java.lang.Integer!)" ,
488+ "Sub.java:2:16: compiler.warn.incompatible.null.restrictions: (compiler.misc.lambda.argument.type.nullability.mismatch: java.lang.String, java.lang.String!, Super )" ,
489+ "Sub.java:2:26: compiler.warn.incompatible.null.restrictions: (compiler.misc.lambda.argument.type.nullability.mismatch: java.lang.Integer, java.lang.Integer!, Super )" ,
474490 "2 warnings"
475491 )
476492 );
0 commit comments