mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-20 13:31:28 +07:00
anonymous -> lambda: allow qualified this/super expr (IDEA-93697)
This commit is contained in:
@@ -92,12 +92,16 @@ public class AnonymousCanBeLambdaInspection extends BaseJavaLocalInspectionTool
|
||||
|
||||
@Override
|
||||
public void visitThisExpression(PsiThisExpression expression) {
|
||||
bodyContainsForbiddenRefs[0] = true;
|
||||
if (expression.getQualifier() == null) {
|
||||
bodyContainsForbiddenRefs[0] = true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitSuperExpression(PsiSuperExpression expression) {
|
||||
bodyContainsForbiddenRefs[0] = true;
|
||||
if (expression.getQualifier() == null) {
|
||||
bodyContainsForbiddenRefs[0] = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
if (!bodyContainsForbiddenRefs[0]) {
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
// "Replace with lambda" "true"
|
||||
class Test {
|
||||
interface Eff<A, B> {
|
||||
B f(A a);
|
||||
}
|
||||
|
||||
interface InOut<A> {
|
||||
A run() throws IOException;
|
||||
|
||||
<B> InOut<B> bind(final Eff<A, InOut<B>> f) default {
|
||||
return () -> f.f(InOut.this.run()).run();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
// "Replace with lambda" "true"
|
||||
class Test {
|
||||
interface Eff<A, B> {
|
||||
B f(A a);
|
||||
}
|
||||
|
||||
interface InOut<A> {
|
||||
A run() throws IOException;
|
||||
|
||||
<B> InOut<B> bind(final Eff<A, InOut<B>> f) default {
|
||||
return new In<caret>Out<B>() {
|
||||
@Override
|
||||
public B run() throws IOException {
|
||||
return f.f(InOut.this.run()).run();
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user