Drop InjectorForJavaDescriptorResolver and dependencies

Use InjectorForLazyResolveWithJava instead, it does essentially the same
This commit is contained in:
Alexander Udalov
2015-02-09 21:45:38 +03:00
parent 745ac7355b
commit 5dcf9df6ab
12 changed files with 100 additions and 286 deletions
@@ -1,156 +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 org.jetbrains.kotlin.resolve.BindingTrace;
import org.jetbrains.kotlin.context.GlobalContextImpl;
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl;
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver;
import org.jetbrains.kotlin.load.java.JavaClassFinderImpl;
import com.intellij.psi.search.GlobalSearchScope;
import org.jetbrains.kotlin.load.java.components.TraceBasedExternalSignatureResolver;
import org.jetbrains.kotlin.load.java.components.TraceBasedJavaResolverCache;
import org.jetbrains.kotlin.load.java.components.TraceBasedErrorReporter;
import org.jetbrains.kotlin.load.java.components.PsiBasedMethodSignatureChecker;
import org.jetbrains.kotlin.load.java.components.PsiBasedExternalAnnotationResolver;
import org.jetbrains.kotlin.load.java.structure.impl.JavaPropertyInitializerEvaluatorImpl;
import org.jetbrains.kotlin.load.java.sam.SamConversionResolverImpl;
import org.jetbrains.kotlin.load.java.components.JavaSourceElementFactoryImpl;
import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver;
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolverPostConstruct;
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinder;
import org.jetbrains.kotlin.load.java.lazy.LazyJavaPackageFragmentProvider;
import org.jetbrains.kotlin.load.java.lazy.GlobalJavaResolverContext;
import org.jetbrains.kotlin.load.kotlin.DeserializedDescriptorResolver;
import org.jetbrains.kotlin.load.kotlin.DeserializationComponentsForJava;
import org.jetbrains.kotlin.load.kotlin.JavaClassDataFinder;
import org.jetbrains.kotlin.load.kotlin.BinaryClassAnnotationAndConstantLoaderImpl;
import org.jetbrains.annotations.NotNull;
import javax.annotation.PreDestroy;
/* This file is generated by org.jetbrains.kotlin.generators.injectors.InjectorsPackage. DO NOT EDIT! */
@SuppressWarnings("all")
public class InjectorForJavaDescriptorResolver {
private final Project project;
private final BindingTrace bindingTrace;
private final GlobalContextImpl globalContext;
private final LockBasedStorageManager lockBasedStorageManager;
private final ModuleDescriptorImpl module;
private final JavaDescriptorResolver javaDescriptorResolver;
private final JavaClassFinderImpl javaClassFinder;
private final GlobalSearchScope globalSearchScope;
private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
private final TraceBasedJavaResolverCache traceBasedJavaResolverCache;
private final TraceBasedErrorReporter traceBasedErrorReporter;
private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
private final JavaPropertyInitializerEvaluatorImpl javaPropertyInitializerEvaluator;
private final SamConversionResolverImpl samConversionResolver;
private final JavaSourceElementFactoryImpl javaSourceElementFactory;
private final SingleModuleClassResolver singleModuleClassResolver;
private final JavaDescriptorResolverPostConstruct javaDescriptorResolverPostConstruct;
private final VirtualFileFinder virtualFileFinder;
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
private final GlobalJavaResolverContext globalJavaResolverContext;
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
private final DeserializationComponentsForJava deserializationComponentsForJava;
private final JavaClassDataFinder javaClassDataFinder;
private final BinaryClassAnnotationAndConstantLoaderImpl binaryClassAnnotationAndConstantLoader;
public InjectorForJavaDescriptorResolver(
@NotNull Project project,
@NotNull BindingTrace bindingTrace
) {
this.project = project;
this.bindingTrace = bindingTrace;
this.globalContext = org.jetbrains.kotlin.context.ContextPackage.GlobalContext();
this.lockBasedStorageManager = globalContext.getStorageManager();
this.module = org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM.createJavaModule("<fake-jdr-module>");
this.javaClassFinder = new JavaClassFinderImpl();
this.virtualFileFinder = org.jetbrains.kotlin.load.kotlin.VirtualFileFinder.SERVICE.getInstance(project);
this.traceBasedErrorReporter = new TraceBasedErrorReporter();
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(traceBasedErrorReporter);
this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker();
this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl();
this.samConversionResolver = SamConversionResolverImpl.INSTANCE$;
this.javaSourceElementFactory = new JavaSourceElementFactoryImpl();
this.singleModuleClassResolver = new SingleModuleClassResolver();
this.globalJavaResolverContext = new GlobalJavaResolverContext(lockBasedStorageManager, getJavaClassFinder(), virtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, traceBasedJavaResolverCache, javaPropertyInitializerEvaluator, samConversionResolver, javaSourceElementFactory, singleModuleClassResolver);
this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, getModule());
this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModule());
this.globalSearchScope = com.intellij.psi.search.GlobalSearchScope.allScope(project);
this.javaDescriptorResolverPostConstruct = new JavaDescriptorResolverPostConstruct();
this.javaClassDataFinder = new JavaClassDataFinder(virtualFileFinder, deserializedDescriptorResolver);
this.binaryClassAnnotationAndConstantLoader = new BinaryClassAnnotationAndConstantLoaderImpl(getModule(), lockBasedStorageManager, virtualFileFinder, traceBasedErrorReporter);
this.deserializationComponentsForJava = new DeserializationComponentsForJava(lockBasedStorageManager, getModule(), javaClassDataFinder, binaryClassAnnotationAndConstantLoader, lazyJavaPackageFragmentProvider);
this.javaClassFinder.setComponentPostConstruct(javaDescriptorResolverPostConstruct);
this.javaClassFinder.setProject(project);
this.javaClassFinder.setScope(globalSearchScope);
traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
traceBasedExternalSignatureResolver.setProject(project);
traceBasedExternalSignatureResolver.setTrace(bindingTrace);
traceBasedJavaResolverCache.setTrace(bindingTrace);
traceBasedErrorReporter.setTrace(bindingTrace);
psiBasedMethodSignatureChecker.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
singleModuleClassResolver.setResolver(javaDescriptorResolver);
javaDescriptorResolverPostConstruct.setModule(module);
javaDescriptorResolverPostConstruct.setProject(project);
javaDescriptorResolverPostConstruct.setTrace(bindingTrace);
deserializedDescriptorResolver.setComponents(deserializationComponentsForJava);
javaClassFinder.initialize();
javaDescriptorResolverPostConstruct.postCreate();
}
@PreDestroy
public void destroy() {
}
public GlobalContextImpl getGlobalContext() {
return this.globalContext;
}
public ModuleDescriptorImpl getModule() {
return this.module;
}
public JavaDescriptorResolver getJavaDescriptorResolver() {
return this.javaDescriptorResolver;
}
public JavaClassFinderImpl getJavaClassFinder() {
return this.javaClassFinder;
}
}
@@ -1,43 +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 org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl;
import org.jetbrains.kotlin.resolve.BindingTrace;
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
public class InjectorForJavaDescriptorResolverUtil {
@NotNull
public static InjectorForJavaDescriptorResolver create(
@NotNull Project project,
@NotNull BindingTrace bindingTrace,
boolean dependOnBuiltins
) {
InjectorForJavaDescriptorResolver injector = new InjectorForJavaDescriptorResolver(project, bindingTrace);
ModuleDescriptorImpl module = injector.getModule();
module.initialize(injector.getJavaDescriptorResolver().getPackageFragmentProvider());
module.addDependencyOnModule(module);
if (dependOnBuiltins) {
module.addDependencyOnModule(KotlinBuiltIns.getInstance().getBuiltInsModule());
}
module.seal();
return injector;
}
}
@@ -172,7 +172,7 @@ public class InjectorForLazyResolveWithJava {
this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl();
this.samConversionResolver = SamConversionResolverImpl.INSTANCE$;
this.javaSourceElementFactory = new JavaSourceElementFactoryImpl();
this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, javaClassFinder, virtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, lazyResolveBasedCache, javaPropertyInitializerEvaluator, samConversionResolver, javaSourceElementFactory, moduleClassResolver);
this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, getJavaClassFinder(), virtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, lazyResolveBasedCache, javaPropertyInitializerEvaluator, samConversionResolver, javaSourceElementFactory, moduleClassResolver);
this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, module);
this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, module);
this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider();
@@ -220,9 +220,9 @@ public class InjectorForLazyResolveWithJava {
scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
javaClassFinder.setComponentPostConstruct(javaLazyAnalyzerPostConstruct);
javaClassFinder.setProject(project);
javaClassFinder.setScope(moduleContentScope);
this.javaClassFinder.setComponentPostConstruct(javaLazyAnalyzerPostConstruct);
this.javaClassFinder.setProject(project);
this.javaClassFinder.setScope(moduleContentScope);
traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
traceBasedExternalSignatureResolver.setProject(project);
@@ -325,4 +325,8 @@ public class InjectorForLazyResolveWithJava {
return this.javaDescriptorResolver;
}
public JavaClassFinderImpl getJavaClassFinder() {
return this.javaClassFinder;
}
}
@@ -0,0 +1,62 @@
/*
* 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;
}
}
@@ -18,7 +18,6 @@ package org.jetbrains.kotlin.resolve.jvm
import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.resolve.lazy.KotlinCodeAnalyzer
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import javax.inject.Inject
import javax.annotation.PostConstruct
import org.jetbrains.kotlin.resolve.BindingTrace
@@ -42,19 +41,3 @@ public class JavaLazyAnalyzerPostConstruct : JavaClassFinderPostConstruct() {
CodeAnalyzerInitializer.getInstance(project!!).initialize(trace!!, codeAnalyzer!!.getModuleDescriptor(), codeAnalyzer)
}
}
public class JavaDescriptorResolverPostConstruct : JavaClassFinderPostConstruct() {
public var project: Project? = null
[Inject] set
public var trace: BindingTrace? = null
[Inject] set
public var module: ModuleDescriptor? = null
[Inject] set
[PostConstruct] override fun postCreate() {
CodeAnalyzerInitializer.getInstance(project!!).initialize(trace!!, module!!, null)
}
}
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.storage.StorageManager
import com.intellij.openapi.vfs.VirtualFile
import java.util.HashSet
import kotlin.platform.platformStatic
public abstract class DeclarationProviderFactoryService {
@@ -35,8 +36,7 @@ public abstract class DeclarationProviderFactoryService {
): DeclarationProviderFactory
class object {
public fun createDeclarationProviderFactory(
public platformStatic fun createDeclarationProviderFactory(
project: Project,
storageManager: StorageManager,
syntheticFiles: Collection<JetFile>,
@@ -25,8 +25,8 @@ import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport;
import org.jetbrains.kotlin.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.descriptors.impl.DeclarationDescriptorVisitorEmptyBodies;
import org.jetbrains.kotlin.di.InjectorForJavaDescriptorResolver;
import org.jetbrains.kotlin.di.InjectorForJavaDescriptorResolverUtil;
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJavaUtil;
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJava;
import org.jetbrains.kotlin.load.java.JavaBindingContext;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap;
@@ -75,17 +75,17 @@ public abstract class AbstractSdkAnnotationsValidityTest extends UsefulTestCase
JetCoreEnvironment commonEnvironment = createEnvironment(parentDisposable);
BindingTrace trace = new CliLightClassGenerationSupport.NoScopeRecordCliBindingTrace();
InjectorForJavaDescriptorResolver injector =
InjectorForJavaDescriptorResolverUtil.create(commonEnvironment.getProject(), trace, false);
InjectorForLazyResolveWithJava injector =
InjectorForLazyResolveWithJavaUtil.create(commonEnvironment.getProject(), trace, false);
ModuleDescriptor module = injector.getResolveSession().getModuleDescriptor();
BindingContext bindingContext = trace.getBindingContext();
AlternativeSignatureErrorFindingVisitor visitor = new AlternativeSignatureErrorFindingVisitor(bindingContext, errors);
AlternativeSignatureErrorFindingVisitor visitor =
new AlternativeSignatureErrorFindingVisitor(trace.getBindingContext(), errors);
int chunkStart = chunkIndex * CLASSES_IN_CHUNK;
for (FqName javaClass : affectedClasses.subList(chunkStart, Math.min(chunkStart + CLASSES_IN_CHUNK, affectedClasses.size()))) {
ClassDescriptor topLevelClass = resolveTopLevelClass(injector.getModule(), javaClass);
PackageViewDescriptor topLevelPackage = injector.getModule().getPackage(javaClass);
ClassDescriptor topLevelClass = resolveTopLevelClass(module, javaClass);
PackageViewDescriptor topLevelPackage = module.getPackage(javaClass);
if (topLevelClass == null) {
continue;
}
@@ -33,10 +33,10 @@ import org.jetbrains.kotlin.codegen.GenerationUtils;
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime;
import org.jetbrains.kotlin.codegen.state.GenerationState;
import org.jetbrains.kotlin.config.CompilerConfiguration;
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor;
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl;
import org.jetbrains.kotlin.di.InjectorForJavaDescriptorResolver;
import org.jetbrains.kotlin.di.InjectorForJavaDescriptorResolverUtil;
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJavaUtil;
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJava;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.JetFile;
@@ -93,9 +93,9 @@ public final class LoadDescriptorUtil {
JetCoreEnvironment jetCoreEnvironment =
JetCoreEnvironment.createForTests(disposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES);
BindingTrace trace = new CliLightClassGenerationSupport.NoScopeRecordCliBindingTrace();
InjectorForJavaDescriptorResolver injector =
InjectorForJavaDescriptorResolverUtil.create(jetCoreEnvironment.getProject(), trace, true);
ModuleDescriptorImpl module = injector.getModule();
InjectorForLazyResolveWithJava injector =
InjectorForLazyResolveWithJavaUtil.create(jetCoreEnvironment.getProject(), trace, true);
ModuleDescriptor module = injector.getResolveSession().getModuleDescriptor();
PackageViewDescriptor packageView = module.getPackage(TEST_PACKAGE_FQNAME);
assert packageView != null;
@@ -31,8 +31,8 @@ import org.jetbrains.kotlin.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.kotlin.config.CompilerConfiguration;
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
import org.jetbrains.kotlin.di.InjectorForJavaDescriptorResolver;
import org.jetbrains.kotlin.di.InjectorForJavaDescriptorResolverUtil;
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJavaUtil;
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJava;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.resolve.BindingTraceContext;
import org.jetbrains.kotlin.test.ConfigurationKind;
@@ -179,9 +179,9 @@ public class ResolveDescriptorsFromExternalLibraries {
}
}
InjectorForJavaDescriptorResolver injector =
InjectorForJavaDescriptorResolverUtil.create(jetCoreEnvironment.getProject(), new BindingTraceContext(), false);
ModuleDescriptor moduleDescriptor = injector.getModule();
InjectorForLazyResolveWithJava injector =
InjectorForLazyResolveWithJavaUtil.create(jetCoreEnvironment.getProject(), new BindingTraceContext(), false);
ModuleDescriptor moduleDescriptor = injector.getResolveSession().getModuleDescriptor();
boolean hasErrors;
try {
@@ -22,8 +22,8 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport;
import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.di.InjectorForJavaDescriptorResolver;
import org.jetbrains.kotlin.di.InjectorForJavaDescriptorResolverUtil;
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJavaUtil;
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJava;
import org.jetbrains.kotlin.di.InjectorForTests;
import org.jetbrains.kotlin.load.java.structure.JavaClass;
import org.jetbrains.kotlin.load.java.structure.impl.JavaClassImpl;
@@ -117,7 +117,7 @@ public class JetExpectedResolveDataUtil {
@NotNull
private static PsiClass findClass(String qualifiedName, Project project) {
BindingTraceContext trace = new CliLightClassGenerationSupport.NoScopeRecordCliBindingTrace();
InjectorForJavaDescriptorResolver injector = InjectorForJavaDescriptorResolverUtil.create(project, trace, false);
InjectorForLazyResolveWithJava injector = InjectorForLazyResolveWithJavaUtil.create(project, trace, false);
JavaClass javaClass = injector.getJavaClassFinder().findClass(ClassId.topLevel(new FqName(qualifiedName)));
Assert.assertNotNull("Class wasn't found: " + qualifiedName, javaClass);
assertInstanceOf(javaClass, JavaClassImpl.class);
@@ -27,8 +27,8 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor;
import org.jetbrains.kotlin.descriptors.ReceiverParameterDescriptor;
import org.jetbrains.kotlin.descriptors.impl.ReceiverParameterDescriptorImpl;
import org.jetbrains.kotlin.di.InjectorForJavaDescriptorResolver;
import org.jetbrains.kotlin.di.InjectorForJavaDescriptorResolverUtil;
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJavaUtil;
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJava;
import org.jetbrains.kotlin.di.InjectorForTests;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.psi.JetExpression;
@@ -593,8 +593,8 @@ public class JetTypeCheckerTest extends JetLiteFixture {
WritableScopeImpl writableScope = new WritableScopeImpl(
scope, scope.getContainingDeclaration(), RedeclarationHandler.DO_NOTHING, "JetTypeCheckerTest.addImports");
BindingTraceContext trace = new CliLightClassGenerationSupport.NoScopeRecordCliBindingTrace();
InjectorForJavaDescriptorResolver injector = InjectorForJavaDescriptorResolverUtil.create(getProject(), trace, true);
ModuleDescriptor module = injector.getModule();
InjectorForLazyResolveWithJava injector = InjectorForLazyResolveWithJavaUtil.create(getProject(), trace, true);
ModuleDescriptor module = injector.getResolveSession().getModuleDescriptor();
for (ImportPath defaultImport : module.getDefaultImports()) {
FqName fqName = defaultImport.fqnPart();
if (defaultImport.isAllUnder()) {
@@ -18,7 +18,6 @@ package org.jetbrains.kotlin.generators.injectors
import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.context.GlobalContext
import org.jetbrains.kotlin.context.GlobalContextImpl
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
import org.jetbrains.kotlin.resolve.*
@@ -40,20 +39,17 @@ import org.jetbrains.kotlin.load.java.lazy.ModuleClassResolver
import org.jetbrains.kotlin.load.kotlin.DeserializationComponentsForJava
import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinderFactory
import org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM
import org.jetbrains.kotlin.load.kotlin.KotlinJvmCheckerProvider
import org.jetbrains.kotlin.resolve.lazy.KotlinCodeAnalyzer
import org.jetbrains.kotlin.load.java.JavaFlexibleTypeCapabilitiesProvider
import org.jetbrains.kotlin.context.LazyResolveToken
import org.jetbrains.kotlin.resolve.jvm.JavaLazyAnalyzerPostConstruct
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolverPostConstruct
import org.jetbrains.kotlin.resolve.lazy.ScopeProvider
import org.jetbrains.kotlin.js.resolve.KotlinJsCheckerProvider
import org.jetbrains.kotlin.types.DynamicTypesAllowed
import org.jetbrains.kotlin.types.DynamicTypesSettings
import org.jetbrains.kotlin.resolve.lazy.NoTopLevelDescriptorProvider
import org.jetbrains.kotlin.resolve.lazy.NoFileScopeProvider
import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer
import org.jetbrains.kotlin.types.expressions.LocalClassDescriptorManager
import org.jetbrains.kotlin.types.expressions.DeclarationScopeProviderForLocalClassifierAnalyzer
import org.jetbrains.kotlin.types.expressions.LocalLazyDeclarationResolver
@@ -79,7 +75,6 @@ public fun createInjectorGenerators(): List<DependencyInjectorGenerator> =
generatorForLazyTopDownAnalyzerBasic(),
generatorForLazyLocalClassifierAnalyzer(),
generatorForTopDownAnalyzerForJvm(),
generatorForJavaDescriptorResolver(),
generatorForLazyResolveWithJava(),
generatorForTopDownAnalyzerForJs(),
generatorForMacro(),
@@ -147,42 +142,11 @@ private fun generatorForTopDownAnalyzerForJvm() =
commonForJavaTopDownAnalyzer()
}
private fun generatorForJavaDescriptorResolver() =
generator("compiler/frontend.java/src", DI_DEFAULT_PACKAGE, "InjectorForJavaDescriptorResolver") {
parameter<Project>()
parameter<BindingTrace>()
publicField<GlobalContextImpl>(useAsContext = true,
init = GivenExpression("org.jetbrains.kotlin.context.ContextPackage.GlobalContext()"))
publicField<ModuleDescriptorImpl>(name = "module",
init = GivenExpression(javaClass<TopDownAnalyzerFacadeForJVM>().getName() + ".createJavaModule(\"<fake-jdr-module>\")"))
publicField<JavaDescriptorResolver>()
publicField<JavaClassFinderImpl>()
field<GlobalSearchScope>(
init = GivenExpression(javaClass<GlobalSearchScope>().getName() + ".allScope(project)"))
field<TraceBasedExternalSignatureResolver>()
field<TraceBasedJavaResolverCache>()
field<TraceBasedErrorReporter>()
field<PsiBasedMethodSignatureChecker>()
field<PsiBasedExternalAnnotationResolver>()
field<JavaPropertyInitializerEvaluatorImpl>()
field<SamConversionResolverImpl>()
field<JavaSourceElementFactoryImpl>()
field<SingleModuleClassResolver>()
field<JavaDescriptorResolverPostConstruct>()
field<VirtualFileFinder>(
init = GivenExpression(javaClass<VirtualFileFinder>().getName() + ".SERVICE.getInstance(project)"))
}
private fun generatorForLazyResolveWithJava() =
generator("compiler/frontend.java/src", DI_DEFAULT_PACKAGE, "InjectorForLazyResolveWithJava") {
commonForResolveSessionBased()
parameter<GlobalSearchScope>(name = "moduleContentScope")
parameter<ModuleClassResolver>()
publicField<JavaDescriptorResolver>()
@@ -192,7 +156,7 @@ private fun generatorForLazyResolveWithJava() =
+ ".SERVICE.getInstance(project).create(moduleContentScope)")
)
field<JavaClassFinderImpl>()
publicField<JavaClassFinderImpl>()
field<TraceBasedExternalSignatureResolver>()
field<LazyResolveBasedCache>()
field<TraceBasedErrorReporter>()