From 4effe42f1da95ee64ffa0adb130160a51e14a0a2 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 20 Oct 2016 12:23:47 +0300 Subject: [PATCH] Use JvmResolveUtil#createContainer in KotlinOverloadTest and KotlinOverridingTest --- .../kotlin/types/KotlinOverloadTest.java | 18 ++++++++++++------ .../kotlin/types/KotlinOverridingTest.java | 18 ++++++++++++------ .../jetbrains/kotlin/types/typeTestUtils.kt | 7 +++++-- 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/compiler/tests/org/jetbrains/kotlin/types/KotlinOverloadTest.java b/compiler/tests/org/jetbrains/kotlin/types/KotlinOverloadTest.java index b30cd1d6f5e..b172365cb4f 100644 --- a/compiler/tests/org/jetbrains/kotlin/types/KotlinOverloadTest.java +++ b/compiler/tests/org/jetbrains/kotlin/types/KotlinOverloadTest.java @@ -16,8 +16,9 @@ package org.jetbrains.kotlin.types; -import org.jetbrains.kotlin.builtins.DefaultBuiltIns; import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; +import org.jetbrains.kotlin.container.ComponentProvider; +import org.jetbrains.kotlin.container.DslKt; import org.jetbrains.kotlin.descriptors.FunctionDescriptor; import org.jetbrains.kotlin.descriptors.ModuleDescriptor; import org.jetbrains.kotlin.psi.KtNamedFunction; @@ -26,14 +27,14 @@ import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver; import org.jetbrains.kotlin.resolve.OverloadChecker; import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator; import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfoFactory; +import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil; import org.jetbrains.kotlin.resolve.scopes.LexicalScope; import org.jetbrains.kotlin.test.ConfigurationKind; import org.jetbrains.kotlin.test.KotlinTestUtils; import org.jetbrains.kotlin.test.KotlinTestWithEnvironment; -import org.jetbrains.kotlin.tests.di.InjectionKt; public class KotlinOverloadTest extends KotlinTestWithEnvironment { - private final ModuleDescriptor root = KotlinTestUtils.createEmptyModule(""); + private ModuleDescriptor module; private FunctionDescriptorResolver functionDescriptorResolver; private final OverloadChecker overloadChecker = new OverloadChecker(TypeSpecificityComparator.NONE.INSTANCE); @@ -45,11 +46,14 @@ public class KotlinOverloadTest extends KotlinTestWithEnvironment { @Override public void setUp() throws Exception { super.setUp(); - functionDescriptorResolver = InjectionKt.createContainerForTests(getProject(), root).getFunctionDescriptorResolver(); + ComponentProvider container = JvmResolveUtil.createContainer(getEnvironment()); + module = DslKt.getService(container, ModuleDescriptor.class); + functionDescriptorResolver = DslKt.getService(container, FunctionDescriptorResolver.class); } @Override protected void tearDown() throws Exception { + module = null; functionDescriptorResolver = null; super.tearDown(); } @@ -165,7 +169,9 @@ public class KotlinOverloadTest extends KotlinTestWithEnvironment { private FunctionDescriptor makeFunction(String funDecl) { KtNamedFunction function = KtPsiFactoryKt.KtPsiFactory(getProject()).createFunction(funDecl); - LexicalScope scope = TypeTestUtilsKt.builtInPackageAsLexicalScope(DefaultBuiltIns.getInstance()); - return functionDescriptorResolver.resolveFunctionDescriptor(root, scope, function, KotlinTestUtils.DUMMY_TRACE, DataFlowInfoFactory.EMPTY); + LexicalScope scope = TypeTestUtilsKt.builtInPackageAsLexicalScope(module); + return functionDescriptorResolver.resolveFunctionDescriptor( + module, scope, function, KotlinTestUtils.DUMMY_TRACE, DataFlowInfoFactory.EMPTY + ); } } diff --git a/compiler/tests/org/jetbrains/kotlin/types/KotlinOverridingTest.java b/compiler/tests/org/jetbrains/kotlin/types/KotlinOverridingTest.java index afccf375be6..0bc99b772d5 100644 --- a/compiler/tests/org/jetbrains/kotlin/types/KotlinOverridingTest.java +++ b/compiler/tests/org/jetbrains/kotlin/types/KotlinOverridingTest.java @@ -17,6 +17,8 @@ package org.jetbrains.kotlin.types; import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; +import org.jetbrains.kotlin.container.ComponentProvider; +import org.jetbrains.kotlin.container.DslKt; import org.jetbrains.kotlin.descriptors.FunctionDescriptor; import org.jetbrains.kotlin.descriptors.ModuleDescriptor; import org.jetbrains.kotlin.psi.KtNamedFunction; @@ -24,14 +26,14 @@ import org.jetbrains.kotlin.psi.KtPsiFactoryKt; import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver; import org.jetbrains.kotlin.resolve.OverridingUtil; import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfoFactory; +import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil; import org.jetbrains.kotlin.resolve.scopes.LexicalScope; import org.jetbrains.kotlin.test.ConfigurationKind; import org.jetbrains.kotlin.test.KotlinTestUtils; import org.jetbrains.kotlin.test.KotlinTestWithEnvironment; -import org.jetbrains.kotlin.tests.di.InjectionKt; public class KotlinOverridingTest extends KotlinTestWithEnvironment { - private final ModuleDescriptor root = KotlinTestUtils.createEmptyModule(""); + private ModuleDescriptor module; private FunctionDescriptorResolver functionDescriptorResolver; @Override @@ -42,11 +44,14 @@ public class KotlinOverridingTest extends KotlinTestWithEnvironment { @Override public void setUp() throws Exception { super.setUp(); - functionDescriptorResolver = InjectionKt.createContainerForTests(getProject(), root).getFunctionDescriptorResolver(); + ComponentProvider container = JvmResolveUtil.createContainer(getEnvironment()); + module = DslKt.getService(container, ModuleDescriptor.class); + functionDescriptorResolver = DslKt.getService(container, FunctionDescriptorResolver.class); } @Override protected void tearDown() throws Exception { + module = null; functionDescriptorResolver = null; super.tearDown(); } @@ -165,8 +170,9 @@ public class KotlinOverridingTest extends KotlinTestWithEnvironment { private FunctionDescriptor makeFunction(String funDecl) { KtNamedFunction function = KtPsiFactoryKt.KtPsiFactory(getProject()).createFunction(funDecl); - LexicalScope scope = TypeTestUtilsKt.builtInPackageAsLexicalScope(root.getBuiltIns()); - return functionDescriptorResolver.resolveFunctionDescriptor(root, scope, function, - KotlinTestUtils.DUMMY_TRACE, DataFlowInfoFactory.EMPTY); + LexicalScope scope = TypeTestUtilsKt.builtInPackageAsLexicalScope(module); + return functionDescriptorResolver.resolveFunctionDescriptor( + module, scope, function, KotlinTestUtils.DUMMY_TRACE, DataFlowInfoFactory.EMPTY + ); } } diff --git a/compiler/tests/org/jetbrains/kotlin/types/typeTestUtils.kt b/compiler/tests/org/jetbrains/kotlin/types/typeTestUtils.kt index aa9e922a755..15d7b95ba2e 100644 --- a/compiler/tests/org/jetbrains/kotlin/types/typeTestUtils.kt +++ b/compiler/tests/org/jetbrains/kotlin/types/typeTestUtils.kt @@ -17,8 +17,11 @@ package org.jetbrains.kotlin.types import org.jetbrains.kotlin.builtins.KotlinBuiltIns +import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.resolve.scopes.LexicalScope import org.jetbrains.kotlin.resolve.scopes.utils.memberScopeAsImportingScope -fun KotlinBuiltIns.builtInPackageAsLexicalScope() - = LexicalScope.Empty(builtInsPackageScope.memberScopeAsImportingScope(), builtInsModule) +fun ModuleDescriptor.builtInPackageAsLexicalScope(): LexicalScope.Empty { + val packageView = getPackage(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME) + return LexicalScope.Empty(packageView.memberScope.memberScopeAsImportingScope(), this) +}