summaryrefslogtreecommitdiffstats
path: root/tests/pureJava/FinalStaticField.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pureJava/FinalStaticField.java')
-rw-r--r--tests/pureJava/FinalStaticField.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/pureJava/FinalStaticField.java b/tests/pureJava/FinalStaticField.java
new file mode 100644
index 000000000..b1ae60dc5
--- /dev/null
+++ b/tests/pureJava/FinalStaticField.java
@@ -0,0 +1,40 @@
+
+import java.lang.reflect.*;
+import org.aspectj.testing.Tester;
+
+
+class C{}
+
+class D {
+ public static final C public_c = new C();
+ private static final C private_c = new C();
+ protected static final C protected_c = new C();
+ static final C default_c = new C();
+}
+
+/** @testcase PR#866 final static fields not marked as such in binaries */
+public class FinalStaticField {
+ public static final String[] FIELDS = new String[]
+ { "public_c", "private_c", "protected_c", "default_c" };
+
+ public static void main(String[] args) {
+
+ Tester.expectEvents(FIELDS);
+
+ Field[] fields = D.class.getDeclaredFields();
+ StringBuffer failures = new StringBuffer();
+ for (int i = 0; i < fields.length; i++) {
+ String fieldName = fields[i].getName();
+ Tester.event(fieldName);
+ if (!fieldName.endsWith("_c")) {
+ Tester.check(false, "unexpected field: " + fieldName);
+ } else if (!(Modifier.isFinal(fields[i].getModifiers()))) {
+ failures.append(fieldName + " ");
+ }
+ }
+ Tester.checkAllEvents();
+ if (0 < failures.length()) {
+ Tester.check(false, failures.toString());
+ }
+ }
+}