mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
don't recognize ref on functional interface outside of control stmts
IDEA-193833
This commit is contained in:
@@ -112,7 +112,8 @@ public class JavaTargetElementEvaluator extends TargetElementEvaluatorEx2 implem
|
||||
final PsiElement element = file.findElementAt(offset);
|
||||
if (element != null) {
|
||||
final PsiElement parent = element.getParent();
|
||||
if (parent instanceof PsiFunctionalExpression) {
|
||||
if (parent instanceof PsiFunctionalExpression &&
|
||||
(PsiUtil.isJavaToken(element, JavaTokenType.ARROW) || PsiUtil.isJavaToken(element, JavaTokenType.DOUBLE_COLON))) {
|
||||
refElement = PsiUtil.resolveClassInType(((PsiFunctionalExpression)parent).getFunctionalInterfaceType());
|
||||
}
|
||||
else if (element instanceof PsiKeyword &&
|
||||
|
||||
+14
@@ -53,6 +53,20 @@ public class ShowImplementationHandlerTest extends JavaCodeInsightFixtureTestCas
|
||||
assertEquals(CommonClassNames.JAVA_LANG_RUNNABLE, qualifiedName);
|
||||
}
|
||||
|
||||
public void testDisableFunctionalInterfaceReferenceOnWhitespacesInside() {
|
||||
PsiFile file = myFixture.addFileToProject("Foo.java", "public abstract class Hello {" +
|
||||
" {" +
|
||||
" Runnable r = ()<caret> -> {};\n" +
|
||||
" }\n" +
|
||||
"}\n" +
|
||||
"\n");
|
||||
myFixture.configureFromExistingVirtualFile(file.getVirtualFile());
|
||||
|
||||
final PsiElement element =
|
||||
TargetElementUtil.findTargetElement(myFixture.getEditor(), TargetElementUtil.getInstance().getAllAccepted());
|
||||
assertNull(element);
|
||||
}
|
||||
|
||||
public void testFunctionExpressionsOnReference() {
|
||||
myFixture.addClass("public interface I {void m();}");
|
||||
myFixture.addClass("public class Usage {{I i = () -> {};}}");
|
||||
|
||||
Reference in New Issue
Block a user