Lines 7369-7405
Link Here
|
7369 |
} |
7369 |
} |
7370 |
// generic method of raw type |
7370 |
// generic method of raw type |
7371 |
public void test0245() { |
7371 |
public void test0245() { |
|
|
7372 |
if (this.complianceLevel < ClassFileConstants.JDK1_7) { |
7373 |
this.runNegativeTest( |
7374 |
new String[] { |
7375 |
"X.java", |
7376 |
"public class X <T> { \n" + |
7377 |
" <G> T foo(G g) {\n" + |
7378 |
" return null;\n" + |
7379 |
" }\n" + |
7380 |
" T bar(T t) {\n" + |
7381 |
" return zork;\n" + |
7382 |
" }\n" + |
7383 |
"\n" + |
7384 |
" public static void main(String[] args) {\n" + |
7385 |
" X rx = new X();\n" + |
7386 |
" rx.<String>foo(\"hello\"); // Eclipse error here\n" + |
7387 |
" rx.<String>bar(\"hello\"); // Eclipse error here\n" + |
7388 |
" }\n" + |
7389 |
"}\n" |
7390 |
}, |
7391 |
"----------\n" + |
7392 |
"1. ERROR in X.java (at line 6)\n" + |
7393 |
" return zork;\n" + |
7394 |
" ^^^^\n" + |
7395 |
"zork cannot be resolved\n" + |
7396 |
"----------\n" + |
7397 |
"2. WARNING in X.java (at line 10)\n" + |
7398 |
" X rx = new X();\n" + |
7399 |
" ^\n" + |
7400 |
"X is a raw type. References to generic type X<T> should be parameterized\n" + |
7401 |
"----------\n" + |
7402 |
"3. WARNING in X.java (at line 10)\n" + |
7403 |
" X rx = new X();\n" + |
7404 |
" ^\n" + |
7405 |
"X is a raw type. References to generic type X<T> should be parameterized\n" + |
7406 |
"----------\n" + |
7407 |
"4. ERROR in X.java (at line 11)\n" + |
7408 |
" rx.<String>foo(\"hello\"); // Eclipse error here\n" + |
7409 |
" ^^^\n" + |
7410 |
"The method foo(Object) of raw type X is no longer generic; it cannot be parameterized with arguments <String>\n" + |
7411 |
"----------\n" + |
7412 |
"5. ERROR in X.java (at line 12)\n" + |
7413 |
" rx.<String>bar(\"hello\"); // Eclipse error here\n" + |
7414 |
" ^^^\n" + |
7415 |
"The method bar(Object) of type X is not generic; it cannot be parameterized with arguments <String>\n" + |
7416 |
"----------\n", |
7417 |
JavacTestOptions.EclipseHasABug.EclipseBug236242); |
7418 |
return; |
7419 |
} |
7372 |
this.runNegativeTest( |
7420 |
this.runNegativeTest( |
7373 |
new String[] { |
7421 |
new String[] { |
7374 |
"X.java", |
7422 |
"X.java", |
7375 |
"public class X <T> { \n" + |
7423 |
"public class X <T> { \n" + |
7376 |
" <G> T foo(G g) {\n" + |
7424 |
" <G> T foo(G g) {\n" + |
7377 |
" return null;\n" + |
7425 |
" return null;\n" + |
7378 |
" }\n" + |
7426 |
" }\n" + |
7379 |
" \n" + |
7427 |
" T bar(T t) {\n" + |
7380 |
" public static void main(String[] args) {\n" + |
7428 |
" return zork;\n" + |
7381 |
" X rx = new X();\n" + |
7429 |
" }\n" + |
7382 |
" rx.<String>foo(\"hello\");\n" + |
7430 |
"\n" + |
7383 |
" }\n" + |
7431 |
" public static void main(String[] args) {\n" + |
7384 |
"}\n" |
7432 |
" X rx = new X();\n" + |
7385 |
}, |
7433 |
" rx.<String>foo(\"hello\"); // Eclipse error here\n" + |
7386 |
"----------\n" + |
7434 |
" rx.<String>bar(\"hello\"); // Eclipse error here\n" + |
7387 |
"1. WARNING in X.java (at line 7)\n" + |
7435 |
" }\n" + |
7388 |
" X rx = new X();\n" + |
7436 |
"}\n" |
7389 |
" ^\n" + |
7437 |
}, |
7390 |
"X is a raw type. References to generic type X<T> should be parameterized\n" + |
7438 |
"----------\n" + |
7391 |
"----------\n" + |
7439 |
"1. ERROR in X.java (at line 6)\n" + |
7392 |
"2. WARNING in X.java (at line 7)\n" + |
7440 |
" return zork;\n" + |
7393 |
" X rx = new X();\n" + |
7441 |
" ^^^^\n" + |
7394 |
" ^\n" + |
7442 |
"zork cannot be resolved\n" + |
7395 |
"X is a raw type. References to generic type X<T> should be parameterized\n" + |
7443 |
"----------\n" + |
7396 |
"----------\n" + |
7444 |
"2. WARNING in X.java (at line 10)\n" + |
7397 |
"3. ERROR in X.java (at line 8)\n" + |
7445 |
" X rx = new X();\n" + |
7398 |
" rx.<String>foo(\"hello\");\n" + |
7446 |
" ^\n" + |
7399 |
" ^^^\n" + |
7447 |
"X is a raw type. References to generic type X<T> should be parameterized\n" + |
7400 |
"The method foo(Object) of raw type X is no longer generic; it cannot be parameterized with arguments <String>\n" + |
7448 |
"----------\n" + |
7401 |
"----------\n", |
7449 |
"3. WARNING in X.java (at line 10)\n" + |
7402 |
JavacTestOptions.EclipseHasABug.EclipseBug236242); |
7450 |
" X rx = new X();\n" + |
|
|
7451 |
" ^\n" + |
7452 |
"X is a raw type. References to generic type X<T> should be parameterized\n" + |
7453 |
"----------\n" + |
7454 |
"4. WARNING in X.java (at line 11)\n" + |
7455 |
" rx.<String>foo(\"hello\"); // Eclipse error here\n" + |
7456 |
" ^^^^^^^^^^^^^^^^^^^^^^^\n" + |
7457 |
"Type safety: The method foo(Object) belongs to the raw type X. References to generic type X<T> should be parameterized\n" + |
7458 |
"----------\n" + |
7459 |
"5. WARNING in X.java (at line 12)\n" + |
7460 |
" rx.<String>bar(\"hello\"); // Eclipse error here\n" + |
7461 |
" ^^^^^^^^^^^^^^^^^^^^^^^\n" + |
7462 |
"Type safety: The method bar(Object) belongs to the raw type X. References to generic type X<T> should be parameterized\n" + |
7463 |
"----------\n" + |
7464 |
"6. WARNING in X.java (at line 12)\n" + |
7465 |
" rx.<String>bar(\"hello\"); // Eclipse error here\n" + |
7466 |
" ^^^^^^\n" + |
7467 |
"Unused type arguments for the non generic method bar(Object) of type X; it should not be parameterized with arguments <String>\n" + |
7468 |
"----------\n", |
7469 |
JavacTestOptions.EclipseHasABug.EclipseBug236242); |
7403 |
} |
7470 |
} |
7404 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=69320 parameterized type compatibility |
7471 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=69320 parameterized type compatibility |
7405 |
public void test0246() { |
7472 |
public void test0246() { |