diff options
author | Reinier Zwitserloot <r.zwitserloot@projectlombok.org> | 2020-03-06 05:24:39 +0100 |
---|---|---|
committer | Reinier Zwitserloot <r.zwitserloot@projectlombok.org> | 2020-03-06 05:25:03 +0100 |
commit | 732c7257e1db44b83b4748c93969cd74195d416f (patch) | |
tree | e2997ce7fdc9bcfe0521703502eb9e0b6c4dad01 /test/transform/resource/after-ecj | |
parent | 5e1ee5cb0dc26dd9a2a064edd7700abec5aa98fa (diff) | |
download | lombok-732c7257e1db44b83b4748c93969cd74195d416f.tar.gz lombok-732c7257e1db44b83b4748c93969cd74195d416f.tar.bz2 lombok-732c7257e1db44b83b4748c93969cd74195d416f.zip |
[fixes #2358] self-referential generics could cause endless loops in javac.
... unfortunately eclipse's val resolver is now very slightly worse in very exotic circumstances - spent about 4 hours trying to fix it, can't figure it out, let's move on.
Diffstat (limited to 'test/transform/resource/after-ecj')
-rw-r--r-- | test/transform/resource/after-ecj/ValWeirdTypes.java | 1 | ||||
-rw-r--r-- | test/transform/resource/after-ecj/ValWithSelfRefGenerics.java | 20 |
2 files changed, 21 insertions, 0 deletions
diff --git a/test/transform/resource/after-ecj/ValWeirdTypes.java b/test/transform/resource/after-ecj/ValWeirdTypes.java index e98b9753..401a8b7e 100644 --- a/test/transform/resource/after-ecj/ValWeirdTypes.java +++ b/test/transform/resource/after-ecj/ValWeirdTypes.java @@ -44,6 +44,7 @@ public class ValWeirdTypes<Z> { final @val java.util.List<? super java.lang.Number> d = upper; List<?> unbound = lower; final @val java.util.List<?> e = unbound; + final @val java.lang.Object f = unbound.get(0); } public void testCompound() { final @val java.util.ArrayList<java.lang.String> a = new ArrayList<String>(); diff --git a/test/transform/resource/after-ecj/ValWithSelfRefGenerics.java b/test/transform/resource/after-ecj/ValWithSelfRefGenerics.java new file mode 100644 index 00000000..3984e203 --- /dev/null +++ b/test/transform/resource/after-ecj/ValWithSelfRefGenerics.java @@ -0,0 +1,20 @@ +import lombok.val; +public class ValWithSelfRefGenerics { + public ValWithSelfRefGenerics() { + super(); + } + public void run(Thing<? extends Comparable<?>> thing, Thing<?> thing2, java.util.List<? extends Number> z) { + final @val java.util.List<? extends java.lang.Number> y = z; + final @val Thing<? extends java.lang.Comparable<?>> x = thing; + final @val Thing<?> w = thing2; + final @val java.lang.Object v = thing2.get(); + } +} +class Thing<T extends Comparable<? super T>> { + Thing() { + super(); + } + public T get() { + return null; + } +}
\ No newline at end of file |