Lines 410-415
Link Here
|
410 |
"Type mismatch: required \'@NonNull String\' but the provided value can be null\n" + |
410 |
"Type mismatch: required \'@NonNull String\' but the provided value can be null\n" + |
411 |
"----------\n" /* compiler output */); |
411 |
"----------\n" /* compiler output */); |
412 |
} |
412 |
} |
|
|
413 |
// null is passed to a non-null parameter in a qualified allocation expression, across CUs |
414 |
public void test_nonnull_parameter_010() { |
415 |
Map customOptions = getCompilerOptions(); |
416 |
customOptions.put(JavaCore.COMPILER_PB_NULL_SPECIFICATION_INSUFFICIENT_INFO, JavaCore.ERROR); |
417 |
runNegativeTestWithLibs( |
418 |
new String[] { |
419 |
"ContainingInner2.java", |
420 |
"public class ContainingInner2 {\n" + |
421 |
" public ContainingInner2 (@org.eclipse.jdt.annotation.NonNull Object o) {\n" + |
422 |
" }\n" + |
423 |
" public class Inner {\n" + |
424 |
" public Inner (@org.eclipse.jdt.annotation.NonNull Object o) {\n" + |
425 |
" }\n" + |
426 |
" }\n" + |
427 |
"}\n", |
428 |
"X.java", |
429 |
"public class X {\n" + |
430 |
" void create() {\n" + |
431 |
" ContainingInner2 container = new ContainingInner2(null);\n" + |
432 |
" ContainingInner2.Inner inner = container.new Inner(null);\n" + |
433 |
" }\n" + |
434 |
"}\n"}, |
435 |
customOptions, |
436 |
"----------\n" + |
437 |
"1. ERROR in X.java (at line 3)\n" + |
438 |
" ContainingInner2 container = new ContainingInner2(null);\n" + |
439 |
" ^^^^\n" + |
440 |
"Type mismatch: required \'@NonNull Object\' but the provided value is null\n" + |
441 |
"----------\n" + |
442 |
"2. ERROR in X.java (at line 4)\n" + |
443 |
" ContainingInner2.Inner inner = container.new Inner(null);\n" + |
444 |
" ^^^^\n" + |
445 |
"Type mismatch: required \'@NonNull Object\' but the provided value is null\n" + |
446 |
"----------\n" /* compiler output */); |
447 |
} |
448 |
// null is passed to a non-null parameter in a qualified allocation expression, target class read from .class |
449 |
public void test_nonnull_parameter_011() { |
450 |
Map customOptions = getCompilerOptions(); |
451 |
customOptions.put(JavaCore.COMPILER_PB_NULL_SPECIFICATION_INSUFFICIENT_INFO, JavaCore.ERROR); |
452 |
runConformTestWithLibs( |
453 |
new String[] { |
454 |
"ContainingInner2.java", |
455 |
"public class ContainingInner2 {\n" + |
456 |
" public ContainingInner2 (@org.eclipse.jdt.annotation.NonNull Object o) {\n" + |
457 |
" }\n" + |
458 |
" public class Inner {\n" + |
459 |
" public Inner (@org.eclipse.jdt.annotation.NonNull Object o) {\n" + |
460 |
" }\n" + |
461 |
" }\n" + |
462 |
"}\n", |
463 |
}, |
464 |
null /*customOptions*/, |
465 |
""); |
466 |
runNegativeTestWithLibs( |
467 |
false, // flush directory |
468 |
new String[] { |
469 |
"X.java", |
470 |
"public class X {\n" + |
471 |
" void create() {\n" + |
472 |
" ContainingInner2 container = new ContainingInner2(null);\n" + |
473 |
" ContainingInner2.Inner inner = container.new Inner(null);\n" + |
474 |
" }\n" + |
475 |
"}\n"}, |
476 |
customOptions, |
477 |
"----------\n" + |
478 |
"1. ERROR in X.java (at line 3)\n" + |
479 |
" ContainingInner2 container = new ContainingInner2(null);\n" + |
480 |
" ^^^^\n" + |
481 |
"Type mismatch: required \'@NonNull Object\' but the provided value is null\n" + |
482 |
"----------\n" + |
483 |
"2. ERROR in X.java (at line 4)\n" + |
484 |
" ContainingInner2.Inner inner = container.new Inner(null);\n" + |
485 |
" ^^^^\n" + |
486 |
"Type mismatch: required \'@NonNull Object\' but the provided value is null\n" + |
487 |
"----------\n" /* compiler output */); |
488 |
} |
489 |
//null is passed to a non-null parameter in a qualified allocation expression, generic constructor, target class read from .class |
490 |
public void test_nonnull_parameter_012() { |
491 |
Map customOptions = getCompilerOptions(); |
492 |
customOptions.put(JavaCore.COMPILER_PB_NULL_SPECIFICATION_INSUFFICIENT_INFO, JavaCore.ERROR); |
493 |
runConformTestWithLibs( |
494 |
new String[] { |
495 |
"ContainingInner2.java", |
496 |
"public class ContainingInner2 {\n" + |
497 |
" public ContainingInner2 (@org.eclipse.jdt.annotation.NonNull Object o) {\n" + |
498 |
" }\n" + |
499 |
" public class Inner {\n" + |
500 |
" public <T> Inner (@org.eclipse.jdt.annotation.NonNull T o) {\n" + |
501 |
" }\n" + |
502 |
" }\n" + |
503 |
"}\n", |
504 |
}, |
505 |
null /*customOptions*/, |
506 |
""); |
507 |
runNegativeTestWithLibs( |
508 |
false, // flush directory |
509 |
new String[] { |
510 |
"X.java", |
511 |
"public class X {\n" + |
512 |
" void create() {\n" + |
513 |
" ContainingInner2 container = new ContainingInner2(null);\n" + |
514 |
" ContainingInner2.Inner inner = container.new Inner(null);\n" + |
515 |
" }\n" + |
516 |
"}\n"}, |
517 |
customOptions, |
518 |
"----------\n" + |
519 |
"1. ERROR in X.java (at line 3)\n" + |
520 |
" ContainingInner2 container = new ContainingInner2(null);\n" + |
521 |
" ^^^^\n" + |
522 |
"Type mismatch: required \'@NonNull Object\' but the provided value is null\n" + |
523 |
"----------\n" + |
524 |
"2. ERROR in X.java (at line 4)\n" + |
525 |
" ContainingInner2.Inner inner = container.new Inner(null);\n" + |
526 |
" ^^^^\n" + |
527 |
"Type mismatch: required \'@NonNull Object\' but the provided value is null\n" + |
528 |
"----------\n" /* compiler output */); |
529 |
} |
413 |
// assigning potential null to a nonnull local variable |
530 |
// assigning potential null to a nonnull local variable |
414 |
public void test_nonnull_local_001() { |
531 |
public void test_nonnull_local_001() { |
415 |
runNegativeTest( |
532 |
runNegativeTest( |