[fixes #2838] Handle anonymous classes properly

Generated qualified names (e.g. Outer.Inner) now stop at anonymous
classes instead of adding an empty part. All handlers that add static
fields/methods/types now add error messages instead of generating
invalid code.
This commit is contained in:
Rawi01 committed 2021-06-03 19:23:19 +02:00
1 parent 6758714ed5
commit 60f575496b
75 files changed
+1103 -28

No files matched your search

@@ -0,0 +1,24 @@
public class GetterLazyInAnonymousClass {
Object annonymous = new Object() {
class Inner {
private final java.util.concurrent.atomic.AtomicReference<java.lang.Object> string = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
@java.lang.SuppressWarnings({"all", "unchecked"})
public String getString() {
java.lang.Object value = this.string.get();
if (value == null) {
synchronized (this.string) {
value = this.string.get();
if (value == null) {
final String actualValue = "test";
value = actualValue == null ? this.string : actualValue;
this.string.set(value);
}
}
}
return (String) (value == this.string ? null : value);
}
}
};
}