mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
guava type migration: convert function variable that defined as method reference IDEA-152415
This commit is contained in:
+12
-4
@@ -101,10 +101,18 @@ public abstract class BaseGuavaTypeConversionRule extends TypeConversionRule {
|
||||
final PsiAnonymousClass anonymousClass = ((PsiNewExpression)context).getAnonymousClass();
|
||||
return anonymousClass == null ? null : findConversionForAnonymous(anonymousClass, labeler.getSettings(GuavaConversionSettings.class));
|
||||
}
|
||||
else if (context instanceof PsiReferenceExpression) {
|
||||
final PsiElement resolvedElement = ((PsiReferenceExpression)context).resolve();
|
||||
if (resolvedElement instanceof PsiVariable) {
|
||||
return findConversionForVariableReference((PsiReferenceExpression)context, (PsiVariable)resolvedElement, context);
|
||||
else if (context instanceof PsiMethodReferenceExpression) {
|
||||
final PsiType methodReferenceType = context.getType();
|
||||
if (methodReferenceType != null && to != null && to.isAssignableFrom(methodReferenceType)) {
|
||||
return new TypeConversionDescriptorBase();
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (context instanceof PsiReferenceExpression) {
|
||||
final PsiElement resolvedElement = ((PsiReferenceExpression)context).resolve();
|
||||
if (resolvedElement instanceof PsiVariable) {
|
||||
return findConversionForVariableReference((PsiReferenceExpression)context, (PsiVariable)resolvedElement, context);
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -286,6 +286,10 @@ public class GuavaInspectionTest extends JavaCodeInsightFixtureTestCase {
|
||||
doTestAllFile();
|
||||
}
|
||||
|
||||
public void testFunctionIsMethodReference() {
|
||||
doTest();
|
||||
}
|
||||
|
||||
private void doTestNoQuickFixes(Class<? extends PsiElement>... highlightedElements) {
|
||||
myFixture.configureByFile(getTestName(true) + ".java");
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
import com.google.common.base.Function;
|
||||
|
||||
public class MethodReference {
|
||||
public void context() {
|
||||
Function<String, Integer> fun<caret>ction2 = String::length;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import java.util.function.Function;
|
||||
|
||||
public class MethodReference {
|
||||
public void context() {
|
||||
Function<String, Integer> function2 = String::length;
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user