From 76029ee9b2434c95a4961e13f6cea0fc13a7ad69 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Wed, 23 Sep 2015 20:42:29 +0300 Subject: [PATCH] Introduce JvmBuiltIns and DefaultBuiltIns, different instances of KotlinBuiltIns Make KotlinBuiltIns an abstract class JsPlatform has DefaultBuiltIns --- .../resolve/jvm/platform/JvmPlatform.kt | 5 ++ .../org/jetbrains/kotlin/context/context.kt | 2 +- .../kotlin/resolve/TargetPlatform.kt | 15 +++-- .../builtins/BuiltInsSerializerTest.kt | 7 +- .../builtins/LoadBuiltinsTest.java | 4 +- .../kotlin/platform/JavaToKotlinClassMap.java | 2 +- .../jetbrains/kotlin/platform/JvmBuiltIns.kt | 32 +++++++++ .../load/kotlin/reflect/RuntimeModuleData.kt | 4 +- .../kotlin/builtins/BuiltInsInitializer.kt | 66 +++++++++++++++++++ .../kotlin/builtins/DefaultBuiltIns.kt | 29 ++++++++ .../kotlin/builtins/KotlinBuiltIns.java | 52 +-------------- .../navigation/JetSourceNavigationHelper.java | 4 +- .../references/BuiltInsReferenceResolver.kt | 3 +- .../BuiltInsReferenceResolverTest.java | 4 +- .../jetbrains/kotlin/js/resolve/JsPlatform.kt | 6 +- 15 files changed, 163 insertions(+), 72 deletions(-) create mode 100644 core/descriptor.loader.java/src/org/jetbrains/kotlin/platform/JvmBuiltIns.kt create mode 100644 core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsInitializer.kt create mode 100644 core/descriptors/src/org/jetbrains/kotlin/builtins/DefaultBuiltIns.kt diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt index ffda3b91ff3..f6365c604d2 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/platform/JvmPlatform.kt @@ -16,8 +16,10 @@ package org.jetbrains.kotlin.resolve.jvm.platform +import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.ModuleParameters import org.jetbrains.kotlin.platform.JavaToKotlinClassMap +import org.jetbrains.kotlin.platform.JvmBuiltIns import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.ImportPath @@ -35,6 +37,9 @@ public object JvmPlatform : TargetPlatform("JVM") { get() = DEFAULT_IMPORTS_FOR_JVM } + override val builtIns: KotlinBuiltIns + get() = JvmBuiltIns.Instance + override val platformConfigurator: PlatformConfigurator = JvmPlatformConfigurator } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/context/context.kt b/compiler/frontend/src/org/jetbrains/kotlin/context/context.kt index 7c542901d32..5603e71680c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/context/context.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/context/context.kt @@ -108,7 +108,7 @@ public fun ContextForNewModule( project: Project, moduleName: Name, parameters: ModuleParameters, - builtIns: KotlinBuiltIns = KotlinBuiltIns.getInstance() + builtIns: KotlinBuiltIns ): MutableModuleContext { val projectContext = ProjectContext(project) val module = ModuleDescriptorImpl(moduleName, projectContext.storageManager, parameters, builtIns) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt index 3818f1ba9f0..ddd4c2e53d1 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.resolve +import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.container.StorageComponentContainer import org.jetbrains.kotlin.container.useInstance @@ -29,18 +30,20 @@ import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator import org.jetbrains.kotlin.storage.StorageManager import org.jetbrains.kotlin.types.DynamicTypesSettings -public abstract class TargetPlatform( - public val platformName: String +abstract class TargetPlatform( + val platformName: String ) { override fun toString(): String { return platformName } - public abstract val platformConfigurator: PlatformConfigurator - public val builtIns: KotlinBuiltIns = KotlinBuiltIns.getInstance() + abstract val platformConfigurator: PlatformConfigurator + abstract val builtIns: KotlinBuiltIns abstract val defaultModuleParameters: ModuleParameters - public object Default : TargetPlatform("Default") { + object Default : TargetPlatform("Default") { + override val builtIns: KotlinBuiltIns + get() = DefaultBuiltIns.Instance override val defaultModuleParameters = ModuleParameters.Empty override val platformConfigurator = PlatformConfigurator(DynamicTypesSettings(), listOf(), listOf(), listOf(), listOf(), listOf()) } @@ -52,7 +55,7 @@ private val DEFAULT_TYPE_CHECKERS = emptyList() private val DEFAULT_VALIDATORS = listOf(DeprecatedSymbolValidator(), OperatorValidator()) -public open class PlatformConfigurator( +open class PlatformConfigurator( private val dynamicTypesSettings: DynamicTypesSettings, additionalDeclarationCheckers: List, additionalCallCheckers: List, diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerTest.kt b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerTest.kt index b4f92b50ad3..3831d417d58 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerTest.kt @@ -16,10 +16,10 @@ package org.jetbrains.kotlin.serialization.builtins -import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.createBuiltInPackageFragmentProvider import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime import org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil.TEST_PACKAGE_FQNAME +import org.jetbrains.kotlin.resolve.TargetPlatform import org.jetbrains.kotlin.serialization.deserialization.ClassDescriptorFactory import org.jetbrains.kotlin.storage.LockBasedStorageManager import org.jetbrains.kotlin.test.JetTestUtils @@ -38,7 +38,8 @@ public class BuiltInsSerializerTest : TestCaseWithTmpdir() { onComplete = { totalSize, totalFiles -> } ) - val module = JetTestUtils.createEmptyModule("") + val platform = TargetPlatform.Default + val module = JetTestUtils.createEmptyModule("", platform) val packageFragmentProvider = createBuiltInPackageFragmentProvider( LockBasedStorageManager(), module, setOf(TEST_PACKAGE_FQNAME), ClassDescriptorFactory.EMPTY @@ -48,7 +49,7 @@ public class BuiltInsSerializerTest : TestCaseWithTmpdir() { } module.initialize(packageFragmentProvider) - module.setDependencies(module, KotlinBuiltIns.getInstance().getBuiltInsModule()) + module.setDependencies(module, module.builtIns.builtInsModule) RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile( module.getPackage(TEST_PACKAGE_FQNAME), diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/LoadBuiltinsTest.java b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/LoadBuiltinsTest.java index c0fc61ff450..75c92741004 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/LoadBuiltinsTest.java +++ b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/LoadBuiltinsTest.java @@ -21,7 +21,7 @@ import com.intellij.util.containers.ContainerUtil; import kotlin.Unit; import kotlin.jvm.functions.Function1; import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.builtins.KotlinBuiltIns; +import org.jetbrains.kotlin.builtins.DefaultBuiltIns; import org.jetbrains.kotlin.builtins.functions.BuiltInFictitiousFunctionClassFactory; import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime; @@ -103,7 +103,7 @@ public class LoadBuiltinsTest extends KotlinTestWithEnvironment { private static PackageFragmentDescriptor createBuiltInsPackageFragment() { LockBasedStorageManager storageManager = new LockBasedStorageManager(); ModuleDescriptorImpl builtInsModule = new ModuleDescriptorImpl( - Name.special(""), storageManager, ModuleParameters.Empty.INSTANCE$, KotlinBuiltIns.getInstance() + Name.special(""), storageManager, ModuleParameters.Empty.INSTANCE$, DefaultBuiltIns.getInstance() ); PackageFragmentProvider packageFragmentProvider = createBuiltInPackageFragmentProvider( diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/platform/JavaToKotlinClassMap.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/platform/JavaToKotlinClassMap.java index f3036190809..f577885ab2c 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/platform/JavaToKotlinClassMap.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/platform/JavaToKotlinClassMap.java @@ -44,7 +44,7 @@ public class JavaToKotlinClassMap implements PlatformToKotlinClassMap { private final Map readOnlyToMutable = new HashMap(); private JavaToKotlinClassMap() { - KotlinBuiltIns builtIns = KotlinBuiltIns.getInstance(); + KotlinBuiltIns builtIns = JvmBuiltIns.getInstance(); add(Object.class, builtIns.getAny()); add(String.class, builtIns.getString()); diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/platform/JvmBuiltIns.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/platform/JvmBuiltIns.kt new file mode 100644 index 00000000000..d618fe04af9 --- /dev/null +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/platform/JvmBuiltIns.kt @@ -0,0 +1,32 @@ +/* + * Copyright 2010-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.platform + +import org.jetbrains.kotlin.builtins.BuiltInsInitializer +import org.jetbrains.kotlin.builtins.KotlinBuiltIns + +class JvmBuiltIns private constructor() : KotlinBuiltIns() { + companion object { + private val initializer = BuiltInsInitializer { + JvmBuiltIns() + } + + @JvmStatic + val Instance: KotlinBuiltIns + get() = initializer.get() + } +} \ No newline at end of file diff --git a/core/descriptors.runtime/src/org/jetbrains/kotlin/load/kotlin/reflect/RuntimeModuleData.kt b/core/descriptors.runtime/src/org/jetbrains/kotlin/load/kotlin/reflect/RuntimeModuleData.kt index 77e8c0d2c25..1a249cff117 100644 --- a/core/descriptors.runtime/src/org/jetbrains/kotlin/load/kotlin/reflect/RuntimeModuleData.kt +++ b/core/descriptors.runtime/src/org/jetbrains/kotlin/load/kotlin/reflect/RuntimeModuleData.kt @@ -16,7 +16,6 @@ package org.jetbrains.kotlin.load.kotlin.reflect -import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.ReflectionTypes import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleParameters @@ -33,6 +32,7 @@ import org.jetbrains.kotlin.load.kotlin.DeserializedDescriptorResolver import org.jetbrains.kotlin.load.kotlin.JavaClassDataFinder import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.platform.JavaToKotlinClassMap +import org.jetbrains.kotlin.platform.JvmBuiltIns import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver import org.jetbrains.kotlin.serialization.deserialization.DeserializationComponents import org.jetbrains.kotlin.serialization.deserialization.LocalClassResolver @@ -44,7 +44,7 @@ public class RuntimeModuleData private constructor(public val deserialization: D companion object { public fun create(classLoader: ClassLoader): RuntimeModuleData { - val builtIns = KotlinBuiltIns.getInstance() + val builtIns = JvmBuiltIns.Instance val storageManager = LockBasedStorageManager() val module = ModuleDescriptorImpl(Name.special(""), storageManager, ModuleParameters(listOf(), JavaToKotlinClassMap.INSTANCE), builtIns) diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsInitializer.kt b/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsInitializer.kt new file mode 100644 index 00000000000..d5562c67889 --- /dev/null +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsInitializer.kt @@ -0,0 +1,66 @@ +/* + * Copyright 2010-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.builtins + +import org.jetbrains.kotlin.utils.sure + +public class BuiltInsInitializer( + private val constructor: () -> T +) { + @Volatile private var instance: T? = null + + @Volatile private var initializing: Boolean = false + + private var initializationFailed: Throwable? = null + + @Synchronized private fun initialize() { + if (instance == null) { + if (initializationFailed != null) { + throw IllegalStateException( + "Built-in library initialization failed previously: " + initializationFailed!!, initializationFailed) + } + if (initializing) { + throw IllegalStateException("Built-in library initialization loop") + } + initializing = true + try { + instance = constructor() + } + catch (e: Throwable) { + initializationFailed = e + throw IllegalStateException("Built-in library initialization failed. " + "Please ensure you have kotlin-runtime.jar in the classpath: " + e, e) + } + finally { + initializing = false + } + } + } + + fun get(): T { + if (initializing) { + synchronized (this) { + return instance.sure { + "Built-ins are not initialized (note: We are under the same lock as initializing and instance)" + } + } + } + if (instance == null) { + initialize() + } + return instance!! + } +} \ No newline at end of file diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/DefaultBuiltIns.kt b/core/descriptors/src/org/jetbrains/kotlin/builtins/DefaultBuiltIns.kt new file mode 100644 index 00000000000..cb24055ede5 --- /dev/null +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/DefaultBuiltIns.kt @@ -0,0 +1,29 @@ +/* + * Copyright 2010-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.builtins + +class DefaultBuiltIns private constructor() : KotlinBuiltIns() { + companion object { + private val initializer = BuiltInsInitializer { + DefaultBuiltIns() + } + + @JvmStatic + val Instance: DefaultBuiltIns + get() = initializer.get() + } +} \ No newline at end of file diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java b/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java index 36a118e558b..3b75eafb3d7 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/KotlinBuiltIns.java @@ -43,7 +43,7 @@ import static kotlin.KotlinPackage.*; import static org.jetbrains.kotlin.builtins.PrimitiveType.*; import static org.jetbrains.kotlin.resolve.DescriptorUtils.getFqName; -public class KotlinBuiltIns { +public abstract class KotlinBuiltIns { public static final Name BUILT_INS_PACKAGE_NAME = Name.identifier("kotlin"); public static final FqName BUILT_INS_PACKAGE_FQ_NAME = FqName.topLevel(BUILT_INS_PACKAGE_NAME); public static final FqName ANNOTATION_PACKAGE_FQ_NAME = BUILT_INS_PACKAGE_FQ_NAME.child(Name.identifier("annotation")); @@ -54,54 +54,6 @@ public class KotlinBuiltIns { BuiltinsPackage.getKOTLIN_REFLECT_FQ_NAME() ); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - private static volatile KotlinBuiltIns instance = null; - - private static volatile boolean initializing; - private static Throwable initializationFailed; - - private static synchronized void initialize() { - if (instance == null) { - if (initializationFailed != null) { - throw new IllegalStateException( - "Built-in library initialization failed previously: " + initializationFailed, initializationFailed - ); - } - if (initializing) { - throw new IllegalStateException("Built-in library initialization loop"); - } - initializing = true; - try { - instance = new KotlinBuiltIns(); - } - catch (Throwable e) { - initializationFailed = e; - throw new IllegalStateException("Built-in library initialization failed. " + - "Please ensure you have kotlin-runtime.jar in the classpath: " + e, e); - } - finally { - initializing = false; - } - } - } - - @NotNull - public static KotlinBuiltIns getInstance() { - if (initializing) { - synchronized (KotlinBuiltIns.class) { - assert instance != null : "Built-ins are not initialized (note: We are under the same lock as initializing and instance)"; - return instance; - } - } - if (instance == null) { - initialize(); - } - return instance; - } - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - private final ModuleDescriptorImpl builtInsModule; private final BuiltinsPackageFragment builtinsPackageFragment; private final BuiltinsPackageFragment annotationPackageFragment; @@ -112,7 +64,7 @@ public class KotlinBuiltIns { public static final FqNames FQ_NAMES = new FqNames(); - private KotlinBuiltIns() { + protected KotlinBuiltIns() { LockBasedStorageManager storageManager = new LockBasedStorageManager(); builtInsModule = new ModuleDescriptorImpl( Name.special(""), storageManager, ModuleParameters.Empty.INSTANCE$, this diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/navigation/JetSourceNavigationHelper.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/navigation/JetSourceNavigationHelper.java index 699bc3c154d..39c2a54c3c5 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/navigation/JetSourceNavigationHelper.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/navigation/JetSourceNavigationHelper.java @@ -39,7 +39,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.TestOnly; import org.jetbrains.kotlin.asJava.LightClassUtil; -import org.jetbrains.kotlin.builtins.KotlinBuiltIns; +import org.jetbrains.kotlin.builtins.DefaultBuiltIns; import org.jetbrains.kotlin.codegen.binding.PsiCodegenPredictor; import org.jetbrains.kotlin.context.ContextPackage; import org.jetbrains.kotlin.context.MutableModuleContext; @@ -246,7 +246,7 @@ public class JetSourceNavigationHelper { JvmPlatform.defaultModuleParameters.getDefaultImports(), PlatformToKotlinClassMap.EMPTY ), - KotlinBuiltIns.getInstance() + DefaultBuiltIns.getInstance() ); newModuleContext.setDependencies(newModuleContext.getModule(), platform.getBuiltIns().getBuiltInsModule()); diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolver.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolver.kt index 4fe27c518d0..d17c9fa0607 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolver.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolver.kt @@ -36,7 +36,6 @@ import org.jetbrains.kotlin.psi.JetFile import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.resolve.BindingTraceContext import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils -import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.TargetPlatform import org.jetbrains.kotlin.resolve.descriptorUtil.classId import org.jetbrains.kotlin.resolve.descriptorUtil.module @@ -65,7 +64,7 @@ public class BuiltInsReferenceResolver(val project: Project, val startupManager: val jetBuiltInsFiles = getJetBuiltInsFiles() runReadAction { - val newModuleContext = ContextForNewModule(project, Name.special(""), ModuleParameters.Empty) + val newModuleContext = ContextForNewModule(project, Name.special(""), TargetPlatform.Default) newModuleContext.setDependencies(newModuleContext.module) val declarationFactory = FileBasedDeclarationProviderFactory(newModuleContext.storageManager, jetBuiltInsFiles) diff --git a/idea/tests/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolverTest.java b/idea/tests/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolverTest.java index 7ad145cae5f..c381ca573fe 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolverTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/references/BuiltInsReferenceResolverTest.java @@ -20,7 +20,7 @@ import com.intellij.openapi.vfs.newvfs.impl.VfsRootAccess; import com.intellij.psi.*; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.testFramework.ResolveTestCase; -import org.jetbrains.kotlin.builtins.KotlinBuiltIns; +import org.jetbrains.kotlin.builtins.DefaultBuiltIns; import org.jetbrains.kotlin.descriptors.ClassDescriptor; import org.jetbrains.kotlin.descriptors.DeclarationDescriptor; import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor; @@ -91,7 +91,7 @@ public class BuiltInsReferenceResolverTest extends ResolveTestCase { private static Collection getAllStandardDescriptors() { final List descriptors = new ArrayList(); - PackageFragmentDescriptor builtinsPackageFragment = KotlinBuiltIns.getInstance().getBuiltInsPackageFragment(); + PackageFragmentDescriptor builtinsPackageFragment = DefaultBuiltIns.getInstance().getBuiltInsPackageFragment(); for (DeclarationDescriptor packageMember : builtinsPackageFragment.getMemberScope().getAllDescriptors()) { packageMember.acceptVoid(new DeclarationDescriptorVisitorEmptyBodies() { diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatform.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatform.kt index 93ecb3b0ea1..758098f0766 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatform.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/JsPlatform.kt @@ -17,6 +17,8 @@ package org.jetbrains.kotlin.js.resolve import com.google.common.collect.ImmutableList +import org.jetbrains.kotlin.builtins.DefaultBuiltIns +import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.ModuleParameters import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap import org.jetbrains.kotlin.resolve.ImportPath @@ -36,6 +38,8 @@ public object JsPlatform : TargetPlatform("JS") { get() = PlatformToKotlinClassMap.EMPTY } - override val platformConfigurator: PlatformConfigurator = JsPlatformConfigurator + + override val builtIns: KotlinBuiltIns + get() = DefaultBuiltIns.Instance } \ No newline at end of file