[fixes #2787] Handle right hand side of assignment first

This commit is contained in:
Rawi01
2021-04-01 21:54:33 +02:00
committed by Roel Spilker
parent 9b3e84717d
commit 462aedcfc3
4 changed files with 32 additions and 1 deletions
@@ -58,7 +58,7 @@ public class HandleVal extends JavacASTAdapter {
}
@SuppressWarnings("deprecation") @Override
public void visitLocal(JavacNode localNode, JCVariableDecl local) {
public void endVisitLocal(JavacNode localNode, JCVariableDecl local) {
JCTree typeTree = local.vartype;
if (typeTree == null) return;
String typeTreeToString = typeTree.toString();
@@ -1,4 +1,7 @@
// version 8:
import java.util.function.Function;
import java.util.function.Supplier;
class ValInLambda {
Runnable foo = (Runnable) () -> {
final int i = 1;
@@ -24,4 +27,12 @@ class ValInLambda {
} : System.out::println;
};
}
public void inParameter() {
final java.util.function.Function<java.util.function.Supplier<java.lang.String>, java.lang.String> foo = (Function<Supplier<String>, String>) s -> s.get();
final java.lang.String foo2 = foo.apply(() -> {
final java.lang.String bar = "";
return bar;
});
}
}
@@ -1,3 +1,5 @@
import java.util.function.Function;
import java.util.function.Supplier;
import lombok.val;
class ValInLambda {
Runnable foo = (Runnable) () -> {
@@ -24,4 +26,11 @@ class ValInLambda {
} : System.out::println);
};
}
public void inParameter() {
final @val java.util.function.Function<java.util.function.Supplier<java.lang.String>, java.lang.String> foo = (Function<Supplier<String>, String>) (<no type> s) -> s.get();
final @val java.lang.String foo2 = foo.apply(() -> {
final @val java.lang.String bar = "";
return bar;
});
}
}
@@ -1,5 +1,8 @@
// version 8:
import java.util.function.Function;
import java.util.function.Supplier;
import lombok.val;
class ValInLambda {
@@ -25,4 +28,12 @@ class ValInLambda {
lombok.val fooInner = (System.currentTimeMillis() > 0) ? (Runnable)()-> {} : System.out::println;
};
}
public void inParameter() {
val foo = (Function<Supplier<String>, String>) s -> s.get();
val foo2 = foo.apply(() -> {
val bar = "";
return bar;
});
}
}