--- /dev/null
+public class Construction {
+ public static void main(String []argv) {
+ new _();
+ System.out.println("done");
+ }
+}
+
+aspect XX {
+ public static class Construction._ {
+ }
+}
--- /dev/null
+aspect Aspect2 {
+ public static class Construction3._ {
+ String string;
+ public _(String string) { this.string = string;}
+ public String toString() {
+ return string;
+ }
+ }
+ public static Construction3._ Construction3._() { return new _("abc"); }
+ public static String Construction3.foo() { return "abc"; }
+}
+public class Construction3 {
+ public static void main(String []argv) {
+ Object o = _();
+ o = foo();
+ System.out.println(o);
+ }
+}
--- /dev/null
+aspect Aspect1 {
+ public static Construction4._ Construction4._() { return new _("abc"); }
+ public static String Construction4.foo() { return "abc"; }
+}
+aspect Aspect2 {
+ public static class Construction4._ {
+ String string;
+ public _(String string) { this.string = string;}
+ public String toString() {
+ return string;
+ }
+ }
+}
+public class Construction4 {
+ public static void main(String []argv) {
+ Object o = _();
+ o = foo();
+ System.out.println(o);
+ }
+}
--- /dev/null
+package a.b.c;
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface RelatedType {
+ Class<?> value();
+}
--- /dev/null
+package a.b.c;
+
+@RelatedType(value=Vote._.choice.class)
+public class Runner {
+ public static void main(String[]argv) {
+ Vote._ v = new Vote._("wibble");
+ System.out.println(v.getString());
+ System.out.println(Runner.class.getDeclaredAnnotations()[0]);
+ }
+}
+
--- /dev/null
+package a.b.c;
+
+public aspect Underscorer {
+ public int Vote.i = 5;
+ public String Vote.zzz() { return "abc"; }
+ public static class Vote._ {
+ private String string;
+ public static class choice {}
+ public Ip ip = new Ip();
+ public _(String string) { this.string = string; }
+ public String getString() { return this.string; }
+ public class Ip {
+ public String fieldName() { return "ip"; }
+ public Class<Vote> type() { return Vote.class; }
+ }
+ }
+}
--- /dev/null
+package a.b.c;
+
+public class Vote {
+
+ public static Vote._ _() { return new Vote._(null); }
+
+ static class RealInner {}
+
+}
--- /dev/null
+package a.b.c;
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface RelatedType {
+ Class<?> value();
+}
--- /dev/null
+package a.b.c;
+
+@RelatedType(value=Vote._.choice.class)
+public class Runner {
+ public static void main(String[]argv) {
+ Vote._ v = new Vote._("wibble");
+ System.out.println(v.getString());
+ System.out.println(Runner.class.getDeclaredAnnotations()[0]);
+ }
+}
+
--- /dev/null
+package a.b.c;
+
+public class Vote {
+ static class RealInner {
+ }
+}
--- /dev/null
+package a.b.c;
+
+public aspect Vote_Amender {
+ public static class Vote._ {
+ private String string;
+ public static class choice {}
+ public Ip ip = new Ip();
+ public _(String string) { this.string = string; }
+ public String getString() { return this.string; }
+ public class Ip {
+ public String fieldName() { return "ip"; }
+ public Class<Vote> type() { return Vote.class; }
+ }
+ }
+}
--- /dev/null
+package a.b.c;
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface RelatedType {
+ Class<?> value();
+}
--- /dev/null
+package a.b.c;
+
+@RelatedType(value=Vote._.choice.class)
+public class Runner {
+ public static void main(String[]argv) {
+ Vote._ v = new Vote._("wibble");
+ System.out.println(v.getString());
+ System.out.println(Runner.class.getDeclaredAnnotations()[0]);
+ }
+}
+
--- /dev/null
+package a.b.c;
+
+public class Vote {
+ static class RealInner {
+ }
+}
--- /dev/null
+package a.b.c;
+
+public aspect Vote_Amender {
+ public static class Vote._ {
+ private String string;
+ public static class choice {}
+ public _(String string) { this.string = string; }
+ public String getString() { return this.string; }
+ }
+}
--- /dev/null
+package a.b.c;
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface RelatedType {
+ Class<?> value();
+}
--- /dev/null
+package a.b.c;
+
+@RelatedType(value=Vote._.choice.class)
+public class Runner {
+ public static void main(String[]argv) {
+ Vote._ v = new Vote._("wibble");
+ System.out.println(v.getString());
+ System.out.println(Runner.class.getDeclaredAnnotations()[0]);
+ }
+}
+
--- /dev/null
+package a.b.c;
+
+public aspect Underscorer {
+ public Vote._ Vote._() { return new Vote._(null); }
+
+ public static class Vote._ {
+ private String string;
+ public static class choice {}
+ public Ip ip = new Ip();
+ public _(String string) { this.string = string; }
+ public String getString() { return this.string; }
+ public class Ip {
+ public String fieldName() { return "ip"; }
+ public Class<Vote> type() { return Vote.class; }
+ }
+ }
+}
--- /dev/null
+package a.b.c;
+
+public class Vote {
+
+// public static Vote._ _() { return new Vote._(null); }
+
+ static class RealInner {}
+
+}
--- /dev/null
+package a.b.c;
+
+public class Runner {
+ public static void main(String[]argv) {
+ new Vote();
+ }
+}
--- /dev/null
+package a.b.c;
+
+public class Vote {
+}
--- /dev/null
+package a.b.c;
+
+aspect Vote_Amender {
+ static class Vote._ {
+ }
+}
--- /dev/null
+package a.b.c;
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface RelatedType {
+ Class<?> value();
+}
--- /dev/null
+package a.b.c;
+
+@RelatedType(value=Vote._.choice.class)
+public class Runner {
+ public static void main(String[]argv) {
+ Vote._ v = new Vote._("wibble");
+ System.out.println(v.getString());
+ System.out.println(Runner.class.getDeclaredAnnotations()[0]);
+ }
+}
+
--- /dev/null
+package a.b.c;
+
+public aspect Underscorer {
+ public static class Vote._ {
+ private String string;
+ public static class choice {}
+ public Ip ip = new Ip();
+ public _(String string) { this.string = string; }
+ public String getString() { return this.string; }
+ public class Ip {
+ public String fieldName() { return "ip"; }
+ public Class<Vote> type() { return Vote.class; }
+ }
+ }
+}
--- /dev/null
+package a.b.c;
+
+public class Vote {
+
+ public static Vote._ _() { return new Vote._(null); }
+
+ static class RealInner {}
+
+}
--- /dev/null
+package a.b.c;
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface RelatedType {
+ Class<?> value();
+}
--- /dev/null
+package a.b.c;
+
+@RelatedType(value=Vote._.choice.class)
+public class Runner {
+ public static void main(String[]argv) {
+ Vote._ v = new Vote._("wibble");
+ System.out.println(v.getString());
+ System.out.println(Runner.class.getDeclaredAnnotations()[0]);
+ }
+}
+
--- /dev/null
+package a.b.c;
+
+public class Vote {
+
+ public static Vote._ field = new Vote._(null);
+
+ static class RealInner {}
+
+}
--- /dev/null
+package a.b.c;
+
+public aspect Vote_Amender {
+ public static class Vote._ {
+ private String string;
+ public static class choice {}
+ public Ip ip = new Ip();
+ public _(String string) { this.string = string; }
+ public String getString() { return this.string; }
+ public class Ip {
+ public String fieldName() { return "ip"; }
+ public Class<Vote> type() { return Vote.class; }
+ }
+ }
+}
--- /dev/null
+aspect Aspect1 {
+ public static class Construction._ {
+ private String string;
+ public _(String string) { this.string = string; }
+ public _() { this.string = "nothing"; }
+ public String toString() {
+ return string;
+ }
+ }
+}
--- /dev/null
+aspect Aspect2 {
+ public Construction._ Construction._() { return new _("abc"); }
+}
--- /dev/null
+public class Construction {
+ public static void main(String []argv) {
+ new _();
+ System.out.println(new _("abcde"));
+ }
+}
--- /dev/null
+package a.b.c;
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface RelatedType {
+ Class<?> value();
+}
--- /dev/null
+package a.b.c;
+
+@RelatedType(value=Vote._.class)
+public class Runner {
+ public static void main(String[]argv) {
+ Vote._ v = new Vote._("wibble");
+ System.out.println(v.getString());
+ System.out.println(Runner.class.getDeclaredAnnotations()[0]);
+ }
+}
+
--- /dev/null
+package a.b.c;
+
+public class Vote {
+ static class RealInner {
+ }
+}
--- /dev/null
+package a.b.c;
+
+public aspect Vote_Amender {
+ public static class Vote._ {
+ private String string;
+ private String choice = "abc";
+ public _(String string) { this.string = string; }
+ public String getString() { return this.string; }
+ }
+}
--- /dev/null
+package a.b.c;
+
+public class Runner {
+ public static void main(String[]argv) {
+ Vote._ v = new Vote._("wibble");
+ System.out.println(v.getString());
+ }
+}
--- /dev/null
+package a.b.c;
+
+public class Vote {
+}
--- /dev/null
+package a.b.c;
+
+public aspect Vote_Amender {
+ public static class Vote._ {
+ private String string;
+ public _(String string) { this.string = string; }
+ public String getString() { return this.string; }
+ }
+}