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
@@ -21,7 +21,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
import org.jetbrains.jet.lang.resolve.TypeResolver;
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.lang.ModuleConfiguration;
import com.intellij.openapi.project.Project;
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
@@ -37,7 +37,7 @@ public class InjectorForTests {
private ExpressionTypingServices expressionTypingServices;
private TypeResolver typeResolver;
private CallResolver callResolver;
private JetStandardLibrary jetStandardLibrary;
private KotlinBuiltIns kotlinBuiltIns;
private ModuleConfiguration moduleConfiguration;
private final Project project;
private AnnotationResolver annotationResolver;
@@ -51,7 +51,7 @@ public class InjectorForTests {
this.expressionTypingServices = new ExpressionTypingServices();
this.typeResolver = new TypeResolver();
this.callResolver = new CallResolver();
this.jetStandardLibrary = JetStandardLibrary.getInstance();
this.kotlinBuiltIns = KotlinBuiltIns.getInstance();
this.moduleConfiguration = ModuleConfiguration.EMPTY;
this.project = project;
this.annotationResolver = new AnnotationResolver();
@@ -102,8 +102,8 @@ public class InjectorForTests {
return this.callResolver;
}
public JetStandardLibrary getJetStandardLibrary() {
return this.jetStandardLibrary;
public KotlinBuiltIns getKotlinBuiltIns() {
return this.kotlinBuiltIns;
}
public Project getProject() {
@@ -35,7 +35,7 @@ import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
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.JetStandardLibrary;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.resolve.DescriptorRenderer;
import org.jetbrains.jet.test.TestCaseWithTmpdir;
import org.jetbrains.jet.utils.PathUtil;
@@ -283,7 +283,7 @@ public class AnnotationJavaDescriptorResolverTest extends TestCaseWithTmpdir {
private static void checkSimpleCompileTimeConstant(@NotNull CompileTimeConstant<?> actual, @NotNull String expectedType, @NotNull String expectedValue) {
assertEquals(expectedValue, actual.toString());
compareJetTypeWithClass(actual.getType(JetStandardLibrary.getInstance()), expectedType);
compareJetTypeWithClass(actual.getType(KotlinBuiltIns.getInstance()), expectedType);
}
private void checkAnnotationCompileTimeConstant(
@@ -293,7 +293,7 @@ public class AnnotationJavaDescriptorResolverTest extends TestCaseWithTmpdir {
@NotNull String expectedParameterType,
@NotNull String expectedParameterValue
) {
compareJetTypeWithClass(actual.getType(JetStandardLibrary.getInstance()), expectedType);
compareJetTypeWithClass(actual.getType(KotlinBuiltIns.getInstance()), expectedType);
CompileTimeConstant<?> innerAnnotation = getCompileTimeConstant(actual.getValue(), expectedType, parameterName);
checkSimpleCompileTimeConstant(innerAnnotation, expectedParameterType, expectedParameterValue);
}
@@ -304,7 +304,7 @@ public class AnnotationJavaDescriptorResolverTest extends TestCaseWithTmpdir {
@NotNull String expectedArgumentType,
@NotNull String[] expectedValues
) {
JetType actualType = actual.getType(JetStandardLibrary.getInstance());
JetType actualType = actual.getType(KotlinBuiltIns.getInstance());
compareJetTypeWithClass(actualType, expectedType);
List<CompileTimeConstant<?>> arrayValuesCompileTimeConst = actual.getValue();
@@ -41,7 +41,7 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.junit.Test;
import java.io.File;
@@ -84,7 +84,7 @@ public class LazyResolveBuiltinClassesTest extends KotlinTestWithEnvironment {
Predicates.in(Sets.newHashSet(new FqNameUnsafe("jet.Any"), new FqNameUnsafe("jet.Nothing"))));
NamespaceDescriptor jetNamespaceFromJSL =
(NamespaceDescriptor) JetStandardLibrary.getInstance().getInt().getContainingDeclaration();
(NamespaceDescriptor) KotlinBuiltIns.getInstance().getInt().getContainingDeclaration();
NamespaceDescriptor jetNamespaceFromLazy = lazyModule.getRootNamespace().getMemberScope().getNamespace(
jetNamespaceFromJSL.getName());
@@ -39,7 +39,7 @@ import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageScope;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import java.util.Collection;
import java.util.Collections;
@@ -107,7 +107,7 @@ public class LazyResolveTestUtil {
) {
FqName fqName = DescriptorUtils.getFQName(namespaceDescriptor).toSafe();
if (new FqName("jet").equals(fqName)) {
namespaceMemberScope.importScope(JetStandardLibrary.getInstance().getLibraryScope());
namespaceMemberScope.importScope(KotlinBuiltIns.getInstance().getBuiltInsScope());
}
if (psiClassFinder.findPsiPackage(fqName) != null) {
JavaPackageScope javaPackageScope = javaDescriptorResolver.getJavaPackageScope(fqName, namespaceDescriptor);
@@ -44,7 +44,7 @@ import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.types.ErrorUtils;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeConstructor;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import java.util.Collections;
import java.util.List;
@@ -153,7 +153,7 @@ public abstract class ExpectedResolveData {
}
final Set<PsiElement> unresolvedReferences = Sets.newHashSet();
Project project = files.iterator().next().getProject();
JetStandardLibrary lib = JetStandardLibrary.getInstance();
KotlinBuiltIns builtIns = KotlinBuiltIns.getInstance();
AnalyzeExhaust analyzeExhaust = AnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(project, files,
Collections.<AnalyzerScriptParameter>emptyList(), Predicates.<PsiFile>alwaysTrue(), BuiltinsScopeExtensionMode.ALL);
@@ -259,7 +259,7 @@ public abstract class ExpectedResolveData {
JetType actualType = bindingContext.get(BindingContext.TYPE, typeReference);
assertNotNull("Type " + name + " not resolved for reference " + name, actualType);
ClassifierDescriptor expectedClass = lib.getLibraryScope().getClassifier(Name.identifier(name.substring(STANDARD_PREFIX.length())));
ClassifierDescriptor expectedClass = builtIns.getBuiltInsScope().getClassifier(Name.identifier(name.substring(STANDARD_PREFIX.length())));
assertNotNull("Expected class not found: " + name);
assertSame("Type resolution mismatch: ", expectedClass.getTypeConstructor(), actualType.getConstructor());
continue;
@@ -317,7 +317,7 @@ public abstract class ExpectedResolveData {
TypeConstructor expectedTypeConstructor;
if (typeName.startsWith(STANDARD_PREFIX)) {
String name = typeName.substring(STANDARD_PREFIX.length());
ClassifierDescriptor expectedClass = lib.getLibraryScope().getClassifier(Name.identifier(name));
ClassifierDescriptor expectedClass = builtIns.getBuiltInsScope().getClassifier(Name.identifier(name));
assertNotNull("Expected class not found: " + typeName, expectedClass);
expectedTypeConstructor = expectedClass.getTypeConstructor();
@@ -42,7 +42,7 @@ import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeProjection;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.parsing.JetParsingTest;
import java.io.File;
@@ -68,14 +68,14 @@ public class JetResolveTest extends ExtensibleResolveTestCase {
@Override
protected ExpectedResolveData getExpectedResolveData() {
Project project = getProject();
JetStandardLibrary lib = JetStandardLibrary.getInstance();
KotlinBuiltIns builtIns = KotlinBuiltIns.getInstance();
Map<String, DeclarationDescriptor> nameToDescriptor = new HashMap<String, DeclarationDescriptor>();
nameToDescriptor.put("kotlin::Int.plus(Int)", standardFunction(lib.getInt(), "plus", lib.getIntType()));
FunctionDescriptor descriptorForGet = standardFunction(lib.getArray(), Collections.singletonList(new TypeProjection(lib.getIntType())), "get", lib.getIntType());
nameToDescriptor.put("kotlin::Int.plus(Int)", standardFunction(builtIns.getInt(), "plus", builtIns.getIntType()));
FunctionDescriptor descriptorForGet = standardFunction(builtIns.getArray(), Collections.singletonList(new TypeProjection(builtIns.getIntType())), "get", builtIns.getIntType());
nameToDescriptor.put("kotlin::Array.get(Int)", descriptorForGet.getOriginal());
nameToDescriptor.put("kotlin::Int.compareTo(Double)", standardFunction(lib.getInt(), "compareTo", lib.getDoubleType()));
nameToDescriptor.put("kotlin::Int.compareTo(Double)", standardFunction(builtIns.getInt(), "compareTo", builtIns.getDoubleType()));
@NotNull
FunctionDescriptor descriptorForSet = standardFunction(lib.getArray(), Collections.singletonList(new TypeProjection(lib.getIntType())), "set", lib.getIntType(), lib.getIntType());
FunctionDescriptor descriptorForSet = standardFunction(builtIns.getArray(), Collections.singletonList(new TypeProjection(builtIns.getIntType())), "set", builtIns.getIntType(), builtIns.getIntType());
nameToDescriptor.put("kotlin::Array.set(Int, Int)", descriptorForSet.getOriginal());
Map<String, PsiElement> nameToDeclaration = new HashMap<String, PsiElement>();
@@ -34,7 +34,7 @@ import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.resolve.scopes.RedeclarationHandler;
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import java.util.Collections;
import java.util.List;
@@ -63,9 +63,9 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
public void setUp() throws Exception {
InjectorForTests injector = new InjectorForTests(getProject());
JetStandardLibrary library = injector.getJetStandardLibrary();
KotlinBuiltIns builtIns = injector.getKotlinBuiltIns();
descriptorResolver = injector.getDescriptorResolver();
scope = createScope(library.getLibraryScope());
scope = createScope(builtIns.getBuiltInsScope());
}
private JetScope createScope(JetScope libraryScope) {
@@ -29,7 +29,7 @@ import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import org.jetbrains.jet.lang.resolve.OverloadUtil;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
/**
* @author Stepan Koltsov
@@ -37,7 +37,7 @@ import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
public class JetOverloadTest extends JetLiteFixture {
private ModuleDescriptor root = new ModuleDescriptor(Name.special("<test_root>"));
private JetStandardLibrary library;
private KotlinBuiltIns builtIns;
private DescriptorResolver descriptorResolver;
@Override
@@ -49,7 +49,7 @@ public class JetOverloadTest extends JetLiteFixture {
public void setUp() throws Exception {
super.setUp();
InjectorForTests injector = new InjectorForTests(getProject());
library = injector.getJetStandardLibrary();
builtIns = injector.getKotlinBuiltIns();
descriptorResolver = injector.getDescriptorResolver();
}
@@ -178,7 +178,7 @@ public class JetOverloadTest extends JetLiteFixture {
private FunctionDescriptor makeFunction(String funDecl) {
JetNamedFunction function = JetPsiFactory.createFunction(getProject(), funDecl);
return descriptorResolver.resolveFunctionDescriptor(root, library.getLibraryScope(), function, JetTestUtils.DUMMY_TRACE);
return descriptorResolver.resolveFunctionDescriptor(root, builtIns.getBuiltInsScope(), function, JetTestUtils.DUMMY_TRACE);
}
}
@@ -29,7 +29,7 @@ import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import org.jetbrains.jet.lang.resolve.OverridingUtil;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
/**
* @author abreslav
@@ -37,7 +37,7 @@ import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
public class JetOverridingTest extends JetLiteFixture {
private ModuleDescriptor root = new ModuleDescriptor(Name.special("<test_root>"));
private JetStandardLibrary library;
private KotlinBuiltIns builtIns;
private DescriptorResolver descriptorResolver;
@Override
@@ -49,7 +49,7 @@ public class JetOverridingTest extends JetLiteFixture {
public void setUp() throws Exception {
super.setUp();
InjectorForTests injector = new InjectorForTests(getProject());
library = injector.getJetStandardLibrary();
builtIns = injector.getKotlinBuiltIns();
descriptorResolver = injector.getDescriptorResolver();
}
@@ -168,6 +168,6 @@ public class JetOverridingTest extends JetLiteFixture {
private FunctionDescriptor makeFunction(String funDecl) {
JetNamedFunction function = JetPsiFactory.createFunction(getProject(), funDecl);
return descriptorResolver.resolveFunctionDescriptor(root, library.getLibraryScope(), function, JetTestUtils.DUMMY_TRACE);
return descriptorResolver.resolveFunctionDescriptor(root, builtIns.getBuiltInsScope(), function, JetTestUtils.DUMMY_TRACE);
}
}
@@ -46,7 +46,6 @@ import org.jetbrains.jet.lang.types.TypeUtils;
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lexer.JetTokens;
import java.util.*;
@@ -56,7 +55,7 @@ import java.util.*;
*/
public class JetTypeCheckerTest extends JetLiteFixture {
private JetStandardLibrary library;
private KotlinBuiltIns builtIns;
private ClassDefinitions classDefinitions;
private DescriptorResolver descriptorResolver;
private JetScope scopeWithImports;
@@ -77,7 +76,7 @@ public class JetTypeCheckerTest extends JetLiteFixture {
public void setUp() throws Exception {
super.setUp();
library = JetStandardLibrary.getInstance();
builtIns = KotlinBuiltIns.getInstance();
classDefinitions = new ClassDefinitions();
InjectorForTests injector = new InjectorForTests(getProject());
@@ -94,28 +93,28 @@ public class JetTypeCheckerTest extends JetLiteFixture {
}
public void testConstants() throws Exception {
assertType("1", library.getIntType());
assertType("0x1", library.getIntType());
assertType("0X1", library.getIntType());
assertType("0b1", library.getIntType());
assertType("0B1", library.getIntType());
assertType("1", builtIns.getIntType());
assertType("0x1", builtIns.getIntType());
assertType("0X1", builtIns.getIntType());
assertType("0b1", builtIns.getIntType());
assertType("0B1", builtIns.getIntType());
assertType("1.toLong()", library.getLongType());
assertType("1.toLong()", builtIns.getLongType());
assertType("1.0", library.getDoubleType());
assertType("1.0.toDouble()", library.getDoubleType());
assertType("0x1.fffffffffffffp1023", library.getDoubleType());
assertType("1.0", builtIns.getDoubleType());
assertType("1.0.toDouble()", builtIns.getDoubleType());
assertType("0x1.fffffffffffffp1023", builtIns.getDoubleType());
assertType("1.0.toFloat()", library.getFloatType());
assertType("0x1.fffffffffffffp1023.toFloat()", library.getFloatType());
assertType("1.0.toFloat()", builtIns.getFloatType());
assertType("0x1.fffffffffffffp1023.toFloat()", builtIns.getFloatType());
assertType("true", library.getBooleanType());
assertType("false", library.getBooleanType());
assertType("true", builtIns.getBooleanType());
assertType("false", builtIns.getBooleanType());
assertType("'d'", library.getCharType());
assertType("'d'", builtIns.getCharType());
assertType("\"d\"", library.getStringType());
assertType("\"\"\"d\"\"\"", library.getStringType());
assertType("\"d\"", builtIns.getStringType());
assertType("\"\"\"d\"\"\"", builtIns.getStringType());
assertType("#()", KotlinBuiltIns.getInstance().getUnitType());
@@ -125,7 +124,7 @@ public class JetTypeCheckerTest extends JetLiteFixture {
public void testTupleConstants() throws Exception {
assertType("#()", KotlinBuiltIns.getInstance().getUnitType());
assertType("#(1, 'a')", KotlinBuiltIns.getInstance().getTupleType(library.getIntType(), library.getCharType()));
assertType("#(1, 'a')", KotlinBuiltIns.getInstance().getTupleType(builtIns.getIntType(), builtIns.getCharType()));
}
public void testTypeInfo() throws Exception {
@@ -598,7 +597,7 @@ public class JetTypeCheckerTest extends JetLiteFixture {
private WritableScopeImpl addImports(JetScope scope) {
WritableScopeImpl writableScope = new WritableScopeImpl(
scope, scope.getContainingDeclaration(), RedeclarationHandler.DO_NOTHING, "JetTypeCheckerTest.addImports");
writableScope.importScope(library.getLibraryScope());
writableScope.importScope(builtIns.getBuiltInsScope());
InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(BuiltinsScopeExtensionMode.ALL, getProject());
JavaDescriptorResolver javaDescriptorResolver = injector.getJavaDescriptorResolver();
writableScope.importScope(javaDescriptorResolver.resolveNamespace(FqName.ROOT,
@@ -658,7 +657,7 @@ public class JetTypeCheckerTest extends JetLiteFixture {
"fun f<T>(a : Float) : T {a}",
};
public JetScope BASIC_SCOPE = new JetScopeAdapter(library.getLibraryScope()) {
public JetScope BASIC_SCOPE = new JetScopeAdapter(builtIns.getBuiltInsScope()) {
@Override
public ClassifierDescriptor getClassifier(@NotNull Name name) {
if (CLASSES.isEmpty()) {