Lines 38065-38068
Link Here
|
38065 |
false, // do not flush output |
38065 |
false, // do not flush output |
38066 |
null); |
38066 |
null); |
38067 |
} |
38067 |
} |
|
|
38068 |
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=189158 |
38069 |
public void test1150() { |
38070 |
this.runConformTest( |
38071 |
new String[] { |
38072 |
"X.java", |
38073 |
"import java.lang.ref.Reference;\n"+ |
38074 |
"public class X<T> {\n" + |
38075 |
" static class Rather {\n" + |
38076 |
" static class Deeply {\n" + |
38077 |
" static class Inside {\n" + |
38078 |
" }\n" + |
38079 |
" }\n" + |
38080 |
" }\n" + |
38081 |
" Reference<X.Rather.Deeply> x;\n" + |
38082 |
" Reference<X.Rather> y; \n" + |
38083 |
" Reference<X.Rather.Deeply.Inside> z; \n" + |
38084 |
"\n" + |
38085 |
" public static void main(String[] args) throws Exception {\n" + |
38086 |
" System.out.print(X.class.getDeclaredField(\"x\").getGenericType());\n" + |
38087 |
" System.out.print(\"##\");\n" + |
38088 |
" System.out.print(X.class.getDeclaredField(\"y\").getGenericType());\n" + |
38089 |
" System.out.print(\"##\");\n" + |
38090 |
" System.out.print(X.class.getDeclaredField(\"z\").getGenericType());\n" + |
38091 |
" System.out.println();\n" + |
38092 |
" }\n" + |
38093 |
"}\n" |
38094 |
}, |
38095 |
"java.lang.ref.Reference<X$Rather$Deeply>##java.lang.ref.Reference<X$Rather>##java.lang.ref.Reference<X$Rather$Deeply$Inside>" |
38096 |
); |
38097 |
String expectedOutput = |
38098 |
" // Field descriptor #6 Ljava/lang/ref/Reference;\n" + |
38099 |
" // Signature: Ljava/lang/ref/Reference<LX$Rather$Deeply;>;\n" + |
38100 |
" java.lang.ref.Reference x;\n" + |
38101 |
" \n" + |
38102 |
" // Field descriptor #6 Ljava/lang/ref/Reference;\n" + |
38103 |
" // Signature: Ljava/lang/ref/Reference<LX$Rather;>;\n" + |
38104 |
" java.lang.ref.Reference y;\n" + |
38105 |
" \n" + |
38106 |
" // Field descriptor #6 Ljava/lang/ref/Reference;\n" + |
38107 |
" // Signature: Ljava/lang/ref/Reference<LX$Rather$Deeply$Inside;>;\n" + |
38108 |
" java.lang.ref.Reference z;\n"; |
38109 |
|
38110 |
try { |
38111 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
38112 |
byte[] classFileBytes = org.eclipse.jdt.internal.compiler.util.Util.getFileByteContent(f); |
38113 |
ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler(); |
38114 |
String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED); |
38115 |
int index = result.indexOf(expectedOutput); |
38116 |
if (index == -1 || expectedOutput.length() == 0) { |
38117 |
System.out.println(Util.displayString(result, 3)); |
38118 |
} |
38119 |
if (index == -1) { |
38120 |
assertEquals("Wrong contents", expectedOutput, result); |
38121 |
} |
38122 |
} catch (org.eclipse.jdt.core.util.ClassFormatException e) { |
38123 |
assertTrue(false); |
38124 |
} catch (IOException e) { |
38125 |
assertTrue(false); |
38126 |
} |
38127 |
|
38128 |
} |
38129 |
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=189158 - variation |
38130 |
public void test1151() { |
38131 |
this.runConformTest( |
38132 |
new String[] { |
38133 |
"X.java", |
38134 |
"import java.lang.ref.Reference;\n"+ |
38135 |
"public class X<T> {\n" + |
38136 |
" class Other<U> {\n" + |
38137 |
" class Deeply {\n" + |
38138 |
" class Inside<V> {\n" + |
38139 |
" } \n" + |
38140 |
" }\n" + |
38141 |
" }\n" + |
38142 |
" Reference<X<String>.Other<Thread>.Deeply> t;\n" + |
38143 |
" Reference<X<String>.Other<Thread>.Deeply.Inside<Number>> u;\n" + |
38144 |
"\n" + |
38145 |
" public static void main(String[] args) throws Exception {\n" + |
38146 |
" System.out.print(X.class.getDeclaredField(\"t\").getGenericType());\n" + |
38147 |
" //System.out.print(\"##\");\n" + |
38148 |
" //System.out.print(X.class.getDeclaredField(\"u\").getGenericType());\n" + // TODO disabled due to bug in libs (unable to re-read the generated signature) |
38149 |
" System.out.println();\n" + |
38150 |
" }\n" + |
38151 |
"}\n" |
38152 |
}, |
38153 |
//"java.lang.ref.Reference<X<java.lang.String>.Other<java.lang.Thread>.Deeply>##java.lang.ref.Reference<X<java.lang.String>.Other<java.lang.Thread>.Deeply$Inside<java.lang.Number>>" |
38154 |
"java.lang.ref.Reference<X<java.lang.String>.Other<java.lang.Thread>.Deeply>" |
38155 |
); |
38156 |
String expectedOutput = |
38157 |
" // Field descriptor #6 Ljava/lang/ref/Reference;\n" + |
38158 |
" // Signature: Ljava/lang/ref/Reference<LX<Ljava/lang/String;>.Other<Ljava/lang/Thread;>.Deeply;>;\n" + |
38159 |
" java.lang.ref.Reference t;\n" + |
38160 |
" \n" + |
38161 |
" // Field descriptor #6 Ljava/lang/ref/Reference;\n" + |
38162 |
" // Signature: Ljava/lang/ref/Reference<LX<Ljava/lang/String;>.Other<Ljava/lang/Thread;>.Deeply.Inside<Ljava/lang/Number;>;>;\n" + |
38163 |
" java.lang.ref.Reference u;\n"; |
38164 |
|
38165 |
try { |
38166 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
38167 |
byte[] classFileBytes = org.eclipse.jdt.internal.compiler.util.Util.getFileByteContent(f); |
38168 |
ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler(); |
38169 |
String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED); |
38170 |
int index = result.indexOf(expectedOutput); |
38171 |
if (index == -1 || expectedOutput.length() == 0) { |
38172 |
System.out.println(Util.displayString(result, 3)); |
38173 |
} |
38174 |
if (index == -1) { |
38175 |
assertEquals("Wrong contents", expectedOutput, result); |
38176 |
} |
38177 |
} catch (org.eclipse.jdt.core.util.ClassFormatException e) { |
38178 |
assertTrue(false); |
38179 |
} catch (IOException e) { |
38180 |
assertTrue(false); |
38181 |
} |
38182 |
} |
38183 |
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=189158 - variation |
38184 |
public void test1152() { |
38185 |
this.runNegativeTest( |
38186 |
new String[] { |
38187 |
"X.java", |
38188 |
"import java.lang.ref.Reference;\n"+ |
38189 |
"public class X<T> {\n" + |
38190 |
" class Other<U> {\n" + |
38191 |
" class Deeply {\n" + |
38192 |
" class Inside<V> {\n" + |
38193 |
" } \n" + |
38194 |
" }\n" + |
38195 |
" }\n" + |
38196 |
" Reference<X<String>.Other<Thread>.Deeply.Inside> u;\n" + |
38197 |
"\n" + |
38198 |
" public static void main(String[] args) throws Exception {\n" + |
38199 |
" System.out.print(X.class.getDeclaredField(\"u\").getGenericType());\n" + |
38200 |
" System.out.println();\n" + |
38201 |
" }\n" + |
38202 |
"}\n" |
38203 |
}, |
38204 |
"----------\n" + |
38205 |
"1. ERROR in X.java (at line 9)\n" + |
38206 |
" Reference<X<String>.Other<Thread>.Deeply.Inside> u;\n" + |
38207 |
" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + |
38208 |
"The member type X<String>.Other<Thread>.Deeply.Inside must be parameterized, since it is qualified with a parameterized type\n" + |
38209 |
"----------\n" ); |
38210 |
} |
38211 |
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=189158 - variation |
38212 |
public void test1153() { |
38213 |
// check proper decoding of binary signatures, by compiling against generated binary |
38214 |
this.runConformTest( |
38215 |
new String[] { |
38216 |
"p/X.java", |
38217 |
"package p;\n" + |
38218 |
"import java.lang.ref.Reference;\n" + |
38219 |
"public class X<T> {\n" + |
38220 |
" public static class Rather {\n" + |
38221 |
" public static class Deeply {\n" + |
38222 |
" public static class Inside {\n" + |
38223 |
" }\n" + |
38224 |
" }\n" + |
38225 |
" }\n" + |
38226 |
" public class Other<U> {\n" + |
38227 |
" public class Deeply {\n" + |
38228 |
" public class Inside<V> {\n" + |
38229 |
" } \n" + |
38230 |
" }\n" + |
38231 |
" }\n" + |
38232 |
" public Reference<X.Rather.Deeply> x;\n" + |
38233 |
" public Reference<X.Rather> y; \n" + |
38234 |
" public Reference<X.Rather.Deeply.Inside> z; \n" + |
38235 |
" public Reference<X<String>.Other<Thread>.Deeply> t;\n" + |
38236 |
" public Reference<X<String>.Other<Thread>.Deeply.Inside<Number>> u;\n" + |
38237 |
"}\n", |
38238 |
}, |
38239 |
"" |
38240 |
); |
38241 |
this.runConformTest( |
38242 |
new String[] { |
38243 |
"Y.java", |
38244 |
"import java.lang.ref.Reference;\n" + |
38245 |
"import p.X;\n" + |
38246 |
"public class Y {\n" + |
38247 |
" Reference<X.Rather.Deeply> x;\n" + |
38248 |
" Reference<X.Rather> y; \n" + |
38249 |
" Reference<X.Rather.Deeply.Inside> z; \n" + |
38250 |
" Reference<X<String>.Other<Thread>.Deeply> t;\n" + |
38251 |
" Reference<X<String>.Other<Thread>.Deeply.Inside<Number>> u;\n" + |
38252 |
" Y(X someX) {\n" + |
38253 |
" this.x = someX.x;\n" + |
38254 |
" this. y = someX.y; \n" + |
38255 |
" this.z = someX.z; \n" + |
38256 |
" this.t = someX.t;\n" + |
38257 |
" this.u = someX.u; \n" + |
38258 |
" }\n" + |
38259 |
" public static void main(String[] args) throws Exception {\n" + |
38260 |
" System.out.print(Y.class.getDeclaredField(\"x\").getGenericType());\n" + |
38261 |
" System.out.print(\"##\");\n" + |
38262 |
" System.out.print(Y.class.getDeclaredField(\"y\").getGenericType());\n" + |
38263 |
" System.out.print(\"##\");\n" + |
38264 |
" System.out.print(Y.class.getDeclaredField(\"z\").getGenericType());\n" + |
38265 |
" System.out.print(\"##\");\n" + |
38266 |
" System.out.print(Y.class.getDeclaredField(\"t\").getGenericType());\n" + |
38267 |
" //System.out.print(\"##\");\n" + |
38268 |
" //System.out.print(Y.class.getDeclaredField(\"u\").getGenericType());\n" + // TODO disabled due to bug in libs (unable to re-read the generated signature) |
38269 |
" System.out.println();\n" + |
38270 |
" }\n" + |
38271 |
"}\n" |
38272 |
}, |
38273 |
"java.lang.ref.Reference<p.X$Rather$Deeply>##java.lang.ref.Reference<p.X$Rather>##java.lang.ref.Reference<p.X$Rather$Deeply$Inside>##java.lang.ref.Reference<p.X<java.lang.String>.Other<java.lang.Thread>.Deeply>", |
38274 |
null, |
38275 |
false, // do not flush output |
38276 |
null); |
38277 |
} |
38278 |
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=189158 - variation |
38279 |
public void test1154() { |
38280 |
this.runConformTest( |
38281 |
new String[] { |
38282 |
"X.java", |
38283 |
"import java.lang.ref.Reference;\n" + |
38284 |
"public class X {\n" + |
38285 |
" class Other<U> {\n" + |
38286 |
" class Deeply {\n" + |
38287 |
" class Deeper {\n" + |
38288 |
" class Inside<V> {\n" + |
38289 |
" } \n" + |
38290 |
" }\n" + |
38291 |
" }\n" + |
38292 |
" }\n" + |
38293 |
" Reference<X.Other<Thread>.Deeply> t;\n" + |
38294 |
" Reference<X.Other<Thread>.Deeply.Deeper.Inside<Number>> u;\n" + |
38295 |
"\n" + |
38296 |
" public static void main(String[] args) throws Exception {\n" + |
38297 |
" //System.out.print(X.class.getDeclaredField(\"t\").getGenericType());\n" + // TODO disabled due to bug in libs (unable to re-read the generated signature) |
38298 |
" //System.out.print(\"##\");\n" + |
38299 |
" //System.out.print(X.class.getDeclaredField(\"u\").getGenericType());\n" + // TODO disabled due to bug in libs (unable to re-read the generated signature) |
38300 |
" System.out.println();\n" + |
38301 |
" }\n" + |
38302 |
"}\n" |
38303 |
}, |
38304 |
""); |
38305 |
|
38306 |
String expectedOutput = |
38307 |
" // Field descriptor #6 Ljava/lang/ref/Reference;\n" + |
38308 |
" // Signature: Ljava/lang/ref/Reference<LX$Other<Ljava/lang/Thread;>.Deeply;>;\n" + |
38309 |
" java.lang.ref.Reference t;\n" + |
38310 |
" \n" + |
38311 |
" // Field descriptor #6 Ljava/lang/ref/Reference;\n" + |
38312 |
" // Signature: Ljava/lang/ref/Reference<LX$Other<Ljava/lang/Thread;>.Deeply.Deeper.Inside<Ljava/lang/Number;>;>;\n" + |
38313 |
" java.lang.ref.Reference u;\n"; |
38314 |
|
38315 |
try { |
38316 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
38317 |
byte[] classFileBytes = org.eclipse.jdt.internal.compiler.util.Util.getFileByteContent(f); |
38318 |
ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler(); |
38319 |
String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED); |
38320 |
int index = result.indexOf(expectedOutput); |
38321 |
if (index == -1 || expectedOutput.length() == 0) { |
38322 |
System.out.println(Util.displayString(result, 3)); |
38323 |
} |
38324 |
if (index == -1) { |
38325 |
assertEquals("Wrong contents", expectedOutput, result); |
38326 |
} |
38327 |
} catch (org.eclipse.jdt.core.util.ClassFormatException e) { |
38328 |
assertTrue(false); |
38329 |
} catch (IOException e) { |
38330 |
assertTrue(false); |
38331 |
} |
38332 |
} |
38333 |
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=189158 - variation |
38334 |
public void test1155() { |
38335 |
this.runConformTest( |
38336 |
new String[] { |
38337 |
"X.java", |
38338 |
"import java.lang.ref.Reference;\n" + |
38339 |
"public class X<T> {\n" + |
38340 |
" class Other<U> {\n" + |
38341 |
" class Deeply {\n" + |
38342 |
" class Deeper {\n" + |
38343 |
" class Inside<V> {\n" + |
38344 |
" } \n" + |
38345 |
" }\n" + |
38346 |
" }\n" + |
38347 |
" }\n" + |
38348 |
" Reference<X<String>.Other<Thread>.Deeply> t;\n" + |
38349 |
" Reference<X<String>.Other<Thread>.Deeply.Deeper.Inside<Number>> u;\n" + |
38350 |
"\n" + |
38351 |
" public static void main(String[] args) throws Exception {\n" + |
38352 |
" System.out.print(X.class.getDeclaredField(\"t\").getGenericType());\n" + |
38353 |
" //System.out.print(\"##\");\n" + |
38354 |
" //System.out.print(X.class.getDeclaredField(\"u\").getGenericType());\n" + // TODO disabled due to bug in libs (unable to re-read the generated signature) |
38355 |
" System.out.println();\n" + |
38356 |
" }\n" + |
38357 |
"}\n" |
38358 |
}, |
38359 |
"java.lang.ref.Reference<X<java.lang.String>.Other<java.lang.Thread>.Deeply>" ); |
38360 |
|
38361 |
String expectedOutput = |
38362 |
" // Field descriptor #6 Ljava/lang/ref/Reference;\n" + |
38363 |
" // Signature: Ljava/lang/ref/Reference<LX<Ljava/lang/String;>.Other<Ljava/lang/Thread;>.Deeply;>;\n" + |
38364 |
" java.lang.ref.Reference t;\n" + |
38365 |
" \n" + |
38366 |
" // Field descriptor #6 Ljava/lang/ref/Reference;\n" + |
38367 |
" // Signature: Ljava/lang/ref/Reference<LX<Ljava/lang/String;>.Other<Ljava/lang/Thread;>.Deeply.Deeper.Inside<Ljava/lang/Number;>;>;\n" + |
38368 |
" java.lang.ref.Reference u;\n"; |
38369 |
|
38370 |
try { |
38371 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
38372 |
byte[] classFileBytes = org.eclipse.jdt.internal.compiler.util.Util.getFileByteContent(f); |
38373 |
ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler(); |
38374 |
String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED); |
38375 |
int index = result.indexOf(expectedOutput); |
38376 |
if (index == -1 || expectedOutput.length() == 0) { |
38377 |
System.out.println(Util.displayString(result, 3)); |
38378 |
} |
38379 |
if (index == -1) { |
38380 |
assertEquals("Wrong contents", expectedOutput, result); |
38381 |
} |
38382 |
} catch (org.eclipse.jdt.core.util.ClassFormatException e) { |
38383 |
assertTrue(false); |
38384 |
} catch (IOException e) { |
38385 |
assertTrue(false); |
38386 |
} |
38387 |
} |
38388 |
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=203061 - variation |
38389 |
public void test1163() { |
38390 |
this.runNegativeTest( |
38391 |
new String[] { |
38392 |
"X.java", |
38393 |
"public final class X<T> {\n" + |
38394 |
" private final Object mObj;\n" + |
38395 |
" private final Object mDependent = new Object() {\n" + |
38396 |
" {\n" + |
38397 |
" Object o1 = mObj;\n" + |
38398 |
" }\n" + |
38399 |
" Object o2 = mObj;\n" + |
38400 |
" void foo() {\n" + |
38401 |
" Object o3 = mObj;\n" + |
38402 |
" }\n" + |
38403 |
" };\n" + |
38404 |
" public X() {\n" + |
38405 |
" mObj = \"\";\n" + |
38406 |
" }\n" + |
38407 |
"}\n", // ================= |
38408 |
}, |
38409 |
"----------\n" + |
38410 |
"1. WARNING in X.java (at line 3)\n" + |
38411 |
" private final Object mDependent = new Object() {\n" + |
38412 |
" ^^^^^^^^^^\n" + |
38413 |
"The field X<T>.mDependent is never read locally\n" + |
38414 |
"----------\n" + |
38415 |
"2. WARNING in X.java (at line 5)\n" + |
38416 |
" Object o1 = mObj;\n" + |
38417 |
" ^^^^\n" + |
38418 |
"Read access to enclosing field X<T>.mObj is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + |
38419 |
"----------\n" + |
38420 |
"3. ERROR in X.java (at line 5)\n" + |
38421 |
" Object o1 = mObj;\n" + |
38422 |
" ^^^^\n" + |
38423 |
"The blank final field mObj may not have been initialized\n" + |
38424 |
"----------\n" + |
38425 |
"4. WARNING in X.java (at line 7)\n" + |
38426 |
" Object o2 = mObj;\n" + |
38427 |
" ^^\n" + |
38428 |
"The field new Object(){}.o2 is never read locally\n" + |
38429 |
"----------\n" + |
38430 |
"5. WARNING in X.java (at line 7)\n" + |
38431 |
" Object o2 = mObj;\n" + |
38432 |
" ^^^^\n" + |
38433 |
"Read access to enclosing field X<T>.mObj is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + |
38434 |
"----------\n" + |
38435 |
"6. ERROR in X.java (at line 7)\n" + |
38436 |
" Object o2 = mObj;\n" + |
38437 |
" ^^^^\n" + |
38438 |
"The blank final field mObj may not have been initialized\n" + |
38439 |
"----------\n" + |
38440 |
"7. WARNING in X.java (at line 8)\n" + |
38441 |
" void foo() {\n" + |
38442 |
" ^^^^^\n" + |
38443 |
"The method foo() from the type new Object(){} is never used locally\n" + |
38444 |
"----------\n" + |
38445 |
"8. WARNING in X.java (at line 9)\n" + |
38446 |
" Object o3 = mObj;\n" + |
38447 |
" ^^^^\n" + |
38448 |
"Read access to enclosing field X<T>.mObj is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + |
38449 |
"----------\n"); |
38450 |
} |
38451 |
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=203061 - variation |
38452 |
public void test1164() { |
38453 |
this.runNegativeTest( |
38454 |
new String[] { |
38455 |
"X.java", |
38456 |
"public final class X<T> {\n" + |
38457 |
" private final Object mObj;\n" + |
38458 |
" private final Object mDependent = new Object() {\n" + |
38459 |
" {\n" + |
38460 |
" Object o1 = mObj;\n" + |
38461 |
" mObj = \"1\";\n" + |
38462 |
" }\n" + |
38463 |
" Object o2 = mObj = \"2\";\n" + |
38464 |
" void foo() {\n" + |
38465 |
" Object o3 = mObj;\n" + |
38466 |
" mObj = \"3\";\n" + |
38467 |
" }\n" + |
38468 |
" };\n" + |
38469 |
" public X() {\n" + |
38470 |
" mObj = \"\";\n" + |
38471 |
" }\n" + |
38472 |
"}\n" |
38473 |
}, |
38474 |
"----------\n" + |
38475 |
"1. WARNING in X.java (at line 3)\n" + |
38476 |
" private final Object mDependent = new Object() {\n" + |
38477 |
" ^^^^^^^^^^\n" + |
38478 |
"The field X<T>.mDependent is never read locally\n" + |
38479 |
"----------\n" + |
38480 |
"2. WARNING in X.java (at line 5)\n" + |
38481 |
" Object o1 = mObj;\n" + |
38482 |
" ^^^^\n" + |
38483 |
"Read access to enclosing field X<T>.mObj is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + |
38484 |
"----------\n" + |
38485 |
"3. ERROR in X.java (at line 5)\n" + |
38486 |
" Object o1 = mObj;\n" + |
38487 |
" ^^^^\n" + |
38488 |
"The blank final field mObj may not have been initialized\n" + |
38489 |
"----------\n" + |
38490 |
"4. WARNING in X.java (at line 6)\n" + |
38491 |
" mObj = \"1\";\n" + |
38492 |
" ^^^^\n" + |
38493 |
"Write access to enclosing field X<T>.mObj is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + |
38494 |
"----------\n" + |
38495 |
"5. ERROR in X.java (at line 6)\n" + |
38496 |
" mObj = \"1\";\n" + |
38497 |
" ^^^^\n" + |
38498 |
"The final field X<T>.mObj cannot be assigned\n" + |
38499 |
"----------\n" + |
38500 |
"6. WARNING in X.java (at line 8)\n" + |
38501 |
" Object o2 = mObj = \"2\";\n" + |
38502 |
" ^^\n" + |
38503 |
"The field new Object(){}.o2 is never read locally\n" + |
38504 |
"----------\n" + |
38505 |
"7. WARNING in X.java (at line 8)\n" + |
38506 |
" Object o2 = mObj = \"2\";\n" + |
38507 |
" ^^^^\n" + |
38508 |
"Write access to enclosing field X<T>.mObj is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + |
38509 |
"----------\n" + |
38510 |
"8. ERROR in X.java (at line 8)\n" + |
38511 |
" Object o2 = mObj = \"2\";\n" + |
38512 |
" ^^^^\n" + |
38513 |
"The final field X<T>.mObj cannot be assigned\n" + |
38514 |
"----------\n" + |
38515 |
"9. WARNING in X.java (at line 9)\n" + |
38516 |
" void foo() {\n" + |
38517 |
" ^^^^^\n" + |
38518 |
"The method foo() from the type new Object(){} is never used locally\n" + |
38519 |
"----------\n" + |
38520 |
"10. WARNING in X.java (at line 10)\n" + |
38521 |
" Object o3 = mObj;\n" + |
38522 |
" ^^^^\n" + |
38523 |
"Read access to enclosing field X<T>.mObj is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + |
38524 |
"----------\n" + |
38525 |
"11. WARNING in X.java (at line 11)\n" + |
38526 |
" mObj = \"3\";\n" + |
38527 |
" ^^^^\n" + |
38528 |
"Write access to enclosing field X<T>.mObj is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + |
38529 |
"----------\n" + |
38530 |
"12. ERROR in X.java (at line 11)\n" + |
38531 |
" mObj = \"3\";\n" + |
38532 |
" ^^^^\n" + |
38533 |
"The final field X<T>.mObj cannot be assigned\n" + |
38534 |
"----------\n"); |
38535 |
} |
38068 |
} |
38536 |
} |