mirror of
https://github.com/tiennm99/lombok.git
synced 2026-10-13 02:14:44 +00:00
#1976. [@val] improved raw generic type inference by eclipse compiler.
This commit is contained in:
1 parent
8f8cbae631
commit
1fec035aa5
5 files changed
+14
-2
No files matched your search
@@ -114,6 +114,7 @@ import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
|
||||
import org.eclipse.jdt.internal.compiler.lookup.Binding;
|
||||
import org.eclipse.jdt.internal.compiler.lookup.CaptureBinding;
|
||||
import org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding;
|
||||
import org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding;
|
||||
import org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding;
|
||||
import org.eclipse.jdt.internal.compiler.lookup.TypeBinding;
|
||||
import org.eclipse.jdt.internal.compiler.lookup.TypeConstants;
|
||||
@@ -965,7 +966,7 @@ public class EclipseHandlerUtil {
|
||||
// Finally, add however many nullTypeArgument[] arrays as that are missing, inverse the list, toArray it, and use that as PTR's typeArgument argument.
|
||||
|
||||
List<TypeReference[]> params = new ArrayList<TypeReference[]>();
|
||||
/* Calculate generics */ {
|
||||
/* Calculate generics */ if(!(binding instanceof RawTypeBinding)) {
|
||||
TypeBinding b = binding;
|
||||
while (true) {
|
||||
boolean isFinalStop = b.isLocalType() || !b.isMemberType() || b.enclosingType() == null;
|
||||
|
||||
@@ -13,9 +13,12 @@ class ValLambda {
|
||||
public void easyLubLambda() {
|
||||
final java.lang.Runnable foo = (System.currentTimeMillis() > 0) ? (Runnable) () -> {
|
||||
} : System.out::println;
|
||||
final java.util.function.Function foo2 = (System.currentTimeMillis() < 0) ? (java.util.function.Function) r -> "" : r -> System.currentTimeMillis();
|
||||
java.util.function.Function foo3 = (System.currentTimeMillis() < 0) ? (java.util.function.Function) r -> "" : r -> System.currentTimeMillis();
|
||||
final java.util.function.Function<java.lang.String, java.lang.String> foo4 = (System.currentTimeMillis() < 0) ? (java.util.function.Function<String, String>) r -> "" : r -> String.valueOf(System.currentTimeMillis());
|
||||
}
|
||||
// public void castLubLambda() {
|
||||
// Runnable foo = (Runnable) ((System.currentTimeMillis() > 0) ? () -> {} : System.out::println);
|
||||
// lombok.val foo = (Runnable) ((System.currentTimeMillis() > 0) ? () -> {} : System.out::println);
|
||||
// }
|
||||
}
|
||||
}
|
||||
@@ -15,5 +15,8 @@ class ValLambda {
|
||||
public void easyLubLambda() {
|
||||
final @lombok.val java.lang.Runnable foo = ((System.currentTimeMillis() > 0) ? (Runnable) () -> {
|
||||
} : System.out::println);
|
||||
final @lombok.val java.util.function.Function foo2 = ((System.currentTimeMillis() < 0) ? (java.util.function.Function) (<no type> r) -> "" : (<no type> r) -> System.currentTimeMillis());
|
||||
java.util.function.Function foo3 = ((System.currentTimeMillis() < 0) ? (java.util.function.Function) (<no type> r) -> "" : (<no type> r) -> System.currentTimeMillis());
|
||||
final @lombok.val java.util.function.Function<java.lang.String, java.lang.String> foo4 = ((System.currentTimeMillis() < 0) ? (java.util.function.Function<String, String>) (<no type> r) -> "" : (<no type> r) -> String.valueOf(System.currentTimeMillis()));
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,9 @@ class ValLambda {
|
||||
|
||||
public void easyLubLambda() {
|
||||
lombok.val foo = (System.currentTimeMillis() > 0) ? (Runnable)()-> {} : System.out::println;
|
||||
lombok.val foo2 = (System.currentTimeMillis() < 0) ? (java.util.function.Function) r -> "" : r -> System.currentTimeMillis();
|
||||
java.util.function.Function foo3 = (System.currentTimeMillis() < 0) ? (java.util.function.Function) r -> "" : r -> System.currentTimeMillis();
|
||||
lombok.val foo4 = (System.currentTimeMillis() < 0) ? (java.util.function.Function<String, String>) r -> "" : r -> String.valueOf(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
// public void castLubLambda() {
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
14 Function is a raw type. References to generic type Function<T,R> should be parameterized
|
||||
15 Function is a raw type. References to generic type Function<T,R> should be parameterized
|
||||
Reference in new issue
Block a user