JetStandardLibrary -> KotlinBuiltIns

This commit is contained in:
Andrey Breslav
2012-10-17 12:04:52 +04:00
parent c719ae427a
commit e81f38b6a8
68 changed files with 287 additions and 314 deletions
@@ -26,7 +26,6 @@ import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.types.*;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import java.util.LinkedList;
@@ -64,8 +63,7 @@ public class JetPluginUtil {
return true;
}
JetStandardLibrary standardLibrary = JetStandardLibrary.getInstance();
JetScope libraryScope = standardLibrary.getLibraryScope();
JetScope libraryScope = KotlinBuiltIns.getInstance().getBuiltInsScope();
DeclarationDescriptor declaration = type.getMemberScope().getContainingDeclaration();
if (ErrorUtils.isError(declaration)) {
@@ -19,7 +19,7 @@ package org.jetbrains.jet.plugin;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
/**
* This project component initializes JetStandardLibrary so that throwing a ProcessCanceledException while
@@ -32,7 +32,7 @@ public class JetStandardLibraryInitializer {
ProgressManager.getInstance().executeNonCancelableSection(new Runnable() {
@Override
public void run() {
JetStandardLibrary.initialize(project);
KotlinBuiltIns.initialize(project);
}
});
}
@@ -45,7 +45,6 @@ import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.plugin.stubindex.JetExtensionFunctionNameIndex;
import org.jetbrains.jet.plugin.stubindex.JetFullClassNameIndex;
import org.jetbrains.jet.plugin.stubindex.JetShortClassNameIndex;
@@ -120,16 +119,15 @@ public class JetShortNamesCache extends PsiShortNamesCache {
*/
@NotNull
public static Collection<DeclarationDescriptor> getJetOnlyTypes() {
Collection<DeclarationDescriptor> standardTypes = KotlinBuiltIns.getInstance().getAllBuiltInClasses();
standardTypes.addAll(
Collections2.transform(JetStandardLibrary.getInstance().getStandardTypes(),
new Function<ClassDescriptor, DeclarationDescriptor>() {
Collection<DeclarationDescriptor> standardTypes =
Collections2.transform(KotlinBuiltIns.getInstance().getAllBuiltInClasses(),
new Function<DeclarationDescriptor, DeclarationDescriptor>() {
@Override
public DeclarationDescriptor apply(@Nullable ClassDescriptor classDescriptor) {
public DeclarationDescriptor apply(@Nullable DeclarationDescriptor classDescriptor) {
assert classDescriptor != null;
return classDescriptor;
}
}));
});
return standardTypes;
}
@@ -36,7 +36,6 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.plugin.project.WholeProjectAnalyzerFacade;
import org.jetbrains.jet.resolve.DescriptorRenderer;
@@ -143,7 +142,7 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
bodyBuilder.append(descriptor.getName()).append(" : ").append(DescriptorRenderer.COMPACT_WITH_MODIFIERS.renderTypeWithShortNames(
descriptor.getType()));
String initializer = defaultInitializer(descriptor.getType(), JetStandardLibrary.getInstance());
String initializer = defaultInitializer(descriptor.getType(), KotlinBuiltIns.getInstance());
if (initializer != null) {
bodyBuilder.append(" = ").append(initializer);
}
@@ -227,9 +226,9 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
delegationBuilder.append(")");
}
final JetType returnType = descriptor.getReturnType();
final JetStandardLibrary stdlib = JetStandardLibrary.getInstance();
final KotlinBuiltIns builtIns = KotlinBuiltIns.getInstance();
boolean returnsNotUnit = returnType != null && !stdlib.getTuple0Type().equals(returnType);
boolean returnsNotUnit = returnType != null && !builtIns.getUnitType().equals(returnType);
if (returnsNotUnit) {
bodyBuilder.append(" : ").append(renderType(returnType));
}
@@ -248,16 +247,16 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns
}
}
private static String defaultInitializer(JetType returnType, JetStandardLibrary stdlib) {
private static String defaultInitializer(JetType returnType, KotlinBuiltIns builtIns) {
if (returnType.isNullable()) {
return "null";
}
else if (returnType.equals(stdlib.getIntType()) || returnType.equals(stdlib.getLongType()) ||
returnType.equals(stdlib.getShortType()) || returnType.equals(stdlib.getByteType()) ||
returnType.equals(stdlib.getFloatType()) || returnType.equals(stdlib.getDoubleType())) {
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(stdlib.getBooleanType())) {
else if (returnType.equals(builtIns.getBooleanType())) {
return "false";
}
@@ -27,7 +27,7 @@ import org.jetbrains.jet.lang.types.ErrorUtils;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeUtils;
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.lexer.JetLexer;
import org.jetbrains.jet.lexer.JetTokens;
import org.jetbrains.jet.plugin.project.AnalyzeSingleFileUtil;
@@ -79,65 +79,65 @@ public class JetNameSuggester {
}
private static void addNamesForType(ArrayList<String> result, JetType jetType, JetNameValidator validator) {
JetStandardLibrary standardLibrary = JetStandardLibrary.getInstance();
KotlinBuiltIns builtIns = KotlinBuiltIns.getInstance();
JetTypeChecker typeChecker = JetTypeChecker.INSTANCE;
if (ErrorUtils.containsErrorType(jetType)) return;
if (typeChecker.equalTypes(standardLibrary.getBooleanType(), jetType)) {
if (typeChecker.equalTypes(builtIns.getBooleanType(), jetType)) {
addName(result, "b", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getIntType(), jetType)) {
else if (typeChecker.equalTypes(builtIns.getIntType(), jetType)) {
addName(result, "i", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getByteType(), jetType)) {
else if (typeChecker.equalTypes(builtIns.getByteType(), jetType)) {
addName(result, "byte", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getLongType(), jetType)) {
else if (typeChecker.equalTypes(builtIns.getLongType(), jetType)) {
addName(result, "l", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getFloatType(), jetType)) {
else if (typeChecker.equalTypes(builtIns.getFloatType(), jetType)) {
addName(result, "fl", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getDoubleType(), jetType)) {
else if (typeChecker.equalTypes(builtIns.getDoubleType(), jetType)) {
addName(result, "d", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getShortType(), jetType)) {
else if (typeChecker.equalTypes(builtIns.getShortType(), jetType)) {
addName(result, "sh", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getCharType(), jetType)) {
else if (typeChecker.equalTypes(builtIns.getCharType(), jetType)) {
addName(result, "c", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getStringType(), jetType)) {
else if (typeChecker.equalTypes(builtIns.getStringType(), jetType)) {
addName(result, "s", validator);
}
else {
if (jetType.getArguments().size() == 1) {
JetType argument = jetType.getArguments().get(0).getType();
if (typeChecker.equalTypes(standardLibrary.getArrayType(argument), jetType)) {
if (typeChecker.equalTypes(standardLibrary.getBooleanType(), argument)) {
if (typeChecker.equalTypes(builtIns.getArrayType(argument), jetType)) {
if (typeChecker.equalTypes(builtIns.getBooleanType(), argument)) {
addName(result, "booleans", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getIntType(), argument)) {
else if (typeChecker.equalTypes(builtIns.getIntType(), argument)) {
addName(result, "ints", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getByteType(), argument)) {
else if (typeChecker.equalTypes(builtIns.getByteType(), argument)) {
addName(result, "bytes", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getLongType(), argument)) {
else if (typeChecker.equalTypes(builtIns.getLongType(), argument)) {
addName(result, "longs", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getFloatType(), argument)) {
else if (typeChecker.equalTypes(builtIns.getFloatType(), argument)) {
addName(result, "floats", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getDoubleType(), argument)) {
else if (typeChecker.equalTypes(builtIns.getDoubleType(), argument)) {
addName(result, "doubles", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getShortType(), argument)) {
else if (typeChecker.equalTypes(builtIns.getShortType(), argument)) {
addName(result, "shorts", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getCharType(), argument)) {
else if (typeChecker.equalTypes(builtIns.getCharType(), argument)) {
addName(result, "chars", validator);
}
else if (typeChecker.equalTypes(standardLibrary.getStringType(), argument)) {
else if (typeChecker.equalTypes(builtIns.getStringType(), argument)) {
addName(result, "strings", validator);
}
else {
@@ -35,7 +35,7 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.NamespaceType;
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
@@ -112,8 +112,8 @@ public class JetRefactoringUtil {
BindingContext bindingContext = getContextForSingleFile((JetFile)expression.getContainingFile());
JetType expressionType = bindingContext.get(BindingContext.EXPRESSION_TYPE, expression);
if (expressionType == null || !(expressionType instanceof NamespaceType) &&
!JetTypeChecker.INSTANCE.equalTypes(JetStandardLibrary.
getInstance().getTuple0Type(), expressionType)) {
!JetTypeChecker.INSTANCE.equalTypes(KotlinBuiltIns.
getInstance().getUnitType(), expressionType)) {
expressions.add(expression);
}
}
@@ -45,7 +45,7 @@ import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.NamespaceType;
import org.jetbrains.jet.lang.types.TypeUtils;
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.lexer.JetTokens;
import org.jetbrains.jet.plugin.codeInsight.ReferenceToClassesShortening;
import org.jetbrains.jet.plugin.project.AnalyzeSingleFileUtil;
@@ -139,7 +139,7 @@ public class JetIntroduceVariableHandler extends JetIntroduceHandlerBase {
return;
}
if (expressionType != null &&
JetTypeChecker.INSTANCE.equalTypes(JetStandardLibrary.getInstance().getTuple0Type(), expressionType)) {
JetTypeChecker.INSTANCE.equalTypes(KotlinBuiltIns.getInstance().getUnitType(), expressionType)) {
showErrorHint(project, editor, JetRefactoringBundle.message("cannot.refactor.expression.has.unit.type"));
return;
}