Lines 22004-22014
Link Here
|
22004 |
" public static class InnerClass {\n" + |
22004 |
" public static class InnerClass {\n" + |
22005 |
" public InnerClass() {\n" + |
22005 |
" public InnerClass() {\n" + |
22006 |
" System.out.println(\"class : \" + InnerClass.this);\n" + |
22006 |
" System.out.println(\"class : \" + InnerClass.this);\n" + |
|
|
22007 |
" System.out.println(\"class : \" + X.InnerClass.this);\n" + |
22007 |
" }\n" + |
22008 |
" }\n" + |
22008 |
" }\n" + |
22009 |
" }\n" + |
22009 |
"}\n", |
22010 |
"}\n", |
22010 |
}, |
22011 |
}, |
22011 |
""); |
22012 |
""); |
22012 |
} |
22013 |
} |
|
|
22014 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=100519 |
22015 |
public void test763b() { |
22016 |
this.runConformTest( |
22017 |
new String[] { |
22018 |
"X.java", |
22019 |
"public class X<E> {\n" + |
22020 |
" public static class InnerClass {\n" + |
22021 |
" public InnerClass() {\n" + |
22022 |
" System.out.println(X.InnerClass.this);\n" + |
22023 |
" System.out.println(InnerClass.this);\n" + |
22024 |
" System.out.println(this);\n" + |
22025 |
" System.out.println(X.InnerClass.class);\n" + |
22026 |
" System.out.println(InnerClass.class);\n" + |
22027 |
" System.out.println(this.getClass());\n" + |
22028 |
" System.out.println(X.InnerClass2.class);\n" + |
22029 |
" }\n" + |
22030 |
" }\n" + |
22031 |
" class InnerClass2 {\n" + |
22032 |
" public InnerClass2() {\n" + |
22033 |
" System.out.println(this);\n" + |
22034 |
" System.out.println(X.InnerClass.class);\n" + |
22035 |
" System.out.println(InnerClass.class);\n" + |
22036 |
" System.out.println(X.InnerClass2.this);\n" + |
22037 |
" System.out.println(InnerClass2.this);\n" + |
22038 |
" System.out.println(this.getClass());\n" + |
22039 |
" System.out.println(X.InnerClass2.class);\n" + |
22040 |
" System.out.println(InnerClass2.class);\n" + |
22041 |
" }\n" + |
22042 |
" }\n" + |
22043 |
"}\n" |
22044 |
}, |
22045 |
""); |
22046 |
} |
22047 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=100519 |
22048 |
public void test763c() { |
22049 |
this.runNegativeTest( |
22050 |
new String[] { |
22051 |
"X.java", |
22052 |
"public class X<E> {\n" + |
22053 |
" public static class InnerClass {\n" + |
22054 |
" public InnerClass() {\n" + |
22055 |
" System.out.println(X.InnerClass2.this);\n" + |
22056 |
" System.out.println(InnerClass2.this);\n" + |
22057 |
" System.out.println(InnerClass2.class);\n" + |
22058 |
" }\n" + |
22059 |
" }\n" + |
22060 |
" class InnerClass2 {\n" + |
22061 |
" public InnerClass2() {\n" + |
22062 |
" System.out.println(X.InnerClass.this);\n" + |
22063 |
" System.out.println(InnerClass.this);\n" + |
22064 |
" }\n" + |
22065 |
" }\n" + |
22066 |
"}\n" |
22067 |
}, |
22068 |
"----------\n" + |
22069 |
"1. ERROR in X.java (at line 4)\n" + |
22070 |
" System.out.println(X.InnerClass2.this);\n" + |
22071 |
" ^^^^^^^^^^^^^^^^^^\n" + |
22072 |
"No enclosing instance of the type X<E>.InnerClass2 is accessible in scope\n" + |
22073 |
"----------\n" + |
22074 |
"2. ERROR in X.java (at line 5)\n" + |
22075 |
" System.out.println(InnerClass2.this);\n" + |
22076 |
" ^^^^^^^^^^^\n" + |
22077 |
"Cannot make a static reference to the non-static type InnerClass2\n" + |
22078 |
"----------\n" + |
22079 |
"3. ERROR in X.java (at line 6)\n" + |
22080 |
" System.out.println(InnerClass2.class);\n" + |
22081 |
" ^^^^^^^^^^^\n" + |
22082 |
"Cannot make a static reference to the non-static type InnerClass2\n" + |
22083 |
"----------\n" + |
22084 |
"4. ERROR in X.java (at line 11)\n" + |
22085 |
" System.out.println(X.InnerClass.this);\n" + |
22086 |
" ^^^^^^^^^^^^^^^^^\n" + |
22087 |
"No enclosing instance of the type X<E>.InnerClass is accessible in scope\n" + |
22088 |
"----------\n" + |
22089 |
"5. ERROR in X.java (at line 12)\n" + |
22090 |
" System.out.println(InnerClass.this);\n" + |
22091 |
" ^^^^^^^^^^^^^^^\n" + |
22092 |
"No enclosing instance of the type X<E>.InnerClass is accessible in scope\n" + |
22093 |
"----------\n"); |
22094 |
} |
22095 |
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=100519 |
22096 |
// second level - some discrepancies in the messages semantics |
22097 |
public void _test763d() { |
22098 |
this.runNegativeTest( |
22099 |
new String[] { |
22100 |
"X.java", |
22101 |
"public class X<E> {\n" + |
22102 |
" public static class InnerClassA {\n" + |
22103 |
" static class InnerInnerClassA {\n" + |
22104 |
" public InnerInnerClassA() {\n" + |
22105 |
" System.out.println(X.InnerClassA.InnerInnerClassA.this);\n" + |
22106 |
" System.out.println(InnerClassA.InnerInnerClassA.this);\n" + |
22107 |
" System.out.println(InnerInnerClassA.this);\n" + |
22108 |
" System.out.println(this);\n" + |
22109 |
" System.out.println(X.InnerClassA.this);\n" + |
22110 |
" System.out.println(InnerClassA.this);\n" + |
22111 |
" System.out.println(X.InnerClassA.InnerInnerClassA.class);\n" + |
22112 |
" System.out.println(X.InnerClassA.class);\n" + |
22113 |
" System.out.println(InnerClassA.class);\n" + |
22114 |
" System.out.println(this.getClass());\n" + |
22115 |
" System.out.println(X.InnerClassA.class);\n" + |
22116 |
" }\n" + |
22117 |
" }\n" + |
22118 |
" }\n" + |
22119 |
" public static class InnerClassB {\n" + |
22120 |
" class InnerInnerClassB {\n" + |
22121 |
" public InnerInnerClassB() {\n" + |
22122 |
" System.out.println(X.InnerClassB.InnerInnerClassB.this);\n" + |
22123 |
" System.out.println(InnerClassB.InnerInnerClassB.this);\n" + |
22124 |
" System.out.println(InnerInnerClassB.this);\n" + |
22125 |
" System.out.println(this);\n" + |
22126 |
" System.out.println(X.InnerClassB.this);\n" + |
22127 |
" System.out.println(InnerClassB.this);\n" + |
22128 |
" System.out.println(X.InnerClassB.InnerInnerClassB.class);\n" + |
22129 |
" System.out.println(X.InnerClassB.class);\n" + |
22130 |
" System.out.println(InnerClassB.class);\n" + |
22131 |
" System.out.println(this.getClass());\n" + |
22132 |
" System.out.println(X.InnerClassB.class);\n" + |
22133 |
" }\n" + |
22134 |
" }\n" + |
22135 |
" }\n" + |
22136 |
" public class InnerClassC {\n" + |
22137 |
" static class InnerInnerClassC {\n" + |
22138 |
" public InnerInnerClassC() {\n" + |
22139 |
" System.out.println(X.InnerClassC.InnerInnerClassC.this);\n" + |
22140 |
" System.out.println(InnerClassC.InnerInnerClassC.this);\n" + |
22141 |
" System.out.println(InnerInnerClassC.this);\n" + |
22142 |
" System.out.println(this);\n" + |
22143 |
" System.out.println(X.InnerClassC.this);\n" + |
22144 |
" System.out.println(InnerClassC.this);\n" + |
22145 |
" System.out.println(X.InnerClassC.InnerInnerClassC.class);\n" + |
22146 |
" System.out.println(X.InnerClassC.class);\n" + |
22147 |
" System.out.println(InnerClassC.class);\n" + |
22148 |
" System.out.println(this.getClass());\n" + |
22149 |
" System.out.println(X.InnerClassC.class);\n" + |
22150 |
" }\n" + |
22151 |
" }\n" + |
22152 |
" }\n" + |
22153 |
" public class InnerClassD {\n" + |
22154 |
" class InnerInnerClassD {\n" + |
22155 |
" public InnerInnerClassD() {\n" + |
22156 |
" System.out.println(X.InnerClassD.InnerInnerClassD.this);\n" + |
22157 |
" System.out.println(InnerClassD.InnerInnerClassD.this);\n" + |
22158 |
" System.out.println(InnerInnerClassD.this);\n" + |
22159 |
" System.out.println(this);\n" + |
22160 |
" System.out.println(X.InnerClassD.this);\n" + |
22161 |
" System.out.println(InnerClassD.this);\n" + |
22162 |
" System.out.println(X.InnerClassD.InnerInnerClassD.class);\n" + |
22163 |
" System.out.println(X.InnerClassD.class);\n" + |
22164 |
" System.out.println(InnerClassD.class);\n" + |
22165 |
" System.out.println(this.getClass());\n" + |
22166 |
" System.out.println(X.InnerClassD.class);\n" + |
22167 |
" }\n" + |
22168 |
" }\n" + |
22169 |
" }\n" + |
22170 |
"}" |
22171 |
}, |
22172 |
"----------\n" + |
22173 |
"1. ERROR in X.java (at line 9)\n" + |
22174 |
" System.out.println(X.InnerClassA.this);\n" + |
22175 |
" ^^^^^^^^^^^^^^^^^^\n" + |
22176 |
// this one and the following contrast with javac, which reports: |
22177 |
// non-static variable this cannot be referenced from a static context |
22178 |
"DIFF JAVAC - No enclosing instance of the type X<E>.InnerClassA is accessible in scope\n" + |
22179 |
"----------\n" + |
22180 |
"2. ERROR in X.java (at line 10)\n" + |
22181 |
" System.out.println(InnerClassA.this);\n" + |
22182 |
" ^^^^^^^^^^^^^^^^\n" + |
22183 |
"DIFF JAVAC - No enclosing instance of the type X<E>.InnerClassA is accessible in scope\n" + |
22184 |
"----------\n" + |
22185 |
"3. ERROR in X.java (at line 37)\n" + |
22186 |
" static class InnerInnerClassC {\n" + |
22187 |
" ^^^^^^^^^^^^^^^^\n" + |
22188 |
"The member type InnerInnerClassC cannot be declared static; static types can only be declared in static or top level types\n" + |
22189 |
"----------\n" + |
22190 |
// the following are not raised by javac but this is OK if we consider |
22191 |
// it simply stops error detection at the level of InnerInnerClassC |
22192 |
"4. ERROR in X.java (at line 43)\n" + |
22193 |
" System.out.println(X.InnerClassC.this);\n" + |
22194 |
" ^^^^^^^^^^^^^^^^^^\n" + |
22195 |
"No enclosing instance of the type X<E>.InnerClassC is accessible in scope\n" + |
22196 |
"----------\n" + |
22197 |
"5. ERROR in X.java (at line 44)\n" + |
22198 |
" System.out.println(InnerClassC.this);\n" + |
22199 |
" ^^^^^^^^^^^^^^^^\n" + |
22200 |
"No enclosing instance of the type X<E>.InnerClassC is accessible in scope\n" + |
22201 |
"----------\n"); |
22202 |
} |
22013 |
} |
22203 |
} |
22014 |
|
22204 |
|