Fix ChangeFunctionReturnTypeFix.getText() method

This commit is contained in:
Wojciech Lopata
2013-04-24 12:17:20 +02:00
parent e49389bf07
commit dde4260d10
2 changed files with 11 additions and 7 deletions
@@ -58,7 +58,9 @@ rename.family=Rename
add.semicolon.after.invocation=Add semicolon after invocation of ''{0}''
add.semicolon.family=Add Semicolon
change.function.return.type=Change ''{0}'' function return type to ''{1}''
change.no.name.function.return.type=Change function return type to ''{0}''
remove.function.return.type=Remove explicitly specified return type in ''{0}'' function
remove.no.name.function.return.type=Remove explicitly specified function return type
change.element.type=Change ''{0}'' type to ''{1}''
change.type=Change type from ''{0}'' to ''{1}''
change.type.family=Change Type
@@ -36,6 +36,7 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.BindingContextUtils;
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
@@ -56,16 +57,17 @@ public class ChangeFunctionReturnTypeFix extends JetIntentionAction<JetNamedFunc
@Override
public String getText() {
String functionName = element.getName();
BindingContext context = AnalyzerFacadeWithCache.analyzeFileWithCache((JetFile) element.getContainingFile()).getBindingContext();
SimpleFunctionDescriptor descriptor = context.get(BindingContext.FUNCTION, element);
if (descriptor != null) {
functionName = descriptor.getContainingDeclaration().getName() + "." + functionName;
}
FqName fqName = JetPsiUtil.getFQName(element);
if (fqName != null) functionName = fqName.getFqName();
if (KotlinBuiltIns.getInstance().isUnit(type) && element.hasBlockBody()) {
return JetBundle.message("remove.function.return.type", functionName);
return functionName == null ?
JetBundle.message("remove.no.name.function.return.type") :
JetBundle.message("remove.function.return.type", functionName);
}
return JetBundle.message("change.function.return.type", functionName, type.toString());
return functionName == null ?
JetBundle.message("change.no.name.function.return.type", type.toString()) :
JetBundle.message("change.function.return.type", functionName, type.toString());
}
@NotNull