Use JvmResolveUtil#createContainer in KotlinOverloadTest and KotlinOverridingTest
This commit is contained in:
@@ -16,8 +16,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.types;
|
package org.jetbrains.kotlin.types;
|
||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns;
|
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
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.FunctionDescriptor;
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.kotlin.psi.KtNamedFunction;
|
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.OverloadChecker;
|
||||||
import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator;
|
import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator;
|
||||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfoFactory;
|
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.resolve.scopes.LexicalScope;
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||||
import org.jetbrains.kotlin.test.KotlinTestWithEnvironment;
|
import org.jetbrains.kotlin.test.KotlinTestWithEnvironment;
|
||||||
import org.jetbrains.kotlin.tests.di.InjectionKt;
|
|
||||||
|
|
||||||
public class KotlinOverloadTest extends KotlinTestWithEnvironment {
|
public class KotlinOverloadTest extends KotlinTestWithEnvironment {
|
||||||
private final ModuleDescriptor root = KotlinTestUtils.createEmptyModule("<test_root>");
|
private ModuleDescriptor module;
|
||||||
private FunctionDescriptorResolver functionDescriptorResolver;
|
private FunctionDescriptorResolver functionDescriptorResolver;
|
||||||
private final OverloadChecker overloadChecker = new OverloadChecker(TypeSpecificityComparator.NONE.INSTANCE);
|
private final OverloadChecker overloadChecker = new OverloadChecker(TypeSpecificityComparator.NONE.INSTANCE);
|
||||||
|
|
||||||
@@ -45,11 +46,14 @@ public class KotlinOverloadTest extends KotlinTestWithEnvironment {
|
|||||||
@Override
|
@Override
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
super.setUp();
|
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
|
@Override
|
||||||
protected void tearDown() throws Exception {
|
protected void tearDown() throws Exception {
|
||||||
|
module = null;
|
||||||
functionDescriptorResolver = null;
|
functionDescriptorResolver = null;
|
||||||
super.tearDown();
|
super.tearDown();
|
||||||
}
|
}
|
||||||
@@ -165,7 +169,9 @@ public class KotlinOverloadTest extends KotlinTestWithEnvironment {
|
|||||||
|
|
||||||
private FunctionDescriptor makeFunction(String funDecl) {
|
private FunctionDescriptor makeFunction(String funDecl) {
|
||||||
KtNamedFunction function = KtPsiFactoryKt.KtPsiFactory(getProject()).createFunction(funDecl);
|
KtNamedFunction function = KtPsiFactoryKt.KtPsiFactory(getProject()).createFunction(funDecl);
|
||||||
LexicalScope scope = TypeTestUtilsKt.builtInPackageAsLexicalScope(DefaultBuiltIns.getInstance());
|
LexicalScope scope = TypeTestUtilsKt.builtInPackageAsLexicalScope(module);
|
||||||
return functionDescriptorResolver.resolveFunctionDescriptor(root, scope, function, KotlinTestUtils.DUMMY_TRACE, DataFlowInfoFactory.EMPTY);
|
return functionDescriptorResolver.resolveFunctionDescriptor(
|
||||||
|
module, scope, function, KotlinTestUtils.DUMMY_TRACE, DataFlowInfoFactory.EMPTY
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
package org.jetbrains.kotlin.types;
|
package org.jetbrains.kotlin.types;
|
||||||
|
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
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.FunctionDescriptor;
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.kotlin.psi.KtNamedFunction;
|
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.FunctionDescriptorResolver;
|
||||||
import org.jetbrains.kotlin.resolve.OverridingUtil;
|
import org.jetbrains.kotlin.resolve.OverridingUtil;
|
||||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfoFactory;
|
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.resolve.scopes.LexicalScope;
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||||
import org.jetbrains.kotlin.test.KotlinTestWithEnvironment;
|
import org.jetbrains.kotlin.test.KotlinTestWithEnvironment;
|
||||||
import org.jetbrains.kotlin.tests.di.InjectionKt;
|
|
||||||
|
|
||||||
public class KotlinOverridingTest extends KotlinTestWithEnvironment {
|
public class KotlinOverridingTest extends KotlinTestWithEnvironment {
|
||||||
private final ModuleDescriptor root = KotlinTestUtils.createEmptyModule("<test_root>");
|
private ModuleDescriptor module;
|
||||||
private FunctionDescriptorResolver functionDescriptorResolver;
|
private FunctionDescriptorResolver functionDescriptorResolver;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -42,11 +44,14 @@ public class KotlinOverridingTest extends KotlinTestWithEnvironment {
|
|||||||
@Override
|
@Override
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
super.setUp();
|
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
|
@Override
|
||||||
protected void tearDown() throws Exception {
|
protected void tearDown() throws Exception {
|
||||||
|
module = null;
|
||||||
functionDescriptorResolver = null;
|
functionDescriptorResolver = null;
|
||||||
super.tearDown();
|
super.tearDown();
|
||||||
}
|
}
|
||||||
@@ -165,8 +170,9 @@ public class KotlinOverridingTest extends KotlinTestWithEnvironment {
|
|||||||
|
|
||||||
private FunctionDescriptor makeFunction(String funDecl) {
|
private FunctionDescriptor makeFunction(String funDecl) {
|
||||||
KtNamedFunction function = KtPsiFactoryKt.KtPsiFactory(getProject()).createFunction(funDecl);
|
KtNamedFunction function = KtPsiFactoryKt.KtPsiFactory(getProject()).createFunction(funDecl);
|
||||||
LexicalScope scope = TypeTestUtilsKt.builtInPackageAsLexicalScope(root.getBuiltIns());
|
LexicalScope scope = TypeTestUtilsKt.builtInPackageAsLexicalScope(module);
|
||||||
return functionDescriptorResolver.resolveFunctionDescriptor(root, scope, function,
|
return functionDescriptorResolver.resolveFunctionDescriptor(
|
||||||
KotlinTestUtils.DUMMY_TRACE, DataFlowInfoFactory.EMPTY);
|
module, scope, function, KotlinTestUtils.DUMMY_TRACE, DataFlowInfoFactory.EMPTY
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,8 +17,11 @@
|
|||||||
package org.jetbrains.kotlin.types
|
package org.jetbrains.kotlin.types
|
||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
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.LexicalScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.utils.memberScopeAsImportingScope
|
import org.jetbrains.kotlin.resolve.scopes.utils.memberScopeAsImportingScope
|
||||||
|
|
||||||
fun KotlinBuiltIns.builtInPackageAsLexicalScope()
|
fun ModuleDescriptor.builtInPackageAsLexicalScope(): LexicalScope.Empty {
|
||||||
= LexicalScope.Empty(builtInsPackageScope.memberScopeAsImportingScope(), builtInsModule)
|
val packageView = getPackage(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME)
|
||||||
|
return LexicalScope.Empty(packageView.memberScope.memberScopeAsImportingScope(), this)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user