Lines 148-153
Link Here
|
148 |
}, |
148 |
}, |
149 |
"12"); |
149 |
"12"); |
150 |
} |
150 |
} |
|
|
151 |
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=151787 |
152 |
public void test004() { |
153 |
this.runNegativeTest( |
154 |
new String[] { |
155 |
"X.java", |
156 |
"public class X {\n" + |
157 |
" // correctly passes compilation\n" + |
158 |
" static class Test1 {\n" + |
159 |
" private final Object o;\n" + |
160 |
" \n" + |
161 |
" Test1() {\n" + |
162 |
" o = new Object();\n" + |
163 |
" }\n" + |
164 |
" }\n" + |
165 |
" \n" + |
166 |
" // correctly passes compilation\n" + |
167 |
" static class Test2 {\n" + |
168 |
" private final Object o;\n" + |
169 |
" \n" + |
170 |
" Test2() {\n" + |
171 |
" this.o = new Object();\n" + |
172 |
" }\n" + |
173 |
" }\n" + |
174 |
" \n" + |
175 |
" // correctly fails compilation\n" + |
176 |
" static class Test3 {\n" + |
177 |
" private final Object o;\n" + |
178 |
" \n" + |
179 |
" Test3() {\n" + |
180 |
" System.out.println(o); // illegal; o is not definitely assigned\n" + |
181 |
" o = new Object();\n" + |
182 |
" }\n" + |
183 |
" }\n" + |
184 |
" \n" + |
185 |
" // correctly passes compilation\n" + |
186 |
" static class Test4 {\n" + |
187 |
" private final Object o;\n" + |
188 |
" \n" + |
189 |
" Test4() {\n" + |
190 |
" System.out.println(this.o); // legal\n" + |
191 |
" o = new Object();\n" + |
192 |
" }\n" + |
193 |
" }\n" + |
194 |
" \n" + |
195 |
" // incorrectly passes compilation\n" + |
196 |
" static class Test5 {\n" + |
197 |
" private final Object o;\n" + |
198 |
" \n" + |
199 |
" Test5() {\n" + |
200 |
" Test5 other = this;\n" + |
201 |
" other.o = new Object(); // illegal! other.o is not assignable\n" + |
202 |
" } // error: this.o is not definitely assigned\n" + |
203 |
" }\n" + |
204 |
" \n" + |
205 |
" // flags wrong statement as error\n" + |
206 |
" static class Test6 {\n" + |
207 |
" private final Object o;\n" + |
208 |
" static Test6 initing;\n" + |
209 |
" \n" + |
210 |
" Test6() {\n" + |
211 |
" initing = this;\n" + |
212 |
" System.out.println(\"greetings\");\n" + |
213 |
" Test6 other = initing;\n" + |
214 |
" other.o = new Object(); // illegal! other.o is not assignable\n" + |
215 |
" o = new Object(); // legal\n" + |
216 |
" }\n" + |
217 |
" }\n" + |
218 |
"}\n", // ================= |
219 |
}, |
220 |
"----------\n" + |
221 |
"1. WARNING in X.java (at line 4)\n" + |
222 |
" private final Object o;\n" + |
223 |
" ^\n" + |
224 |
"The field X.Test1.o is never read locally\n" + |
225 |
"----------\n" + |
226 |
"2. WARNING in X.java (at line 13)\n" + |
227 |
" private final Object o;\n" + |
228 |
" ^\n" + |
229 |
"The field X.Test2.o is never read locally\n" + |
230 |
"----------\n" + |
231 |
"3. ERROR in X.java (at line 25)\n" + |
232 |
" System.out.println(o); // illegal; o is not definitely assigned\n" + |
233 |
" ^\n" + |
234 |
"The blank final field o may not have been initialized\n" + |
235 |
"----------\n" + |
236 |
"4. WARNING in X.java (at line 42)\n" + |
237 |
" private final Object o;\n" + |
238 |
" ^\n" + |
239 |
"The field X.Test5.o is never read locally\n" + |
240 |
"----------\n" + |
241 |
"5. ERROR in X.java (at line 44)\n" + |
242 |
" Test5() {\n" + |
243 |
" ^^^^^^^\n" + |
244 |
"The blank final field o may not have been initialized\n" + |
245 |
"----------\n" + |
246 |
"6. ERROR in X.java (at line 46)\n" + |
247 |
" other.o = new Object(); // illegal! other.o is not assignable\n" + |
248 |
" ^\n" + |
249 |
"The final field X.Test5.o cannot be assigned\n" + |
250 |
"----------\n" + |
251 |
"7. WARNING in X.java (at line 52)\n" + |
252 |
" private final Object o;\n" + |
253 |
" ^\n" + |
254 |
"The field X.Test6.o is never read locally\n" + |
255 |
"----------\n" + |
256 |
"8. ERROR in X.java (at line 59)\n" + |
257 |
" other.o = new Object(); // illegal! other.o is not assignable\n" + |
258 |
" ^\n" + |
259 |
"The final field X.Test6.o cannot be assigned\n" + |
260 |
"----------\n"); |
261 |
} |
151 |
// final multiple assignment |
262 |
// final multiple assignment |
152 |
public void test020() { |
263 |
public void test020() { |
153 |
this.runNegativeTest( |
264 |
this.runNegativeTest( |