Remove useless InjectorForLazyResolveWithJavaUtil, move methods to LazyResolveTestUtil
This commit is contained in:
+4
-8
@@ -172,7 +172,7 @@ public class InjectorForLazyResolveWithJava {
|
|||||||
this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl();
|
this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl();
|
||||||
this.samConversionResolver = SamConversionResolverImpl.INSTANCE$;
|
this.samConversionResolver = SamConversionResolverImpl.INSTANCE$;
|
||||||
this.javaSourceElementFactory = new JavaSourceElementFactoryImpl();
|
this.javaSourceElementFactory = new JavaSourceElementFactoryImpl();
|
||||||
this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, getJavaClassFinder(), virtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, lazyResolveBasedCache, javaPropertyInitializerEvaluator, samConversionResolver, javaSourceElementFactory, moduleClassResolver);
|
this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, javaClassFinder, virtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, lazyResolveBasedCache, javaPropertyInitializerEvaluator, samConversionResolver, javaSourceElementFactory, moduleClassResolver);
|
||||||
this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, getModule());
|
this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, getModule());
|
||||||
this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModule());
|
this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModule());
|
||||||
this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider();
|
this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider();
|
||||||
@@ -220,9 +220,9 @@ public class InjectorForLazyResolveWithJava {
|
|||||||
scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
|
scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
|
||||||
scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
|
scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
|
||||||
|
|
||||||
this.javaClassFinder.setComponentPostConstruct(javaLazyAnalyzerPostConstruct);
|
javaClassFinder.setComponentPostConstruct(javaLazyAnalyzerPostConstruct);
|
||||||
this.javaClassFinder.setProject(project);
|
javaClassFinder.setProject(project);
|
||||||
this.javaClassFinder.setScope(moduleContentScope);
|
javaClassFinder.setScope(moduleContentScope);
|
||||||
|
|
||||||
traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||||
traceBasedExternalSignatureResolver.setProject(project);
|
traceBasedExternalSignatureResolver.setProject(project);
|
||||||
@@ -329,8 +329,4 @@ public class InjectorForLazyResolveWithJava {
|
|||||||
return this.javaDescriptorResolver;
|
return this.javaDescriptorResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
public JavaClassFinderImpl getJavaClassFinder() {
|
|
||||||
return this.javaClassFinder;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
-62
@@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.di;
|
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project;
|
|
||||||
import com.intellij.psi.search.GlobalSearchScope;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
|
||||||
import org.jetbrains.kotlin.context.ContextPackage;
|
|
||||||
import org.jetbrains.kotlin.context.GlobalContextImpl;
|
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl;
|
|
||||||
import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver;
|
|
||||||
import org.jetbrains.kotlin.psi.JetFile;
|
|
||||||
import org.jetbrains.kotlin.resolve.BindingTrace;
|
|
||||||
import org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM;
|
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory;
|
|
||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
|
|
||||||
public class InjectorForLazyResolveWithJavaUtil {
|
|
||||||
@NotNull
|
|
||||||
public static InjectorForLazyResolveWithJava create(@NotNull Project project, @NotNull BindingTrace trace, boolean dependOnBuiltins) {
|
|
||||||
ModuleDescriptorImpl module = TopDownAnalyzerFacadeForJVM.createJavaModule("<module>");
|
|
||||||
|
|
||||||
GlobalSearchScope moduleContentScope = GlobalSearchScope.allScope(project);
|
|
||||||
GlobalContextImpl globalContext = ContextPackage.GlobalContext();
|
|
||||||
DeclarationProviderFactory declarationProviderFactory = DeclarationProviderFactoryService.createDeclarationProviderFactory(
|
|
||||||
project, globalContext.getStorageManager(), Collections.<JetFile>emptyList(), moduleContentScope
|
|
||||||
);
|
|
||||||
SingleModuleClassResolver resolver = new SingleModuleClassResolver();
|
|
||||||
|
|
||||||
InjectorForLazyResolveWithJava injector = new InjectorForLazyResolveWithJava(
|
|
||||||
project, globalContext, trace, module, declarationProviderFactory, moduleContentScope, resolver
|
|
||||||
);
|
|
||||||
|
|
||||||
resolver.setResolver(injector.getJavaDescriptorResolver());
|
|
||||||
|
|
||||||
module.addDependencyOnModule(module);
|
|
||||||
module.initialize(injector.getJavaDescriptorResolver().getPackageFragmentProvider());
|
|
||||||
if (dependOnBuiltins) {
|
|
||||||
module.addDependencyOnModule(KotlinBuiltIns.getInstance().getBuiltInsModule());
|
|
||||||
}
|
|
||||||
module.seal();
|
|
||||||
|
|
||||||
return injector;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+6
-5
@@ -25,19 +25,20 @@ import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport;
|
|||||||
import org.jetbrains.kotlin.cli.jvm.compiler.JetCoreEnvironment;
|
import org.jetbrains.kotlin.cli.jvm.compiler.JetCoreEnvironment;
|
||||||
import org.jetbrains.kotlin.descriptors.*;
|
import org.jetbrains.kotlin.descriptors.*;
|
||||||
import org.jetbrains.kotlin.descriptors.impl.DeclarationDescriptorVisitorEmptyBodies;
|
import org.jetbrains.kotlin.descriptors.impl.DeclarationDescriptorVisitorEmptyBodies;
|
||||||
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJava;
|
|
||||||
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJavaUtil;
|
|
||||||
import org.jetbrains.kotlin.load.java.JavaBindingContext;
|
import org.jetbrains.kotlin.load.java.JavaBindingContext;
|
||||||
import org.jetbrains.kotlin.name.FqName;
|
import org.jetbrains.kotlin.name.FqName;
|
||||||
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap;
|
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap;
|
||||||
|
import org.jetbrains.kotlin.psi.JetFile;
|
||||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext;
|
import org.jetbrains.kotlin.resolve.BindingContext;
|
||||||
import org.jetbrains.kotlin.resolve.BindingTrace;
|
import org.jetbrains.kotlin.resolve.BindingTrace;
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.kotlinSignature.TypeTransformingVisitor;
|
import org.jetbrains.kotlin.resolve.jvm.kotlinSignature.TypeTransformingVisitor;
|
||||||
|
import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.JetScope;
|
import org.jetbrains.kotlin.resolve.scopes.JetScope;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -75,9 +76,9 @@ public abstract class AbstractSdkAnnotationsValidityTest extends UsefulTestCase
|
|||||||
JetCoreEnvironment commonEnvironment = createEnvironment(parentDisposable);
|
JetCoreEnvironment commonEnvironment = createEnvironment(parentDisposable);
|
||||||
|
|
||||||
BindingTrace trace = new CliLightClassGenerationSupport.NoScopeRecordCliBindingTrace();
|
BindingTrace trace = new CliLightClassGenerationSupport.NoScopeRecordCliBindingTrace();
|
||||||
InjectorForLazyResolveWithJava injector =
|
ModuleDescriptor module = LazyResolveTestUtil.resolve(
|
||||||
InjectorForLazyResolveWithJavaUtil.create(commonEnvironment.getProject(), trace, false);
|
commonEnvironment.getProject(), trace, Collections.<JetFile>emptyList()
|
||||||
ModuleDescriptor module = injector.getModule();
|
);
|
||||||
|
|
||||||
AlternativeSignatureErrorFindingVisitor visitor =
|
AlternativeSignatureErrorFindingVisitor visitor =
|
||||||
new AlternativeSignatureErrorFindingVisitor(trace.getBindingContext(), errors);
|
new AlternativeSignatureErrorFindingVisitor(trace.getBindingContext(), errors);
|
||||||
|
|||||||
@@ -33,15 +33,15 @@ import org.jetbrains.kotlin.codegen.GenerationUtils;
|
|||||||
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime;
|
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime;
|
||||||
import org.jetbrains.kotlin.codegen.state.GenerationState;
|
import org.jetbrains.kotlin.codegen.state.GenerationState;
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration;
|
import org.jetbrains.kotlin.config.CompilerConfiguration;
|
||||||
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor;
|
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor;
|
||||||
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJava;
|
|
||||||
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJavaUtil;
|
|
||||||
import org.jetbrains.kotlin.name.FqName;
|
import org.jetbrains.kotlin.name.FqName;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.psi.JetFile;
|
import org.jetbrains.kotlin.psi.JetFile;
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext;
|
import org.jetbrains.kotlin.resolve.BindingContext;
|
||||||
import org.jetbrains.kotlin.resolve.BindingTrace;
|
import org.jetbrains.kotlin.resolve.BindingTrace;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil;
|
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil;
|
||||||
|
import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil;
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||||
import org.jetbrains.kotlin.test.JetTestUtils;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
import org.jetbrains.kotlin.test.TestJdkKind;
|
import org.jetbrains.kotlin.test.TestJdkKind;
|
||||||
@@ -50,6 +50,7 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static org.jetbrains.kotlin.test.JetTestUtils.createEnvironmentWithMockJdkAndIdeaAnnotations;
|
import static org.jetbrains.kotlin.test.JetTestUtils.createEnvironmentWithMockJdkAndIdeaAnnotations;
|
||||||
@@ -89,13 +90,13 @@ public final class LoadDescriptorUtil {
|
|||||||
javaRoot,
|
javaRoot,
|
||||||
new File("compiler/tests") // for @ExpectLoadError annotation
|
new File("compiler/tests") // for @ExpectLoadError annotation
|
||||||
);
|
);
|
||||||
JetCoreEnvironment jetCoreEnvironment =
|
JetCoreEnvironment environment =
|
||||||
JetCoreEnvironment.createForTests(disposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES);
|
JetCoreEnvironment.createForTests(disposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES);
|
||||||
BindingTrace trace = new CliLightClassGenerationSupport.NoScopeRecordCliBindingTrace();
|
|
||||||
InjectorForLazyResolveWithJava injector =
|
|
||||||
InjectorForLazyResolveWithJavaUtil.create(jetCoreEnvironment.getProject(), trace, true);
|
|
||||||
|
|
||||||
PackageViewDescriptor packageView = injector.getModule().getPackage(TEST_PACKAGE_FQNAME);
|
BindingTrace trace = new CliLightClassGenerationSupport.NoScopeRecordCliBindingTrace();
|
||||||
|
ModuleDescriptor module = LazyResolveTestUtil.resolve(environment.getProject(), trace, Collections.<JetFile>emptyList());
|
||||||
|
|
||||||
|
PackageViewDescriptor packageView = module.getPackage(TEST_PACKAGE_FQNAME);
|
||||||
assert packageView != null;
|
assert packageView != null;
|
||||||
|
|
||||||
return Pair.create(packageView, trace.getBindingContext());
|
return Pair.create(packageView, trace.getBindingContext());
|
||||||
|
|||||||
+4
-6
@@ -30,10 +30,9 @@ import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
|
|||||||
import org.jetbrains.kotlin.cli.jvm.compiler.JetCoreEnvironment;
|
import org.jetbrains.kotlin.cli.jvm.compiler.JetCoreEnvironment;
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration;
|
import org.jetbrains.kotlin.config.CompilerConfiguration;
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
|
||||||
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJava;
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJavaUtil;
|
|
||||||
import org.jetbrains.kotlin.name.FqName;
|
import org.jetbrains.kotlin.name.FqName;
|
||||||
import org.jetbrains.kotlin.resolve.BindingTraceContext;
|
import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil;
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||||
import org.jetbrains.kotlin.test.JetTestUtils;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
import org.jetbrains.kotlin.test.TestJdkKind;
|
import org.jetbrains.kotlin.test.TestJdkKind;
|
||||||
@@ -178,8 +177,7 @@ public class ResolveDescriptorsFromExternalLibraries {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
InjectorForLazyResolveWithJava injector =
|
ModuleDescriptor module = LazyResolveTestUtil.resolveProject(jetCoreEnvironment.getProject());
|
||||||
InjectorForLazyResolveWithJavaUtil.create(jetCoreEnvironment.getProject(), new BindingTraceContext(), false);
|
|
||||||
|
|
||||||
boolean hasErrors;
|
boolean hasErrors;
|
||||||
try {
|
try {
|
||||||
@@ -211,7 +209,7 @@ public class ResolveDescriptorsFromExternalLibraries {
|
|||||||
String className = entryName.substring(0, entryName.length() - ".class".length()).replace("/", ".");
|
String className = entryName.substring(0, entryName.length() - ".class".length()).replace("/", ".");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ClassDescriptor clazz = resolveTopLevelClass(injector.getModule(), new FqName(className));
|
ClassDescriptor clazz = resolveTopLevelClass(module, new FqName(className));
|
||||||
if (clazz == null) {
|
if (clazz == null) {
|
||||||
throw new IllegalStateException("class not found by name " + className + " in " + libDescription);
|
throw new IllegalStateException("class not found by name " + className + " in " + libDescription);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,33 +20,28 @@ import com.intellij.openapi.project.Project;
|
|||||||
import com.intellij.psi.*;
|
import com.intellij.psi.*;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport;
|
|
||||||
import org.jetbrains.kotlin.descriptors.*;
|
import org.jetbrains.kotlin.descriptors.*;
|
||||||
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJavaUtil;
|
|
||||||
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJava;
|
|
||||||
import org.jetbrains.kotlin.di.InjectorForTests;
|
import org.jetbrains.kotlin.di.InjectorForTests;
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaClass;
|
|
||||||
import org.jetbrains.kotlin.load.java.structure.impl.JavaClassImpl;
|
|
||||||
import org.jetbrains.kotlin.name.ClassId;
|
|
||||||
import org.jetbrains.kotlin.name.FqName;
|
import org.jetbrains.kotlin.name.FqName;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall;
|
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall;
|
||||||
import org.jetbrains.kotlin.resolve.calls.results.OverloadResolutionResults;
|
import org.jetbrains.kotlin.resolve.calls.results.OverloadResolutionResults;
|
||||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo;
|
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo;
|
||||||
|
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilPackage;
|
||||||
|
import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue;
|
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue;
|
||||||
import org.jetbrains.kotlin.test.JetTestUtils;
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
import org.jetbrains.kotlin.types.JetType;
|
import org.jetbrains.kotlin.types.JetType;
|
||||||
import org.jetbrains.kotlin.types.TypeUtils;
|
import org.jetbrains.kotlin.types.TypeUtils;
|
||||||
import org.jetbrains.kotlin.types.expressions.ExpressionTypingContext;
|
import org.jetbrains.kotlin.types.expressions.ExpressionTypingContext;
|
||||||
import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices;
|
import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices;
|
||||||
import org.junit.Assert;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static com.intellij.testFramework.UsefulTestCase.assertInstanceOf;
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
public class JetExpectedResolveDataUtil {
|
public class JetExpectedResolveDataUtil {
|
||||||
private JetExpectedResolveDataUtil() {
|
private JetExpectedResolveDataUtil() {
|
||||||
@@ -91,7 +86,7 @@ public class JetExpectedResolveDataUtil {
|
|||||||
nameToDeclaration.put("java::java.io.PrintStream.print(char[])", methods[6]);
|
nameToDeclaration.put("java::java.io.PrintStream.print(char[])", methods[6]);
|
||||||
nameToDeclaration.put("java::java.io.PrintStream.print(Double)", methods[5]);
|
nameToDeclaration.put("java::java.io.PrintStream.print(Double)", methods[5]);
|
||||||
PsiField outField = java_lang_System.findFieldByName("out", true);
|
PsiField outField = java_lang_System.findFieldByName("out", true);
|
||||||
Assert.assertNotNull("'out' property wasn't found", outField);
|
assertNotNull("'out' property wasn't found", outField);
|
||||||
nameToDeclaration.put("java::java.lang.System.out", outField);
|
nameToDeclaration.put("java::java.lang.System.out", outField);
|
||||||
PsiClass java_lang_Number = findClass("java.lang.Number", project);
|
PsiClass java_lang_Number = findClass("java.lang.Number", project);
|
||||||
nameToDeclaration.put("java::java.lang.Number", java_lang_Number);
|
nameToDeclaration.put("java::java.lang.Number", java_lang_Number);
|
||||||
@@ -104,7 +99,7 @@ public class JetExpectedResolveDataUtil {
|
|||||||
private static PsiElement findPackage(String qualifiedName, Project project) {
|
private static PsiElement findPackage(String qualifiedName, Project project) {
|
||||||
JavaPsiFacade javaFacade = JavaPsiFacade.getInstance(project);
|
JavaPsiFacade javaFacade = JavaPsiFacade.getInstance(project);
|
||||||
PsiPackage javaFacadePackage = javaFacade.findPackage(qualifiedName);
|
PsiPackage javaFacadePackage = javaFacade.findPackage(qualifiedName);
|
||||||
Assert.assertNotNull("Package wasn't found: " + qualifiedName, javaFacadePackage);
|
assertNotNull("Package wasn't found: " + qualifiedName, javaFacadePackage);
|
||||||
return javaFacadePackage;
|
return javaFacadePackage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,12 +111,12 @@ public class JetExpectedResolveDataUtil {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private static PsiClass findClass(String qualifiedName, Project project) {
|
private static PsiClass findClass(String qualifiedName, Project project) {
|
||||||
BindingTraceContext trace = new CliLightClassGenerationSupport.NoScopeRecordCliBindingTrace();
|
ModuleDescriptor module = LazyResolveTestUtil.resolveProject(project);
|
||||||
InjectorForLazyResolveWithJava injector = InjectorForLazyResolveWithJavaUtil.create(project, trace, false);
|
ClassDescriptor classDescriptor = DescriptorUtilPackage.resolveTopLevelClass(module, new FqName(qualifiedName));
|
||||||
JavaClass javaClass = injector.getJavaClassFinder().findClass(ClassId.topLevel(new FqName(qualifiedName)));
|
assertNotNull("Class descriptor wasn't resolved: " + qualifiedName, classDescriptor);
|
||||||
Assert.assertNotNull("Class wasn't found: " + qualifiedName, javaClass);
|
PsiClass psiClass = (PsiClass) DescriptorToSourceUtils.classDescriptorToDeclaration(classDescriptor);
|
||||||
assertInstanceOf(javaClass, JavaClassImpl.class);
|
assertNotNull("Class declaration wasn't found: " + classDescriptor, psiClass);
|
||||||
return ((JavaClassImpl) javaClass).getPsi();
|
return psiClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.resolve.lazy;
|
|||||||
|
|
||||||
import com.google.common.base.Predicates;
|
import com.google.common.base.Predicates;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.psi.PsiFile;
|
import com.intellij.psi.PsiFile;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport;
|
import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport;
|
||||||
@@ -33,6 +34,7 @@ import org.jetbrains.kotlin.resolve.BindingTrace;
|
|||||||
import org.jetbrains.kotlin.resolve.TopDownAnalysisParameters;
|
import org.jetbrains.kotlin.resolve.TopDownAnalysisParameters;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM;
|
import org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -42,27 +44,31 @@ public class LazyResolveTestUtil {
|
|||||||
private LazyResolveTestUtil() {
|
private LazyResolveTestUtil() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ModuleDescriptor resolve(List<JetFile> files, JetCoreEnvironment environment) {
|
@NotNull
|
||||||
return doResolve(files, environment);
|
public static ModuleDescriptor resolveProject(@NotNull Project project) {
|
||||||
|
return resolve(project, Collections.<JetFile>emptyList());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ModuleDescriptor doResolve(List<JetFile> files, JetCoreEnvironment environment) {
|
@NotNull
|
||||||
|
public static ModuleDescriptor resolve(@NotNull Project project, @NotNull List<JetFile> sourceFiles) {
|
||||||
|
return resolve(project, new CliLightClassGenerationSupport.NoScopeRecordCliBindingTrace(), sourceFiles);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public static ModuleDescriptor resolve(@NotNull Project project, @NotNull BindingTrace trace, @NotNull List<JetFile> sourceFiles) {
|
||||||
|
ModuleDescriptorImpl module = TopDownAnalyzerFacadeForJVM.createSealedJavaModule();
|
||||||
|
|
||||||
GlobalContextImpl globalContext = ContextPackage.GlobalContext();
|
GlobalContextImpl globalContext = ContextPackage.GlobalContext();
|
||||||
TopDownAnalysisParameters params = TopDownAnalysisParameters.create(
|
TopDownAnalysisParameters params = TopDownAnalysisParameters.create(
|
||||||
globalContext.getStorageManager(),
|
globalContext.getStorageManager(),
|
||||||
globalContext.getExceptionTracker(),
|
globalContext.getExceptionTracker(),
|
||||||
Predicates.<PsiFile>alwaysTrue(),
|
Predicates.<PsiFile>alwaysTrue(),
|
||||||
false, false);
|
false, false
|
||||||
BindingTrace trace = new CliLightClassGenerationSupport.NoScopeRecordCliBindingTrace();
|
);
|
||||||
ModuleDescriptorImpl sharedModule = TopDownAnalyzerFacadeForJVM.createSealedJavaModule();
|
|
||||||
|
|
||||||
TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegrationNoIncremental(
|
TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegrationNoIncremental(project, sourceFiles, trace, params, module);
|
||||||
environment.getProject(),
|
|
||||||
files,
|
|
||||||
trace,
|
|
||||||
params, sharedModule);
|
|
||||||
|
|
||||||
return sharedModule;
|
return module;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -444,7 +444,7 @@ public class JetTestUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
LazyResolveTestUtil.resolve(jetFiles, environment);
|
LazyResolveTestUtil.resolve(environment.getProject(), jetFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void assertEqualsToFile(@NotNull File expectedFile, @NotNull String actual) {
|
public static void assertEqualsToFile(@NotNull File expectedFile, @NotNull String actual) {
|
||||||
|
|||||||
@@ -21,14 +21,11 @@ import com.google.common.collect.Sets;
|
|||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport;
|
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.JetCoreEnvironment;
|
import org.jetbrains.kotlin.cli.jvm.compiler.JetCoreEnvironment;
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor;
|
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor;
|
||||||
import org.jetbrains.kotlin.descriptors.ReceiverParameterDescriptor;
|
import org.jetbrains.kotlin.descriptors.ReceiverParameterDescriptor;
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ReceiverParameterDescriptorImpl;
|
import org.jetbrains.kotlin.descriptors.impl.ReceiverParameterDescriptorImpl;
|
||||||
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJava;
|
|
||||||
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJavaUtil;
|
|
||||||
import org.jetbrains.kotlin.di.InjectorForTests;
|
import org.jetbrains.kotlin.di.InjectorForTests;
|
||||||
import org.jetbrains.kotlin.name.FqName;
|
import org.jetbrains.kotlin.name.FqName;
|
||||||
import org.jetbrains.kotlin.psi.JetExpression;
|
import org.jetbrains.kotlin.psi.JetExpression;
|
||||||
@@ -578,8 +575,8 @@ public class JetTypeCheckerTest extends JetLiteFixture {
|
|||||||
|
|
||||||
private WritableScope getDeclarationsScope(String path) throws IOException {
|
private WritableScope getDeclarationsScope(String path) throws IOException {
|
||||||
ModuleDescriptor moduleDescriptor = LazyResolveTestUtil.resolve(
|
ModuleDescriptor moduleDescriptor = LazyResolveTestUtil.resolve(
|
||||||
Collections.singletonList(JetTestUtils.loadJetFile(getProject(), new File(path))),
|
getProject(),
|
||||||
getEnvironment()
|
Collections.singletonList(JetTestUtils.loadJetFile(getProject(), new File(path)))
|
||||||
);
|
);
|
||||||
|
|
||||||
FqName fqName = new FqName("testData");
|
FqName fqName = new FqName("testData");
|
||||||
@@ -591,10 +588,9 @@ public class JetTypeCheckerTest extends JetLiteFixture {
|
|||||||
@SuppressWarnings("ConstantConditions")
|
@SuppressWarnings("ConstantConditions")
|
||||||
private WritableScopeImpl addImports(JetScope scope) {
|
private WritableScopeImpl addImports(JetScope scope) {
|
||||||
WritableScopeImpl writableScope = new WritableScopeImpl(
|
WritableScopeImpl writableScope = new WritableScopeImpl(
|
||||||
scope, scope.getContainingDeclaration(), RedeclarationHandler.DO_NOTHING, "JetTypeCheckerTest.addImports");
|
scope, scope.getContainingDeclaration(), RedeclarationHandler.DO_NOTHING, "JetTypeCheckerTest.addImports"
|
||||||
BindingTraceContext trace = new CliLightClassGenerationSupport.NoScopeRecordCliBindingTrace();
|
);
|
||||||
InjectorForLazyResolveWithJava injector = InjectorForLazyResolveWithJavaUtil.create(getProject(), trace, true);
|
ModuleDescriptor module = LazyResolveTestUtil.resolveProject(getProject());
|
||||||
ModuleDescriptor module = injector.getModule();
|
|
||||||
for (ImportPath defaultImport : module.getDefaultImports()) {
|
for (ImportPath defaultImport : module.getDefaultImports()) {
|
||||||
FqName fqName = defaultImport.fqnPart();
|
FqName fqName = defaultImport.fqnPart();
|
||||||
if (defaultImport.isAllUnder()) {
|
if (defaultImport.isAllUnder()) {
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ private fun generatorForLazyResolveWithJava() =
|
|||||||
+ ".SERVICE.getInstance(project).create(moduleContentScope)")
|
+ ".SERVICE.getInstance(project).create(moduleContentScope)")
|
||||||
)
|
)
|
||||||
|
|
||||||
publicField<JavaClassFinderImpl>()
|
field<JavaClassFinderImpl>()
|
||||||
field<TraceBasedExternalSignatureResolver>()
|
field<TraceBasedExternalSignatureResolver>()
|
||||||
field<LazyResolveBasedCache>()
|
field<LazyResolveBasedCache>()
|
||||||
field<TraceBasedErrorReporter>()
|
field<TraceBasedErrorReporter>()
|
||||||
|
|||||||
Reference in New Issue
Block a user