View | Details | Raw Unified | Return to bug 104202 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/jdt/core/tests/compiler/regression/AutoBoxingTest.java (-11 / +11 lines)
Lines 2469-2485 Link Here
2469
				"  }\n" + 
2469
				"  }\n" + 
2470
				"}\n"
2470
				"}\n"
2471
			},
2471
			},
2472
 		"----------\n" + 
2472
			"----------\n" + 
2473
		"1. WARNING in X.java (at line 3)\n" + 
2473
			"1. WARNING in X.java (at line 3)\n" + 
2474
		"	Short s = (short) _byte; // cast is necessary\n" + 
2474
			"	Short s = (short) _byte; // cast is necessary\n" + 
2475
		"	          ^^^^^^^^^^^^^\n" + 
2475
			"	          ^^^^^^^^^^^^^\n" + 
2476
		"The expression of type short is boxed into Short\n" + 
2476
			"The expression of type short is boxed into Short\n" + 
2477
		"----------\n" + 
2477
			"----------\n" + 
2478
		"2. ERROR in X.java (at line 4)\n" + 
2478
			"2. ERROR in X.java (at line 4)\n" + 
2479
		"	Short s2 = _byte; // ko\n" + 
2479
			"	Short s2 = _byte; // ko\n" + 
2480
		"	      ^^\n" + 
2480
			"	           ^^^^^\n" + 
2481
		"Type mismatch: cannot convert from byte to Short\n" + 
2481
			"Type mismatch: cannot convert from byte to Short\n" + 
2482
		"----------\n"
2482
			"----------\n"
2483
        );
2483
        );
2484
	}
2484
	}
2485
    // autoboxing and type argument inference
2485
    // autoboxing and type argument inference
(-)src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_3.java (-1 / +1 lines)
Lines 3124-3130 Link Here
3124
		"----------\n" + 
3124
		"----------\n" + 
3125
		"2. ERROR in X.java (at line 6)\n" + 
3125
		"2. ERROR in X.java (at line 6)\n" + 
3126
		"	X x = this.clone();\n" + 
3126
		"	X x = this.clone();\n" + 
3127
		"	  ^\n" + 
3127
		"	      ^^^^^^^^^^^^\n" + 
3128
		"Type mismatch: cannot convert from Object to X\n" + 
3128
		"Type mismatch: cannot convert from Object to X\n" + 
3129
		"----------\n"
3129
		"----------\n"
3130
	);
3130
	);
(-)src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_4.java (-1 / +1 lines)
Lines 3128-3134 Link Here
3128
		"----------\n" + 
3128
		"----------\n" + 
3129
		"2. ERROR in X.java (at line 6)\n" + 
3129
		"2. ERROR in X.java (at line 6)\n" + 
3130
		"	X x = this.clone();\n" + 
3130
		"	X x = this.clone();\n" + 
3131
		"	  ^\n" + 
3131
		"	      ^^^^^^^^^^^^\n" + 
3132
		"Type mismatch: cannot convert from Object to X\n" + 
3132
		"Type mismatch: cannot convert from Object to X\n" + 
3133
		"----------\n"
3133
		"----------\n"
3134
	);
3134
	);
(-)src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_5.java (-1 / +1 lines)
Lines 3168-3174 Link Here
3168
		"----------\n" + 
3168
		"----------\n" + 
3169
		"1. ERROR in X.java (at line 6)\n" + 
3169
		"1. ERROR in X.java (at line 6)\n" + 
3170
		"	X x = this.clone();\n" + 
3170
		"	X x = this.clone();\n" + 
3171
		"	  ^\n" + 
3171
		"	      ^^^^^^^^^^^^\n" + 
3172
		"Type mismatch: cannot convert from Object to X\n" + 
3172
		"Type mismatch: cannot convert from Object to X\n" + 
3173
		"----------\n"
3173
		"----------\n"
3174
	);
3174
	);
(-)src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java (-155 / +155 lines)
Lines 1141-1147 Link Here
1141
			"----------\n" + 
1141
			"----------\n" + 
1142
			"1. ERROR in X.java (at line 15)\n" + 
1142
			"1. ERROR in X.java (at line 15)\n" + 
1143
			"	String s = t = \"SUC\";\n" + 
1143
			"	String s = t = \"SUC\";\n" + 
1144
			"	       ^\n" + 
1144
			"	           ^^^^^^^^^\n" + 
1145
			"Type mismatch: cannot convert from T to String\n" + 
1145
			"Type mismatch: cannot convert from T to String\n" + 
1146
			"----------\n" + 
1146
			"----------\n" + 
1147
			"2. ERROR in X.java (at line 15)\n" + 
1147
			"2. ERROR in X.java (at line 15)\n" + 
Lines 1186-1192 Link Here
1186
			"----------\n" + 
1186
			"----------\n" + 
1187
			"1. ERROR in X.java (at line 14)\n" + 
1187
			"1. ERROR in X.java (at line 14)\n" + 
1188
			"	X x = t;\n" + 
1188
			"	X x = t;\n" + 
1189
			"	  ^\n" + 
1189
			"	      ^\n" + 
1190
			"Type mismatch: cannot convert from T to X\n" + 
1190
			"Type mismatch: cannot convert from T to X\n" + 
1191
			"----------\n");
1191
			"----------\n");
1192
	}
1192
	}
Lines 2950-2971 Link Here
2950
				"   }\n" + 
2950
				"   }\n" + 
2951
				"}\n",
2951
				"}\n",
2952
			},
2952
			},
2953
		"----------\n" + 
2953
			"----------\n" + 
2954
		"1. ERROR in X.java (at line 7)\n" + 
2954
			"1. ERROR in X.java (at line 7)\n" + 
2955
		"	X<? extends BX> x = new X<AX<String>>(new AX<String>());\n" + 
2955
			"	X<? extends BX> x = new X<AX<String>>(new AX<String>());\n" + 
2956
		"	                ^\n" + 
2956
			"	                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
2957
		"Type mismatch: cannot convert from X<AX<String>> to X<? extends BX>\n" + 
2957
			"Type mismatch: cannot convert from X<AX<String>> to X<? extends BX>\n" + 
2958
		"----------\n" + 
2958
			"----------\n" + 
2959
		"2. WARNING in X.java (at line 8)\n" + 
2959
			"2. WARNING in X.java (at line 8)\n" + 
2960
		"	x.t.foo(\"SUCC\");\n" + 
2960
			"	x.t.foo(\"SUCC\");\n" + 
2961
		"	^^^^^^^^^^^^^^^\n" + 
2961
			"	^^^^^^^^^^^^^^^\n" + 
2962
		"Type safety: The method foo(Object) belongs to the raw type AX. References to generic type AX<P> should be parameterized\n" + 
2962
			"Type safety: The method foo(Object) belongs to the raw type AX. References to generic type AX<P> should be parameterized\n" + 
2963
		"----------\n" + 
2963
			"----------\n" + 
2964
		"3. WARNING in X.java (at line 9)\n" + 
2964
			"3. WARNING in X.java (at line 9)\n" + 
2965
		"	x.t.bar(\"ESS\");\n" + 
2965
			"	x.t.bar(\"ESS\");\n" + 
2966
		"	^^^^^^^^^^^^^^\n" + 
2966
			"	^^^^^^^^^^^^^^\n" + 
2967
		"Type safety: The method bar(Object) belongs to the raw type BX. References to generic type BX<Q> should be parameterized\n" + 
2967
			"Type safety: The method bar(Object) belongs to the raw type BX. References to generic type BX<Q> should be parameterized\n" + 
2968
		"----------\n");		
2968
			"----------\n");		
2969
	}			
2969
	}			
2970
	public void test105() {
2970
	public void test105() {
2971
		this.runConformTest(
2971
		this.runConformTest(
Lines 3544-3550 Link Here
3544
			"----------\n" + 
3544
			"----------\n" + 
3545
			"1. ERROR in X.java (at line 7)\n" + 
3545
			"1. ERROR in X.java (at line 7)\n" + 
3546
			"	Class<? extends X> c3 = s.getClass();\n" + 
3546
			"	Class<? extends X> c3 = s.getClass();\n" + 
3547
			"	                   ^^\n" + 
3547
			"	                        ^^^^^^^^^^^^\n" + 
3548
			"Type mismatch: cannot convert from Class<capture-of ? extends String> to Class<? extends X>\n" + 
3548
			"Type mismatch: cannot convert from Class<capture-of ? extends String> to Class<? extends X>\n" + 
3549
			"----------\n");
3549
			"----------\n");
3550
	}		
3550
	}		
Lines 3574-3580 Link Here
3574
			"----------\n" + 
3574
			"----------\n" + 
3575
			"1. ERROR in X.java (at line 8)\n" + 
3575
			"1. ERROR in X.java (at line 8)\n" + 
3576
			"	Class<? extends XY> c3 = s.getClass();\n" + 
3576
			"	Class<? extends XY> c3 = s.getClass();\n" + 
3577
			"	                    ^^\n" + 
3577
			"	                         ^^^^^^^^^^^^\n" + 
3578
			"Type mismatch: cannot convert from Class<capture-of ? extends String> to Class<? extends XY>\n" + 
3578
			"Type mismatch: cannot convert from Class<capture-of ? extends String> to Class<? extends XY>\n" + 
3579
			"----------\n" + 
3579
			"----------\n" + 
3580
			"2. WARNING in X.java (at line 14)\n" + 
3580
			"2. WARNING in X.java (at line 14)\n" + 
Lines 3972-3978 Link Here
3972
			"----------\n" + 
3972
			"----------\n" + 
3973
			"1. ERROR in X.java (at line 5)\n" + 
3973
			"1. ERROR in X.java (at line 5)\n" + 
3974
			"	Class<Object> xo2 = xx;\n" + 
3974
			"	Class<Object> xo2 = xx;\n" + 
3975
			"	              ^^^\n" + 
3975
			"	                    ^^\n" + 
3976
			"Type mismatch: cannot convert from Class<capture-of ? extends X> to Class<Object>\n" + 
3976
			"Type mismatch: cannot convert from Class<capture-of ? extends X> to Class<Object>\n" + 
3977
			"----------\n");
3977
			"----------\n");
3978
	}			
3978
	}			
Lines 4593-4599 Link Here
4593
			"----------\n" + 
4593
			"----------\n" + 
4594
			"1. ERROR in X.java (at line 4)\n" + 
4594
			"1. ERROR in X.java (at line 4)\n" + 
4595
			"	AX<String, Thread> a = bar();\n" + 
4595
			"	AX<String, Thread> a = bar();\n" + 
4596
			"	                   ^\n" + 
4596
			"	                       ^^^^^\n" + 
4597
			"Type mismatch: cannot convert from AX<AX<Object,Object>,Thread> to AX<String,Thread>\n" + 
4597
			"Type mismatch: cannot convert from AX<AX<Object,Object>,Thread> to AX<String,Thread>\n" + 
4598
			"----------\n" + 
4598
			"----------\n" + 
4599
			"2. WARNING in X.java (at line 9)\n" + 
4599
			"2. WARNING in X.java (at line 9)\n" + 
Lines 4631-4637 Link Here
4631
			"----------\n" + 
4631
			"----------\n" + 
4632
			"1. ERROR in X.java (at line 4)\n" + 
4632
			"1. ERROR in X.java (at line 4)\n" + 
4633
			"	AX<String> a = bar(new X());\n" + 
4633
			"	AX<String> a = bar(new X());\n" + 
4634
			"	           ^\n" + 
4634
			"	               ^^^^^^^^^^^^\n" + 
4635
			"Type mismatch: cannot convert from AX<X> to AX<String>\n" + 
4635
			"Type mismatch: cannot convert from AX<X> to AX<String>\n" + 
4636
			"----------\n" + 
4636
			"----------\n" + 
4637
			"2. WARNING in X.java (at line 9)\n" + 
4637
			"2. WARNING in X.java (at line 9)\n" + 
Lines 5977-5983 Link Here
5977
			"----------\n" + 
5977
			"----------\n" + 
5978
			"1. ERROR in X.java (at line 7)\n" + 
5978
			"1. ERROR in X.java (at line 7)\n" + 
5979
			"	Integer i = al.get(0);  // (2)\n" + 
5979
			"	Integer i = al.get(0);  // (2)\n" + 
5980
			"	        ^\n" + 
5980
			"	            ^^^^^^^^^\n" + 
5981
			"Type mismatch: cannot convert from capture-of ? super Integer to Integer\n" + 
5981
			"Type mismatch: cannot convert from capture-of ? super Integer to Integer\n" + 
5982
			"----------\n");
5982
			"----------\n");
5983
	}		
5983
	}		
Lines 6021-6027 Link Here
6021
			"----------\n" + 
6021
			"----------\n" + 
6022
			"1. ERROR in X.java (at line 5)\n" + 
6022
			"1. ERROR in X.java (at line 5)\n" + 
6023
			"	Integer i = lx.slot;\n" + 
6023
			"	Integer i = lx.slot;\n" + 
6024
			"	        ^\n" + 
6024
			"	            ^^^^^^^\n" + 
6025
			"Type mismatch: cannot convert from capture-of ? super Integer to Integer\n" + 
6025
			"Type mismatch: cannot convert from capture-of ? super Integer to Integer\n" + 
6026
			"----------\n");
6026
			"----------\n");
6027
	}	
6027
	}	
Lines 6206-6230 Link Here
6206
			"	                                          ^^^^^^^^^^\n" + 
6206
			"	                                          ^^^^^^^^^^\n" + 
6207
			"Type safety: The cast from Collection to List<X> is actually checking against the erased type List\n" + 
6207
			"Type safety: The cast from Collection to List<X> is actually checking against the erased type List\n" + 
6208
			"----------\n" + 
6208
			"----------\n" + 
6209
			"6. ERROR in X.java (at line 10)\n" + 
6209
			"6. WARNING in X.java (at line 10)\n" + 
6210
			"	void m5() { List c = null; List l = (Collection<X>)c; } // type mismatch\n" + 
6210
			"	void m5() { List c = null; List l = (Collection<X>)c; } // type mismatch\n" + 
6211
			"	                                ^\n" + 
6211
			"	                                    ^^^^^^^^^^^^^^^^\n" + 
6212
			"Type mismatch: cannot convert from Collection<X> to List\n" + 
6212
			"Type safety: The cast from List to Collection<X> is actually checking against the erased type Collection\n" + 
6213
			"----------\n" + 
6213
			"----------\n" + 
6214
			"7. WARNING in X.java (at line 10)\n" + 
6214
			"7. ERROR in X.java (at line 10)\n" + 
6215
			"	void m5() { List c = null; List l = (Collection<X>)c; } // type mismatch\n" + 
6215
			"	void m5() { List c = null; List l = (Collection<X>)c; } // type mismatch\n" + 
6216
			"	                                    ^^^^^^^^^^^^^^^^\n" + 
6216
			"	                                    ^^^^^^^^^^^^^^^^\n" + 
6217
			"Type safety: The cast from List to Collection<X> is actually checking against the erased type Collection\n" + 
6217
			"Type mismatch: cannot convert from Collection<X> to List\n" + 
6218
			"----------\n" + 
6218
			"----------\n" + 
6219
			"8. ERROR in X.java (at line 11)\n" + 
6219
			"8. WARNING in X.java (at line 11)\n" + 
6220
			"	void m6() { List c = null; List l = (Collection<?>)c; } // type mismatch\n" + 
6220
			"	void m6() { List c = null; List l = (Collection<?>)c; } // type mismatch\n" + 
6221
			"	                                ^\n" + 
6221
			"	                                    ^^^^^^^^^^^^^^^^\n" + 
6222
			"Type mismatch: cannot convert from Collection<capture-of ?> to List\n" + 
6222
			"Unnecessary cast from List to Collection<?>\n" + 
6223
			"----------\n" + 
6223
			"----------\n" + 
6224
			"9. WARNING in X.java (at line 11)\n" + 
6224
			"9. ERROR in X.java (at line 11)\n" + 
6225
			"	void m6() { List c = null; List l = (Collection<?>)c; } // type mismatch\n" + 
6225
			"	void m6() { List c = null; List l = (Collection<?>)c; } // type mismatch\n" + 
6226
			"	                                    ^^^^^^^^^^^^^^^^\n" + 
6226
			"	                                    ^^^^^^^^^^^^^^^^\n" + 
6227
			"Unnecessary cast from List to Collection<?>\n" + 
6227
			"Type mismatch: cannot convert from Collection<capture-of ?> to List\n" + 
6228
			"----------\n");
6228
			"----------\n");
6229
	}	
6229
	}	
6230
	// conversion from raw to X<?> is safe (no unsafe warning)
6230
	// conversion from raw to X<?> is safe (no unsafe warning)
Lines 6742-6753 Link Here
6742
				"    }\n" + 
6742
				"    }\n" + 
6743
				"}\n"
6743
				"}\n"
6744
			},
6744
			},
6745
		"----------\n" + 
6745
			"----------\n" + 
6746
		"1. ERROR in X.java (at line 5)\n" + 
6746
			"1. ERROR in X.java (at line 5)\n" + 
6747
		"	MX<Class<? extends Object>> mx2 = new MX<Class>();\n" + 
6747
			"	MX<Class<? extends Object>> mx2 = new MX<Class>();\n" + 
6748
		"	                            ^^^\n" + 
6748
			"	                                  ^^^^^^^^^^^^^^^\n" + 
6749
		"Type mismatch: cannot convert from X.MX<Class> to X.MX<Class<? extends Object>>\n" + 
6749
			"Type mismatch: cannot convert from X.MX<Class> to X.MX<Class<? extends Object>>\n" + 
6750
		"----------\n");
6750
			"----------\n");
6751
	}		
6751
	}		
6752
	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=69320 variation
6752
	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=69320 variation
6753
	public void test247() {
6753
	public void test247() {
Lines 6772-6798 Link Here
6772
			"----------\n" + 
6772
			"----------\n" + 
6773
			"1. ERROR in X.java (at line 3)\n" + 
6773
			"1. ERROR in X.java (at line 3)\n" + 
6774
			"	MX<Class<? extends Object>> mx2 = new MX<Class>(); // wrong\n" + 
6774
			"	MX<Class<? extends Object>> mx2 = new MX<Class>(); // wrong\n" + 
6775
			"	                            ^^^\n" + 
6775
			"	                                  ^^^^^^^^^^^^^^^\n" + 
6776
			"Type mismatch: cannot convert from MX<Class> to MX<Class<? extends Object>>\n" + 
6776
			"Type mismatch: cannot convert from MX<Class> to MX<Class<? extends Object>>\n" + 
6777
			"----------\n" + 
6777
			"----------\n" + 
6778
			"2. ERROR in X.java (at line 4)\n" + 
6778
			"2. ERROR in X.java (at line 4)\n" + 
6779
			"	MX<Class<? extends Object>> mx3 = new MX<Class<? extends String>>(); // wrong\n" + 
6779
			"	MX<Class<? extends Object>> mx3 = new MX<Class<? extends String>>(); // wrong\n" + 
6780
			"	                            ^^^\n" + 
6780
			"	                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
6781
			"Type mismatch: cannot convert from MX<Class<? extends String>> to MX<Class<? extends Object>>\n" + 
6781
			"Type mismatch: cannot convert from MX<Class<? extends String>> to MX<Class<? extends Object>>\n" + 
6782
			"----------\n" + 
6782
			"----------\n" + 
6783
			"3. ERROR in X.java (at line 5)\n" + 
6783
			"3. ERROR in X.java (at line 5)\n" + 
6784
			"	MX<Class<? extends Object>> mx4 = new MX<Class<String>>(); // wrong\n" + 
6784
			"	MX<Class<? extends Object>> mx4 = new MX<Class<String>>(); // wrong\n" + 
6785
			"	                            ^^^\n" + 
6785
			"	                                  ^^^^^^^^^^^^^^^^^^^^^^^\n" + 
6786
			"Type mismatch: cannot convert from MX<Class<String>> to MX<Class<? extends Object>>\n" + 
6786
			"Type mismatch: cannot convert from MX<Class<String>> to MX<Class<? extends Object>>\n" + 
6787
			"----------\n" + 
6787
			"----------\n" + 
6788
			"4. ERROR in X.java (at line 8)\n" + 
6788
			"4. ERROR in X.java (at line 8)\n" + 
6789
			"	MX<Class<? extends Class>> mx7 = new MX<Class<Class>>(); // wrong\n" + 
6789
			"	MX<Class<? extends Class>> mx7 = new MX<Class<Class>>(); // wrong\n" + 
6790
			"	                           ^^^\n" + 
6790
			"	                                 ^^^^^^^^^^^^^^^^^^^^^^\n" + 
6791
			"Type mismatch: cannot convert from MX<Class<Class>> to MX<Class<? extends Class>>\n" + 
6791
			"Type mismatch: cannot convert from MX<Class<Class>> to MX<Class<? extends Class>>\n" + 
6792
			"----------\n" + 
6792
			"----------\n" + 
6793
			"5. ERROR in X.java (at line 9)\n" + 
6793
			"5. ERROR in X.java (at line 9)\n" + 
6794
			"	MX<MX<? extends Class>> mx8 = new MX<MX<Class>>(); // wrong\n" + 
6794
			"	MX<MX<? extends Class>> mx8 = new MX<MX<Class>>(); // wrong\n" + 
6795
			"	                        ^^^\n" + 
6795
			"	                              ^^^^^^^^^^^^^^^^^^^\n" + 
6796
			"Type mismatch: cannot convert from MX<MX<Class>> to MX<MX<? extends Class>>\n" + 
6796
			"Type mismatch: cannot convert from MX<MX<Class>> to MX<MX<? extends Class>>\n" + 
6797
			"----------\n");
6797
			"----------\n");
6798
	}			
6798
	}			
Lines 6908-6922 Link Here
6908
			"	                 ^^^^^^^^^^^^^^^^\n" + 
6908
			"	                 ^^^^^^^^^^^^^^^^\n" + 
6909
			"Type safety: The cast from List<capture-of ? extends Number> to List<Number> is actually checking against the erased type List\n" + 
6909
			"Type safety: The cast from List<capture-of ? extends Number> to List<Number> is actually checking against the erased type List\n" + 
6910
			"----------\n" + 
6910
			"----------\n" + 
6911
			"2. ERROR in X.java (at line 11)\n" + 
6911
			"2. WARNING in X.java (at line 11)\n" + 
6912
			"	List<Number> ls2 = (List<? extends Number>)ls;\n" + 
6912
			"	List<Number> ls2 = (List<? extends Number>)ls;\n" + 
6913
			"	             ^^^\n" + 
6913
			"	                   ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
6914
			"Type mismatch: cannot convert from List<capture-of ? extends Number> to List<Number>\n" + 
6914
			"Unnecessary cast from List<capture-of ? extends Number> to List<? extends Number>\n" + 
6915
			"----------\n" + 
6915
			"----------\n" + 
6916
			"3. WARNING in X.java (at line 11)\n" + 
6916
			"3. ERROR in X.java (at line 11)\n" + 
6917
			"	List<Number> ls2 = (List<? extends Number>)ls;\n" + 
6917
			"	List<Number> ls2 = (List<? extends Number>)ls;\n" + 
6918
			"	                   ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
6918
			"	                   ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
6919
			"Unnecessary cast from List<capture-of ? extends Number> to List<? extends Number>\n" + 
6919
			"Type mismatch: cannot convert from List<capture-of ? extends Number> to List<Number>\n" + 
6920
			"----------\n" + 
6920
			"----------\n" + 
6921
			"4. WARNING in X.java (at line 12)\n" + 
6921
			"4. WARNING in X.java (at line 12)\n" + 
6922
			"	List<? extends Number> ls3 = (List<? extends Number>) li;\n" + 
6922
			"	List<? extends Number> ls3 = (List<? extends Number>) li;\n" + 
Lines 7149-7155 Link Here
7149
			"----------\n" + 
7149
			"----------\n" + 
7150
			"2. ERROR in X.java (at line 4)\n" + 
7150
			"2. ERROR in X.java (at line 4)\n" + 
7151
			"	XC<U> xcu1 = (XC<?>) new X<E>();			\n" + 
7151
			"	XC<U> xcu1 = (XC<?>) new X<E>();			\n" + 
7152
			"	      ^^^^\n" + 
7152
			"	             ^^^^^^^^^^^^^^^^^^\n" + 
7153
			"Type mismatch: cannot convert from XC<capture-of ?> to XC<U>\n" + 
7153
			"Type mismatch: cannot convert from XC<capture-of ?> to XC<U>\n" + 
7154
			"----------\n" + 
7154
			"----------\n" + 
7155
			"3. WARNING in X.java (at line 5)\n" + 
7155
			"3. WARNING in X.java (at line 5)\n" + 
Lines 8627-8633 Link Here
8627
			"----------\n" + 
8627
			"----------\n" + 
8628
			"1. ERROR in X.java (at line 3)\n" + 
8628
			"1. ERROR in X.java (at line 3)\n" + 
8629
			"	X<String>.Item<Thread> i = new X<Exception>().new Item<Thread>();\n" + 
8629
			"	X<String>.Item<Thread> i = new X<Exception>().new Item<Thread>();\n" + 
8630
			"	                       ^\n" + 
8630
			"	                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
8631
			"Type mismatch: cannot convert from X<Exception>.Item<Thread> to X<String>.Item<Thread>\n" + 
8631
			"Type mismatch: cannot convert from X<Exception>.Item<Thread> to X<String>.Item<Thread>\n" + 
8632
			"----------\n" + 
8632
			"----------\n" + 
8633
			"2. ERROR in X.java (at line 6)\n" + 
8633
			"2. ERROR in X.java (at line 6)\n" + 
Lines 10535-10541 Link Here
10535
			"----------\n" + 
10535
			"----------\n" + 
10536
			"1. ERROR in X.java (at line 4)\n" + 
10536
			"1. ERROR in X.java (at line 4)\n" + 
10537
			"	String[] s = foo(null, new String[]{ \"hello\" });\n" + 
10537
			"	String[] s = foo(null, new String[]{ \"hello\" });\n" + 
10538
			"	         ^\n" + 
10538
			"	             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
10539
			"Type mismatch: cannot convert from String to String[]\n" + 
10539
			"Type mismatch: cannot convert from String to String[]\n" + 
10540
			"----------\n"
10540
			"----------\n"
10541
		);
10541
		);
Lines 12323-12339 Link Here
12323
				"  }\n" + 
12323
				"  }\n" + 
12324
				"}\n" ,
12324
				"}\n" ,
12325
			},
12325
			},
12326
		"----------\n" + 
12326
			"----------\n" + 
12327
		"1. ERROR in X.java (at line 6)\n" + 
12327
			"1. ERROR in X.java (at line 6)\n" + 
12328
		"	X<String>.Inner<Integer> d4 = new X.Inner<Integer>();\n" + 
12328
			"	X<String>.Inner<Integer> d4 = new X.Inner<Integer>();\n" + 
12329
		"	                         ^^\n" + 
12329
			"	                              ^^^^^^^^^^^^^^^^^^^^^^\n" + 
12330
		"Type mismatch: cannot convert from X.Inner<Integer> to X<String>.Inner<Integer>\n" + 
12330
			"Type mismatch: cannot convert from X.Inner<Integer> to X<String>.Inner<Integer>\n" + 
12331
		"----------\n" + 
12331
			"----------\n" + 
12332
		"2. ERROR in X.java (at line 6)\n" + 
12332
			"2. ERROR in X.java (at line 6)\n" + 
12333
		"	X<String>.Inner<Integer> d4 = new X.Inner<Integer>();\n" + 
12333
			"	X<String>.Inner<Integer> d4 = new X.Inner<Integer>();\n" + 
12334
		"	                                  ^^^^^^^\n" + 
12334
			"	                                  ^^^^^^^\n" + 
12335
		"The member type X.Inner<Integer> must be qualified with a parameterized type, since it is not static\n" + 
12335
			"The member type X.Inner<Integer> must be qualified with a parameterized type, since it is not static\n" + 
12336
		"----------\n");
12336
			"----------\n");
12337
	}			
12337
	}			
12338
	
12338
	
12339
	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=82159 - variation
12339
	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=82159 - variation
Lines 12570-12576 Link Here
12570
			"----------\n" + 
12570
			"----------\n" + 
12571
			"1. ERROR in X.java (at line 18)\n" + 
12571
			"1. ERROR in X.java (at line 18)\n" + 
12572
			"	Number n1= b.getOne(); // fails\n" + 
12572
			"	Number n1= b.getOne(); // fails\n" + 
12573
			"	       ^^\n" + 
12573
			"	           ^^^^^^^^^^\n" + 
12574
			"Type mismatch: cannot convert from Object to Number\n" + 
12574
			"Type mismatch: cannot convert from Object to Number\n" + 
12575
			"----------\n");
12575
			"----------\n");
12576
	}		
12576
	}		
Lines 12639-12645 Link Here
12639
			"----------\n" + 
12639
			"----------\n" + 
12640
			"1. ERROR in X.java (at line 8)\n" + 
12640
			"1. ERROR in X.java (at line 8)\n" + 
12641
			"	Class<? extends Collection> d = getClazz(); // ko\n" + 
12641
			"	Class<? extends Collection> d = getClazz(); // ko\n" + 
12642
			"	                            ^\n" + 
12642
			"	                                ^^^^^^^^^^\n" + 
12643
			"Type mismatch: cannot convert from Class<capture-of ? extends Object> to Class<? extends Collection>\n" + 
12643
			"Type mismatch: cannot convert from Class<capture-of ? extends Object> to Class<? extends Collection>\n" + 
12644
			"----------\n");
12644
			"----------\n");
12645
	}
12645
	}
Lines 12893-12904 Link Here
12893
			"----------\n" + 
12893
			"----------\n" + 
12894
			"1. ERROR in X.java (at line 12)\n" + 
12894
			"1. ERROR in X.java (at line 12)\n" + 
12895
			"	Cloneable s4 = choose(true, new Integer(1), new Float(2));\n" + 
12895
			"	Cloneable s4 = choose(true, new Integer(1), new Float(2));\n" + 
12896
			"	          ^^\n" + 
12896
			"	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
12897
			"Type mismatch: cannot convert from Number&Comparable<?> to Cloneable\n" + 
12897
			"Type mismatch: cannot convert from Number&Comparable<?> to Cloneable\n" + 
12898
			"----------\n" + 
12898
			"----------\n" + 
12899
			"2. ERROR in X.java (at line 13)\n" + 
12899
			"2. ERROR in X.java (at line 13)\n" + 
12900
			"	Cloneable s5 = choose(true, \"string\", new Integer(1));\n" + 
12900
			"	Cloneable s5 = choose(true, \"string\", new Integer(1));\n" + 
12901
			"	          ^^\n" + 
12901
			"	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
12902
			"Type mismatch: cannot convert from Object&Serializable&Comparable<?> to Cloneable\n" + 
12902
			"Type mismatch: cannot convert from Object&Serializable&Comparable<?> to Cloneable\n" + 
12903
			"----------\n");
12903
			"----------\n");
12904
	}
12904
	}
Lines 13764-13770 Link Here
13764
		"----------\n" + 
13764
		"----------\n" + 
13765
		"1. ERROR in X.java (at line 6)\n" + 
13765
		"1. ERROR in X.java (at line 6)\n" + 
13766
		"	Integer[] var = cond ? tab1 : tab2;\n" + 
13766
		"	Integer[] var = cond ? tab1 : tab2;\n" + 
13767
		"	          ^^^\n" + 
13767
		"	                ^^^^^^^^^^^^^^^^^^\n" + 
13768
		"Type mismatch: cannot convert from Object&Serializable&Cloneable to Integer[]\n" + 
13768
		"Type mismatch: cannot convert from Object&Serializable&Cloneable to Integer[]\n" + 
13769
		"----------\n");
13769
		"----------\n");
13770
}	
13770
}	
Lines 14438-14451 Link Here
14438
				"}\n"
14438
				"}\n"
14439
			},
14439
			},
14440
			"----------\n" + 
14440
			"----------\n" + 
14441
			"1. ERROR in X.java (at line 6)\r\n" + 
14441
			"1. ERROR in X.java (at line 6)\n" + 
14442
			"	int i = l.get(0).length;\r\n" + 
14442
			"	int i = l.get(0).length;\n" + 
14443
			"	                 ^^^^^^\n" + 
14443
			"	                 ^^^^^^\n" + 
14444
			"length cannot be resolved or is not a field\n" + 
14444
			"length cannot be resolved or is not a field\n" + 
14445
			"----------\n" + 
14445
			"----------\n" + 
14446
			"2. ERROR in X.java (at line 13)\r\n" + 
14446
			"2. ERROR in X.java (at line 13)\n" + 
14447
			"	Serializable s2 = b ? l.get(0) : s;\r\n" + 
14447
			"	Serializable s2 = b ? l.get(0) : s;\n" + 
14448
			"	             ^^\n" + 
14448
			"	                  ^^^^^^^^^^^^^^^^\n" + 
14449
			"Type mismatch: cannot convert from Object to Serializable\n" + 
14449
			"Type mismatch: cannot convert from Object to Serializable\n" + 
14450
			"----------\n");
14450
			"----------\n");
14451
	}		
14451
	}		
Lines 14624-14630 Link Here
14624
			"----------\n" + 
14624
			"----------\n" + 
14625
			"3. ERROR in X.java (at line 6)\n" + 
14625
			"3. ERROR in X.java (at line 6)\n" + 
14626
			"	Exception e = ex;\n" + 
14626
			"	Exception e = ex;\n" + 
14627
			"	          ^\n" + 
14627
			"	              ^^\n" + 
14628
			"Type mismatch: cannot convert from Throwable to Exception\n" + 
14628
			"Type mismatch: cannot convert from Throwable to Exception\n" + 
14629
			"----------\n");
14629
			"----------\n");
14630
	}		
14630
	}		
Lines 15036-15042 Link Here
15036
			"----------\n" + 
15036
			"----------\n" + 
15037
			"1. ERROR in X.java (at line 4)\n" + 
15037
			"1. ERROR in X.java (at line 4)\n" + 
15038
			"	T t = new ArrayList(); // BUG!!!\n" + 
15038
			"	T t = new ArrayList(); // BUG!!!\n" + 
15039
			"	  ^\n" + 
15039
			"	      ^^^^^^^^^^^^^^^\n" + 
15040
			"Type mismatch: cannot convert from ArrayList to T\n" + 
15040
			"Type mismatch: cannot convert from ArrayList to T\n" + 
15041
			"----------\n");
15041
			"----------\n");
15042
	}	
15042
	}	
Lines 15350-15364 Link Here
15350
			"	       ^^^^^^^\n" + 
15350
			"	       ^^^^^^^\n" + 
15351
			"Unnecessary cast from null to T\n" + 
15351
			"Unnecessary cast from null to T\n" + 
15352
			"----------\n" + 
15352
			"----------\n" + 
15353
			"2. ERROR in X.java (at line 14)\n" + 
15353
			"2. WARNING in X.java (at line 14)\n" + 
15354
			"	I2 v = b.willBe(I2.class);\n" + 
15354
			"	I2 v = b.willBe(I2.class);\n" + 
15355
			"	   ^\n" + 
15355
			"	       ^^^^^^^^^^^^^^^^^^\n" + 
15356
			"Type mismatch: cannot convert from X.I1 to X.I2\n" + 
15356
			"Type safety: The method willBe(Class) belongs to the raw type X.B. References to generic type X.B<C> should be parameterized\n" + 
15357
			"----------\n" + 
15357
			"----------\n" + 
15358
			"3. WARNING in X.java (at line 14)\n" + 
15358
			"3. ERROR in X.java (at line 14)\n" + 
15359
			"	I2 v = b.willBe(I2.class);\n" + 
15359
			"	I2 v = b.willBe(I2.class);\n" + 
15360
			"	       ^^^^^^^^^^^^^^^^^^\n" + 
15360
			"	       ^^^^^^^^^^^^^^^^^^\n" + 
15361
			"Type safety: The method willBe(Class) belongs to the raw type X.B. References to generic type X.B<C> should be parameterized\n" + 
15361
			"Type mismatch: cannot convert from X.I1 to X.I2\n" + 
15362
			"----------\n");
15362
			"----------\n");
15363
	}
15363
	}
15364
	// javac incorrectly rejects it
15364
	// javac incorrectly rejects it
Lines 16438-16444 Link Here
16438
			"----------\n" + 
16438
			"----------\n" + 
16439
			"1. ERROR in X.java (at line 3)\n" + 
16439
			"1. ERROR in X.java (at line 3)\n" + 
16440
			"	int[] ints = box.get();\n" + 
16440
			"	int[] ints = box.get();\n" + 
16441
			"	      ^^^^\n" + 
16441
			"	             ^^^^^^^^^\n" + 
16442
			"Type mismatch: cannot convert from capture-of ? super int[] to int[]\n" + 
16442
			"Type mismatch: cannot convert from capture-of ? super int[] to int[]\n" + 
16443
			"----------\n");
16443
			"----------\n");
16444
	}		
16444
	}		
Lines 16459-16465 Link Here
16459
			"----------\n" + 
16459
			"----------\n" + 
16460
			"1. ERROR in X.java (at line 3)\n" + 
16460
			"1. ERROR in X.java (at line 3)\n" + 
16461
			"	int[] ints = box.get();\n" + 
16461
			"	int[] ints = box.get();\n" + 
16462
			"	      ^^^^\n" + 
16462
			"	             ^^^^^^^^^\n" + 
16463
			"Type mismatch: cannot convert from capture-of ? to int[]\n" + 
16463
			"Type mismatch: cannot convert from capture-of ? to int[]\n" + 
16464
			"----------\n");
16464
			"----------\n");
16465
	}
16465
	}
Lines 16739-16750 Link Here
16739
				"	}	\n" + 
16739
				"	}	\n" + 
16740
				"}\n",
16740
				"}\n",
16741
            },
16741
            },
16742
			"----------\n" + 
16742
            "----------\n" + 
16743
			"1. ERROR in X.java (at line 9)\n" + 
16743
    		"1. ERROR in X.java (at line 9)\n" + 
16744
			"	Class<? super Number> superSup2 = ext.getSuperclass();\n" + 
16744
    		"	Class<? super Number> superSup2 = ext.getSuperclass();\n" + 
16745
			"	                      ^^^^^^^^^\n" + 
16745
    		"	                                  ^^^^^^^^^^^^^^^^^^^\n" + 
16746
			"Type mismatch: cannot convert from Class<capture-of ? super capture-of ? extends Number> to Class<? super Number>\n" + 
16746
    		"Type mismatch: cannot convert from Class<capture-of ? super capture-of ? extends Number> to Class<? super Number>\n" + 
16747
			"----------\n");
16747
    		"----------\n");
16748
	}
16748
	}
16749
	
16749
	
16750
	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=85281 - variation
16750
	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=85281 - variation
Lines 16826-16837 Link Here
16826
				"	}\n" + 
16826
				"	}\n" + 
16827
				"}\n",
16827
				"}\n",
16828
            },
16828
            },
16829
			"----------\n" + 
16829
            "----------\n" + 
16830
			"1. ERROR in X.java (at line 11)\n" + 
16830
    		"1. ERROR in X.java (at line 11)\n" + 
16831
			"	Iterator<Entry<String, ?>> it = map.entrySet().iterator();\n" + 
16831
    		"	Iterator<Entry<String, ?>> it = map.entrySet().iterator();\n" + 
16832
			"	                           ^^\n" + 
16832
    		"	                                ^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
16833
			"Type mismatch: cannot convert from Iterator<Map.Entry<String,capture-of ?>> to Iterator<Map.Entry<String,?>>\n" + 
16833
    		"Type mismatch: cannot convert from Iterator<Map.Entry<String,capture-of ?>> to Iterator<Map.Entry<String,?>>\n" + 
16834
			"----------\n");
16834
    		"----------\n");
16835
	}		
16835
	}		
16836
	public void test595() {
16836
	public void test595() {
16837
	    this.runNegativeTest(
16837
	    this.runNegativeTest(
Lines 16855-16866 Link Here
16855
				"	}\n" + 
16855
				"	}\n" + 
16856
				"}\n",
16856
				"}\n",
16857
            },
16857
            },
16858
			"----------\n" + 
16858
            "----------\n" + 
16859
			"1. ERROR in X.java (at line 11)\n" + 
16859
    		"1. ERROR in X.java (at line 11)\n" + 
16860
			"	Iterator<Entry<? extends String, ?>> it = map.entrySet().iterator();\n" + 
16860
    		"	Iterator<Entry<? extends String, ?>> it = map.entrySet().iterator();\n" + 
16861
			"	                                     ^^\n" + 
16861
    		"	                                          ^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
16862
			"Type mismatch: cannot convert from Iterator<Map.Entry<capture-of ? extends String,capture-of ?>> to Iterator<Map.Entry<? extends String,?>>\n" + 
16862
    		"Type mismatch: cannot convert from Iterator<Map.Entry<capture-of ? extends String,capture-of ?>> to Iterator<Map.Entry<? extends String,?>>\n" + 
16863
			"----------\n");
16863
    		"----------\n");
16864
	}		
16864
	}		
16865
	public void test596() {
16865
	public void test596() {
16866
	    this.runConformTest(
16866
	    this.runConformTest(
Lines 17730-17741 Link Here
17730
				"	}\n" + 
17730
				"	}\n" + 
17731
				"}\n",
17731
				"}\n",
17732
            },
17732
            },
17733
			"----------\n" + 
17733
            "----------\n" + 
17734
			"1. ERROR in X.java (at line 9)\n" + 
17734
    		"1. ERROR in X.java (at line 9)\n" + 
17735
			"	String s = foo(l1, l2);\n" + 
17735
    		"	String s = foo(l1, l2);\n" + 
17736
			"	       ^\n" + 
17736
    		"	           ^^^^^^^^^^^\n" + 
17737
			"Type mismatch: cannot convert from List<capture-of ? extends Object&Serializable&Comparable<?>> to String\n" + 
17737
    		"Type mismatch: cannot convert from List<capture-of ? extends Object&Serializable&Comparable<?>> to String\n" + 
17738
			"----------\n");
17738
    		"----------\n");
17739
	}	
17739
	}	
17740
	// check capture for conditional operator
17740
	// check capture for conditional operator
17741
	public void test628() {
17741
	public void test628() {
Lines 17755-17766 Link Here
17755
				"	}\n" + 
17755
				"	}\n" + 
17756
				"}\n",
17756
				"}\n",
17757
            },
17757
            },
17758
			"----------\n" + 
17758
            "----------\n" + 
17759
			"1. ERROR in X.java (at line 10)\n" + 
17759
    		"1. ERROR in X.java (at line 10)\n" + 
17760
			"	String s = l1 != null ? foo(l1, l2) : l3;\n" + 
17760
    		"	String s = l1 != null ? foo(l1, l2) : l3;\n" + 
17761
			"	       ^\n" + 
17761
    		"	           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
17762
			"Type mismatch: cannot convert from List<capture-of ? extends Object> to String\n" + 
17762
    		"Type mismatch: cannot convert from List<capture-of ? extends Object> to String\n" + 
17763
			"----------\n");
17763
    		"----------\n");
17764
	}		
17764
	}		
17765
	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=92556
17765
	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=92556
17766
	public void test629() {
17766
	public void test629() {
Lines 18212-18226 Link Here
18212
				"	int field;\n" + 
18212
				"	int field;\n" + 
18213
				"}\n",
18213
				"}\n",
18214
	        },
18214
	        },
18215
			"----------\n" + 
18215
	        "----------\n" + 
18216
			"1. ERROR in X.java (at line 13)\n" + 
18216
			"1. ERROR in X.java (at line 13)\n" + 
18217
			"	MyAnnotation typeAnnot = type.getAnnotation(MyAnnotation.class);\n" + 
18217
			"	MyAnnotation typeAnnot = type.getAnnotation(MyAnnotation.class);\n" + 
18218
			"	             ^^^^^^^^^\n" + 
18218
			"	                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
18219
			"Type mismatch: cannot convert from Annotation to MyAnnotation\n" + 
18219
			"Type mismatch: cannot convert from Annotation to MyAnnotation\n" + 
18220
			"----------\n" + 
18220
			"----------\n" + 
18221
			"2. ERROR in X.java (at line 15)\n" + 
18221
			"2. ERROR in X.java (at line 15)\n" + 
18222
			"	MyAnnotation constrAnnot = constructor.getAnnotation(MyAnnotation.class);\n" + 
18222
			"	MyAnnotation constrAnnot = constructor.getAnnotation(MyAnnotation.class);\n" + 
18223
			"	             ^^^^^^^^^^^\n" + 
18223
			"	                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
18224
			"Type mismatch: cannot convert from Annotation to MyAnnotation\n" + 
18224
			"Type mismatch: cannot convert from Annotation to MyAnnotation\n" + 
18225
			"----------\n");
18225
			"----------\n");
18226
	}			
18226
	}			
Lines 18284-18299 Link Here
18284
				"	}\n" + 
18284
				"	}\n" + 
18285
				"}\n",
18285
				"}\n",
18286
	        },
18286
	        },
18287
			"----------\n" + 
18287
	        "----------\n" + 
18288
			"1. ERROR in X.java (at line 8)\r\n" + 
18288
			"1. WARNING in X.java (at line 8)\n" + 
18289
			"	String str = x.foo(\"hello\");\r\n" + 
18289
			"	String str = x.foo(\"hello\");\n" + 
18290
			"	       ^^^\n" + 
18291
			"Type mismatch: cannot convert from Object to String\n" + 
18292
			"----------\n" + 
18293
			"2. WARNING in X.java (at line 8)\r\n" + 
18294
			"	String str = x.foo(\"hello\");\r\n" + 
18295
			"	             ^^^^^^^^^^^^^^\n" + 
18290
			"	             ^^^^^^^^^^^^^^\n" + 
18296
			"Type safety: The method foo(Object) belongs to the raw type X. References to generic type X<T> should be parameterized\n" + 
18291
			"Type safety: The method foo(Object) belongs to the raw type X. References to generic type X<T> should be parameterized\n" + 
18292
			"----------\n" + 
18293
			"2. ERROR in X.java (at line 8)\n" + 
18294
			"	String str = x.foo(\"hello\");\n" + 
18295
			"	             ^^^^^^^^^^^^^^\n" + 
18296
			"Type mismatch: cannot convert from Object to String\n" + 
18297
			"----------\n");
18297
			"----------\n");
18298
	}			
18298
	}			
18299
	public void _test645() {
18299
	public void _test645() {
Lines 18348-18363 Link Here
18348
				"	}\n" + 
18348
				"	}\n" + 
18349
				"}\n",
18349
				"}\n",
18350
	        },
18350
	        },
18351
			"----------\n" + 
18351
	        "----------\n" + 
18352
			"1. ERROR in X.java (at line 4)\n" + 
18352
			"1. WARNING in X.java (at line 4)\n" + 
18353
			"	X x = inner.setOuterT(new X());\n" + 
18353
			"	X x = inner.setOuterT(new X());\n" + 
18354
			"	  ^\n" + 
18354
			"	      ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
18355
			"Type mismatch: cannot convert from Object to X\n" + 
18355
			"Type safety: The method setOuterT(Object) belongs to the raw type Outer.Inner. References to generic type Outer<T>.Inner should be parameterized\n" + 
18356
			"----------\n" + 
18356
			"----------\n" + 
18357
			"2. WARNING in X.java (at line 4)\n" + 
18357
			"2. ERROR in X.java (at line 4)\n" + 
18358
			"	X x = inner.setOuterT(new X());\n" + 
18358
			"	X x = inner.setOuterT(new X());\n" + 
18359
			"	      ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
18359
			"	      ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
18360
			"Type safety: The method setOuterT(Object) belongs to the raw type Outer.Inner. References to generic type Outer<T>.Inner should be parameterized\n" + 
18360
			"Type mismatch: cannot convert from Object to X\n" + 
18361
			"----------\n" + 
18361
			"----------\n" + 
18362
			"3. WARNING in X.java (at line 6)\n" + 
18362
			"3. WARNING in X.java (at line 6)\n" + 
18363
			"	Outer<String>.Inner innerS = inner;\n" + 
18363
			"	Outer<String>.Inner innerS = inner;\n" + 
Lines 18388-18403 Link Here
18388
				"	}\n" + 
18388
				"	}\n" + 
18389
				"}\n",
18389
				"}\n",
18390
	        },
18390
	        },
18391
			"----------\n" + 
18391
	        "----------\n" + 
18392
			"1. ERROR in X.java (at line 4)\n" + 
18392
			"1. WARNING in X.java (at line 4)\n" + 
18393
			"	X x = inner.set(new X());\n" + 
18393
			"	X x = inner.set(new X());\n" + 
18394
			"	  ^\n" + 
18394
			"	      ^^^^^^^^^^^^^^^^^^\n" + 
18395
			"Type mismatch: cannot convert from Object to X\n" + 
18395
			"Type safety: The method set(Object) belongs to the raw type Outer.Inner. References to generic type Outer<T>.Inner<U> should be parameterized\n" + 
18396
			"----------\n" + 
18396
			"----------\n" + 
18397
			"2. WARNING in X.java (at line 4)\n" + 
18397
			"2. ERROR in X.java (at line 4)\n" + 
18398
			"	X x = inner.set(new X());\n" + 
18398
			"	X x = inner.set(new X());\n" + 
18399
			"	      ^^^^^^^^^^^^^^^^^^\n" + 
18399
			"	      ^^^^^^^^^^^^^^^^^^\n" + 
18400
			"Type safety: The method set(Object) belongs to the raw type Outer.Inner. References to generic type Outer<T>.Inner<U> should be parameterized\n" + 
18400
			"Type mismatch: cannot convert from Object to X\n" + 
18401
			"----------\n" + 
18401
			"----------\n" + 
18402
			"3. ERROR in X.java (at line 6)\n" + 
18402
			"3. ERROR in X.java (at line 6)\n" + 
18403
			"	Outer<String>.Inner innerS = inner;\n" + 
18403
			"	Outer<String>.Inner innerS = inner;\n" + 
Lines 19739-19745 Link Here
19739
		"----------\n" + 
19739
		"----------\n" + 
19740
		"1. ERROR in X.java (at line 5)\n" + 
19740
		"1. ERROR in X.java (at line 5)\n" + 
19741
		"	ArrayList<Number> arrayList = new ArrayList<Integer>(); // compile error\n" + 
19741
		"	ArrayList<Number> arrayList = new ArrayList<Integer>(); // compile error\n" + 
19742
		"	                  ^^^^^^^^^\n" + 
19742
		"	                              ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
19743
		"Type mismatch: cannot convert from ArrayList<Integer> to ArrayList<Number>\n" + 
19743
		"Type mismatch: cannot convert from ArrayList<Integer> to ArrayList<Number>\n" + 
19744
		"----------\n");
19744
		"----------\n");
19745
}	
19745
}	
Lines 19888-19894 Link Here
19888
		"----------\n" + 
19888
		"----------\n" + 
19889
		"1. ERROR in X.java (at line 6)\n" + 
19889
		"1. ERROR in X.java (at line 6)\n" + 
19890
		"	X<String> x = foo(x1, x2);\n" + 
19890
		"	X<String> x = foo(x1, x2);\n" + 
19891
		"	          ^\n" + 
19891
		"	              ^^^^^^^^^^^\n" + 
19892
		"Type mismatch: cannot convert from X<capture-of ? extends Object> to X<String>\n" + 
19892
		"Type mismatch: cannot convert from X<capture-of ? extends Object> to X<String>\n" + 
19893
		"----------\n");
19893
		"----------\n");
19894
}	
19894
}	
Lines 19908-19914 Link Here
19908
		"----------\n" + 
19908
		"----------\n" + 
19909
		"1. ERROR in X.java (at line 6)\n" + 
19909
		"1. ERROR in X.java (at line 6)\n" + 
19910
		"	X<String> x = foo(x1, x2);\n" + 
19910
		"	X<String> x = foo(x1, x2);\n" + 
19911
		"	          ^\n" + 
19911
		"	              ^^^^^^^^^^^\n" + 
19912
		"Type mismatch: cannot convert from X<capture-of ? extends Object> to X<String>\n" + 
19912
		"Type mismatch: cannot convert from X<capture-of ? extends Object> to X<String>\n" + 
19913
		"----------\n");
19913
		"----------\n");
19914
}	
19914
}	
Lines 20501-20513 Link Here
20501
			"class CC {}\n",
20501
			"class CC {}\n",
20502
		},
20502
		},
20503
		"----------\n" + 
20503
		"----------\n" + 
20504
		"1. ERROR in X.java (at line 4)\r\n" + 
20504
		"1. ERROR in X.java (at line 4)\n" + 
20505
		"	AA<CC> res = bb.test();\r\n" + 
20505
		"	AA<CC> res = bb.test();\n" + 
20506
		"	                ^^^^\n" + 
20506
		"	                ^^^^\n" + 
20507
		"The method test() is ambiguous for the type BB\n" + 
20507
		"The method test() is ambiguous for the type BB\n" + 
20508
		"----------\n" + 
20508
		"----------\n" + 
20509
		"2. ERROR in X.java (at line 5)\r\n" + 
20509
		"2. ERROR in X.java (at line 5)\n" + 
20510
		"	BB res2 = bb.test();\r\n" + 
20510
		"	BB res2 = bb.test();\n" + 
20511
		"	             ^^^^\n" + 
20511
		"	             ^^^^\n" + 
20512
		"The method test() is ambiguous for the type BB\n" + 
20512
		"The method test() is ambiguous for the type BB\n" + 
20513
		"----------\n"
20513
		"----------\n"
Lines 20531-20544 Link Here
20531
			"class CC {}\n",
20531
			"class CC {}\n",
20532
		},
20532
		},
20533
		"----------\n" + 
20533
		"----------\n" + 
20534
		"1. ERROR in X.java (at line 4)\r\n" + 
20534
		"1. ERROR in X.java (at line 4)\n" + 
20535
		"	AA<CC> res = bb.test();\r\n" + 
20535
		"	AA<CC> res = bb.test();\n" + 
20536
		"	       ^^^\n" + 
20536
		"	             ^^^^^^^^^\n" + 
20537
		"Type mismatch: cannot convert from AA<Object> to AA<CC>\n" + 
20537
		"Type mismatch: cannot convert from AA<Object> to AA<CC>\n" + 
20538
		"----------\n" + 
20538
		"----------\n" + 
20539
		"2. ERROR in X.java (at line 5)\r\n" + 
20539
		"2. ERROR in X.java (at line 5)\n" + 
20540
		"	BB res2 = bb.test();\r\n" + 
20540
		"	BB res2 = bb.test();\n" + 
20541
		"	   ^^^^\n" + 
20541
		"	          ^^^^^^^^^\n" + 
20542
		"Type mismatch: cannot convert from AA<Object> to BB\n" + 
20542
		"Type mismatch: cannot convert from AA<Object> to BB\n" + 
20543
		"----------\n"
20543
		"----------\n"
20544
		// incompatible types on both assignments
20544
		// incompatible types on both assignments
Lines 20780-20786 Link Here
20780
		"----------\n" + 
20780
		"----------\n" + 
20781
		"1. ERROR in X.java (at line 3)\n" + 
20781
		"1. ERROR in X.java (at line 3)\n" + 
20782
		"	Comparable<String> c = (java.util.List)bar(5, 5.0);\n" + 
20782
		"	Comparable<String> c = (java.util.List)bar(5, 5.0);\n" + 
20783
		"	                   ^\n" + 
20783
		"	                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
20784
		"Type mismatch: cannot convert from List to Comparable<String>\n" + 
20784
		"Type mismatch: cannot convert from List to Comparable<String>\n" + 
20785
		"----------\n");
20785
		"----------\n");
20786
}
20786
}
Lines 21580-21586 Link Here
21580
		"----------\n" + 
21580
		"----------\n" + 
21581
		"1. ERROR in X.java (at line 3)\n" + 
21581
		"1. ERROR in X.java (at line 3)\n" + 
21582
		"	String s = java.util.Arrays.asList(3, 3.1);\n" + 
21582
		"	String s = java.util.Arrays.asList(3, 3.1);\n" + 
21583
		"	       ^\n" + 
21583
		"	           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
21584
		"Type mismatch: cannot convert from List<Number&Comparable<?>> to String\n" + 
21584
		"Type mismatch: cannot convert from List<Number&Comparable<?>> to String\n" + 
21585
		"----------\n");
21585
		"----------\n");
21586
}
21586
}
Lines 21633-21639 Link Here
21633
		"----------\n" + 
21633
		"----------\n" + 
21634
		"1. ERROR in X.java (at line 6)\n" + 
21634
		"1. ERROR in X.java (at line 6)\n" + 
21635
		"	String s = x.get();\n" + 
21635
		"	String s = x.get();\n" + 
21636
		"	       ^\n" + 
21636
		"	           ^^^^^^^\n" + 
21637
		"Type mismatch: cannot convert from X to String\n" + 
21637
		"Type mismatch: cannot convert from X to String\n" + 
21638
		"----------\n");
21638
		"----------\n");
21639
}
21639
}
Lines 21768-21774 Link Here
21768
		"----------\n" + 
21768
		"----------\n" + 
21769
		"1. ERROR in X.java (at line 15)\n" + 
21769
		"1. ERROR in X.java (at line 15)\n" + 
21770
		"	bugElement be = bc.getData();   //<< here\n" + 
21770
		"	bugElement be = bc.getData();   //<< here\n" + 
21771
		"	           ^^\n" + 
21771
		"	                ^^^^^^^^^^^^\n" + 
21772
		"Type mismatch: cannot convert from Object to bugElement\n" + 
21772
		"Type mismatch: cannot convert from Object to bugElement\n" + 
21773
		"----------\n");
21773
		"----------\n");
21774
}
21774
}
Lines 21927-21933 Link Here
21927
		"----------\n" + 
21927
		"----------\n" + 
21928
		"1. ERROR in X.java (at line 16)\n" + 
21928
		"1. ERROR in X.java (at line 16)\n" + 
21929
		"	X<Integer> x2 = itself(make());\n" + 
21929
		"	X<Integer> x2 = itself(make());\n" + 
21930
		"	           ^^\n" + 
21930
		"	                ^^^^^^^^^^^^^^\n" + 
21931
		"Type mismatch: cannot convert from X<Object> to X<Integer>\n" + 
21931
		"Type mismatch: cannot convert from X<Object> to X<Integer>\n" + 
21932
		"----------\n" + 
21932
		"----------\n" + 
21933
		"2. ERROR in X.java (at line 19)\n" + 
21933
		"2. ERROR in X.java (at line 19)\n" + 

Return to bug 104202