- edited description
Synthetic fields parsed from classfile are not treated as synthetic
Issue #297
resolved
ExtendJ 8.1.1 Java SE 6
ExtendJ allows synthetic fields like $assertionsDisabled
to be accessed in source code. For example:
Bar.java
:
public class Bar { public static void main(String[] a) { assert args.length > 0; } }
Test.java
:
public class Test { public static void main(String[] a) { System.out.println(Bar.$assertionsDisabled); } }
The interesting case happens if Bar.java
is compiled first with JavaC (or ExtendJ), then Test.java
is compiled with ExtendJ:
Σ 13:59:25 ~/git/regression-tests $ javac -version javac 1.6.0_41 Σ 13:59:31 ~/git/regression-tests $ javac Bar.java Σ 13:59:33 ~/git/regression-tests $ java -jar extendj.jar Test.java Σ 13:59:37 ~/git/regression-tests $ java Test true
Expected: ExtendJ should fail to compile Test.java
.
Actual: ExtendJ does not complain about Test.java
if Bar.java
is compiled separately before compiling Test.java
with ExtendJ.
Comments (3)
-
reporter -
reporter - changed status to resolved
-
reporter - edited description
- Log in to comment