mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-13 21:55:01 +07:00
change method return type on call site (IDEA-125166)
This commit is contained in:
+2
-2
@@ -688,7 +688,7 @@ public class GenericsHighlightUtil {
|
||||
final PsiType parameterType = parameter.getType();
|
||||
HighlightInfo highlightInfo = HighlightUtil.checkAssignability(parameterType, itemType, null, new TextRange(start, end), 0);
|
||||
if (highlightInfo != null) {
|
||||
HighlightUtil.registerChangeVariableTypeFixes(parameter, itemType, highlightInfo);
|
||||
HighlightUtil.registerChangeVariableTypeFixes(parameter, itemType, expression, highlightInfo);
|
||||
}
|
||||
return highlightInfo;
|
||||
}
|
||||
@@ -1297,7 +1297,7 @@ public class GenericsHighlightUtil {
|
||||
}
|
||||
PsiSubstitutor substitutor = factory.createSubstitutor(map);
|
||||
PsiType suggestedType = factory.createType(aClass, substitutor);
|
||||
HighlightUtil.registerChangeVariableTypeFixes(variable, suggestedType, highlightInfo);
|
||||
HighlightUtil.registerChangeVariableTypeFixes(variable, suggestedType, variable.getInitializer(), highlightInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+15
-5
@@ -434,22 +434,23 @@ public class HighlightUtil extends HighlightUtilBase {
|
||||
if (highlightInfo == null) {
|
||||
return null;
|
||||
}
|
||||
registerChangeVariableTypeFixes(lExpr, rType, highlightInfo);
|
||||
registerChangeVariableTypeFixes(lExpr, rType, rExpr, highlightInfo);
|
||||
if (lType != null) {
|
||||
registerChangeVariableTypeFixes(rExpr, lType, highlightInfo);
|
||||
registerChangeVariableTypeFixes(rExpr, lType, lExpr, highlightInfo);
|
||||
}
|
||||
return highlightInfo;
|
||||
}
|
||||
|
||||
private static void registerChangeVariableTypeFixes(@NotNull PsiExpression expression,
|
||||
@NotNull PsiType type,
|
||||
@Nullable PsiExpression lExpr,
|
||||
@Nullable HighlightInfo highlightInfo) {
|
||||
if (highlightInfo == null || !(expression instanceof PsiReferenceExpression)) return;
|
||||
|
||||
final PsiElement element = ((PsiReferenceExpression)expression).resolve();
|
||||
if (element == null || !(element instanceof PsiVariable)) return;
|
||||
|
||||
registerChangeVariableTypeFixes((PsiVariable)element, type, highlightInfo);
|
||||
registerChangeVariableTypeFixes((PsiVariable)element, type, lExpr, highlightInfo);
|
||||
}
|
||||
|
||||
private static boolean isCastIntentionApplicable(@NotNull PsiExpression expression, @Nullable PsiType toType) {
|
||||
@@ -478,7 +479,7 @@ public class HighlightUtil extends HighlightUtilBase {
|
||||
int end = variable.getTextRange().getEndOffset();
|
||||
HighlightInfo highlightInfo = checkAssignability(lType, rType, initializer, new TextRange(start, end), 0);
|
||||
if (highlightInfo != null) {
|
||||
registerChangeVariableTypeFixes(variable, rType, highlightInfo);
|
||||
registerChangeVariableTypeFixes(variable, rType, variable.getInitializer(), highlightInfo);
|
||||
}
|
||||
return highlightInfo;
|
||||
}
|
||||
@@ -2660,10 +2661,19 @@ public class HighlightUtil extends HighlightUtilBase {
|
||||
return info;
|
||||
}
|
||||
|
||||
public static void registerChangeVariableTypeFixes(@NotNull PsiVariable parameter, PsiType itemType, @NotNull HighlightInfo highlightInfo) {
|
||||
public static void registerChangeVariableTypeFixes(@NotNull PsiVariable parameter,
|
||||
PsiType itemType,
|
||||
@Nullable PsiExpression expr,
|
||||
@NotNull HighlightInfo highlightInfo) {
|
||||
for (IntentionAction action : getChangeVariableTypeFixes(parameter, itemType)) {
|
||||
QuickFixAction.registerQuickFixAction(highlightInfo, action);
|
||||
}
|
||||
if (expr instanceof PsiMethodCallExpression) {
|
||||
final PsiMethod method = ((PsiMethodCallExpression)expr).resolveMethod();
|
||||
if (method != null) {
|
||||
QuickFixAction.registerQuickFixAction(highlightInfo, QUICK_FIX_FACTORY.createMethodReturnFix(method, parameter.getType(), true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// "Make 'bar' return 'java.lang.String'" "true"
|
||||
public class Foo {
|
||||
void foo() {
|
||||
String s;
|
||||
s = bar();
|
||||
}
|
||||
|
||||
String bar() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// "Make 'bar' return 'java.lang.String'" "true"
|
||||
public class Foo {
|
||||
void foo() {
|
||||
String s = bar();
|
||||
}
|
||||
|
||||
String bar() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// "Make 'bar' return 'java.lang.String'" "true"
|
||||
public class Foo {
|
||||
void foo() {
|
||||
String s;
|
||||
<caret>s = bar();
|
||||
}
|
||||
|
||||
void bar() {
|
||||
}
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// "Make 'bar' return 'java.lang.String'" "true"
|
||||
public class Foo {
|
||||
void foo() {
|
||||
String <caret>s = bar();
|
||||
}
|
||||
|
||||
void bar() {
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user