Create from usage: Fixed a bug where the type parameter list is not rendered correctly when empty.

This commit is contained in:
Jack Zhou
2013-04-21 15:04:18 -04:00
parent 0cd9c2d9a8
commit a9f1ba3063
@@ -95,7 +95,7 @@ public class CreateMethodFromUsageFix extends CreateFromUsageFixBase {
this.type = type; this.type = type;
Set<TypeParameterDescriptor> typeParametersInType = getTypeParametersInType(type); Set<TypeParameterDescriptor> typeParametersInType = getTypeParametersInType(type);
typeParameters = typeParametersInType.toArray(new TypeParameterDescriptor[typeParametersInType.size()]); typeParameters = typeParametersInType.toArray(new TypeParameterDescriptor[typeParametersInType.size()]);
render(Collections.<TypeParameterDescriptor, String>emptyMap()); renderedType = renderTypeShort(type, Collections.<TypeParameterDescriptor, String>emptyMap());
} }
public TypeCandidate(@NotNull JetType type, @NotNull JetScope scope) { public TypeCandidate(@NotNull JetType type, @NotNull JetScope scope) {
@@ -647,6 +647,9 @@ public class CreateMethodFromUsageFix extends CreateFromUsageFixBase {
returnType.computeTypeCandidates(currentFileContext, substitutions, scope); returnType.computeTypeCandidates(currentFileContext, substitutions, scope);
} }
// now that we have done substitutions, we can throw it away
selectedReceiverType = new TypeCandidate(receiverType, scope);
// figure out type parameter renames to avoid conflicts // figure out type parameter renames to avoid conflicts
typeParameterNameMap = getTypeParameterRenames(scope); typeParameterNameMap = getTypeParameterRenames(scope);
for (Parameter parameter : parameters) { for (Parameter parameter : parameters) {
@@ -655,9 +658,7 @@ public class CreateMethodFromUsageFix extends CreateFromUsageFixBase {
if (!isUnit) { if (!isUnit) {
returnType.renderTypeCandidates(typeParameterNameMap); returnType.renderTypeCandidates(typeParameterNameMap);
} }
if (isExtension) { selectedReceiverType.render(typeParameterNameMap);
ownerType.renderTypeCandidates(typeParameterNameMap);
}
ApplicationManager.getApplication().runWriteAction(new Runnable() { ApplicationManager.getApplication().runWriteAction(new Runnable() {
@Override @Override