Move method: defaultInitializer

This commit is contained in:
Natalia.Ukhorskaya
2013-02-20 15:22:13 +04:00
parent bcbb87783c
commit 6b6c349a47
2 changed files with 21 additions and 17 deletions
@@ -12,6 +12,8 @@ import org.jetbrains.jet.lang.psi.JetBlockExpression;
import org.jetbrains.jet.lang.psi.JetElement; import org.jetbrains.jet.lang.psi.JetElement;
import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetExpression;
import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -132,6 +134,24 @@ public class CodeInsightUtils {
return element; return element;
} }
public static String defaultInitializer(JetType type) {
KotlinBuiltIns builtIns = KotlinBuiltIns.getInstance();
if (type.isNullable()) {
return "null";
}
else if (type.equals(builtIns.getIntType()) || type.equals(builtIns.getLongType()) ||
type.equals(builtIns.getShortType()) || type.equals(builtIns.getByteType()) ||
type.equals(builtIns.getFloatType()) || type.equals(builtIns.getDoubleType()) ||
type.equals(builtIns.getCharType())) {
return "0";
}
else if (type.equals(builtIns.getBooleanType())) {
return "false";
}
return null;
}
private CodeInsightUtils() { private CodeInsightUtils() {
} }
} }
@@ -141,7 +141,7 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
bodyBuilder.append(descriptor.getName()).append(" : ").append( bodyBuilder.append(descriptor.getName()).append(" : ").append(
DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(descriptor.getType())); DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(descriptor.getType()));
String initializer = defaultInitializer(descriptor.getType(), KotlinBuiltIns.getInstance()); String initializer = CodeInsightUtils.defaultInitializer(descriptor.getType());
if (initializer != null) { if (initializer != null) {
bodyBuilder.append(" = ").append(initializer); bodyBuilder.append(" = ").append(initializer);
} }
@@ -247,22 +247,6 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
} }
} }
private static String defaultInitializer(JetType returnType, KotlinBuiltIns builtIns) {
if (returnType.isNullable()) {
return "null";
}
else if (returnType.equals(builtIns.getIntType()) || returnType.equals(builtIns.getLongType()) ||
returnType.equals(builtIns.getShortType()) || returnType.equals(builtIns.getByteType()) ||
returnType.equals(builtIns.getFloatType()) || returnType.equals(builtIns.getDoubleType())) {
return "0";
}
else if (returnType.equals(builtIns.getBooleanType())) {
return "false";
}
return null;
}
private static String displayableVisibility(MemberDescriptor descriptor) { private static String displayableVisibility(MemberDescriptor descriptor) {
Visibility visibility = descriptor.getVisibility().normalize(); Visibility visibility = descriptor.getVisibility().normalize();
return visibility != Visibilities.INTERNAL ? visibility.toString() + " " : ""; return visibility != Visibilities.INTERNAL ? visibility.toString() + " " : "";