diff --git a/.idea/artifacts/InjectorGenerator.xml b/.idea/artifacts/InjectorGenerator.xml
deleted file mode 100644
index c5d01c89714..00000000000
--- a/.idea/artifacts/InjectorGenerator.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- $PROJECT_DIR$/out/artifacts/internal/
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 058cfbe2787..21e53538f25 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -37,7 +37,6 @@
-
diff --git a/.idea/runConfigurations/Generate_Injectors.xml b/.idea/runConfigurations/Generate_Injectors.xml
deleted file mode 100644
index a3bdc71e48c..00000000000
--- a/.idea/runConfigurations/Generate_Injectors.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/TeamCityBuild.xml b/TeamCityBuild.xml
index 29392d4a832..e112baa27fa 100644
--- a/TeamCityBuild.xml
+++ b/TeamCityBuild.xml
@@ -201,7 +201,6 @@
-
diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/di/InjectorForLazyResolveWithJava.java b/compiler/frontend.java/src/org/jetbrains/kotlin/di/InjectorForLazyResolveWithJava.java
deleted file mode 100644
index 0e703be7c4a..00000000000
--- a/compiler/frontend.java/src/org/jetbrains/kotlin/di/InjectorForLazyResolveWithJava.java
+++ /dev/null
@@ -1,341 +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 org.jetbrains.kotlin.context.ModuleContext;
-import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
-import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
-import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
-import com.intellij.openapi.project.Project;
-import org.jetbrains.kotlin.storage.StorageManager;
-import org.jetbrains.kotlin.resolve.BindingTrace;
-import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory;
-import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
-import org.jetbrains.kotlin.resolve.lazy.ScopeProvider;
-import com.intellij.psi.search.GlobalSearchScope;
-import org.jetbrains.kotlin.load.java.lazy.ModuleClassResolver;
-import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver;
-import org.jetbrains.kotlin.load.kotlin.JvmVirtualFileFinder;
-import org.jetbrains.kotlin.load.java.JavaClassFinderImpl;
-import org.jetbrains.kotlin.load.java.components.TraceBasedExternalSignatureResolver;
-import org.jetbrains.kotlin.load.java.components.LazyResolveBasedCache;
-import org.jetbrains.kotlin.load.java.components.TraceBasedErrorReporter;
-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.JavaFlexibleTypeCapabilitiesProvider;
-import org.jetbrains.kotlin.context.LazyResolveToken;
-import org.jetbrains.kotlin.resolve.jvm.JavaLazyAnalyzerPostConstruct;
-import org.jetbrains.kotlin.load.kotlin.KotlinJvmCheckerProvider;
-import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator;
-import org.jetbrains.kotlin.resolve.AnnotationResolver;
-import org.jetbrains.kotlin.resolve.calls.CallResolver;
-import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingComponents;
-import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver;
-import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils;
-import org.jetbrains.kotlin.resolve.DescriptorResolver;
-import org.jetbrains.kotlin.resolve.DelegatedPropertyResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver;
-import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver;
-import org.jetbrains.kotlin.types.DynamicTypesSettings;
-import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker;
-import org.jetbrains.kotlin.types.expressions.FakeCallResolver;
-import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver;
-import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer;
-import org.jetbrains.kotlin.types.expressions.MultiDeclarationResolver;
-import org.jetbrains.kotlin.builtins.ReflectionTypes;
-import org.jetbrains.kotlin.types.expressions.ValueParameterResolver;
-import org.jetbrains.kotlin.resolve.StatementFilter;
-import org.jetbrains.kotlin.resolve.calls.CallCompleter;
-import org.jetbrains.kotlin.resolve.calls.CandidateResolver;
-import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer;
-import org.jetbrains.kotlin.psi.JetImportsFactory;
-import org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver;
-import org.jetbrains.kotlin.resolve.lazy.DeclarationScopeProviderImpl;
-import org.jetbrains.kotlin.resolve.ScriptBodyResolver;
-import org.jetbrains.kotlin.resolve.lazy.ScopeProvider.AdditionalFileScopeProvider;
-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 InjectorForLazyResolveWithJava {
-
- private final ModuleContext moduleContext;
- private final KotlinBuiltIns kotlinBuiltIns;
- private final ModuleDescriptor moduleDescriptor;
- private final PlatformToKotlinClassMap platformToKotlinClassMap;
- private final Project project;
- private final StorageManager storageManager;
- private final BindingTrace bindingTrace;
- private final DeclarationProviderFactory declarationProviderFactory;
- private final ResolveSession resolveSession;
- private final ScopeProvider scopeProvider;
- private final GlobalSearchScope moduleContentScope;
- private final ModuleClassResolver moduleClassResolver;
- private final JavaDescriptorResolver javaDescriptorResolver;
- private final JvmVirtualFileFinder jvmVirtualFileFinder;
- private final JavaClassFinderImpl javaClassFinder;
- private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
- private final LazyResolveBasedCache lazyResolveBasedCache;
- private final TraceBasedErrorReporter traceBasedErrorReporter;
- private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
- private final JavaPropertyInitializerEvaluatorImpl javaPropertyInitializerEvaluator;
- private final SamConversionResolverImpl samConversionResolver;
- private final JavaSourceElementFactoryImpl javaSourceElementFactory;
- private final JavaFlexibleTypeCapabilitiesProvider javaFlexibleTypeCapabilitiesProvider;
- private final LazyResolveToken lazyResolveToken;
- private final JavaLazyAnalyzerPostConstruct javaLazyAnalyzerPostConstruct;
- private final KotlinJvmCheckerProvider kotlinJvmCheckerProvider;
- private final SymbolUsageValidator symbolUsageValidator;
- private final AnnotationResolver annotationResolver;
- private final CallResolver callResolver;
- private final ArgumentTypeResolver argumentTypeResolver;
- private final ExpressionTypingServices expressionTypingServices;
- private final ExpressionTypingComponents expressionTypingComponents;
- private final CallExpressionResolver callExpressionResolver;
- private final ControlStructureTypingUtils controlStructureTypingUtils;
- private final DescriptorResolver descriptorResolver;
- private final DelegatedPropertyResolver delegatedPropertyResolver;
- private final TypeResolver typeResolver;
- private final QualifiedExpressionResolver qualifiedExpressionResolver;
- private final DynamicTypesSettings dynamicTypesSettings;
- private final ForLoopConventionsChecker forLoopConventionsChecker;
- private final FakeCallResolver fakeCallResolver;
- private final FunctionDescriptorResolver functionDescriptorResolver;
- private final LocalClassifierAnalyzer localClassifierAnalyzer;
- private final MultiDeclarationResolver multiDeclarationResolver;
- private final ReflectionTypes reflectionTypes;
- private final ValueParameterResolver valueParameterResolver;
- private final StatementFilter statementFilter;
- private final CallCompleter callCompleter;
- private final CandidateResolver candidateResolver;
- private final TaskPrioritizer taskPrioritizer;
- private final JetImportsFactory jetImportsFactory;
- private final LazyDeclarationResolver lazyDeclarationResolver;
- private final DeclarationScopeProviderImpl declarationScopeProvider;
- private final ScriptBodyResolver scriptBodyResolver;
- private final AdditionalFileScopeProvider additionalFileScopeProvider;
- 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 InjectorForLazyResolveWithJava(
- @NotNull ModuleContext moduleContext,
- @NotNull BindingTrace bindingTrace,
- @NotNull DeclarationProviderFactory declarationProviderFactory,
- @NotNull GlobalSearchScope moduleContentScope,
- @NotNull ModuleClassResolver moduleClassResolver
- ) {
- this.moduleContext = moduleContext;
- this.kotlinBuiltIns = moduleContext.getBuiltIns();
- this.moduleDescriptor = moduleContext.getModule();
- this.platformToKotlinClassMap = moduleContext.getPlatformToKotlinClassMap();
- this.project = moduleContext.getProject();
- this.storageManager = moduleContext.getStorageManager();
- this.bindingTrace = bindingTrace;
- this.declarationProviderFactory = declarationProviderFactory;
- this.resolveSession = new ResolveSession(project, getModuleContext(), moduleDescriptor, declarationProviderFactory, bindingTrace);
- this.scopeProvider = new ScopeProvider(getResolveSession());
- this.moduleContentScope = moduleContentScope;
- this.moduleClassResolver = moduleClassResolver;
- this.javaClassFinder = new JavaClassFinderImpl();
- this.jvmVirtualFileFinder = org.jetbrains.kotlin.load.kotlin.JvmVirtualFileFinderFactory.SERVICE.getInstance(project).create(moduleContentScope);
- this.traceBasedErrorReporter = new TraceBasedErrorReporter();
- this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(traceBasedErrorReporter);
- this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
- this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
- this.lazyResolveBasedCache = new LazyResolveBasedCache();
- this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl();
- this.samConversionResolver = SamConversionResolverImpl.INSTANCE$;
- this.javaSourceElementFactory = new JavaSourceElementFactoryImpl();
- this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, javaClassFinder, jvmVirtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, lazyResolveBasedCache, javaPropertyInitializerEvaluator, samConversionResolver, javaSourceElementFactory, moduleClassResolver);
- this.reflectionTypes = new ReflectionTypes(moduleDescriptor);
- this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, moduleDescriptor, reflectionTypes);
- this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, moduleDescriptor);
- this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider();
- this.lazyResolveToken = new LazyResolveToken();
- this.javaLazyAnalyzerPostConstruct = new JavaLazyAnalyzerPostConstruct();
- this.kotlinJvmCheckerProvider = KotlinJvmCheckerProvider.INSTANCE$;
- this.symbolUsageValidator = kotlinJvmCheckerProvider.getSymbolUsageValidator();
- this.annotationResolver = new AnnotationResolver();
- this.callResolver = new CallResolver();
- this.argumentTypeResolver = new ArgumentTypeResolver();
- this.expressionTypingComponents = new ExpressionTypingComponents();
- this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents);
- this.callExpressionResolver = new CallExpressionResolver(callResolver, kotlinBuiltIns);
- this.controlStructureTypingUtils = new ControlStructureTypingUtils(callResolver);
- this.descriptorResolver = new DescriptorResolver();
- this.delegatedPropertyResolver = new DelegatedPropertyResolver();
- this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
- this.dynamicTypesSettings = new DynamicTypesSettings();
- this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, moduleDescriptor, javaFlexibleTypeCapabilitiesProvider, storageManager, lazyResolveToken, dynamicTypesSettings);
- this.forLoopConventionsChecker = new ForLoopConventionsChecker();
- this.fakeCallResolver = new FakeCallResolver(project, callResolver);
- this.functionDescriptorResolver = new FunctionDescriptorResolver(typeResolver, descriptorResolver, annotationResolver, storageManager, expressionTypingServices, kotlinBuiltIns);
- this.localClassifierAnalyzer = new LocalClassifierAnalyzer(descriptorResolver, functionDescriptorResolver, typeResolver, annotationResolver);
- this.multiDeclarationResolver = new MultiDeclarationResolver(fakeCallResolver, descriptorResolver, typeResolver, symbolUsageValidator);
- this.valueParameterResolver = new ValueParameterResolver(kotlinJvmCheckerProvider, expressionTypingServices);
- this.statementFilter = new StatementFilter();
- this.candidateResolver = new CandidateResolver();
- this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver);
- this.taskPrioritizer = new TaskPrioritizer(storageManager);
- this.jetImportsFactory = new JetImportsFactory();
- this.lazyDeclarationResolver = new LazyDeclarationResolver(getModuleContext(), bindingTrace);
- this.declarationScopeProvider = new DeclarationScopeProviderImpl(lazyDeclarationResolver);
- this.scriptBodyResolver = new ScriptBodyResolver();
- this.additionalFileScopeProvider = new AdditionalFileScopeProvider();
- this.javaClassDataFinder = new JavaClassDataFinder(jvmVirtualFileFinder, deserializedDescriptorResolver);
- this.binaryClassAnnotationAndConstantLoader = new BinaryClassAnnotationAndConstantLoaderImpl(moduleDescriptor, storageManager, jvmVirtualFileFinder, traceBasedErrorReporter);
- this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, moduleDescriptor, javaClassDataFinder, binaryClassAnnotationAndConstantLoader, lazyJavaPackageFragmentProvider);
-
- this.resolveSession.setAnnotationResolve(annotationResolver);
- this.resolveSession.setDescriptorResolver(descriptorResolver);
- this.resolveSession.setFunctionDescriptorResolver(functionDescriptorResolver);
- this.resolveSession.setJetImportFactory(jetImportsFactory);
- this.resolveSession.setLazyDeclarationResolver(lazyDeclarationResolver);
- this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
- this.resolveSession.setScopeProvider(scopeProvider);
- this.resolveSession.setScriptBodyResolver(scriptBodyResolver);
- this.resolveSession.setTypeResolver(typeResolver);
-
- scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
- scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
-
- javaClassFinder.setComponentPostConstruct(javaLazyAnalyzerPostConstruct);
- javaClassFinder.setProject(project);
- javaClassFinder.setScope(moduleContentScope);
-
- traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
- traceBasedExternalSignatureResolver.setProject(project);
- traceBasedExternalSignatureResolver.setTrace(bindingTrace);
-
- lazyResolveBasedCache.setSession(resolveSession);
-
- traceBasedErrorReporter.setTrace(bindingTrace);
-
- javaLazyAnalyzerPostConstruct.setCodeAnalyzer(resolveSession);
- javaLazyAnalyzerPostConstruct.setProject(project);
- javaLazyAnalyzerPostConstruct.setTrace(bindingTrace);
-
- annotationResolver.setCallResolver(callResolver);
- annotationResolver.setStorageManager(storageManager);
- annotationResolver.setTypeResolver(typeResolver);
-
- callResolver.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- callResolver.setArgumentTypeResolver(argumentTypeResolver);
- callResolver.setCallCompleter(callCompleter);
- callResolver.setCandidateResolver(candidateResolver);
- callResolver.setExpressionTypingServices(expressionTypingServices);
- callResolver.setTaskPrioritizer(taskPrioritizer);
- callResolver.setTypeResolver(typeResolver);
-
- argumentTypeResolver.setBuiltIns(kotlinBuiltIns);
- argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
- argumentTypeResolver.setTypeResolver(typeResolver);
-
- expressionTypingServices.setStatementFilter(statementFilter);
-
- expressionTypingComponents.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- expressionTypingComponents.setAnnotationResolver(annotationResolver);
- expressionTypingComponents.setBuiltIns(kotlinBuiltIns);
- expressionTypingComponents.setCallExpressionResolver(callExpressionResolver);
- expressionTypingComponents.setCallResolver(callResolver);
- expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils);
- expressionTypingComponents.setDescriptorResolver(descriptorResolver);
- expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings);
- expressionTypingComponents.setExpressionTypingServices(expressionTypingServices);
- expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker);
- expressionTypingComponents.setFunctionDescriptorResolver(functionDescriptorResolver);
- expressionTypingComponents.setGlobalContext(moduleContext);
- expressionTypingComponents.setLocalClassifierAnalyzer(localClassifierAnalyzer);
- expressionTypingComponents.setMultiDeclarationResolver(multiDeclarationResolver);
- expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap);
- expressionTypingComponents.setReflectionTypes(reflectionTypes);
- expressionTypingComponents.setSymbolUsageValidator(symbolUsageValidator);
- expressionTypingComponents.setTypeResolver(typeResolver);
- expressionTypingComponents.setValueParameterResolver(valueParameterResolver);
-
- callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
-
- descriptorResolver.setAnnotationResolver(annotationResolver);
- descriptorResolver.setBuiltIns(kotlinBuiltIns);
- descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- descriptorResolver.setExpressionTypingServices(expressionTypingServices);
- descriptorResolver.setStorageManager(storageManager);
- descriptorResolver.setTypeResolver(typeResolver);
-
- delegatedPropertyResolver.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns);
- delegatedPropertyResolver.setCallResolver(callResolver);
- delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
-
- qualifiedExpressionResolver.setSymbolUsageValidator(symbolUsageValidator);
-
- forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns);
- forLoopConventionsChecker.setFakeCallResolver(fakeCallResolver);
- forLoopConventionsChecker.setSymbolUsageValidator(symbolUsageValidator);
-
- candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
-
- jetImportsFactory.setProject(project);
-
- lazyDeclarationResolver.setDeclarationScopeProvider(declarationScopeProvider);
- lazyDeclarationResolver.setTopLevelDescriptorProvider(resolveSession);
-
- declarationScopeProvider.setFileScopeProvider(scopeProvider);
-
- scriptBodyResolver.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
-
- deserializedDescriptorResolver.setComponents(deserializationComponentsForJava);
-
- javaClassFinder.initialize();
-
- javaLazyAnalyzerPostConstruct.postCreate();
-
- }
-
- @PreDestroy
- public void destroy() {
- }
-
- public ModuleContext getModuleContext() {
- return this.moduleContext;
- }
-
- public ResolveSession getResolveSession() {
- return this.resolveSession;
- }
-
- public JavaDescriptorResolver getJavaDescriptorResolver() {
- return this.javaDescriptorResolver;
- }
-
-}
diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/di/InjectorForReplWithJava.java b/compiler/frontend.java/src/org/jetbrains/kotlin/di/InjectorForReplWithJava.java
deleted file mode 100644
index 399289b0476..00000000000
--- a/compiler/frontend.java/src/org/jetbrains/kotlin/di/InjectorForReplWithJava.java
+++ /dev/null
@@ -1,430 +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 org.jetbrains.kotlin.context.ModuleContext;
-import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
-import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
-import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
-import com.intellij.openapi.project.Project;
-import org.jetbrains.kotlin.storage.StorageManager;
-import org.jetbrains.kotlin.resolve.BindingTrace;
-import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory;
-import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
-import org.jetbrains.kotlin.resolve.lazy.ScopeProvider;
-import com.intellij.psi.search.GlobalSearchScope;
-import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer;
-import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzerForTopLevel;
-import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver;
-import org.jetbrains.kotlin.load.kotlin.DeserializationComponentsForJava;
-import org.jetbrains.kotlin.load.kotlin.JvmVirtualFileFinder;
-import org.jetbrains.kotlin.load.java.JavaClassFinderImpl;
-import org.jetbrains.kotlin.load.java.components.TraceBasedExternalSignatureResolver;
-import org.jetbrains.kotlin.load.java.components.LazyResolveBasedCache;
-import org.jetbrains.kotlin.load.java.components.TraceBasedErrorReporter;
-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.JavaLazyAnalyzerPostConstruct;
-import org.jetbrains.kotlin.load.java.JavaFlexibleTypeCapabilitiesProvider;
-import org.jetbrains.kotlin.load.kotlin.KotlinJvmCheckerProvider;
-import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator;
-import org.jetbrains.kotlin.resolve.lazy.ScopeProvider.AdditionalFileScopeProvider;
-import org.jetbrains.kotlin.resolve.AnnotationResolver;
-import org.jetbrains.kotlin.resolve.calls.CallResolver;
-import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingComponents;
-import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver;
-import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils;
-import org.jetbrains.kotlin.resolve.DescriptorResolver;
-import org.jetbrains.kotlin.resolve.DelegatedPropertyResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver;
-import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver;
-import org.jetbrains.kotlin.context.TypeLazinessToken;
-import org.jetbrains.kotlin.types.DynamicTypesSettings;
-import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker;
-import org.jetbrains.kotlin.types.expressions.FakeCallResolver;
-import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver;
-import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer;
-import org.jetbrains.kotlin.types.expressions.MultiDeclarationResolver;
-import org.jetbrains.kotlin.builtins.ReflectionTypes;
-import org.jetbrains.kotlin.types.expressions.ValueParameterResolver;
-import org.jetbrains.kotlin.resolve.StatementFilter;
-import org.jetbrains.kotlin.resolve.calls.CallCompleter;
-import org.jetbrains.kotlin.resolve.calls.CandidateResolver;
-import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer;
-import org.jetbrains.kotlin.psi.JetImportsFactory;
-import org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver;
-import org.jetbrains.kotlin.resolve.lazy.DeclarationScopeProviderImpl;
-import org.jetbrains.kotlin.resolve.ScriptBodyResolver;
-import org.jetbrains.kotlin.resolve.BodyResolver;
-import org.jetbrains.kotlin.resolve.ControlFlowAnalyzer;
-import org.jetbrains.kotlin.resolve.DeclarationsChecker;
-import org.jetbrains.kotlin.resolve.ModifiersChecker;
-import org.jetbrains.kotlin.resolve.FunctionAnalyzerExtension;
-import org.jetbrains.kotlin.resolve.DeclarationResolver;
-import org.jetbrains.kotlin.resolve.OverloadResolver;
-import org.jetbrains.kotlin.resolve.OverrideResolver;
-import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker;
-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.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 InjectorForReplWithJava {
-
- private final ModuleContext moduleContext;
- private final KotlinBuiltIns kotlinBuiltIns;
- private final ModuleDescriptor moduleDescriptor;
- private final PlatformToKotlinClassMap platformToKotlinClassMap;
- private final Project project;
- private final StorageManager storageManager;
- private final BindingTrace bindingTrace;
- private final DeclarationProviderFactory declarationProviderFactory;
- private final ResolveSession resolveSession;
- private final ScopeProvider scopeProvider;
- private final GlobalSearchScope moduleContentScope;
- private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
- private final LazyTopDownAnalyzerForTopLevel lazyTopDownAnalyzerForTopLevel;
- private final JavaDescriptorResolver javaDescriptorResolver;
- private final DeserializationComponentsForJava deserializationComponentsForJava;
- private final JvmVirtualFileFinder jvmVirtualFileFinder;
- private final JavaClassFinderImpl javaClassFinder;
- private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
- private final LazyResolveBasedCache lazyResolveBasedCache;
- private final TraceBasedErrorReporter traceBasedErrorReporter;
- private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
- private final JavaPropertyInitializerEvaluatorImpl javaPropertyInitializerEvaluator;
- private final SamConversionResolverImpl samConversionResolver;
- private final JavaSourceElementFactoryImpl javaSourceElementFactory;
- private final SingleModuleClassResolver singleModuleClassResolver;
- private final JavaLazyAnalyzerPostConstruct javaLazyAnalyzerPostConstruct;
- private final JavaFlexibleTypeCapabilitiesProvider javaFlexibleTypeCapabilitiesProvider;
- private final KotlinJvmCheckerProvider kotlinJvmCheckerProvider;
- private final SymbolUsageValidator symbolUsageValidator;
- private final AdditionalFileScopeProvider additionalFileScopeProvider;
- private final AnnotationResolver annotationResolver;
- private final CallResolver callResolver;
- private final ArgumentTypeResolver argumentTypeResolver;
- private final ExpressionTypingServices expressionTypingServices;
- private final ExpressionTypingComponents expressionTypingComponents;
- private final CallExpressionResolver callExpressionResolver;
- private final ControlStructureTypingUtils controlStructureTypingUtils;
- private final DescriptorResolver descriptorResolver;
- private final DelegatedPropertyResolver delegatedPropertyResolver;
- private final TypeResolver typeResolver;
- private final QualifiedExpressionResolver qualifiedExpressionResolver;
- private final TypeLazinessToken typeLazinessToken;
- private final DynamicTypesSettings dynamicTypesSettings;
- private final ForLoopConventionsChecker forLoopConventionsChecker;
- private final FakeCallResolver fakeCallResolver;
- private final FunctionDescriptorResolver functionDescriptorResolver;
- private final LocalClassifierAnalyzer localClassifierAnalyzer;
- private final MultiDeclarationResolver multiDeclarationResolver;
- private final ReflectionTypes reflectionTypes;
- private final ValueParameterResolver valueParameterResolver;
- private final StatementFilter statementFilter;
- private final CallCompleter callCompleter;
- private final CandidateResolver candidateResolver;
- private final TaskPrioritizer taskPrioritizer;
- private final JetImportsFactory jetImportsFactory;
- private final LazyDeclarationResolver lazyDeclarationResolver;
- private final DeclarationScopeProviderImpl declarationScopeProvider;
- private final ScriptBodyResolver scriptBodyResolver;
- private final BodyResolver bodyResolver;
- private final ControlFlowAnalyzer controlFlowAnalyzer;
- private final DeclarationsChecker declarationsChecker;
- private final ModifiersChecker modifiersChecker;
- private final FunctionAnalyzerExtension functionAnalyzerExtension;
- private final DeclarationResolver declarationResolver;
- private final OverloadResolver overloadResolver;
- private final OverrideResolver overrideResolver;
- private final VarianceChecker varianceChecker;
- private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
- private final GlobalJavaResolverContext globalJavaResolverContext;
- private final DeserializedDescriptorResolver deserializedDescriptorResolver;
- private final JavaClassDataFinder javaClassDataFinder;
- private final BinaryClassAnnotationAndConstantLoaderImpl binaryClassAnnotationAndConstantLoader;
-
- public InjectorForReplWithJava(
- @NotNull ModuleContext moduleContext,
- @NotNull BindingTrace bindingTrace,
- @NotNull DeclarationProviderFactory declarationProviderFactory,
- @NotNull GlobalSearchScope moduleContentScope,
- @NotNull AdditionalFileScopeProvider additionalFileScopeProvider
- ) {
- this.moduleContext = moduleContext;
- this.kotlinBuiltIns = moduleContext.getBuiltIns();
- this.moduleDescriptor = moduleContext.getModule();
- this.platformToKotlinClassMap = moduleContext.getPlatformToKotlinClassMap();
- this.project = moduleContext.getProject();
- this.storageManager = moduleContext.getStorageManager();
- this.bindingTrace = bindingTrace;
- this.declarationProviderFactory = declarationProviderFactory;
- this.resolveSession = new ResolveSession(project, getModuleContext(), moduleDescriptor, declarationProviderFactory, bindingTrace);
- this.scopeProvider = new ScopeProvider(getResolveSession());
- this.moduleContentScope = moduleContentScope;
- this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
- this.lazyTopDownAnalyzerForTopLevel = new LazyTopDownAnalyzerForTopLevel();
- this.javaClassFinder = new JavaClassFinderImpl();
- this.jvmVirtualFileFinder = org.jetbrains.kotlin.load.kotlin.JvmVirtualFileFinderFactory.SERVICE.getInstance(project).create(moduleContentScope);
- this.traceBasedErrorReporter = new TraceBasedErrorReporter();
- this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(traceBasedErrorReporter);
- this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
- this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
- this.lazyResolveBasedCache = new LazyResolveBasedCache();
- this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl();
- this.samConversionResolver = SamConversionResolverImpl.INSTANCE$;
- this.javaSourceElementFactory = new JavaSourceElementFactoryImpl();
- this.singleModuleClassResolver = new SingleModuleClassResolver();
- this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, javaClassFinder, jvmVirtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, lazyResolveBasedCache, javaPropertyInitializerEvaluator, samConversionResolver, javaSourceElementFactory, singleModuleClassResolver);
- this.reflectionTypes = new ReflectionTypes(moduleDescriptor);
- this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, moduleDescriptor, reflectionTypes);
- this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, moduleDescriptor);
- this.javaClassDataFinder = new JavaClassDataFinder(jvmVirtualFileFinder, deserializedDescriptorResolver);
- this.binaryClassAnnotationAndConstantLoader = new BinaryClassAnnotationAndConstantLoaderImpl(moduleDescriptor, storageManager, jvmVirtualFileFinder, traceBasedErrorReporter);
- this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, moduleDescriptor, javaClassDataFinder, binaryClassAnnotationAndConstantLoader, lazyJavaPackageFragmentProvider);
- this.javaLazyAnalyzerPostConstruct = new JavaLazyAnalyzerPostConstruct();
- this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider();
- this.kotlinJvmCheckerProvider = KotlinJvmCheckerProvider.INSTANCE$;
- this.symbolUsageValidator = kotlinJvmCheckerProvider.getSymbolUsageValidator();
- this.additionalFileScopeProvider = additionalFileScopeProvider;
- this.annotationResolver = new AnnotationResolver();
- this.callResolver = new CallResolver();
- this.argumentTypeResolver = new ArgumentTypeResolver();
- this.expressionTypingComponents = new ExpressionTypingComponents();
- this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents);
- this.callExpressionResolver = new CallExpressionResolver(callResolver, kotlinBuiltIns);
- this.controlStructureTypingUtils = new ControlStructureTypingUtils(callResolver);
- this.descriptorResolver = new DescriptorResolver();
- this.delegatedPropertyResolver = new DelegatedPropertyResolver();
- this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
- this.typeLazinessToken = new TypeLazinessToken();
- this.dynamicTypesSettings = new DynamicTypesSettings();
- this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, moduleDescriptor, javaFlexibleTypeCapabilitiesProvider, storageManager, typeLazinessToken, dynamicTypesSettings);
- this.forLoopConventionsChecker = new ForLoopConventionsChecker();
- this.fakeCallResolver = new FakeCallResolver(project, callResolver);
- this.functionDescriptorResolver = new FunctionDescriptorResolver(typeResolver, descriptorResolver, annotationResolver, storageManager, expressionTypingServices, kotlinBuiltIns);
- this.localClassifierAnalyzer = new LocalClassifierAnalyzer(descriptorResolver, functionDescriptorResolver, typeResolver, annotationResolver);
- this.multiDeclarationResolver = new MultiDeclarationResolver(fakeCallResolver, descriptorResolver, typeResolver, symbolUsageValidator);
- this.valueParameterResolver = new ValueParameterResolver(kotlinJvmCheckerProvider, expressionTypingServices);
- this.statementFilter = new StatementFilter();
- this.candidateResolver = new CandidateResolver();
- this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver);
- this.taskPrioritizer = new TaskPrioritizer(storageManager);
- this.jetImportsFactory = new JetImportsFactory();
- this.lazyDeclarationResolver = new LazyDeclarationResolver(getModuleContext(), bindingTrace);
- this.declarationScopeProvider = new DeclarationScopeProviderImpl(lazyDeclarationResolver);
- this.scriptBodyResolver = new ScriptBodyResolver();
- this.bodyResolver = new BodyResolver();
- this.controlFlowAnalyzer = new ControlFlowAnalyzer();
- this.declarationsChecker = new DeclarationsChecker();
- this.modifiersChecker = new ModifiersChecker(bindingTrace, kotlinJvmCheckerProvider);
- this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
- this.declarationResolver = new DeclarationResolver();
- this.overloadResolver = new OverloadResolver();
- this.overrideResolver = new OverrideResolver();
- this.varianceChecker = new VarianceChecker(bindingTrace);
-
- this.resolveSession.setAnnotationResolve(annotationResolver);
- this.resolveSession.setDescriptorResolver(descriptorResolver);
- this.resolveSession.setFunctionDescriptorResolver(functionDescriptorResolver);
- this.resolveSession.setJetImportFactory(jetImportsFactory);
- this.resolveSession.setLazyDeclarationResolver(lazyDeclarationResolver);
- this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
- this.resolveSession.setScopeProvider(scopeProvider);
- this.resolveSession.setScriptBodyResolver(scriptBodyResolver);
- this.resolveSession.setTypeResolver(typeResolver);
-
- scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
- scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
-
- this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
- this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
- this.lazyTopDownAnalyzer.setDeclarationScopeProvider(declarationScopeProvider);
- this.lazyTopDownAnalyzer.setFileScopeProvider(scopeProvider);
- this.lazyTopDownAnalyzer.setLazyDeclarationResolver(lazyDeclarationResolver);
- this.lazyTopDownAnalyzer.setModuleDescriptor(moduleDescriptor);
- this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
- this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
- this.lazyTopDownAnalyzer.setTopLevelDescriptorProvider(resolveSession);
- this.lazyTopDownAnalyzer.setTrace(bindingTrace);
- this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
-
- this.lazyTopDownAnalyzerForTopLevel.setKotlinCodeAnalyzer(resolveSession);
- this.lazyTopDownAnalyzerForTopLevel.setLazyTopDownAnalyzer(lazyTopDownAnalyzer);
-
- javaClassFinder.setComponentPostConstruct(javaLazyAnalyzerPostConstruct);
- javaClassFinder.setProject(project);
- javaClassFinder.setScope(moduleContentScope);
-
- traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
- traceBasedExternalSignatureResolver.setProject(project);
- traceBasedExternalSignatureResolver.setTrace(bindingTrace);
-
- lazyResolveBasedCache.setSession(resolveSession);
-
- traceBasedErrorReporter.setTrace(bindingTrace);
-
- singleModuleClassResolver.setResolver(javaDescriptorResolver);
-
- javaLazyAnalyzerPostConstruct.setCodeAnalyzer(resolveSession);
- javaLazyAnalyzerPostConstruct.setProject(project);
- javaLazyAnalyzerPostConstruct.setTrace(bindingTrace);
-
- annotationResolver.setCallResolver(callResolver);
- annotationResolver.setStorageManager(storageManager);
- annotationResolver.setTypeResolver(typeResolver);
-
- callResolver.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- callResolver.setArgumentTypeResolver(argumentTypeResolver);
- callResolver.setCallCompleter(callCompleter);
- callResolver.setCandidateResolver(candidateResolver);
- callResolver.setExpressionTypingServices(expressionTypingServices);
- callResolver.setTaskPrioritizer(taskPrioritizer);
- callResolver.setTypeResolver(typeResolver);
-
- argumentTypeResolver.setBuiltIns(kotlinBuiltIns);
- argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
- argumentTypeResolver.setTypeResolver(typeResolver);
-
- expressionTypingServices.setStatementFilter(statementFilter);
-
- expressionTypingComponents.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- expressionTypingComponents.setAnnotationResolver(annotationResolver);
- expressionTypingComponents.setBuiltIns(kotlinBuiltIns);
- expressionTypingComponents.setCallExpressionResolver(callExpressionResolver);
- expressionTypingComponents.setCallResolver(callResolver);
- expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils);
- expressionTypingComponents.setDescriptorResolver(descriptorResolver);
- expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings);
- expressionTypingComponents.setExpressionTypingServices(expressionTypingServices);
- expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker);
- expressionTypingComponents.setFunctionDescriptorResolver(functionDescriptorResolver);
- expressionTypingComponents.setGlobalContext(moduleContext);
- expressionTypingComponents.setLocalClassifierAnalyzer(localClassifierAnalyzer);
- expressionTypingComponents.setMultiDeclarationResolver(multiDeclarationResolver);
- expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap);
- expressionTypingComponents.setReflectionTypes(reflectionTypes);
- expressionTypingComponents.setSymbolUsageValidator(symbolUsageValidator);
- expressionTypingComponents.setTypeResolver(typeResolver);
- expressionTypingComponents.setValueParameterResolver(valueParameterResolver);
-
- callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
-
- descriptorResolver.setAnnotationResolver(annotationResolver);
- descriptorResolver.setBuiltIns(kotlinBuiltIns);
- descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- descriptorResolver.setExpressionTypingServices(expressionTypingServices);
- descriptorResolver.setStorageManager(storageManager);
- descriptorResolver.setTypeResolver(typeResolver);
-
- delegatedPropertyResolver.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns);
- delegatedPropertyResolver.setCallResolver(callResolver);
- delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
-
- qualifiedExpressionResolver.setSymbolUsageValidator(symbolUsageValidator);
-
- forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns);
- forLoopConventionsChecker.setFakeCallResolver(fakeCallResolver);
- forLoopConventionsChecker.setSymbolUsageValidator(symbolUsageValidator);
-
- candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
-
- jetImportsFactory.setProject(project);
-
- lazyDeclarationResolver.setDeclarationScopeProvider(declarationScopeProvider);
- lazyDeclarationResolver.setTopLevelDescriptorProvider(resolveSession);
-
- declarationScopeProvider.setFileScopeProvider(scopeProvider);
-
- scriptBodyResolver.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
-
- bodyResolver.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- bodyResolver.setAnnotationResolver(annotationResolver);
- bodyResolver.setCallResolver(callResolver);
- bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
- bodyResolver.setDeclarationsChecker(declarationsChecker);
- bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- bodyResolver.setExpressionTypingServices(expressionTypingServices);
- bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
- bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
- bodyResolver.setTrace(bindingTrace);
- bodyResolver.setValueParameterResolver(valueParameterResolver);
-
- controlFlowAnalyzer.setTrace(bindingTrace);
-
- declarationsChecker.setDescriptorResolver(descriptorResolver);
- declarationsChecker.setModifiersChecker(modifiersChecker);
- declarationsChecker.setTrace(bindingTrace);
-
- functionAnalyzerExtension.setTrace(bindingTrace);
-
- declarationResolver.setAnnotationResolver(annotationResolver);
- declarationResolver.setTrace(bindingTrace);
-
- overloadResolver.setTrace(bindingTrace);
-
- overrideResolver.setTrace(bindingTrace);
-
- deserializedDescriptorResolver.setComponents(deserializationComponentsForJava);
-
- javaClassFinder.initialize();
-
- javaLazyAnalyzerPostConstruct.postCreate();
-
- }
-
- @PreDestroy
- public void destroy() {
- }
-
- public ModuleContext getModuleContext() {
- return this.moduleContext;
- }
-
- public ResolveSession getResolveSession() {
- return this.resolveSession;
- }
-
- public LazyTopDownAnalyzer getLazyTopDownAnalyzer() {
- return this.lazyTopDownAnalyzer;
- }
-
- public LazyTopDownAnalyzerForTopLevel getLazyTopDownAnalyzerForTopLevel() {
- return this.lazyTopDownAnalyzerForTopLevel;
- }
-
- public JavaDescriptorResolver getJavaDescriptorResolver() {
- return this.javaDescriptorResolver;
- }
-
- public DeserializationComponentsForJava getDeserializationComponentsForJava() {
- return this.deserializationComponentsForJava;
- }
-
-}
diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/di/InjectorForTopDownAnalyzerForJvm.java b/compiler/frontend.java/src/org/jetbrains/kotlin/di/InjectorForTopDownAnalyzerForJvm.java
deleted file mode 100644
index 70c33ba7a82..00000000000
--- a/compiler/frontend.java/src/org/jetbrains/kotlin/di/InjectorForTopDownAnalyzerForJvm.java
+++ /dev/null
@@ -1,429 +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 org.jetbrains.kotlin.context.ModuleContext;
-import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
-import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
-import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
-import com.intellij.openapi.project.Project;
-import org.jetbrains.kotlin.storage.StorageManager;
-import org.jetbrains.kotlin.resolve.BindingTrace;
-import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory;
-import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
-import org.jetbrains.kotlin.resolve.lazy.ScopeProvider;
-import com.intellij.psi.search.GlobalSearchScope;
-import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer;
-import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzerForTopLevel;
-import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver;
-import org.jetbrains.kotlin.load.kotlin.DeserializationComponentsForJava;
-import org.jetbrains.kotlin.load.kotlin.JvmVirtualFileFinder;
-import org.jetbrains.kotlin.load.java.JavaClassFinderImpl;
-import org.jetbrains.kotlin.load.java.components.TraceBasedExternalSignatureResolver;
-import org.jetbrains.kotlin.load.java.components.LazyResolveBasedCache;
-import org.jetbrains.kotlin.load.java.components.TraceBasedErrorReporter;
-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.JavaLazyAnalyzerPostConstruct;
-import org.jetbrains.kotlin.load.java.JavaFlexibleTypeCapabilitiesProvider;
-import org.jetbrains.kotlin.load.kotlin.KotlinJvmCheckerProvider;
-import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator;
-import org.jetbrains.kotlin.resolve.AnnotationResolver;
-import org.jetbrains.kotlin.resolve.calls.CallResolver;
-import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingComponents;
-import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver;
-import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils;
-import org.jetbrains.kotlin.resolve.DescriptorResolver;
-import org.jetbrains.kotlin.resolve.DelegatedPropertyResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver;
-import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver;
-import org.jetbrains.kotlin.context.TypeLazinessToken;
-import org.jetbrains.kotlin.types.DynamicTypesSettings;
-import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker;
-import org.jetbrains.kotlin.types.expressions.FakeCallResolver;
-import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver;
-import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer;
-import org.jetbrains.kotlin.types.expressions.MultiDeclarationResolver;
-import org.jetbrains.kotlin.builtins.ReflectionTypes;
-import org.jetbrains.kotlin.types.expressions.ValueParameterResolver;
-import org.jetbrains.kotlin.resolve.StatementFilter;
-import org.jetbrains.kotlin.resolve.calls.CallCompleter;
-import org.jetbrains.kotlin.resolve.calls.CandidateResolver;
-import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer;
-import org.jetbrains.kotlin.psi.JetImportsFactory;
-import org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver;
-import org.jetbrains.kotlin.resolve.lazy.DeclarationScopeProviderImpl;
-import org.jetbrains.kotlin.resolve.ScriptBodyResolver;
-import org.jetbrains.kotlin.resolve.lazy.ScopeProvider.AdditionalFileScopeProvider;
-import org.jetbrains.kotlin.resolve.BodyResolver;
-import org.jetbrains.kotlin.resolve.ControlFlowAnalyzer;
-import org.jetbrains.kotlin.resolve.DeclarationsChecker;
-import org.jetbrains.kotlin.resolve.ModifiersChecker;
-import org.jetbrains.kotlin.resolve.FunctionAnalyzerExtension;
-import org.jetbrains.kotlin.resolve.DeclarationResolver;
-import org.jetbrains.kotlin.resolve.OverloadResolver;
-import org.jetbrains.kotlin.resolve.OverrideResolver;
-import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker;
-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.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 InjectorForTopDownAnalyzerForJvm {
-
- private final ModuleContext moduleContext;
- private final KotlinBuiltIns kotlinBuiltIns;
- private final ModuleDescriptor moduleDescriptor;
- private final PlatformToKotlinClassMap platformToKotlinClassMap;
- private final Project project;
- private final StorageManager storageManager;
- private final BindingTrace bindingTrace;
- private final DeclarationProviderFactory declarationProviderFactory;
- private final ResolveSession resolveSession;
- private final ScopeProvider scopeProvider;
- private final GlobalSearchScope moduleContentScope;
- private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
- private final LazyTopDownAnalyzerForTopLevel lazyTopDownAnalyzerForTopLevel;
- private final JavaDescriptorResolver javaDescriptorResolver;
- private final DeserializationComponentsForJava deserializationComponentsForJava;
- private final JvmVirtualFileFinder jvmVirtualFileFinder;
- private final JavaClassFinderImpl javaClassFinder;
- private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
- private final LazyResolveBasedCache lazyResolveBasedCache;
- private final TraceBasedErrorReporter traceBasedErrorReporter;
- private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
- private final JavaPropertyInitializerEvaluatorImpl javaPropertyInitializerEvaluator;
- private final SamConversionResolverImpl samConversionResolver;
- private final JavaSourceElementFactoryImpl javaSourceElementFactory;
- private final SingleModuleClassResolver singleModuleClassResolver;
- private final JavaLazyAnalyzerPostConstruct javaLazyAnalyzerPostConstruct;
- private final JavaFlexibleTypeCapabilitiesProvider javaFlexibleTypeCapabilitiesProvider;
- private final KotlinJvmCheckerProvider kotlinJvmCheckerProvider;
- private final SymbolUsageValidator symbolUsageValidator;
- private final AnnotationResolver annotationResolver;
- private final CallResolver callResolver;
- private final ArgumentTypeResolver argumentTypeResolver;
- private final ExpressionTypingServices expressionTypingServices;
- private final ExpressionTypingComponents expressionTypingComponents;
- private final CallExpressionResolver callExpressionResolver;
- private final ControlStructureTypingUtils controlStructureTypingUtils;
- private final DescriptorResolver descriptorResolver;
- private final DelegatedPropertyResolver delegatedPropertyResolver;
- private final TypeResolver typeResolver;
- private final QualifiedExpressionResolver qualifiedExpressionResolver;
- private final TypeLazinessToken typeLazinessToken;
- private final DynamicTypesSettings dynamicTypesSettings;
- private final ForLoopConventionsChecker forLoopConventionsChecker;
- private final FakeCallResolver fakeCallResolver;
- private final FunctionDescriptorResolver functionDescriptorResolver;
- private final LocalClassifierAnalyzer localClassifierAnalyzer;
- private final MultiDeclarationResolver multiDeclarationResolver;
- private final ReflectionTypes reflectionTypes;
- private final ValueParameterResolver valueParameterResolver;
- private final StatementFilter statementFilter;
- private final CallCompleter callCompleter;
- private final CandidateResolver candidateResolver;
- private final TaskPrioritizer taskPrioritizer;
- private final JetImportsFactory jetImportsFactory;
- private final LazyDeclarationResolver lazyDeclarationResolver;
- private final DeclarationScopeProviderImpl declarationScopeProvider;
- private final ScriptBodyResolver scriptBodyResolver;
- private final AdditionalFileScopeProvider additionalFileScopeProvider;
- private final BodyResolver bodyResolver;
- private final ControlFlowAnalyzer controlFlowAnalyzer;
- private final DeclarationsChecker declarationsChecker;
- private final ModifiersChecker modifiersChecker;
- private final FunctionAnalyzerExtension functionAnalyzerExtension;
- private final DeclarationResolver declarationResolver;
- private final OverloadResolver overloadResolver;
- private final OverrideResolver overrideResolver;
- private final VarianceChecker varianceChecker;
- private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
- private final GlobalJavaResolverContext globalJavaResolverContext;
- private final DeserializedDescriptorResolver deserializedDescriptorResolver;
- private final JavaClassDataFinder javaClassDataFinder;
- private final BinaryClassAnnotationAndConstantLoaderImpl binaryClassAnnotationAndConstantLoader;
-
- public InjectorForTopDownAnalyzerForJvm(
- @NotNull ModuleContext moduleContext,
- @NotNull BindingTrace bindingTrace,
- @NotNull DeclarationProviderFactory declarationProviderFactory,
- @NotNull GlobalSearchScope moduleContentScope
- ) {
- this.moduleContext = moduleContext;
- this.kotlinBuiltIns = moduleContext.getBuiltIns();
- this.moduleDescriptor = moduleContext.getModule();
- this.platformToKotlinClassMap = moduleContext.getPlatformToKotlinClassMap();
- this.project = moduleContext.getProject();
- this.storageManager = moduleContext.getStorageManager();
- this.bindingTrace = bindingTrace;
- this.declarationProviderFactory = declarationProviderFactory;
- this.resolveSession = new ResolveSession(project, getModuleContext(), moduleDescriptor, declarationProviderFactory, bindingTrace);
- this.scopeProvider = new ScopeProvider(getResolveSession());
- this.moduleContentScope = moduleContentScope;
- this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
- this.lazyTopDownAnalyzerForTopLevel = new LazyTopDownAnalyzerForTopLevel();
- this.javaClassFinder = new JavaClassFinderImpl();
- this.jvmVirtualFileFinder = org.jetbrains.kotlin.load.kotlin.JvmVirtualFileFinderFactory.SERVICE.getInstance(project).create(moduleContentScope);
- this.traceBasedErrorReporter = new TraceBasedErrorReporter();
- this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(traceBasedErrorReporter);
- this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
- this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
- this.lazyResolveBasedCache = new LazyResolveBasedCache();
- this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl();
- this.samConversionResolver = SamConversionResolverImpl.INSTANCE$;
- this.javaSourceElementFactory = new JavaSourceElementFactoryImpl();
- this.singleModuleClassResolver = new SingleModuleClassResolver();
- this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, javaClassFinder, jvmVirtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, lazyResolveBasedCache, javaPropertyInitializerEvaluator, samConversionResolver, javaSourceElementFactory, singleModuleClassResolver);
- this.reflectionTypes = new ReflectionTypes(moduleDescriptor);
- this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, moduleDescriptor, reflectionTypes);
- this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, moduleDescriptor);
- this.javaClassDataFinder = new JavaClassDataFinder(jvmVirtualFileFinder, deserializedDescriptorResolver);
- this.binaryClassAnnotationAndConstantLoader = new BinaryClassAnnotationAndConstantLoaderImpl(moduleDescriptor, storageManager, jvmVirtualFileFinder, traceBasedErrorReporter);
- this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, moduleDescriptor, javaClassDataFinder, binaryClassAnnotationAndConstantLoader, lazyJavaPackageFragmentProvider);
- this.javaLazyAnalyzerPostConstruct = new JavaLazyAnalyzerPostConstruct();
- this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider();
- this.kotlinJvmCheckerProvider = KotlinJvmCheckerProvider.INSTANCE$;
- this.symbolUsageValidator = kotlinJvmCheckerProvider.getSymbolUsageValidator();
- this.annotationResolver = new AnnotationResolver();
- this.callResolver = new CallResolver();
- this.argumentTypeResolver = new ArgumentTypeResolver();
- this.expressionTypingComponents = new ExpressionTypingComponents();
- this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents);
- this.callExpressionResolver = new CallExpressionResolver(callResolver, kotlinBuiltIns);
- this.controlStructureTypingUtils = new ControlStructureTypingUtils(callResolver);
- this.descriptorResolver = new DescriptorResolver();
- this.delegatedPropertyResolver = new DelegatedPropertyResolver();
- this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
- this.typeLazinessToken = new TypeLazinessToken();
- this.dynamicTypesSettings = new DynamicTypesSettings();
- this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, moduleDescriptor, javaFlexibleTypeCapabilitiesProvider, storageManager, typeLazinessToken, dynamicTypesSettings);
- this.forLoopConventionsChecker = new ForLoopConventionsChecker();
- this.fakeCallResolver = new FakeCallResolver(project, callResolver);
- this.functionDescriptorResolver = new FunctionDescriptorResolver(typeResolver, descriptorResolver, annotationResolver, storageManager, expressionTypingServices, kotlinBuiltIns);
- this.localClassifierAnalyzer = new LocalClassifierAnalyzer(descriptorResolver, functionDescriptorResolver, typeResolver, annotationResolver);
- this.multiDeclarationResolver = new MultiDeclarationResolver(fakeCallResolver, descriptorResolver, typeResolver, symbolUsageValidator);
- this.valueParameterResolver = new ValueParameterResolver(kotlinJvmCheckerProvider, expressionTypingServices);
- this.statementFilter = new StatementFilter();
- this.candidateResolver = new CandidateResolver();
- this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver);
- this.taskPrioritizer = new TaskPrioritizer(storageManager);
- this.jetImportsFactory = new JetImportsFactory();
- this.lazyDeclarationResolver = new LazyDeclarationResolver(getModuleContext(), bindingTrace);
- this.declarationScopeProvider = new DeclarationScopeProviderImpl(lazyDeclarationResolver);
- this.scriptBodyResolver = new ScriptBodyResolver();
- this.additionalFileScopeProvider = new AdditionalFileScopeProvider();
- this.bodyResolver = new BodyResolver();
- this.controlFlowAnalyzer = new ControlFlowAnalyzer();
- this.declarationsChecker = new DeclarationsChecker();
- this.modifiersChecker = new ModifiersChecker(bindingTrace, kotlinJvmCheckerProvider);
- this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
- this.declarationResolver = new DeclarationResolver();
- this.overloadResolver = new OverloadResolver();
- this.overrideResolver = new OverrideResolver();
- this.varianceChecker = new VarianceChecker(bindingTrace);
-
- this.resolveSession.setAnnotationResolve(annotationResolver);
- this.resolveSession.setDescriptorResolver(descriptorResolver);
- this.resolveSession.setFunctionDescriptorResolver(functionDescriptorResolver);
- this.resolveSession.setJetImportFactory(jetImportsFactory);
- this.resolveSession.setLazyDeclarationResolver(lazyDeclarationResolver);
- this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
- this.resolveSession.setScopeProvider(scopeProvider);
- this.resolveSession.setScriptBodyResolver(scriptBodyResolver);
- this.resolveSession.setTypeResolver(typeResolver);
-
- scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
- scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
-
- this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
- this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
- this.lazyTopDownAnalyzer.setDeclarationScopeProvider(declarationScopeProvider);
- this.lazyTopDownAnalyzer.setFileScopeProvider(scopeProvider);
- this.lazyTopDownAnalyzer.setLazyDeclarationResolver(lazyDeclarationResolver);
- this.lazyTopDownAnalyzer.setModuleDescriptor(moduleDescriptor);
- this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
- this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
- this.lazyTopDownAnalyzer.setTopLevelDescriptorProvider(resolveSession);
- this.lazyTopDownAnalyzer.setTrace(bindingTrace);
- this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
-
- this.lazyTopDownAnalyzerForTopLevel.setKotlinCodeAnalyzer(resolveSession);
- this.lazyTopDownAnalyzerForTopLevel.setLazyTopDownAnalyzer(lazyTopDownAnalyzer);
-
- javaClassFinder.setComponentPostConstruct(javaLazyAnalyzerPostConstruct);
- javaClassFinder.setProject(project);
- javaClassFinder.setScope(moduleContentScope);
-
- traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
- traceBasedExternalSignatureResolver.setProject(project);
- traceBasedExternalSignatureResolver.setTrace(bindingTrace);
-
- lazyResolveBasedCache.setSession(resolveSession);
-
- traceBasedErrorReporter.setTrace(bindingTrace);
-
- singleModuleClassResolver.setResolver(javaDescriptorResolver);
-
- javaLazyAnalyzerPostConstruct.setCodeAnalyzer(resolveSession);
- javaLazyAnalyzerPostConstruct.setProject(project);
- javaLazyAnalyzerPostConstruct.setTrace(bindingTrace);
-
- annotationResolver.setCallResolver(callResolver);
- annotationResolver.setStorageManager(storageManager);
- annotationResolver.setTypeResolver(typeResolver);
-
- callResolver.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- callResolver.setArgumentTypeResolver(argumentTypeResolver);
- callResolver.setCallCompleter(callCompleter);
- callResolver.setCandidateResolver(candidateResolver);
- callResolver.setExpressionTypingServices(expressionTypingServices);
- callResolver.setTaskPrioritizer(taskPrioritizer);
- callResolver.setTypeResolver(typeResolver);
-
- argumentTypeResolver.setBuiltIns(kotlinBuiltIns);
- argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
- argumentTypeResolver.setTypeResolver(typeResolver);
-
- expressionTypingServices.setStatementFilter(statementFilter);
-
- expressionTypingComponents.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- expressionTypingComponents.setAnnotationResolver(annotationResolver);
- expressionTypingComponents.setBuiltIns(kotlinBuiltIns);
- expressionTypingComponents.setCallExpressionResolver(callExpressionResolver);
- expressionTypingComponents.setCallResolver(callResolver);
- expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils);
- expressionTypingComponents.setDescriptorResolver(descriptorResolver);
- expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings);
- expressionTypingComponents.setExpressionTypingServices(expressionTypingServices);
- expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker);
- expressionTypingComponents.setFunctionDescriptorResolver(functionDescriptorResolver);
- expressionTypingComponents.setGlobalContext(moduleContext);
- expressionTypingComponents.setLocalClassifierAnalyzer(localClassifierAnalyzer);
- expressionTypingComponents.setMultiDeclarationResolver(multiDeclarationResolver);
- expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap);
- expressionTypingComponents.setReflectionTypes(reflectionTypes);
- expressionTypingComponents.setSymbolUsageValidator(symbolUsageValidator);
- expressionTypingComponents.setTypeResolver(typeResolver);
- expressionTypingComponents.setValueParameterResolver(valueParameterResolver);
-
- callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
-
- descriptorResolver.setAnnotationResolver(annotationResolver);
- descriptorResolver.setBuiltIns(kotlinBuiltIns);
- descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- descriptorResolver.setExpressionTypingServices(expressionTypingServices);
- descriptorResolver.setStorageManager(storageManager);
- descriptorResolver.setTypeResolver(typeResolver);
-
- delegatedPropertyResolver.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns);
- delegatedPropertyResolver.setCallResolver(callResolver);
- delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
-
- qualifiedExpressionResolver.setSymbolUsageValidator(symbolUsageValidator);
-
- forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns);
- forLoopConventionsChecker.setFakeCallResolver(fakeCallResolver);
- forLoopConventionsChecker.setSymbolUsageValidator(symbolUsageValidator);
-
- candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
-
- jetImportsFactory.setProject(project);
-
- lazyDeclarationResolver.setDeclarationScopeProvider(declarationScopeProvider);
- lazyDeclarationResolver.setTopLevelDescriptorProvider(resolveSession);
-
- declarationScopeProvider.setFileScopeProvider(scopeProvider);
-
- scriptBodyResolver.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
-
- bodyResolver.setAdditionalCheckerProvider(kotlinJvmCheckerProvider);
- bodyResolver.setAnnotationResolver(annotationResolver);
- bodyResolver.setCallResolver(callResolver);
- bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
- bodyResolver.setDeclarationsChecker(declarationsChecker);
- bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- bodyResolver.setExpressionTypingServices(expressionTypingServices);
- bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
- bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
- bodyResolver.setTrace(bindingTrace);
- bodyResolver.setValueParameterResolver(valueParameterResolver);
-
- controlFlowAnalyzer.setTrace(bindingTrace);
-
- declarationsChecker.setDescriptorResolver(descriptorResolver);
- declarationsChecker.setModifiersChecker(modifiersChecker);
- declarationsChecker.setTrace(bindingTrace);
-
- functionAnalyzerExtension.setTrace(bindingTrace);
-
- declarationResolver.setAnnotationResolver(annotationResolver);
- declarationResolver.setTrace(bindingTrace);
-
- overloadResolver.setTrace(bindingTrace);
-
- overrideResolver.setTrace(bindingTrace);
-
- deserializedDescriptorResolver.setComponents(deserializationComponentsForJava);
-
- javaClassFinder.initialize();
-
- javaLazyAnalyzerPostConstruct.postCreate();
-
- }
-
- @PreDestroy
- public void destroy() {
- }
-
- public ModuleContext getModuleContext() {
- return this.moduleContext;
- }
-
- public ResolveSession getResolveSession() {
- return this.resolveSession;
- }
-
- public LazyTopDownAnalyzer getLazyTopDownAnalyzer() {
- return this.lazyTopDownAnalyzer;
- }
-
- public LazyTopDownAnalyzerForTopLevel getLazyTopDownAnalyzerForTopLevel() {
- return this.lazyTopDownAnalyzerForTopLevel;
- }
-
- public JavaDescriptorResolver getJavaDescriptorResolver() {
- return this.javaDescriptorResolver;
- }
-
- public DeserializationComponentsForJava getDeserializationComponentsForJava() {
- return this.deserializationComponentsForJava;
- }
-
-}
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForBodyResolve.java b/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForBodyResolve.java
deleted file mode 100644
index 2d810c50049..00000000000
--- a/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForBodyResolve.java
+++ /dev/null
@@ -1,247 +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 org.jetbrains.kotlin.context.ModuleContext;
-import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
-import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
-import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
-import com.intellij.openapi.project.Project;
-import org.jetbrains.kotlin.storage.StorageManager;
-import org.jetbrains.kotlin.resolve.BindingTrace;
-import org.jetbrains.kotlin.resolve.AdditionalCheckerProvider;
-import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator;
-import org.jetbrains.kotlin.resolve.StatementFilter;
-import org.jetbrains.kotlin.resolve.BodyResolver;
-import org.jetbrains.kotlin.resolve.AnnotationResolver;
-import org.jetbrains.kotlin.resolve.calls.CallResolver;
-import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingComponents;
-import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver;
-import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils;
-import org.jetbrains.kotlin.resolve.DescriptorResolver;
-import org.jetbrains.kotlin.resolve.DelegatedPropertyResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver;
-import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider;
-import org.jetbrains.kotlin.context.TypeLazinessToken;
-import org.jetbrains.kotlin.types.DynamicTypesSettings;
-import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker;
-import org.jetbrains.kotlin.types.expressions.FakeCallResolver;
-import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver;
-import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer;
-import org.jetbrains.kotlin.types.expressions.MultiDeclarationResolver;
-import org.jetbrains.kotlin.builtins.ReflectionTypes;
-import org.jetbrains.kotlin.types.expressions.ValueParameterResolver;
-import org.jetbrains.kotlin.resolve.calls.CallCompleter;
-import org.jetbrains.kotlin.resolve.calls.CandidateResolver;
-import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer;
-import org.jetbrains.kotlin.resolve.ControlFlowAnalyzer;
-import org.jetbrains.kotlin.resolve.DeclarationsChecker;
-import org.jetbrains.kotlin.resolve.ModifiersChecker;
-import org.jetbrains.kotlin.resolve.FunctionAnalyzerExtension;
-import org.jetbrains.kotlin.resolve.ScriptBodyResolver;
-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 InjectorForBodyResolve {
-
- private final ModuleContext moduleContext;
- private final KotlinBuiltIns kotlinBuiltIns;
- private final ModuleDescriptor moduleDescriptor;
- private final PlatformToKotlinClassMap platformToKotlinClassMap;
- private final Project project;
- private final StorageManager storageManager;
- private final BindingTrace bindingTrace;
- private final AdditionalCheckerProvider additionalCheckerProvider;
- private final SymbolUsageValidator symbolUsageValidator;
- private final StatementFilter statementFilter;
- private final BodyResolver bodyResolver;
- private final AnnotationResolver annotationResolver;
- private final CallResolver callResolver;
- private final ArgumentTypeResolver argumentTypeResolver;
- private final ExpressionTypingServices expressionTypingServices;
- private final ExpressionTypingComponents expressionTypingComponents;
- private final CallExpressionResolver callExpressionResolver;
- private final ControlStructureTypingUtils controlStructureTypingUtils;
- private final DescriptorResolver descriptorResolver;
- private final DelegatedPropertyResolver delegatedPropertyResolver;
- private final TypeResolver typeResolver;
- private final QualifiedExpressionResolver qualifiedExpressionResolver;
- private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider;
- private final TypeLazinessToken typeLazinessToken;
- private final DynamicTypesSettings dynamicTypesSettings;
- private final ForLoopConventionsChecker forLoopConventionsChecker;
- private final FakeCallResolver fakeCallResolver;
- private final FunctionDescriptorResolver functionDescriptorResolver;
- private final LocalClassifierAnalyzer localClassifierAnalyzer;
- private final MultiDeclarationResolver multiDeclarationResolver;
- private final ReflectionTypes reflectionTypes;
- private final ValueParameterResolver valueParameterResolver;
- private final CallCompleter callCompleter;
- private final CandidateResolver candidateResolver;
- private final TaskPrioritizer taskPrioritizer;
- private final ControlFlowAnalyzer controlFlowAnalyzer;
- private final DeclarationsChecker declarationsChecker;
- private final ModifiersChecker modifiersChecker;
- private final FunctionAnalyzerExtension functionAnalyzerExtension;
- private final ScriptBodyResolver scriptBodyResolver;
-
- public InjectorForBodyResolve(
- @NotNull ModuleContext moduleContext,
- @NotNull BindingTrace bindingTrace,
- @NotNull AdditionalCheckerProvider additionalCheckerProvider,
- @NotNull StatementFilter statementFilter
- ) {
- this.moduleContext = moduleContext;
- this.kotlinBuiltIns = moduleContext.getBuiltIns();
- this.moduleDescriptor = moduleContext.getModule();
- this.platformToKotlinClassMap = moduleContext.getPlatformToKotlinClassMap();
- this.project = moduleContext.getProject();
- this.storageManager = moduleContext.getStorageManager();
- this.bindingTrace = bindingTrace;
- this.additionalCheckerProvider = additionalCheckerProvider;
- this.symbolUsageValidator = additionalCheckerProvider.getSymbolUsageValidator();
- this.statementFilter = statementFilter;
- this.bodyResolver = new BodyResolver();
- this.annotationResolver = new AnnotationResolver();
- this.callResolver = new CallResolver();
- this.argumentTypeResolver = new ArgumentTypeResolver();
- this.expressionTypingComponents = new ExpressionTypingComponents();
- this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents);
- this.callExpressionResolver = new CallExpressionResolver(callResolver, kotlinBuiltIns);
- this.controlStructureTypingUtils = new ControlStructureTypingUtils(callResolver);
- this.descriptorResolver = new DescriptorResolver();
- this.delegatedPropertyResolver = new DelegatedPropertyResolver();
- this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
- this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider();
- this.typeLazinessToken = new TypeLazinessToken();
- this.dynamicTypesSettings = new DynamicTypesSettings();
- this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, moduleDescriptor, flexibleTypeCapabilitiesProvider, storageManager, typeLazinessToken, dynamicTypesSettings);
- this.forLoopConventionsChecker = new ForLoopConventionsChecker();
- this.fakeCallResolver = new FakeCallResolver(project, callResolver);
- this.functionDescriptorResolver = new FunctionDescriptorResolver(typeResolver, descriptorResolver, annotationResolver, storageManager, expressionTypingServices, kotlinBuiltIns);
- this.localClassifierAnalyzer = new LocalClassifierAnalyzer(descriptorResolver, functionDescriptorResolver, typeResolver, annotationResolver);
- this.multiDeclarationResolver = new MultiDeclarationResolver(fakeCallResolver, descriptorResolver, typeResolver, symbolUsageValidator);
- this.reflectionTypes = new ReflectionTypes(moduleDescriptor);
- this.valueParameterResolver = new ValueParameterResolver(additionalCheckerProvider, expressionTypingServices);
- this.candidateResolver = new CandidateResolver();
- this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver);
- this.taskPrioritizer = new TaskPrioritizer(storageManager);
- this.controlFlowAnalyzer = new ControlFlowAnalyzer();
- this.declarationsChecker = new DeclarationsChecker();
- this.modifiersChecker = new ModifiersChecker(bindingTrace, additionalCheckerProvider);
- this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
- this.scriptBodyResolver = new ScriptBodyResolver();
-
- this.bodyResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- this.bodyResolver.setAnnotationResolver(annotationResolver);
- this.bodyResolver.setCallResolver(callResolver);
- this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
- this.bodyResolver.setDeclarationsChecker(declarationsChecker);
- this.bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
- this.bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
- this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
- this.bodyResolver.setTrace(bindingTrace);
- this.bodyResolver.setValueParameterResolver(valueParameterResolver);
-
- annotationResolver.setCallResolver(callResolver);
- annotationResolver.setStorageManager(storageManager);
- annotationResolver.setTypeResolver(typeResolver);
-
- callResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- callResolver.setArgumentTypeResolver(argumentTypeResolver);
- callResolver.setCallCompleter(callCompleter);
- callResolver.setCandidateResolver(candidateResolver);
- callResolver.setExpressionTypingServices(expressionTypingServices);
- callResolver.setTaskPrioritizer(taskPrioritizer);
- callResolver.setTypeResolver(typeResolver);
-
- argumentTypeResolver.setBuiltIns(kotlinBuiltIns);
- argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
- argumentTypeResolver.setTypeResolver(typeResolver);
-
- expressionTypingServices.setStatementFilter(statementFilter);
-
- expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider);
- expressionTypingComponents.setAnnotationResolver(annotationResolver);
- expressionTypingComponents.setBuiltIns(kotlinBuiltIns);
- expressionTypingComponents.setCallExpressionResolver(callExpressionResolver);
- expressionTypingComponents.setCallResolver(callResolver);
- expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils);
- expressionTypingComponents.setDescriptorResolver(descriptorResolver);
- expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings);
- expressionTypingComponents.setExpressionTypingServices(expressionTypingServices);
- expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker);
- expressionTypingComponents.setFunctionDescriptorResolver(functionDescriptorResolver);
- expressionTypingComponents.setGlobalContext(moduleContext);
- expressionTypingComponents.setLocalClassifierAnalyzer(localClassifierAnalyzer);
- expressionTypingComponents.setMultiDeclarationResolver(multiDeclarationResolver);
- expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap);
- expressionTypingComponents.setReflectionTypes(reflectionTypes);
- expressionTypingComponents.setSymbolUsageValidator(symbolUsageValidator);
- expressionTypingComponents.setTypeResolver(typeResolver);
- expressionTypingComponents.setValueParameterResolver(valueParameterResolver);
-
- callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
-
- descriptorResolver.setAnnotationResolver(annotationResolver);
- descriptorResolver.setBuiltIns(kotlinBuiltIns);
- descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- descriptorResolver.setExpressionTypingServices(expressionTypingServices);
- descriptorResolver.setStorageManager(storageManager);
- descriptorResolver.setTypeResolver(typeResolver);
-
- delegatedPropertyResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns);
- delegatedPropertyResolver.setCallResolver(callResolver);
- delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
-
- qualifiedExpressionResolver.setSymbolUsageValidator(symbolUsageValidator);
-
- forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns);
- forLoopConventionsChecker.setFakeCallResolver(fakeCallResolver);
- forLoopConventionsChecker.setSymbolUsageValidator(symbolUsageValidator);
-
- candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
-
- controlFlowAnalyzer.setTrace(bindingTrace);
-
- declarationsChecker.setDescriptorResolver(descriptorResolver);
- declarationsChecker.setModifiersChecker(modifiersChecker);
- declarationsChecker.setTrace(bindingTrace);
-
- functionAnalyzerExtension.setTrace(bindingTrace);
-
- scriptBodyResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
-
- }
-
- @PreDestroy
- public void destroy() {
- }
-
- public BodyResolver getBodyResolver() {
- return this.bodyResolver;
- }
-
-}
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForLazyBodyResolve.java b/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForLazyBodyResolve.java
deleted file mode 100644
index 180fbc77c1a..00000000000
--- a/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForLazyBodyResolve.java
+++ /dev/null
@@ -1,306 +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 org.jetbrains.kotlin.context.ModuleContext;
-import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
-import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
-import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
-import com.intellij.openapi.project.Project;
-import org.jetbrains.kotlin.storage.StorageManager;
-import org.jetbrains.kotlin.resolve.lazy.KotlinCodeAnalyzer;
-import org.jetbrains.kotlin.resolve.lazy.FileScopeProvider;
-import org.jetbrains.kotlin.resolve.BindingTrace;
-import org.jetbrains.kotlin.resolve.AdditionalCheckerProvider;
-import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator;
-import org.jetbrains.kotlin.types.DynamicTypesSettings;
-import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzerForTopLevel;
-import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer;
-import org.jetbrains.kotlin.resolve.BodyResolver;
-import org.jetbrains.kotlin.resolve.AnnotationResolver;
-import org.jetbrains.kotlin.resolve.calls.CallResolver;
-import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingComponents;
-import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver;
-import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils;
-import org.jetbrains.kotlin.resolve.DescriptorResolver;
-import org.jetbrains.kotlin.resolve.DelegatedPropertyResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver;
-import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider;
-import org.jetbrains.kotlin.context.TypeLazinessToken;
-import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker;
-import org.jetbrains.kotlin.types.expressions.FakeCallResolver;
-import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver;
-import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer;
-import org.jetbrains.kotlin.types.expressions.MultiDeclarationResolver;
-import org.jetbrains.kotlin.builtins.ReflectionTypes;
-import org.jetbrains.kotlin.types.expressions.ValueParameterResolver;
-import org.jetbrains.kotlin.resolve.StatementFilter;
-import org.jetbrains.kotlin.resolve.calls.CallCompleter;
-import org.jetbrains.kotlin.resolve.calls.CandidateResolver;
-import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer;
-import org.jetbrains.kotlin.resolve.ControlFlowAnalyzer;
-import org.jetbrains.kotlin.resolve.DeclarationsChecker;
-import org.jetbrains.kotlin.resolve.ModifiersChecker;
-import org.jetbrains.kotlin.resolve.FunctionAnalyzerExtension;
-import org.jetbrains.kotlin.resolve.ScriptBodyResolver;
-import org.jetbrains.kotlin.resolve.DeclarationResolver;
-import org.jetbrains.kotlin.resolve.lazy.DeclarationScopeProviderImpl;
-import org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver;
-import org.jetbrains.kotlin.resolve.OverloadResolver;
-import org.jetbrains.kotlin.resolve.OverrideResolver;
-import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker;
-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 InjectorForLazyBodyResolve {
-
- private final ModuleContext moduleContext;
- private final KotlinBuiltIns kotlinBuiltIns;
- private final ModuleDescriptor moduleDescriptor;
- private final PlatformToKotlinClassMap platformToKotlinClassMap;
- private final Project project;
- private final StorageManager storageManager;
- private final KotlinCodeAnalyzer analyzer;
- private final FileScopeProvider fileScopeProvider;
- private final BindingTrace bindingTrace;
- private final AdditionalCheckerProvider additionalCheckerProvider;
- private final SymbolUsageValidator symbolUsageValidator;
- private final DynamicTypesSettings dynamicTypesSettings;
- private final LazyTopDownAnalyzerForTopLevel lazyTopDownAnalyzerForTopLevel;
- private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
- private final BodyResolver bodyResolver;
- private final AnnotationResolver annotationResolver;
- private final CallResolver callResolver;
- private final ArgumentTypeResolver argumentTypeResolver;
- private final ExpressionTypingServices expressionTypingServices;
- private final ExpressionTypingComponents expressionTypingComponents;
- private final CallExpressionResolver callExpressionResolver;
- private final ControlStructureTypingUtils controlStructureTypingUtils;
- private final DescriptorResolver descriptorResolver;
- private final DelegatedPropertyResolver delegatedPropertyResolver;
- private final TypeResolver typeResolver;
- private final QualifiedExpressionResolver qualifiedExpressionResolver;
- private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider;
- private final TypeLazinessToken typeLazinessToken;
- private final ForLoopConventionsChecker forLoopConventionsChecker;
- private final FakeCallResolver fakeCallResolver;
- private final FunctionDescriptorResolver functionDescriptorResolver;
- private final LocalClassifierAnalyzer localClassifierAnalyzer;
- private final MultiDeclarationResolver multiDeclarationResolver;
- private final ReflectionTypes reflectionTypes;
- private final ValueParameterResolver valueParameterResolver;
- private final StatementFilter statementFilter;
- private final CallCompleter callCompleter;
- private final CandidateResolver candidateResolver;
- private final TaskPrioritizer taskPrioritizer;
- private final ControlFlowAnalyzer controlFlowAnalyzer;
- private final DeclarationsChecker declarationsChecker;
- private final ModifiersChecker modifiersChecker;
- private final FunctionAnalyzerExtension functionAnalyzerExtension;
- private final ScriptBodyResolver scriptBodyResolver;
- private final DeclarationResolver declarationResolver;
- private final DeclarationScopeProviderImpl declarationScopeProvider;
- private final LazyDeclarationResolver lazyDeclarationResolver;
- private final OverloadResolver overloadResolver;
- private final OverrideResolver overrideResolver;
- private final VarianceChecker varianceChecker;
-
- public InjectorForLazyBodyResolve(
- @NotNull ModuleContext moduleContext,
- @NotNull KotlinCodeAnalyzer analyzer,
- @NotNull FileScopeProvider fileScopeProvider,
- @NotNull BindingTrace bindingTrace,
- @NotNull AdditionalCheckerProvider additionalCheckerProvider,
- @NotNull DynamicTypesSettings dynamicTypesSettings
- ) {
- this.moduleContext = moduleContext;
- this.kotlinBuiltIns = moduleContext.getBuiltIns();
- this.moduleDescriptor = moduleContext.getModule();
- this.platformToKotlinClassMap = moduleContext.getPlatformToKotlinClassMap();
- this.project = moduleContext.getProject();
- this.storageManager = moduleContext.getStorageManager();
- this.analyzer = analyzer;
- this.fileScopeProvider = fileScopeProvider;
- this.bindingTrace = bindingTrace;
- this.additionalCheckerProvider = additionalCheckerProvider;
- this.symbolUsageValidator = additionalCheckerProvider.getSymbolUsageValidator();
- this.dynamicTypesSettings = dynamicTypesSettings;
- this.lazyTopDownAnalyzerForTopLevel = new LazyTopDownAnalyzerForTopLevel();
- this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
- this.bodyResolver = new BodyResolver();
- this.annotationResolver = new AnnotationResolver();
- this.callResolver = new CallResolver();
- this.argumentTypeResolver = new ArgumentTypeResolver();
- this.expressionTypingComponents = new ExpressionTypingComponents();
- this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents);
- this.callExpressionResolver = new CallExpressionResolver(callResolver, kotlinBuiltIns);
- this.controlStructureTypingUtils = new ControlStructureTypingUtils(callResolver);
- this.descriptorResolver = new DescriptorResolver();
- this.delegatedPropertyResolver = new DelegatedPropertyResolver();
- this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
- this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider();
- this.typeLazinessToken = new TypeLazinessToken();
- this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, moduleDescriptor, flexibleTypeCapabilitiesProvider, storageManager, typeLazinessToken, dynamicTypesSettings);
- this.forLoopConventionsChecker = new ForLoopConventionsChecker();
- this.fakeCallResolver = new FakeCallResolver(project, callResolver);
- this.functionDescriptorResolver = new FunctionDescriptorResolver(typeResolver, descriptorResolver, annotationResolver, storageManager, expressionTypingServices, kotlinBuiltIns);
- this.localClassifierAnalyzer = new LocalClassifierAnalyzer(descriptorResolver, functionDescriptorResolver, typeResolver, annotationResolver);
- this.multiDeclarationResolver = new MultiDeclarationResolver(fakeCallResolver, descriptorResolver, typeResolver, symbolUsageValidator);
- this.reflectionTypes = new ReflectionTypes(moduleDescriptor);
- this.valueParameterResolver = new ValueParameterResolver(additionalCheckerProvider, expressionTypingServices);
- this.statementFilter = new StatementFilter();
- this.candidateResolver = new CandidateResolver();
- this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver);
- this.taskPrioritizer = new TaskPrioritizer(storageManager);
- this.controlFlowAnalyzer = new ControlFlowAnalyzer();
- this.declarationsChecker = new DeclarationsChecker();
- this.modifiersChecker = new ModifiersChecker(bindingTrace, additionalCheckerProvider);
- this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
- this.scriptBodyResolver = new ScriptBodyResolver();
- this.declarationResolver = new DeclarationResolver();
- this.lazyDeclarationResolver = new LazyDeclarationResolver(moduleContext, bindingTrace);
- this.declarationScopeProvider = new DeclarationScopeProviderImpl(lazyDeclarationResolver);
- this.overloadResolver = new OverloadResolver();
- this.overrideResolver = new OverrideResolver();
- this.varianceChecker = new VarianceChecker(bindingTrace);
-
- this.lazyTopDownAnalyzerForTopLevel.setKotlinCodeAnalyzer(analyzer);
- this.lazyTopDownAnalyzerForTopLevel.setLazyTopDownAnalyzer(lazyTopDownAnalyzer);
-
- lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
- lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
- lazyTopDownAnalyzer.setDeclarationScopeProvider(declarationScopeProvider);
- lazyTopDownAnalyzer.setFileScopeProvider(fileScopeProvider);
- lazyTopDownAnalyzer.setLazyDeclarationResolver(lazyDeclarationResolver);
- lazyTopDownAnalyzer.setModuleDescriptor(moduleDescriptor);
- lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
- lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
- lazyTopDownAnalyzer.setTopLevelDescriptorProvider(analyzer);
- lazyTopDownAnalyzer.setTrace(bindingTrace);
- lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
-
- bodyResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- bodyResolver.setAnnotationResolver(annotationResolver);
- bodyResolver.setCallResolver(callResolver);
- bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
- bodyResolver.setDeclarationsChecker(declarationsChecker);
- bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- bodyResolver.setExpressionTypingServices(expressionTypingServices);
- bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
- bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
- bodyResolver.setTrace(bindingTrace);
- bodyResolver.setValueParameterResolver(valueParameterResolver);
-
- annotationResolver.setCallResolver(callResolver);
- annotationResolver.setStorageManager(storageManager);
- annotationResolver.setTypeResolver(typeResolver);
-
- callResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- callResolver.setArgumentTypeResolver(argumentTypeResolver);
- callResolver.setCallCompleter(callCompleter);
- callResolver.setCandidateResolver(candidateResolver);
- callResolver.setExpressionTypingServices(expressionTypingServices);
- callResolver.setTaskPrioritizer(taskPrioritizer);
- callResolver.setTypeResolver(typeResolver);
-
- argumentTypeResolver.setBuiltIns(kotlinBuiltIns);
- argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
- argumentTypeResolver.setTypeResolver(typeResolver);
-
- expressionTypingServices.setStatementFilter(statementFilter);
-
- expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider);
- expressionTypingComponents.setAnnotationResolver(annotationResolver);
- expressionTypingComponents.setBuiltIns(kotlinBuiltIns);
- expressionTypingComponents.setCallExpressionResolver(callExpressionResolver);
- expressionTypingComponents.setCallResolver(callResolver);
- expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils);
- expressionTypingComponents.setDescriptorResolver(descriptorResolver);
- expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings);
- expressionTypingComponents.setExpressionTypingServices(expressionTypingServices);
- expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker);
- expressionTypingComponents.setFunctionDescriptorResolver(functionDescriptorResolver);
- expressionTypingComponents.setGlobalContext(moduleContext);
- expressionTypingComponents.setLocalClassifierAnalyzer(localClassifierAnalyzer);
- expressionTypingComponents.setMultiDeclarationResolver(multiDeclarationResolver);
- expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap);
- expressionTypingComponents.setReflectionTypes(reflectionTypes);
- expressionTypingComponents.setSymbolUsageValidator(symbolUsageValidator);
- expressionTypingComponents.setTypeResolver(typeResolver);
- expressionTypingComponents.setValueParameterResolver(valueParameterResolver);
-
- callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
-
- descriptorResolver.setAnnotationResolver(annotationResolver);
- descriptorResolver.setBuiltIns(kotlinBuiltIns);
- descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- descriptorResolver.setExpressionTypingServices(expressionTypingServices);
- descriptorResolver.setStorageManager(storageManager);
- descriptorResolver.setTypeResolver(typeResolver);
-
- delegatedPropertyResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns);
- delegatedPropertyResolver.setCallResolver(callResolver);
- delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
-
- qualifiedExpressionResolver.setSymbolUsageValidator(symbolUsageValidator);
-
- forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns);
- forLoopConventionsChecker.setFakeCallResolver(fakeCallResolver);
- forLoopConventionsChecker.setSymbolUsageValidator(symbolUsageValidator);
-
- candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
-
- controlFlowAnalyzer.setTrace(bindingTrace);
-
- declarationsChecker.setDescriptorResolver(descriptorResolver);
- declarationsChecker.setModifiersChecker(modifiersChecker);
- declarationsChecker.setTrace(bindingTrace);
-
- functionAnalyzerExtension.setTrace(bindingTrace);
-
- scriptBodyResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
-
- declarationResolver.setAnnotationResolver(annotationResolver);
- declarationResolver.setTrace(bindingTrace);
-
- declarationScopeProvider.setFileScopeProvider(fileScopeProvider);
-
- lazyDeclarationResolver.setDeclarationScopeProvider(declarationScopeProvider);
- lazyDeclarationResolver.setTopLevelDescriptorProvider(analyzer);
-
- overloadResolver.setTrace(bindingTrace);
-
- overrideResolver.setTrace(bindingTrace);
-
- }
-
- @PreDestroy
- public void destroy() {
- }
-
- public LazyTopDownAnalyzerForTopLevel getLazyTopDownAnalyzerForTopLevel() {
- return this.lazyTopDownAnalyzerForTopLevel;
- }
-
-}
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForLazyLocalClassifierAnalyzer.java b/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForLazyLocalClassifierAnalyzer.java
deleted file mode 100644
index 308c1176b7e..00000000000
--- a/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForLazyLocalClassifierAnalyzer.java
+++ /dev/null
@@ -1,302 +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 org.jetbrains.kotlin.context.ModuleContext;
-import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
-import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
-import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
-import com.intellij.openapi.project.Project;
-import org.jetbrains.kotlin.storage.StorageManager;
-import org.jetbrains.kotlin.resolve.BindingTrace;
-import org.jetbrains.kotlin.resolve.AdditionalCheckerProvider;
-import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator;
-import org.jetbrains.kotlin.types.DynamicTypesSettings;
-import org.jetbrains.kotlin.types.expressions.LocalClassDescriptorHolder;
-import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer;
-import org.jetbrains.kotlin.resolve.lazy.NoTopLevelDescriptorProvider;
-import org.jetbrains.kotlin.resolve.lazy.NoFileScopeProvider;
-import org.jetbrains.kotlin.types.expressions.DeclarationScopeProviderForLocalClassifierAnalyzer;
-import org.jetbrains.kotlin.types.expressions.LocalLazyDeclarationResolver;
-import org.jetbrains.kotlin.resolve.BodyResolver;
-import org.jetbrains.kotlin.resolve.AnnotationResolver;
-import org.jetbrains.kotlin.resolve.calls.CallResolver;
-import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingComponents;
-import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver;
-import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils;
-import org.jetbrains.kotlin.resolve.DescriptorResolver;
-import org.jetbrains.kotlin.resolve.DelegatedPropertyResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver;
-import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider;
-import org.jetbrains.kotlin.context.TypeLazinessToken;
-import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker;
-import org.jetbrains.kotlin.types.expressions.FakeCallResolver;
-import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver;
-import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer;
-import org.jetbrains.kotlin.types.expressions.MultiDeclarationResolver;
-import org.jetbrains.kotlin.builtins.ReflectionTypes;
-import org.jetbrains.kotlin.types.expressions.ValueParameterResolver;
-import org.jetbrains.kotlin.resolve.StatementFilter;
-import org.jetbrains.kotlin.resolve.calls.CallCompleter;
-import org.jetbrains.kotlin.resolve.calls.CandidateResolver;
-import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer;
-import org.jetbrains.kotlin.resolve.ControlFlowAnalyzer;
-import org.jetbrains.kotlin.resolve.DeclarationsChecker;
-import org.jetbrains.kotlin.resolve.ModifiersChecker;
-import org.jetbrains.kotlin.resolve.FunctionAnalyzerExtension;
-import org.jetbrains.kotlin.resolve.ScriptBodyResolver;
-import org.jetbrains.kotlin.resolve.DeclarationResolver;
-import org.jetbrains.kotlin.resolve.OverloadResolver;
-import org.jetbrains.kotlin.resolve.OverrideResolver;
-import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker;
-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 InjectorForLazyLocalClassifierAnalyzer {
-
- private final ModuleContext moduleContext;
- private final KotlinBuiltIns kotlinBuiltIns;
- private final ModuleDescriptor moduleDescriptor;
- private final PlatformToKotlinClassMap platformToKotlinClassMap;
- private final Project project;
- private final StorageManager storageManager;
- private final BindingTrace bindingTrace;
- private final AdditionalCheckerProvider additionalCheckerProvider;
- private final SymbolUsageValidator symbolUsageValidator;
- private final DynamicTypesSettings dynamicTypesSettings;
- private final LocalClassDescriptorHolder localClassDescriptorHolder;
- private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
- private final NoTopLevelDescriptorProvider noTopLevelDescriptorProvider;
- private final NoFileScopeProvider noFileScopeProvider;
- private final DeclarationScopeProviderForLocalClassifierAnalyzer declarationScopeProviderForLocalClassifierAnalyzer;
- private final LocalLazyDeclarationResolver localLazyDeclarationResolver;
- private final BodyResolver bodyResolver;
- private final AnnotationResolver annotationResolver;
- private final CallResolver callResolver;
- private final ArgumentTypeResolver argumentTypeResolver;
- private final ExpressionTypingServices expressionTypingServices;
- private final ExpressionTypingComponents expressionTypingComponents;
- private final CallExpressionResolver callExpressionResolver;
- private final ControlStructureTypingUtils controlStructureTypingUtils;
- private final DescriptorResolver descriptorResolver;
- private final DelegatedPropertyResolver delegatedPropertyResolver;
- private final TypeResolver typeResolver;
- private final QualifiedExpressionResolver qualifiedExpressionResolver;
- private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider;
- private final TypeLazinessToken typeLazinessToken;
- private final ForLoopConventionsChecker forLoopConventionsChecker;
- private final FakeCallResolver fakeCallResolver;
- private final FunctionDescriptorResolver functionDescriptorResolver;
- private final LocalClassifierAnalyzer localClassifierAnalyzer;
- private final MultiDeclarationResolver multiDeclarationResolver;
- private final ReflectionTypes reflectionTypes;
- private final ValueParameterResolver valueParameterResolver;
- private final StatementFilter statementFilter;
- private final CallCompleter callCompleter;
- private final CandidateResolver candidateResolver;
- private final TaskPrioritizer taskPrioritizer;
- private final ControlFlowAnalyzer controlFlowAnalyzer;
- private final DeclarationsChecker declarationsChecker;
- private final ModifiersChecker modifiersChecker;
- private final FunctionAnalyzerExtension functionAnalyzerExtension;
- private final ScriptBodyResolver scriptBodyResolver;
- private final DeclarationResolver declarationResolver;
- private final OverloadResolver overloadResolver;
- private final OverrideResolver overrideResolver;
- private final VarianceChecker varianceChecker;
-
- public InjectorForLazyLocalClassifierAnalyzer(
- @NotNull ModuleContext moduleContext,
- @NotNull BindingTrace bindingTrace,
- @NotNull AdditionalCheckerProvider additionalCheckerProvider,
- @NotNull DynamicTypesSettings dynamicTypesSettings,
- @NotNull LocalClassDescriptorHolder localClassDescriptorHolder
- ) {
- this.moduleContext = moduleContext;
- this.kotlinBuiltIns = moduleContext.getBuiltIns();
- this.moduleDescriptor = moduleContext.getModule();
- this.platformToKotlinClassMap = moduleContext.getPlatformToKotlinClassMap();
- this.project = moduleContext.getProject();
- this.storageManager = moduleContext.getStorageManager();
- this.bindingTrace = bindingTrace;
- this.additionalCheckerProvider = additionalCheckerProvider;
- this.symbolUsageValidator = additionalCheckerProvider.getSymbolUsageValidator();
- this.dynamicTypesSettings = dynamicTypesSettings;
- this.localClassDescriptorHolder = localClassDescriptorHolder;
- this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
- this.noTopLevelDescriptorProvider = NoTopLevelDescriptorProvider.INSTANCE$;
- this.noFileScopeProvider = NoFileScopeProvider.INSTANCE$;
- this.localLazyDeclarationResolver = new LocalLazyDeclarationResolver(moduleContext, bindingTrace, localClassDescriptorHolder);
- this.declarationScopeProviderForLocalClassifierAnalyzer = new DeclarationScopeProviderForLocalClassifierAnalyzer(localLazyDeclarationResolver, localClassDescriptorHolder);
- this.bodyResolver = new BodyResolver();
- this.annotationResolver = new AnnotationResolver();
- this.callResolver = new CallResolver();
- this.argumentTypeResolver = new ArgumentTypeResolver();
- this.expressionTypingComponents = new ExpressionTypingComponents();
- this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents);
- this.callExpressionResolver = new CallExpressionResolver(callResolver, kotlinBuiltIns);
- this.controlStructureTypingUtils = new ControlStructureTypingUtils(callResolver);
- this.descriptorResolver = new DescriptorResolver();
- this.delegatedPropertyResolver = new DelegatedPropertyResolver();
- this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
- this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider();
- this.typeLazinessToken = new TypeLazinessToken();
- this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, moduleDescriptor, flexibleTypeCapabilitiesProvider, storageManager, typeLazinessToken, dynamicTypesSettings);
- this.forLoopConventionsChecker = new ForLoopConventionsChecker();
- this.fakeCallResolver = new FakeCallResolver(project, callResolver);
- this.functionDescriptorResolver = new FunctionDescriptorResolver(typeResolver, descriptorResolver, annotationResolver, storageManager, expressionTypingServices, kotlinBuiltIns);
- this.localClassifierAnalyzer = new LocalClassifierAnalyzer(descriptorResolver, functionDescriptorResolver, typeResolver, annotationResolver);
- this.multiDeclarationResolver = new MultiDeclarationResolver(fakeCallResolver, descriptorResolver, typeResolver, symbolUsageValidator);
- this.reflectionTypes = new ReflectionTypes(moduleDescriptor);
- this.valueParameterResolver = new ValueParameterResolver(additionalCheckerProvider, expressionTypingServices);
- this.statementFilter = new StatementFilter();
- this.candidateResolver = new CandidateResolver();
- this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver);
- this.taskPrioritizer = new TaskPrioritizer(storageManager);
- this.controlFlowAnalyzer = new ControlFlowAnalyzer();
- this.declarationsChecker = new DeclarationsChecker();
- this.modifiersChecker = new ModifiersChecker(bindingTrace, additionalCheckerProvider);
- this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
- this.scriptBodyResolver = new ScriptBodyResolver();
- this.declarationResolver = new DeclarationResolver();
- this.overloadResolver = new OverloadResolver();
- this.overrideResolver = new OverrideResolver();
- this.varianceChecker = new VarianceChecker(bindingTrace);
-
- this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
- this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
- this.lazyTopDownAnalyzer.setDeclarationScopeProvider(declarationScopeProviderForLocalClassifierAnalyzer);
- this.lazyTopDownAnalyzer.setFileScopeProvider(noFileScopeProvider);
- this.lazyTopDownAnalyzer.setLazyDeclarationResolver(localLazyDeclarationResolver);
- this.lazyTopDownAnalyzer.setModuleDescriptor(moduleDescriptor);
- this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
- this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
- this.lazyTopDownAnalyzer.setTopLevelDescriptorProvider(noTopLevelDescriptorProvider);
- this.lazyTopDownAnalyzer.setTrace(bindingTrace);
- this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
-
- declarationScopeProviderForLocalClassifierAnalyzer.setFileScopeProvider(noFileScopeProvider);
-
- localLazyDeclarationResolver.setDeclarationScopeProvider(declarationScopeProviderForLocalClassifierAnalyzer);
- localLazyDeclarationResolver.setTopLevelDescriptorProvider(noTopLevelDescriptorProvider);
-
- bodyResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- bodyResolver.setAnnotationResolver(annotationResolver);
- bodyResolver.setCallResolver(callResolver);
- bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
- bodyResolver.setDeclarationsChecker(declarationsChecker);
- bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- bodyResolver.setExpressionTypingServices(expressionTypingServices);
- bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
- bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
- bodyResolver.setTrace(bindingTrace);
- bodyResolver.setValueParameterResolver(valueParameterResolver);
-
- annotationResolver.setCallResolver(callResolver);
- annotationResolver.setStorageManager(storageManager);
- annotationResolver.setTypeResolver(typeResolver);
-
- callResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- callResolver.setArgumentTypeResolver(argumentTypeResolver);
- callResolver.setCallCompleter(callCompleter);
- callResolver.setCandidateResolver(candidateResolver);
- callResolver.setExpressionTypingServices(expressionTypingServices);
- callResolver.setTaskPrioritizer(taskPrioritizer);
- callResolver.setTypeResolver(typeResolver);
-
- argumentTypeResolver.setBuiltIns(kotlinBuiltIns);
- argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
- argumentTypeResolver.setTypeResolver(typeResolver);
-
- expressionTypingServices.setStatementFilter(statementFilter);
-
- expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider);
- expressionTypingComponents.setAnnotationResolver(annotationResolver);
- expressionTypingComponents.setBuiltIns(kotlinBuiltIns);
- expressionTypingComponents.setCallExpressionResolver(callExpressionResolver);
- expressionTypingComponents.setCallResolver(callResolver);
- expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils);
- expressionTypingComponents.setDescriptorResolver(descriptorResolver);
- expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings);
- expressionTypingComponents.setExpressionTypingServices(expressionTypingServices);
- expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker);
- expressionTypingComponents.setFunctionDescriptorResolver(functionDescriptorResolver);
- expressionTypingComponents.setGlobalContext(moduleContext);
- expressionTypingComponents.setLocalClassifierAnalyzer(localClassifierAnalyzer);
- expressionTypingComponents.setMultiDeclarationResolver(multiDeclarationResolver);
- expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap);
- expressionTypingComponents.setReflectionTypes(reflectionTypes);
- expressionTypingComponents.setSymbolUsageValidator(symbolUsageValidator);
- expressionTypingComponents.setTypeResolver(typeResolver);
- expressionTypingComponents.setValueParameterResolver(valueParameterResolver);
-
- callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
-
- descriptorResolver.setAnnotationResolver(annotationResolver);
- descriptorResolver.setBuiltIns(kotlinBuiltIns);
- descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- descriptorResolver.setExpressionTypingServices(expressionTypingServices);
- descriptorResolver.setStorageManager(storageManager);
- descriptorResolver.setTypeResolver(typeResolver);
-
- delegatedPropertyResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns);
- delegatedPropertyResolver.setCallResolver(callResolver);
- delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
-
- qualifiedExpressionResolver.setSymbolUsageValidator(symbolUsageValidator);
-
- forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns);
- forLoopConventionsChecker.setFakeCallResolver(fakeCallResolver);
- forLoopConventionsChecker.setSymbolUsageValidator(symbolUsageValidator);
-
- candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
-
- controlFlowAnalyzer.setTrace(bindingTrace);
-
- declarationsChecker.setDescriptorResolver(descriptorResolver);
- declarationsChecker.setModifiersChecker(modifiersChecker);
- declarationsChecker.setTrace(bindingTrace);
-
- functionAnalyzerExtension.setTrace(bindingTrace);
-
- scriptBodyResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
-
- declarationResolver.setAnnotationResolver(annotationResolver);
- declarationResolver.setTrace(bindingTrace);
-
- overloadResolver.setTrace(bindingTrace);
-
- overrideResolver.setTrace(bindingTrace);
-
- }
-
- @PreDestroy
- public void destroy() {
- }
-
- public LazyTopDownAnalyzer getLazyTopDownAnalyzer() {
- return this.lazyTopDownAnalyzer;
- }
-
-}
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForLazyResolve.java b/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForLazyResolve.java
deleted file mode 100644
index 83c0aaf2c8b..00000000000
--- a/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForLazyResolve.java
+++ /dev/null
@@ -1,254 +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 org.jetbrains.kotlin.context.ModuleContext;
-import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
-import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
-import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
-import com.intellij.openapi.project.Project;
-import org.jetbrains.kotlin.storage.StorageManager;
-import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory;
-import org.jetbrains.kotlin.resolve.BindingTrace;
-import org.jetbrains.kotlin.resolve.AdditionalCheckerProvider;
-import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator;
-import org.jetbrains.kotlin.types.DynamicTypesSettings;
-import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
-import org.jetbrains.kotlin.resolve.lazy.ScopeProvider;
-import org.jetbrains.kotlin.context.LazyResolveToken;
-import org.jetbrains.kotlin.resolve.AnnotationResolver;
-import org.jetbrains.kotlin.resolve.calls.CallResolver;
-import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingComponents;
-import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver;
-import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils;
-import org.jetbrains.kotlin.resolve.DescriptorResolver;
-import org.jetbrains.kotlin.resolve.DelegatedPropertyResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver;
-import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider;
-import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker;
-import org.jetbrains.kotlin.types.expressions.FakeCallResolver;
-import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver;
-import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer;
-import org.jetbrains.kotlin.types.expressions.MultiDeclarationResolver;
-import org.jetbrains.kotlin.builtins.ReflectionTypes;
-import org.jetbrains.kotlin.types.expressions.ValueParameterResolver;
-import org.jetbrains.kotlin.resolve.StatementFilter;
-import org.jetbrains.kotlin.resolve.calls.CallCompleter;
-import org.jetbrains.kotlin.resolve.calls.CandidateResolver;
-import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer;
-import org.jetbrains.kotlin.psi.JetImportsFactory;
-import org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver;
-import org.jetbrains.kotlin.resolve.lazy.DeclarationScopeProviderImpl;
-import org.jetbrains.kotlin.resolve.ScriptBodyResolver;
-import org.jetbrains.kotlin.resolve.lazy.ScopeProvider.AdditionalFileScopeProvider;
-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 InjectorForLazyResolve {
-
- private final ModuleContext moduleContext;
- private final KotlinBuiltIns kotlinBuiltIns;
- private final ModuleDescriptor moduleDescriptor;
- private final PlatformToKotlinClassMap platformToKotlinClassMap;
- private final Project project;
- private final StorageManager storageManager;
- private final DeclarationProviderFactory declarationProviderFactory;
- private final BindingTrace bindingTrace;
- private final AdditionalCheckerProvider additionalCheckerProvider;
- private final SymbolUsageValidator symbolUsageValidator;
- private final DynamicTypesSettings dynamicTypesSettings;
- private final ResolveSession resolveSession;
- private final ScopeProvider scopeProvider;
- private final LazyResolveToken lazyResolveToken;
- private final AnnotationResolver annotationResolver;
- private final CallResolver callResolver;
- private final ArgumentTypeResolver argumentTypeResolver;
- private final ExpressionTypingServices expressionTypingServices;
- private final ExpressionTypingComponents expressionTypingComponents;
- private final CallExpressionResolver callExpressionResolver;
- private final ControlStructureTypingUtils controlStructureTypingUtils;
- private final DescriptorResolver descriptorResolver;
- private final DelegatedPropertyResolver delegatedPropertyResolver;
- private final TypeResolver typeResolver;
- private final QualifiedExpressionResolver qualifiedExpressionResolver;
- private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider;
- private final ForLoopConventionsChecker forLoopConventionsChecker;
- private final FakeCallResolver fakeCallResolver;
- private final FunctionDescriptorResolver functionDescriptorResolver;
- private final LocalClassifierAnalyzer localClassifierAnalyzer;
- private final MultiDeclarationResolver multiDeclarationResolver;
- private final ReflectionTypes reflectionTypes;
- private final ValueParameterResolver valueParameterResolver;
- private final StatementFilter statementFilter;
- private final CallCompleter callCompleter;
- private final CandidateResolver candidateResolver;
- private final TaskPrioritizer taskPrioritizer;
- private final JetImportsFactory jetImportsFactory;
- private final LazyDeclarationResolver lazyDeclarationResolver;
- private final DeclarationScopeProviderImpl declarationScopeProvider;
- private final ScriptBodyResolver scriptBodyResolver;
- private final AdditionalFileScopeProvider additionalFileScopeProvider;
-
- public InjectorForLazyResolve(
- @NotNull ModuleContext moduleContext,
- @NotNull DeclarationProviderFactory declarationProviderFactory,
- @NotNull BindingTrace bindingTrace,
- @NotNull AdditionalCheckerProvider additionalCheckerProvider,
- @NotNull DynamicTypesSettings dynamicTypesSettings
- ) {
- this.moduleContext = moduleContext;
- this.kotlinBuiltIns = moduleContext.getBuiltIns();
- this.moduleDescriptor = moduleContext.getModule();
- this.platformToKotlinClassMap = moduleContext.getPlatformToKotlinClassMap();
- this.project = moduleContext.getProject();
- this.storageManager = moduleContext.getStorageManager();
- this.declarationProviderFactory = declarationProviderFactory;
- this.bindingTrace = bindingTrace;
- this.additionalCheckerProvider = additionalCheckerProvider;
- this.symbolUsageValidator = additionalCheckerProvider.getSymbolUsageValidator();
- this.dynamicTypesSettings = dynamicTypesSettings;
- this.resolveSession = new ResolveSession(project, moduleContext, moduleDescriptor, declarationProviderFactory, bindingTrace);
- this.scopeProvider = new ScopeProvider(getResolveSession());
- this.lazyResolveToken = new LazyResolveToken();
- this.annotationResolver = new AnnotationResolver();
- this.callResolver = new CallResolver();
- this.argumentTypeResolver = new ArgumentTypeResolver();
- this.expressionTypingComponents = new ExpressionTypingComponents();
- this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents);
- this.callExpressionResolver = new CallExpressionResolver(callResolver, kotlinBuiltIns);
- this.controlStructureTypingUtils = new ControlStructureTypingUtils(callResolver);
- this.descriptorResolver = new DescriptorResolver();
- this.delegatedPropertyResolver = new DelegatedPropertyResolver();
- this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
- this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider();
- this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, moduleDescriptor, flexibleTypeCapabilitiesProvider, storageManager, lazyResolveToken, dynamicTypesSettings);
- this.forLoopConventionsChecker = new ForLoopConventionsChecker();
- this.fakeCallResolver = new FakeCallResolver(project, callResolver);
- this.functionDescriptorResolver = new FunctionDescriptorResolver(typeResolver, descriptorResolver, annotationResolver, storageManager, expressionTypingServices, kotlinBuiltIns);
- this.localClassifierAnalyzer = new LocalClassifierAnalyzer(descriptorResolver, functionDescriptorResolver, typeResolver, annotationResolver);
- this.multiDeclarationResolver = new MultiDeclarationResolver(fakeCallResolver, descriptorResolver, typeResolver, symbolUsageValidator);
- this.reflectionTypes = new ReflectionTypes(moduleDescriptor);
- this.valueParameterResolver = new ValueParameterResolver(additionalCheckerProvider, expressionTypingServices);
- this.statementFilter = new StatementFilter();
- this.candidateResolver = new CandidateResolver();
- this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver);
- this.taskPrioritizer = new TaskPrioritizer(storageManager);
- this.jetImportsFactory = new JetImportsFactory();
- this.lazyDeclarationResolver = new LazyDeclarationResolver(moduleContext, bindingTrace);
- this.declarationScopeProvider = new DeclarationScopeProviderImpl(lazyDeclarationResolver);
- this.scriptBodyResolver = new ScriptBodyResolver();
- this.additionalFileScopeProvider = new AdditionalFileScopeProvider();
-
- this.resolveSession.setAnnotationResolve(annotationResolver);
- this.resolveSession.setDescriptorResolver(descriptorResolver);
- this.resolveSession.setFunctionDescriptorResolver(functionDescriptorResolver);
- this.resolveSession.setJetImportFactory(jetImportsFactory);
- this.resolveSession.setLazyDeclarationResolver(lazyDeclarationResolver);
- this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
- this.resolveSession.setScopeProvider(scopeProvider);
- this.resolveSession.setScriptBodyResolver(scriptBodyResolver);
- this.resolveSession.setTypeResolver(typeResolver);
-
- scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
- scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
-
- annotationResolver.setCallResolver(callResolver);
- annotationResolver.setStorageManager(storageManager);
- annotationResolver.setTypeResolver(typeResolver);
-
- callResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- callResolver.setArgumentTypeResolver(argumentTypeResolver);
- callResolver.setCallCompleter(callCompleter);
- callResolver.setCandidateResolver(candidateResolver);
- callResolver.setExpressionTypingServices(expressionTypingServices);
- callResolver.setTaskPrioritizer(taskPrioritizer);
- callResolver.setTypeResolver(typeResolver);
-
- argumentTypeResolver.setBuiltIns(kotlinBuiltIns);
- argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
- argumentTypeResolver.setTypeResolver(typeResolver);
-
- expressionTypingServices.setStatementFilter(statementFilter);
-
- expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider);
- expressionTypingComponents.setAnnotationResolver(annotationResolver);
- expressionTypingComponents.setBuiltIns(kotlinBuiltIns);
- expressionTypingComponents.setCallExpressionResolver(callExpressionResolver);
- expressionTypingComponents.setCallResolver(callResolver);
- expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils);
- expressionTypingComponents.setDescriptorResolver(descriptorResolver);
- expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings);
- expressionTypingComponents.setExpressionTypingServices(expressionTypingServices);
- expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker);
- expressionTypingComponents.setFunctionDescriptorResolver(functionDescriptorResolver);
- expressionTypingComponents.setGlobalContext(moduleContext);
- expressionTypingComponents.setLocalClassifierAnalyzer(localClassifierAnalyzer);
- expressionTypingComponents.setMultiDeclarationResolver(multiDeclarationResolver);
- expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap);
- expressionTypingComponents.setReflectionTypes(reflectionTypes);
- expressionTypingComponents.setSymbolUsageValidator(symbolUsageValidator);
- expressionTypingComponents.setTypeResolver(typeResolver);
- expressionTypingComponents.setValueParameterResolver(valueParameterResolver);
-
- callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
-
- descriptorResolver.setAnnotationResolver(annotationResolver);
- descriptorResolver.setBuiltIns(kotlinBuiltIns);
- descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- descriptorResolver.setExpressionTypingServices(expressionTypingServices);
- descriptorResolver.setStorageManager(storageManager);
- descriptorResolver.setTypeResolver(typeResolver);
-
- delegatedPropertyResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns);
- delegatedPropertyResolver.setCallResolver(callResolver);
- delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
-
- qualifiedExpressionResolver.setSymbolUsageValidator(symbolUsageValidator);
-
- forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns);
- forLoopConventionsChecker.setFakeCallResolver(fakeCallResolver);
- forLoopConventionsChecker.setSymbolUsageValidator(symbolUsageValidator);
-
- candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
-
- jetImportsFactory.setProject(project);
-
- lazyDeclarationResolver.setDeclarationScopeProvider(declarationScopeProvider);
- lazyDeclarationResolver.setTopLevelDescriptorProvider(resolveSession);
-
- declarationScopeProvider.setFileScopeProvider(scopeProvider);
-
- scriptBodyResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
-
- }
-
- @PreDestroy
- public void destroy() {
- }
-
- public ResolveSession getResolveSession() {
- return this.resolveSession;
- }
-
-}
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForMacros.java b/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForMacros.java
deleted file mode 100644
index e93b5f356e0..00000000000
--- a/compiler/frontend/src/org/jetbrains/kotlin/di/InjectorForMacros.java
+++ /dev/null
@@ -1,213 +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.descriptors.ModuleDescriptor;
-import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
-import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingComponents;
-import org.jetbrains.kotlin.resolve.calls.CallResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver;
-import org.jetbrains.kotlin.context.GlobalContext;
-import org.jetbrains.kotlin.storage.StorageManager;
-import org.jetbrains.kotlin.resolve.AdditionalCheckerProvider.DefaultProvider;
-import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator;
-import org.jetbrains.kotlin.resolve.StatementFilter;
-import org.jetbrains.kotlin.resolve.AnnotationResolver;
-import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver;
-import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils;
-import org.jetbrains.kotlin.resolve.DescriptorResolver;
-import org.jetbrains.kotlin.resolve.DelegatedPropertyResolver;
-import org.jetbrains.kotlin.types.DynamicTypesSettings;
-import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker;
-import org.jetbrains.kotlin.types.expressions.FakeCallResolver;
-import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver;
-import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer;
-import org.jetbrains.kotlin.types.expressions.MultiDeclarationResolver;
-import org.jetbrains.kotlin.builtins.ReflectionTypes;
-import org.jetbrains.kotlin.types.expressions.ValueParameterResolver;
-import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver;
-import org.jetbrains.kotlin.resolve.calls.CallCompleter;
-import org.jetbrains.kotlin.resolve.calls.CandidateResolver;
-import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer;
-import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider;
-import org.jetbrains.kotlin.context.TypeLazinessToken;
-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 InjectorForMacros {
-
- private final Project project;
- private final ModuleDescriptor moduleDescriptor;
- private final KotlinBuiltIns kotlinBuiltIns;
- private final PlatformToKotlinClassMap platformToKotlinClassMap;
- private final ExpressionTypingServices expressionTypingServices;
- private final ExpressionTypingComponents expressionTypingComponents;
- private final CallResolver callResolver;
- private final TypeResolver typeResolver;
- private final GlobalContext globalContext;
- private final StorageManager storageManager;
- private final DefaultProvider defaultProvider;
- private final SymbolUsageValidator symbolUsageValidator;
- private final StatementFilter statementFilter;
- private final AnnotationResolver annotationResolver;
- private final CallExpressionResolver callExpressionResolver;
- private final ControlStructureTypingUtils controlStructureTypingUtils;
- private final DescriptorResolver descriptorResolver;
- private final DelegatedPropertyResolver delegatedPropertyResolver;
- private final DynamicTypesSettings dynamicTypesSettings;
- private final ForLoopConventionsChecker forLoopConventionsChecker;
- private final FakeCallResolver fakeCallResolver;
- private final FunctionDescriptorResolver functionDescriptorResolver;
- private final LocalClassifierAnalyzer localClassifierAnalyzer;
- private final MultiDeclarationResolver multiDeclarationResolver;
- private final ReflectionTypes reflectionTypes;
- private final ValueParameterResolver valueParameterResolver;
- private final ArgumentTypeResolver argumentTypeResolver;
- private final CallCompleter callCompleter;
- private final CandidateResolver candidateResolver;
- private final TaskPrioritizer taskPrioritizer;
- private final QualifiedExpressionResolver qualifiedExpressionResolver;
- private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider;
- private final TypeLazinessToken typeLazinessToken;
-
- public InjectorForMacros(
- @NotNull Project project,
- @NotNull ModuleDescriptor moduleDescriptor
- ) {
- this.project = project;
- this.moduleDescriptor = moduleDescriptor;
- this.kotlinBuiltIns = moduleDescriptor.getBuiltIns();
- this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
- this.expressionTypingComponents = new ExpressionTypingComponents();
- this.expressionTypingServices = new ExpressionTypingServices(getExpressionTypingComponents());
- this.callResolver = new CallResolver();
- this.annotationResolver = new AnnotationResolver();
- this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
- this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider();
- this.globalContext = org.jetbrains.kotlin.context.ContextPackage.GlobalContext();
- this.storageManager = globalContext.getStorageManager();
- this.typeLazinessToken = new TypeLazinessToken();
- this.dynamicTypesSettings = new DynamicTypesSettings();
- this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, moduleDescriptor, flexibleTypeCapabilitiesProvider, storageManager, typeLazinessToken, dynamicTypesSettings);
- this.defaultProvider = DefaultProvider.INSTANCE$;
- this.symbolUsageValidator = defaultProvider.getSymbolUsageValidator();
- this.statementFilter = new StatementFilter();
- this.callExpressionResolver = new CallExpressionResolver(getCallResolver(), kotlinBuiltIns);
- this.controlStructureTypingUtils = new ControlStructureTypingUtils(getCallResolver());
- this.descriptorResolver = new DescriptorResolver();
- this.delegatedPropertyResolver = new DelegatedPropertyResolver();
- this.forLoopConventionsChecker = new ForLoopConventionsChecker();
- this.fakeCallResolver = new FakeCallResolver(project, getCallResolver());
- this.functionDescriptorResolver = new FunctionDescriptorResolver(getTypeResolver(), descriptorResolver, annotationResolver, storageManager, getExpressionTypingServices(), kotlinBuiltIns);
- this.localClassifierAnalyzer = new LocalClassifierAnalyzer(descriptorResolver, functionDescriptorResolver, getTypeResolver(), annotationResolver);
- this.multiDeclarationResolver = new MultiDeclarationResolver(fakeCallResolver, descriptorResolver, getTypeResolver(), symbolUsageValidator);
- this.reflectionTypes = new ReflectionTypes(moduleDescriptor);
- this.valueParameterResolver = new ValueParameterResolver(defaultProvider, getExpressionTypingServices());
- this.argumentTypeResolver = new ArgumentTypeResolver();
- this.candidateResolver = new CandidateResolver();
- this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver);
- this.taskPrioritizer = new TaskPrioritizer(storageManager);
-
- this.expressionTypingServices.setStatementFilter(statementFilter);
-
- this.expressionTypingComponents.setAdditionalCheckerProvider(defaultProvider);
- this.expressionTypingComponents.setAnnotationResolver(annotationResolver);
- this.expressionTypingComponents.setBuiltIns(kotlinBuiltIns);
- this.expressionTypingComponents.setCallExpressionResolver(callExpressionResolver);
- this.expressionTypingComponents.setCallResolver(callResolver);
- this.expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils);
- this.expressionTypingComponents.setDescriptorResolver(descriptorResolver);
- this.expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings);
- this.expressionTypingComponents.setExpressionTypingServices(expressionTypingServices);
- this.expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker);
- this.expressionTypingComponents.setFunctionDescriptorResolver(functionDescriptorResolver);
- this.expressionTypingComponents.setGlobalContext(globalContext);
- this.expressionTypingComponents.setLocalClassifierAnalyzer(localClassifierAnalyzer);
- this.expressionTypingComponents.setMultiDeclarationResolver(multiDeclarationResolver);
- this.expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap);
- this.expressionTypingComponents.setReflectionTypes(reflectionTypes);
- this.expressionTypingComponents.setSymbolUsageValidator(symbolUsageValidator);
- this.expressionTypingComponents.setTypeResolver(typeResolver);
- this.expressionTypingComponents.setValueParameterResolver(valueParameterResolver);
-
- this.callResolver.setAdditionalCheckerProvider(defaultProvider);
- this.callResolver.setArgumentTypeResolver(argumentTypeResolver);
- this.callResolver.setCallCompleter(callCompleter);
- this.callResolver.setCandidateResolver(candidateResolver);
- this.callResolver.setExpressionTypingServices(expressionTypingServices);
- this.callResolver.setTaskPrioritizer(taskPrioritizer);
- this.callResolver.setTypeResolver(typeResolver);
-
- annotationResolver.setCallResolver(callResolver);
- annotationResolver.setStorageManager(storageManager);
- annotationResolver.setTypeResolver(typeResolver);
-
- callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
-
- descriptorResolver.setAnnotationResolver(annotationResolver);
- descriptorResolver.setBuiltIns(kotlinBuiltIns);
- descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- descriptorResolver.setExpressionTypingServices(expressionTypingServices);
- descriptorResolver.setStorageManager(storageManager);
- descriptorResolver.setTypeResolver(typeResolver);
-
- delegatedPropertyResolver.setAdditionalCheckerProvider(defaultProvider);
- delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns);
- delegatedPropertyResolver.setCallResolver(callResolver);
- delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
-
- forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns);
- forLoopConventionsChecker.setFakeCallResolver(fakeCallResolver);
- forLoopConventionsChecker.setSymbolUsageValidator(symbolUsageValidator);
-
- argumentTypeResolver.setBuiltIns(kotlinBuiltIns);
- argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
- argumentTypeResolver.setTypeResolver(typeResolver);
-
- candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
-
- qualifiedExpressionResolver.setSymbolUsageValidator(symbolUsageValidator);
-
- }
-
- @PreDestroy
- public void destroy() {
- }
-
- public ExpressionTypingServices getExpressionTypingServices() {
- return this.expressionTypingServices;
- }
-
- public ExpressionTypingComponents getExpressionTypingComponents() {
- return this.expressionTypingComponents;
- }
-
- public CallResolver getCallResolver() {
- return this.callResolver;
- }
-
- public TypeResolver getTypeResolver() {
- return this.typeResolver;
- }
-
-}
diff --git a/compiler/tests/org/jetbrains/kotlin/di/InjectorForTests.java b/compiler/tests/org/jetbrains/kotlin/di/InjectorForTests.java
deleted file mode 100644
index dba802011a4..00000000000
--- a/compiler/tests/org/jetbrains/kotlin/di/InjectorForTests.java
+++ /dev/null
@@ -1,225 +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.descriptors.ModuleDescriptor;
-import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
-import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
-import org.jetbrains.kotlin.resolve.DescriptorResolver;
-import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver;
-import org.jetbrains.kotlin.types.expressions.FakeCallResolver;
-import org.jetbrains.kotlin.load.kotlin.KotlinJvmCheckerProvider;
-import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices;
-import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver;
-import org.jetbrains.kotlin.context.GlobalContext;
-import org.jetbrains.kotlin.storage.StorageManager;
-import org.jetbrains.kotlin.resolve.AnnotationResolver;
-import org.jetbrains.kotlin.resolve.calls.CallResolver;
-import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver;
-import org.jetbrains.kotlin.resolve.calls.CallCompleter;
-import org.jetbrains.kotlin.resolve.calls.CandidateResolver;
-import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer;
-import org.jetbrains.kotlin.resolve.DelegatedPropertyResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider;
-import org.jetbrains.kotlin.context.TypeLazinessToken;
-import org.jetbrains.kotlin.types.DynamicTypesSettings;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingComponents;
-import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver;
-import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils;
-import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker;
-import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer;
-import org.jetbrains.kotlin.types.expressions.MultiDeclarationResolver;
-import org.jetbrains.kotlin.builtins.ReflectionTypes;
-import org.jetbrains.kotlin.types.expressions.ValueParameterResolver;
-import org.jetbrains.kotlin.resolve.StatementFilter;
-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 InjectorForTests {
-
- private final Project project;
- private final ModuleDescriptor moduleDescriptor;
- private final KotlinBuiltIns kotlinBuiltIns;
- private final PlatformToKotlinClassMap platformToKotlinClassMap;
- private final DescriptorResolver descriptorResolver;
- private final FunctionDescriptorResolver functionDescriptorResolver;
- private final TypeResolver typeResolver;
- private final FakeCallResolver fakeCallResolver;
- private final KotlinJvmCheckerProvider additionalCheckerProvider;
- private final SymbolUsageValidator symbolUsageValidator;
- private final ExpressionTypingServices expressionTypingServices;
- private final QualifiedExpressionResolver qualifiedExpressionResolver;
- private final GlobalContext globalContext;
- private final StorageManager storageManager;
- private final AnnotationResolver annotationResolver;
- private final CallResolver callResolver;
- private final ArgumentTypeResolver argumentTypeResolver;
- private final CallCompleter callCompleter;
- private final CandidateResolver candidateResolver;
- private final TaskPrioritizer taskPrioritizer;
- private final DelegatedPropertyResolver delegatedPropertyResolver;
- private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider;
- private final TypeLazinessToken typeLazinessToken;
- private final DynamicTypesSettings dynamicTypesSettings;
- private final ExpressionTypingComponents expressionTypingComponents;
- private final CallExpressionResolver callExpressionResolver;
- private final ControlStructureTypingUtils controlStructureTypingUtils;
- private final ForLoopConventionsChecker forLoopConventionsChecker;
- private final LocalClassifierAnalyzer localClassifierAnalyzer;
- private final MultiDeclarationResolver multiDeclarationResolver;
- private final ReflectionTypes reflectionTypes;
- private final ValueParameterResolver valueParameterResolver;
- private final StatementFilter statementFilter;
-
- public InjectorForTests(
- @NotNull Project project,
- @NotNull ModuleDescriptor moduleDescriptor
- ) {
- this.project = project;
- this.moduleDescriptor = moduleDescriptor;
- this.kotlinBuiltIns = moduleDescriptor.getBuiltIns();
- this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
- this.descriptorResolver = new DescriptorResolver();
- this.annotationResolver = new AnnotationResolver();
- this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
- this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider();
- this.globalContext = org.jetbrains.kotlin.context.ContextPackage.GlobalContext();
- this.storageManager = globalContext.getStorageManager();
- this.typeLazinessToken = new TypeLazinessToken();
- this.dynamicTypesSettings = new DynamicTypesSettings();
- this.typeResolver = new TypeResolver(annotationResolver, getQualifiedExpressionResolver(), moduleDescriptor, flexibleTypeCapabilitiesProvider, storageManager, typeLazinessToken, dynamicTypesSettings);
- this.expressionTypingComponents = new ExpressionTypingComponents();
- this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents);
- this.functionDescriptorResolver = new FunctionDescriptorResolver(getTypeResolver(), getDescriptorResolver(), annotationResolver, storageManager, getExpressionTypingServices(), kotlinBuiltIns);
- this.callResolver = new CallResolver();
- this.fakeCallResolver = new FakeCallResolver(project, callResolver);
- this.additionalCheckerProvider = KotlinJvmCheckerProvider.INSTANCE$;
- this.symbolUsageValidator = additionalCheckerProvider.getSymbolUsageValidator();
- this.argumentTypeResolver = new ArgumentTypeResolver();
- this.candidateResolver = new CandidateResolver();
- this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver);
- this.taskPrioritizer = new TaskPrioritizer(storageManager);
- this.delegatedPropertyResolver = new DelegatedPropertyResolver();
- this.callExpressionResolver = new CallExpressionResolver(callResolver, kotlinBuiltIns);
- this.controlStructureTypingUtils = new ControlStructureTypingUtils(callResolver);
- this.forLoopConventionsChecker = new ForLoopConventionsChecker();
- this.localClassifierAnalyzer = new LocalClassifierAnalyzer(getDescriptorResolver(), getFunctionDescriptorResolver(), getTypeResolver(), annotationResolver);
- this.multiDeclarationResolver = new MultiDeclarationResolver(getFakeCallResolver(), getDescriptorResolver(), getTypeResolver(), symbolUsageValidator);
- this.reflectionTypes = new ReflectionTypes(moduleDescriptor);
- this.valueParameterResolver = new ValueParameterResolver(getAdditionalCheckerProvider(), getExpressionTypingServices());
- this.statementFilter = new StatementFilter();
-
- this.descriptorResolver.setAnnotationResolver(annotationResolver);
- this.descriptorResolver.setBuiltIns(kotlinBuiltIns);
- this.descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
- this.descriptorResolver.setStorageManager(storageManager);
- this.descriptorResolver.setTypeResolver(typeResolver);
-
- this.expressionTypingServices.setStatementFilter(statementFilter);
-
- this.qualifiedExpressionResolver.setSymbolUsageValidator(symbolUsageValidator);
-
- annotationResolver.setCallResolver(callResolver);
- annotationResolver.setStorageManager(storageManager);
- annotationResolver.setTypeResolver(typeResolver);
-
- callResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- callResolver.setArgumentTypeResolver(argumentTypeResolver);
- callResolver.setCallCompleter(callCompleter);
- callResolver.setCandidateResolver(candidateResolver);
- callResolver.setExpressionTypingServices(expressionTypingServices);
- callResolver.setTaskPrioritizer(taskPrioritizer);
- callResolver.setTypeResolver(typeResolver);
-
- argumentTypeResolver.setBuiltIns(kotlinBuiltIns);
- argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
- argumentTypeResolver.setTypeResolver(typeResolver);
-
- candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
-
- delegatedPropertyResolver.setAdditionalCheckerProvider(additionalCheckerProvider);
- delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns);
- delegatedPropertyResolver.setCallResolver(callResolver);
- delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
-
- expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider);
- expressionTypingComponents.setAnnotationResolver(annotationResolver);
- expressionTypingComponents.setBuiltIns(kotlinBuiltIns);
- expressionTypingComponents.setCallExpressionResolver(callExpressionResolver);
- expressionTypingComponents.setCallResolver(callResolver);
- expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils);
- expressionTypingComponents.setDescriptorResolver(descriptorResolver);
- expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings);
- expressionTypingComponents.setExpressionTypingServices(expressionTypingServices);
- expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker);
- expressionTypingComponents.setFunctionDescriptorResolver(functionDescriptorResolver);
- expressionTypingComponents.setGlobalContext(globalContext);
- expressionTypingComponents.setLocalClassifierAnalyzer(localClassifierAnalyzer);
- expressionTypingComponents.setMultiDeclarationResolver(multiDeclarationResolver);
- expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap);
- expressionTypingComponents.setReflectionTypes(reflectionTypes);
- expressionTypingComponents.setSymbolUsageValidator(symbolUsageValidator);
- expressionTypingComponents.setTypeResolver(typeResolver);
- expressionTypingComponents.setValueParameterResolver(valueParameterResolver);
-
- callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
-
- forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns);
- forLoopConventionsChecker.setFakeCallResolver(fakeCallResolver);
- forLoopConventionsChecker.setSymbolUsageValidator(symbolUsageValidator);
-
- }
-
- @PreDestroy
- public void destroy() {
- }
-
- public DescriptorResolver getDescriptorResolver() {
- return this.descriptorResolver;
- }
-
- public FunctionDescriptorResolver getFunctionDescriptorResolver() {
- return this.functionDescriptorResolver;
- }
-
- public TypeResolver getTypeResolver() {
- return this.typeResolver;
- }
-
- public FakeCallResolver getFakeCallResolver() {
- return this.fakeCallResolver;
- }
-
- public KotlinJvmCheckerProvider getAdditionalCheckerProvider() {
- return this.additionalCheckerProvider;
- }
-
- public ExpressionTypingServices getExpressionTypingServices() {
- return this.expressionTypingServices;
- }
-
- public QualifiedExpressionResolver getQualifiedExpressionResolver() {
- return this.qualifiedExpressionResolver;
- }
-
-}
diff --git a/core/descriptors.runtime/src/org/jetbrains/kotlin/di/InjectorForRuntimeDescriptorLoader.java b/core/descriptors.runtime/src/org/jetbrains/kotlin/di/InjectorForRuntimeDescriptorLoader.java
deleted file mode 100644
index 7d085cae3f7..00000000000
--- a/core/descriptors.runtime/src/org/jetbrains/kotlin/di/InjectorForRuntimeDescriptorLoader.java
+++ /dev/null
@@ -1,117 +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 org.jetbrains.kotlin.descriptors.ModuleDescriptor;
-import org.jetbrains.kotlin.storage.StorageManager;
-import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver;
-import org.jetbrains.kotlin.load.kotlin.DeserializationComponentsForJava;
-import org.jetbrains.kotlin.load.java.components.ExternalSignatureResolver;
-import org.jetbrains.kotlin.load.java.components.JavaResolverCache;
-import org.jetbrains.kotlin.load.java.components.ExternalAnnotationResolver;
-import org.jetbrains.kotlin.load.java.structure.JavaPropertyInitializerEvaluator;
-import org.jetbrains.kotlin.load.java.components.SamConversionResolver;
-import org.jetbrains.kotlin.load.java.components.RuntimeErrorReporter;
-import org.jetbrains.kotlin.load.java.components.RuntimeSourceElementFactory;
-import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver;
-import org.jetbrains.kotlin.load.java.reflect.ReflectJavaClassFinder;
-import org.jetbrains.kotlin.load.kotlin.reflect.ReflectKotlinClassFinder;
-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.builtins.ReflectionTypes;
-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 InjectorForRuntimeDescriptorLoader {
-
- private final ClassLoader classLoader;
- private final ModuleDescriptor moduleDescriptor;
- private final StorageManager storageManager;
- private final JavaDescriptorResolver javaDescriptorResolver;
- private final DeserializationComponentsForJava deserializationComponentsForJava;
- private final ExternalSignatureResolver externalSignatureResolver;
- private final JavaResolverCache javaResolverCache;
- private final ExternalAnnotationResolver externalAnnotationResolver;
- private final JavaPropertyInitializerEvaluator javaPropertyInitializerEvaluator;
- private final SamConversionResolver samConversionResolver;
- private final RuntimeErrorReporter runtimeErrorReporter;
- private final RuntimeSourceElementFactory runtimeSourceElementFactory;
- private final SingleModuleClassResolver singleModuleClassResolver;
- private final ReflectJavaClassFinder reflectJavaClassFinder;
- private final ReflectKotlinClassFinder reflectKotlinClassFinder;
- private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
- private final GlobalJavaResolverContext globalJavaResolverContext;
- private final DeserializedDescriptorResolver deserializedDescriptorResolver;
- private final ReflectionTypes reflectionTypes;
- private final JavaClassDataFinder javaClassDataFinder;
- private final BinaryClassAnnotationAndConstantLoaderImpl binaryClassAnnotationAndConstantLoader;
-
- public InjectorForRuntimeDescriptorLoader(
- @NotNull ClassLoader classLoader,
- @NotNull ModuleDescriptor moduleDescriptor,
- @NotNull StorageManager storageManager
- ) {
- this.classLoader = classLoader;
- this.moduleDescriptor = moduleDescriptor;
- this.storageManager = storageManager;
- this.reflectJavaClassFinder = new ReflectJavaClassFinder(classLoader);
- this.reflectKotlinClassFinder = new ReflectKotlinClassFinder(classLoader);
- this.runtimeErrorReporter = RuntimeErrorReporter.INSTANCE$;
- this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(runtimeErrorReporter);
- this.externalAnnotationResolver = ExternalAnnotationResolver.EMPTY;
- this.externalSignatureResolver = ExternalSignatureResolver.DO_NOTHING;
- this.javaResolverCache = JavaResolverCache.EMPTY;
- this.javaPropertyInitializerEvaluator = JavaPropertyInitializerEvaluator.DO_NOTHING;
- this.samConversionResolver = SamConversionResolver.EMPTY;
- this.runtimeSourceElementFactory = RuntimeSourceElementFactory.INSTANCE$;
- this.singleModuleClassResolver = new SingleModuleClassResolver();
- this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, reflectJavaClassFinder, reflectKotlinClassFinder, deserializedDescriptorResolver, externalAnnotationResolver, externalSignatureResolver, runtimeErrorReporter, javaResolverCache, javaPropertyInitializerEvaluator, samConversionResolver, runtimeSourceElementFactory, singleModuleClassResolver);
- this.reflectionTypes = new ReflectionTypes(getModuleDescriptor());
- this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, getModuleDescriptor(), reflectionTypes);
- this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModuleDescriptor());
- this.javaClassDataFinder = new JavaClassDataFinder(reflectKotlinClassFinder, deserializedDescriptorResolver);
- this.binaryClassAnnotationAndConstantLoader = new BinaryClassAnnotationAndConstantLoaderImpl(getModuleDescriptor(), storageManager, reflectKotlinClassFinder, runtimeErrorReporter);
- this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, getModuleDescriptor(), javaClassDataFinder, binaryClassAnnotationAndConstantLoader, lazyJavaPackageFragmentProvider);
-
- singleModuleClassResolver.setResolver(javaDescriptorResolver);
-
- deserializedDescriptorResolver.setComponents(deserializationComponentsForJava);
-
- }
-
- @PreDestroy
- public void destroy() {
- }
-
- public ModuleDescriptor getModuleDescriptor() {
- return this.moduleDescriptor;
- }
-
- public JavaDescriptorResolver getJavaDescriptorResolver() {
- return this.javaDescriptorResolver;
- }
-
- public DeserializationComponentsForJava getDeserializationComponentsForJava() {
- return this.deserializationComponentsForJava;
- }
-
-}
diff --git a/generators/generators.iml b/generators/generators.iml
index 7438945994b..ee0437ca914 100644
--- a/generators/generators.iml
+++ b/generators/generators.iml
@@ -14,7 +14,6 @@
-
diff --git a/generators/injector-generator/injector-generator.iml b/generators/injector-generator/injector-generator.iml
deleted file mode 100644
index 03570e3cc59..00000000000
--- a/generators/injector-generator/injector-generator.iml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/ConstructorCall.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/ConstructorCall.java
deleted file mode 100644
index d1babea7cfe..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/ConstructorCall.java
+++ /dev/null
@@ -1,76 +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.generators.di;
-
-import com.google.common.collect.Lists;
-import org.jetbrains.annotations.NotNull;
-
-import java.lang.reflect.Constructor;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-public class ConstructorCall implements Expression {
- private final Constructor> constructor;
- private final List constructorArguments = Lists.newArrayList();
-
- ConstructorCall(Constructor> constructor) {
- this.constructor = constructor;
- }
-
- public List getConstructorArguments() {
- return constructorArguments;
- }
-
- @Override
- public String toString() {
- return constructor.toString();
- }
-
- @NotNull
- @Override
- public String renderAsCode() {
- StringBuilder builder = new StringBuilder("new " + constructor.getDeclaringClass().getSimpleName() + "(");
- for (Iterator iterator = constructorArguments.iterator(); iterator.hasNext(); ) {
- Field argument = iterator.next();
- if (argument.isPublic()) {
- builder.append(argument.getGetterName()).append("()");
- }
- else {
- builder.append(argument.getName());
- }
- if (iterator.hasNext()) {
- builder.append(", ");
- }
- }
- builder.append(")");
- return builder.toString();
- }
-
- @NotNull
- @Override
- public Collection getTypesToImport() {
- return Collections.singletonList(new DiType(constructor.getDeclaringClass()));
- }
-
- @NotNull
- @Override
- public DiType getType() {
- return new DiType(constructor.getDeclaringClass());
- }
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/Dependencies.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/Dependencies.java
deleted file mode 100644
index 4ab28de4195..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/Dependencies.java
+++ /dev/null
@@ -1,303 +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.generators.di;
-
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Multimap;
-import com.google.common.collect.Sets;
-import org.jetbrains.annotations.NotNull;
-
-import javax.inject.Inject;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.lang.reflect.Type;
-import java.util.*;
-
-import static org.jetbrains.kotlin.generators.di.InjectorGeneratorUtil.var;
-
-public class Dependencies {
-
- private final Set allFields = Sets.newLinkedHashSet();
- private final Set satisfied = Sets.newHashSet();
- private final Set used = Sets.newHashSet();
- private final Multimap typeToFields = HashMultimap.create();
-
- private final Set newFields = Sets.newLinkedHashSet();
-
- public void addField(@NotNull Field field) {
- allFields.add(field);
- typeToFields.put(field.getType(), field);
- }
-
- public void addSatisfiedField(@NotNull Field field) {
- addField(field);
- satisfied.add(field);
- }
-
- private Field addNewField(@NotNull DiType type) {
- Field field = Field.create(false, type, var(type), null);
- addField(field);
- newFields.add(field);
- return field;
- }
-
- private void satisfyDependenciesFor(Field field, ImmutableStack neededFor) {
- if (!satisfied.add(field)) return;
-
- Expression initialization = field.getInitialization();
- if (initialization instanceof InstantiateType) {
- initializeByConstructorCall(field, neededFor);
- }
- DiType typeToInitialize = InjectorGeneratorUtil.getEffectiveFieldType(field);
-
- // Sort setters in order to get deterministic behavior
- List declaredMethods = Lists.newArrayList(typeToInitialize.getClazz().getMethods());
- Collections.sort(declaredMethods, new Comparator() {
- @Override
- public int compare(@NotNull Method o1, @NotNull Method o2) {
- return o1.getName().compareTo(o2.getName());
- }
- });
- for (Method method : declaredMethods) {
- if (method.getAnnotation(Inject.class) == null
- || !method.getName().startsWith("set")
- || method.getParameterTypes().length != 1) {
- continue;
- }
-
- Type parameterType = method.getGenericParameterTypes()[0];
-
-
- Field dependency = findDependencyOfType(
- DiType.fromReflectionType(parameterType),
- field + ": " + method + ": " + allFields,
- neededFor.prepend(field)
- );
- used.add(dependency);
-
- field.getDependencies().add(new SetterDependency(field, method.getName(), dependency));
- }
- }
-
- private Field findDependencyOfType(DiType parameterType, String errorMessage, ImmutableStack neededFor) {
- List fields = Lists.newArrayList();
- for (Map.Entry entry : typeToFields.entries()) {
- if (parameterType.isAssignableFrom(entry.getKey())) {
- fields.add(entry.getValue());
- }
- }
-
- if (fields.isEmpty()) {
-
- if (parameterType.getClazz().isPrimitive() || parameterType.getClazz().getPackage().getName().equals("java.lang")) {
- throw new IllegalArgumentException(
- "cannot declare magic field of type " + parameterType + ": " + errorMessage);
- }
-
- Field dependency = addNewField(parameterType);
- satisfyDependenciesFor(dependency, neededFor);
- return dependency;
- }
- else if (fields.size() == 1) {
- return fields.iterator().next();
- }
- else {
- throw new IllegalArgumentException("Ambiguous dependency: \n"
- + errorMessage
- + "\nneeded for " + neededFor
- + "\navailable: " + fields);
- }
- }
-
- private void initializeByConstructorCall(Field field, ImmutableStack neededFor) {
- //noinspection RedundantCast
- DiType type = ((InstantiateType) field.getInitialization()).getType();
-
- Class> clazz = type.getClazz();
- if (clazz.isInterface()) {
- if (initializeAsSingleton(field, type)) return;
- throw new IllegalArgumentException("cannot instantiate interface: " + clazz.getName() + " needed for " + neededFor);
- }
- if (Modifier.isAbstract(clazz.getModifiers())) {
- if (initializeAsSingleton(field, type)) return;
- throw new IllegalArgumentException("cannot instantiate abstract class: " + clazz.getName() + " needed for " + neededFor);
- }
-
- // Note: projections are not computed here
-
- // Look for constructor
- List> publicConstructors = findPublicConstructors(clazz.getConstructors());
- if (publicConstructors.size() != 1) {
- if (initializeAsSingleton(field, type)) return;
- if (publicConstructors.size() == 0) {
- throw new IllegalArgumentException("No public constructor: " + clazz.getName() + " needed for " + neededFor);
- }
- else {
- throw new IllegalArgumentException("Too many public constructors in " + clazz.getName() + " needed for " + neededFor);
- }
- }
-
- Constructor> publicConstructor = publicConstructors.get(0);
-
- // Find arguments
- ConstructorCall dependency = new ConstructorCall(publicConstructor);
- Type[] parameterTypes = publicConstructor.getGenericParameterTypes();
- try {
- for (Type parameterType : parameterTypes) {
- Field fieldForParameter = findDependencyOfType(
- DiType.fromReflectionType(parameterType),
- "constructor: " + publicConstructor + ", parameter: " + parameterType,
- neededFor.prepend(field)
- );
- used.add(fieldForParameter);
- dependency.getConstructorArguments().add(fieldForParameter);
- }
- }
- catch (InstantiationFailedException e) {
- throw e;
- }
- catch (RuntimeException e) {
- throw new InstantiationFailedException(
- "Could not instantiate '" + field + "' by calling " + publicConstructor + "\nneeded for " + neededFor,
- e
- );
- }
-
- field.setInitialization(dependency);
- }
-
- @NotNull
- private static List> findPublicConstructors(Constructor>[] constructors) {
- List> result = new ArrayList>();
- for (Constructor> constructor : constructors) {
- if (Modifier.isPublic(constructor.getModifiers())) {
- result.add(constructor);
- }
- }
- return result;
- }
-
- private static boolean initializeAsSingleton(Field field, DiType type) {
- Class> clazz = type.getClazz();
-
- return initializeBySingletonMethod(field, clazz, "getInstance")
- || initializeBySingletonField(field, clazz, "INSTANCE")
- || initializeBySingletonField(field, clazz, "INSTANCE$");
- }
-
- private static boolean initializeBySingletonMethod(Field field, Class> clazz, String name) {
- try {
- clazz.getMethod(name);
- field.setInitialization(GetSingleton.byMethod(clazz, name));
- return true;
- }
- catch (NoSuchMethodException e) {
- // Ignored
- }
- return false;
- }
-
- private static boolean initializeBySingletonField(Field field, Class> clazz, String name) {
- try {
- clazz.getField(name);
- field.setInitialization(GetSingleton.byField(clazz, name));
- return true;
- }
- catch (NoSuchFieldException e) {
- // Ignored
- }
-
- return false;
- }
-
- public Collection satisfyDependencies() {
- for (Field field : Lists.newArrayList(allFields)) {
- satisfyDependenciesFor(field, LinkedImmutableStack.empty());
- }
- return newFields;
- }
-
- @NotNull
- public Set getUsedFields() {
- return used;
- }
-
- private interface ImmutableStack {
- @NotNull
- ImmutableStack prepend(T t);
- }
-
- private static class LinkedImmutableStack implements ImmutableStack {
-
- private static final ImmutableStack EMPTY = new ImmutableStack() {
- @NotNull
- @Override
- public ImmutableStack prepend(Object o) {
- return create(o);
- }
-
- @Override
- public String toString() {
- return "";
- }
- };
-
- @NotNull
- @SuppressWarnings("unchecked")
- public static ImmutableStack empty() {
- return EMPTY;
- }
-
- @NotNull
- public static LinkedImmutableStack create(@NotNull T t) {
- return new LinkedImmutableStack(t, LinkedImmutableStack.empty());
- }
-
- private final T head;
- private final ImmutableStack tail;
-
- private LinkedImmutableStack(@NotNull T head, @NotNull ImmutableStack tail) {
- this.head = head;
- this.tail = tail;
- }
-
- @NotNull
- @Override
- public LinkedImmutableStack prepend(@NotNull T t) {
- return new LinkedImmutableStack(t, this);
- }
-
- @Override
- public String toString() {
- return doToString(this, new StringBuilder()).toString();
- }
-
- private static CharSequence doToString(@NotNull ImmutableStack stack, StringBuilder builder) {
- if (stack == empty()) {
- builder.append("|");
- return builder;
- }
-
- LinkedImmutableStack list = (LinkedImmutableStack) stack;
- builder.append("\n\t").append(list.head).append(" -> ");
- return doToString(list.tail, builder);
- }
- }
-
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/DependencyInjectorGenerator.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/DependencyInjectorGenerator.java
deleted file mode 100644
index a9eea81ccce..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/DependencyInjectorGenerator.java
+++ /dev/null
@@ -1,359 +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.generators.di;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import com.intellij.openapi.util.Condition;
-import com.intellij.openapi.util.io.FileUtil;
-import com.intellij.util.containers.ContainerUtil;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-import org.jetbrains.kotlin.utils.Printer;
-
-import javax.annotation.PreDestroy;
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.util.*;
-
-import static org.jetbrains.kotlin.generators.di.InjectorGeneratorUtil.var;
-
-public class DependencyInjectorGenerator {
-
- private final Set fields = Sets.newLinkedHashSet();
- private final Set parameters = Sets.newLinkedHashSet();
- private final Set backsParameter = Sets.newHashSet();
- private final Set factoryMethods = Sets.newLinkedHashSet();
- private final List> implementsList = Lists.newArrayList();
-
- private final Dependencies dependencies = new Dependencies();
-
- private final ImportManager importManager = new ImportManager();
-
- private String targetSourceRoot;
- private String injectorPackageName;
- private String injectorClassName;
- private String generatedBy;
-
- public DependencyInjectorGenerator() {
- }
-
- public String getInjectorClassName() {
- return injectorClassName;
- }
-
- public DependencyInjectorGenerator configure(String targetSourceRoot, String injectorPackageName, String injectorClassName, String generatedBy) {
- this.targetSourceRoot = targetSourceRoot;
- this.injectorPackageName = injectorPackageName;
- this.injectorClassName = injectorClassName;
- this.generatedBy = generatedBy;
- return this;
- }
-
- public void generate() throws IOException {
- assert targetSourceRoot != null : "Don't forget to call configure()";
-
- GeneratorsFileUtil.writeFileIfContentChanged(getOutputFile(), generateText().toString());
- }
-
- public File getOutputFile() {
- String outputFileName = targetSourceRoot + "/" + injectorPackageName.replace(".", "/") + "/" + injectorClassName + ".java";
- return new File(outputFileName);
- }
-
- public CharSequence generateText() throws IOException {
- assert generatedBy != null : "Don't forget to call configure()";
-
- fields.addAll(dependencies.satisfyDependencies());
- reportUnusedParameters(injectorPackageName, injectorClassName);
-
- StringBuilder preamble = new StringBuilder();
- generatePreamble(injectorPackageName, new Printer(preamble));
-
- StringBuilder body = new StringBuilder();
- Printer p = new Printer(body);
-
- p.println();
-
- p.println("/* This file is generated by " + generatedBy + ". DO NOT EDIT! */");
- p.println("@SuppressWarnings(\"all\")");
- p.print("public class " + injectorClassName);
- generateImplementsList(p);
- p.println(" {");
- p.pushIndent();
- p.println();
- generateFields(p);
- p.println();
- generateConstructor(injectorClassName, p);
- p.println();
- generateDestroy(injectorClassName, p);
- p.println();
- generateGetters(p);
- generateFactoryMethods(p);
- p.popIndent();
- p.println("}"); // class
-
- importManager.addClass(NotNull.class);
- importManager.addClass(PreDestroy.class);
- StringBuilder imports = new StringBuilder();
- generateImports(new Printer(imports), injectorPackageName);
-
- StringBuilder text = new StringBuilder(preamble);
- text.append(imports);
- text.append(body);
- return text;
- }
-
- private void reportUnusedParameters(String injectorPackageName, String injectorClassName) {
- Sets.SetView unusedParameters = Sets.difference(backsParameter, dependencies.getUsedFields());
- for (Field parameter : unusedParameters) {
- if (!parameter.isPublic()) {
- System.err.println("Unused parameter: " + parameter + " for " + injectorPackageName + "." + injectorClassName);
- }
- }
- }
-
- private static void generatePreamble(String injectorPackageName, Printer p) throws IOException {
- p.println(FileUtil.loadFile(new File("license/LICENSE.txt")));
- p.println("package " + injectorPackageName + ";");
- p.println();
- }
-
- private void generateImplementsList(Printer out) {
- if (!implementsList.isEmpty()) {
- out.print(" implements ");
- for (Iterator> iterator = implementsList.iterator(); iterator.hasNext(); ) {
- Class> superInterface = iterator.next();
- if (!superInterface.isInterface()) {
- throw new IllegalArgumentException("Only interfaces are supported as supertypes");
- }
- out.print(type(superInterface));
- if (iterator.hasNext()) {
- out.print(", ");
- }
- }
- }
- }
-
- public void implementInterface(Class> superInterface) {
- implementsList.add(superInterface);
- }
-
- public void addParameter(boolean reexport, @NotNull DiType type, @Nullable String name, boolean required, boolean useAsContext) {
- Field field = addField(reexport, type, name, null, useAsContext);
- Parameter parameter = new Parameter(type, name, field, required);
- parameters.add(parameter);
- field.setInitialization(new ParameterExpression(parameter));
- backsParameter.add(field);
- dependencies.addSatisfiedField(field);
- }
-
- public Field addField(boolean isPublic, DiType type, @Nullable String name, @Nullable Expression init, boolean useAsContext) {
- Field field = Field.create(isPublic, type, name == null ? var(type) : name, init);
- addField(field);
- if (useAsContext) {
- for (Field accessibleViaGetter : field.getFieldsAccessibleViaGetters()) {
- addField(accessibleViaGetter);
- }
- }
- return field;
- }
-
- private void addField(@NotNull Field field) {
- fields.add(field);
- dependencies.addField(field);
- }
-
- public void addFactoryMethod(@NotNull Class> returnType, Class>... parameterTypes) {
- List types = Lists.newArrayList();
- for (Class> type : parameterTypes) {
- types.add(new DiType(type));
- }
- addFactoryMethod(new DiType(returnType), types);
- }
-
- public void addFactoryMethod(@NotNull DiType returnType, DiType... parameterTypes) {
- addFactoryMethod(returnType, Arrays.asList(parameterTypes));
- }
-
- public void addFactoryMethod(@NotNull DiType returnType, @NotNull Collection parameterTypes) {
- List parameters = Lists.newArrayList();
- for (DiType type : parameterTypes) {
- parameters.add(new Parameter(type, var(type), null, false));
- }
- factoryMethods.add(new FactoryMethod("create" + type(returnType), returnType, parameters));
- }
-
- private void generateImports(Printer out, String injectorPackageName) {
- for (Class> importedClass : importManager.getImportedClasses()) {
- if (importedClass.isPrimitive()) continue;
- String importedPackageName = importedClass.getPackage().getName();
- if ("java.lang".equals(importedPackageName)
- || injectorPackageName.equals(importedPackageName)) {
- continue;
- }
- out.println("import " + importedClass.getCanonicalName() + ";");
- }
- }
-
- private void generateFields(Printer out) {
- for (Field field : getUsedFields()) {
- out.println("private final " + type(InjectorGeneratorUtil.getEffectiveFieldType(field)) + " " + field.getName() + ";");
- }
- }
-
- @NotNull
- private List getUsedFields() {
- return ContainerUtil.filter(fields, new Condition() {
- @Override
- public boolean value(Field field) {
- return dependencies.getUsedFields().contains(field) || field.isPublic();
- }
- });
- }
-
- private void generateConstructor(String injectorClassName, Printer p) {
- // Constructor parameters
- if (parameters.isEmpty()) {
- p.println("public ", injectorClassName, "() {");
- }
- else {
- p.print("public ", injectorClassName);
- generateParameterList(p, parameters);
- }
-
- p.pushIndent();
-
- InjectionLogicGenerator.generateForFields(p, getUsedFields());
-
- p.popIndent();
- p.println("}");
- }
-
- private void generateParameterList(Printer p, Collection parameters) {
- p.printlnWithNoIndent("(");
- p.pushIndent();
- for (Iterator iterator = parameters.iterator(); iterator.hasNext(); ) {
- Parameter parameter = iterator.next();
- p.printIndent();
- if (parameter.isRequired()) {
- p.printWithNoIndent("@NotNull ");
- }
- p.printWithNoIndent(type(parameter.getType()), " ", parameter.getName());
- if (iterator.hasNext()) {
- p.printlnWithNoIndent(",");
- }
- }
- p.printlnWithNoIndent();
- p.popIndent();
- p.println(") {");
- }
-
- private void generateDestroy(@NotNull String injectorClassName, @NotNull Printer out) {
- out.println("@PreDestroy");
- out.println("public void destroy() {");
- out.pushIndent();
- for (Field field : fields) {
- // TODO: type of field may be different from type of object
- List preDestroyMethods = InjectorGeneratorUtil
- .getPreDestroyMethods(InjectorGeneratorUtil.getEffectiveFieldType(field).getClazz());
- for (Method preDestroy : preDestroyMethods) {
- out.println(field.getName() + "." + preDestroy.getName() + "();");
- }
- if (preDestroyMethods.size() > 0) {
- out.println();
- }
- }
- out.popIndent();
- out.println("}");
- }
-
- private void generateGetters(Printer out) {
- for (Field field : fields) {
- if (!field.isPublic()) continue;
- String visibility = "public";
- out.println(visibility + " " + type(field.getType()) + " " + field.getGetterName() + "() {");
- out.pushIndent();
-
- out.println("return this." + field.getName() + ";");
-
- out.popIndent();
- out.println("}");
- out.println();
- }
-
- }
-
- private void generateFactoryMethods(Printer p) {
- if (factoryMethods.isEmpty()) return;
- p.println();
-
- p.pushIndent();
- for (FactoryMethod method : factoryMethods) {
- generateFactoryMethod(p, method);
- }
- p.popIndent();
- }
-
- private Collection computeFieldsForFactoryMethod(FactoryMethod method, Field resultField) {
- Dependencies localDependencies = new Dependencies();
-
- Map parameterToField = Maps.newHashMap();
- for (Parameter parameter : method.getParameters()) {
- Field field = new Field(true, parameter.getType(), parameter.getName());
- localDependencies.addSatisfiedField(field);
- parameterToField.put(parameter, field);
- }
-
- for (Field storedField : fields) {
- localDependencies.addSatisfiedField(storedField);
- }
-
- localDependencies.addField(resultField);
-
- Collection fields = Lists.newArrayList(localDependencies.satisfyDependencies());
- fields.add(resultField);
- return fields;
- }
-
- private void generateFactoryMethod(Printer p, FactoryMethod method) {
- Field resultField = new Field(true, method.getReturnType(), "_result");
- Collection fields = computeFieldsForFactoryMethod(method, resultField);
-
- p.print("public ", type(method.getReturnType()), " ", method.getName());
- generateParameterList(p, method.getParameters());
-
- p.pushIndent();
-
- InjectionLogicGenerator.generateForLocalVariables(importManager, p, fields);
-
- p.println("return ", resultField.getName(), ";");
-
- p.popIndent();
- p.println("}");
- }
-
- private CharSequence type(DiType type) {
- return importManager.render(type);
- }
-
- private CharSequence type(Class> type) {
- return type(DiType.fromReflectionType(type));
- }
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/DiType.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/DiType.java
deleted file mode 100644
index 24272ccc3d7..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/DiType.java
+++ /dev/null
@@ -1,131 +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.generators.di;
-
-import com.google.common.collect.Lists;
-import org.jetbrains.annotations.NotNull;
-
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.Collections;
-import java.util.List;
-
-public class DiType {
- @NotNull
- private final Class> clazz;
- @NotNull
- private final List typeParameters;
-
- public DiType(@NotNull Class> clazz, @NotNull List typeParameters) {
- this.clazz = clazz;
- this.typeParameters = typeParameters;
-
- if (clazz.getTypeParameters().length != typeParameters.size()) {
- throw new IllegalStateException("type parameter count mismatch: " + clazz + ", " + typeParameters);
- }
- }
-
- public DiType(@NotNull Class> clazz) {
- this(clazz, Collections.emptyList());
- }
-
- @NotNull
- public Class> getClazz() {
- return clazz;
- }
-
- @NotNull
- public List getTypeParameters() {
- return typeParameters;
- }
-
- public boolean isAssignableFrom(@NotNull DiType that) {
- if (!this.clazz.isAssignableFrom(that.clazz)) {
- return false;
- }
- // TODO: following code incorrectly assumes that each type parameter
- // is projected into type parameter in the same position
- return this.typeParameters.equals(that.typeParameters);
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- DiType type = (DiType) o;
-
- if (!clazz.equals(type.clazz)) return false;
- if (!typeParameters.equals(type.typeParameters)) return false;
-
- return true;
- }
-
- @Override
- public int hashCode() {
- int result = clazz.hashCode();
- result = 31 * result + typeParameters.hashCode();
- return result;
- }
-
- @NotNull
- public static DiType fromReflectionType(@NotNull Type type) {
- if (type instanceof Class>) {
- return new DiType((Class) type);
- }
- if (type instanceof ParameterizedType) {
- ParameterizedType parameterizedType = (ParameterizedType) type;
- Class> owner = (Class>) parameterizedType.getRawType();
- List diTypeParameters = Lists.newArrayList();
- for (Type typeParameter : parameterizedType.getActualTypeArguments()) {
- diTypeParameters.add(fromReflectionType(typeParameter));
- }
- return new DiType(owner, diTypeParameters);
- }
- throw new IllegalArgumentException("unsupported type: " + type);
- }
-
- @NotNull
- public static DiType collectionOf(@NotNull Class> type) {
- return collectionOf(new DiType(type));
- }
-
- @NotNull
- public static DiType collectionOf(@NotNull DiType type) {
- return new DiType(List.class, Lists.newArrayList(type));
- }
-
- @NotNull
- public static DiType listOf(@NotNull Class> type) {
- return collectionOf(new DiType(type));
- }
-
- @NotNull
- public static DiType listOf(@NotNull DiType type) {
- return new DiType(List.class, Lists.newArrayList(type));
- }
-
- @Override
- public String toString() {
- if (typeParameters.size() > 0) {
- return clazz + "<...>";
- }
- else {
- return clazz.toString();
- }
- }
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/Expression.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/Expression.java
deleted file mode 100644
index fd179919ecd..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/Expression.java
+++ /dev/null
@@ -1,33 +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.generators.di;
-
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.Collection;
-
-public interface Expression {
- @NotNull
- String renderAsCode();
-
- @NotNull
- Collection getTypesToImport();
-
- @Nullable
- DiType getType();
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/FactoryMethod.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/FactoryMethod.java
deleted file mode 100644
index 29caef0d751..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/FactoryMethod.java
+++ /dev/null
@@ -1,48 +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.generators.di;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.util.List;
-
-public class FactoryMethod {
- private final String name;
- private final List parameters;
- private final DiType returnType;
-
- public FactoryMethod(@NotNull String name, @NotNull DiType returnType, @NotNull List parameters) {
- this.name = name;
- this.parameters = parameters;
- this.returnType = returnType;
- }
-
- @NotNull
- public String getName() {
- return name;
- }
-
- @NotNull
- public List getParameters() {
- return parameters;
- }
-
- @NotNull
- public DiType getReturnType() {
- return returnType;
- }
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/Field.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/Field.java
deleted file mode 100644
index 943eac16ef4..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/Field.java
+++ /dev/null
@@ -1,155 +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.generators.di;
-
-import com.google.common.collect.Lists;
-import com.intellij.openapi.util.text.StringUtil;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.lang.reflect.Method;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import static org.jetbrains.kotlin.generators.di.InjectorGeneratorUtil.var;
-
-class Field {
-
- public static Field create(boolean isPublic, DiType type, String name, @Nullable Expression init) {
- Field field = new Field(isPublic, type, name);
- if (init != null) {
- field.setInitialization(init);
- }
- return field;
- }
-
- private final DiType type;
- private final String name;
- private final boolean isPublic;
-
- @NotNull
- private Expression initialization;
-
- private final List dependencies = Lists.newArrayList();
-
- Field(boolean isPublic, DiType type, String name) {
- this.isPublic = isPublic;
- this.type = type;
- this.name = name;
- this.initialization = new InstantiateType(type);
- }
-
- public DiType getType() {
- return type;
- }
-
- public String getName() {
- return name;
- }
-
- public String getTypeName() {
- return type.getClazz().getSimpleName();
- }
-
- public String getGetterName() {
- String prefix;
- if (getType().getClazz() == boolean.class || getType().getClazz() == Boolean.class) {
- prefix = "is";
- }
- else {
- prefix = "get";
- }
- return prefix + StringUtil.capitalize(getName());
- }
-
- @NotNull
- public Expression getInitialization() {
- return initialization;
- }
-
- public void setInitialization(@NotNull Expression initialization) {
- this.initialization = initialization;
- }
-
- public List getDependencies() {
- return dependencies;
- }
-
- public boolean isPublic() {
- return isPublic;
- }
-
- @Override
- public String toString() {
- return getTypeName() + " " + getName();
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- Field field = (Field) o;
-
- if (!name.equals(field.name)) return false;
- if (!type.equals(field.type)) return false;
-
- return true;
- }
-
- @Override
- public int hashCode() {
- int result = type.hashCode();
- result = 31 * result + name.hashCode();
- return result;
- }
-
- @NotNull
- public List getFieldsAccessibleViaGetters() {
- Class> clazz = type.getClazz();
- List result = Lists.newArrayList();
- for (Method method : allGetters(clazz)) {
- MethodCall init = new MethodCall(this, method);
- DiType initType = init.getType();
- result.add(create(false, initType, var(initType), init));
- }
- return result;
- }
-
- @NotNull
- private static Collection allGetters(@NotNull Class clazz) {
- Map getters = new TreeMap();
- for (Method method : clazz.getMethods()) {
- if (method.getDeclaringClass() == Object.class) {
- continue;
- }
- if (isGetter(method)) {
- if (!getters.containsKey(method.getName())) {
- getters.put(method.getName(), method);
- }
- }
- }
- return getters.values();
- }
-
- private static boolean isGetter(@NotNull Method method) {
- String name = method.getName();
- return name.startsWith("get") && name.length() > 3 && method.getParameterTypes().length == 0;
- }
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/GetSingleton.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/GetSingleton.java
deleted file mode 100644
index ab1c53b0db2..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/GetSingleton.java
+++ /dev/null
@@ -1,66 +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.generators.di;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.util.Collection;
-import java.util.Collections;
-
-public class GetSingleton implements Expression {
-
- public static GetSingleton byMethod(@NotNull Class> singletonClass, @NotNull String methodName) {
- return new GetSingleton(singletonClass, methodName, "()");
- }
-
- public static GetSingleton byField(@NotNull Class> singletonClass, @NotNull String fieldName) {
- return new GetSingleton(singletonClass, fieldName, "");
- }
-
- private final Class> singletonClass;
- private final String memberName;
- private final String callSuffix;
-
- private GetSingleton(@NotNull Class> singletonClass, @NotNull String name, String callSuffix) {
- this.singletonClass = singletonClass;
- this.memberName = name;
- this.callSuffix = callSuffix;
- }
-
- @Override
- public String toString() {
- return renderAsCode();
- }
-
- @NotNull
- @Override
- public String renderAsCode() {
- return singletonClass.getSimpleName() + "." + memberName + callSuffix;
- }
-
- @NotNull
- @Override
- public Collection getTypesToImport() {
- return Collections.singletonList(new DiType(singletonClass));
- }
-
- @NotNull
- @Override
- public DiType getType() {
- return new DiType(singletonClass);
- }
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/GivenExpression.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/GivenExpression.java
deleted file mode 100644
index 73f0586e786..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/GivenExpression.java
+++ /dev/null
@@ -1,81 +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.generators.di;
-
-import com.google.common.collect.Lists;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-
-public class GivenExpression implements Expression {
- private final String expression;
- private final Collection typesToImport;
-
-
- public GivenExpression(@NotNull String expression) {
- this(expression, Collections.emptyList());
- }
-
- public GivenExpression(@NotNull String expression, @NotNull DiType... typesToImport) {
- this(expression, Arrays.asList(typesToImport));
- }
-
- public GivenExpression(@NotNull String expression, @NotNull Class>... typesToImport) {
- this(expression, convertClassesToDiTypes(typesToImport));
- }
-
- private static Collection convertClassesToDiTypes(Class>[] typesToImport) {
- Collection types = Lists.newArrayList();
- for (Class> aClass : typesToImport) {
- types.add(new DiType(aClass));
- }
- return types;
- }
-
- public GivenExpression(@NotNull String expression, @NotNull Collection typesToImport) {
- this.expression = expression;
- this.typesToImport = typesToImport;
- }
-
- public String getExpression() {
- return expression;
- }
-
- @Override
- public String toString() {
- return "given<" + expression + ">";
- }
-
- @Override
- public DiType getType() {
- return null;
- }
-
- @NotNull
- @Override
- public String renderAsCode() {
- return expression;
- }
-
- @NotNull
- @Override
- public Collection getTypesToImport() {
- return typesToImport;
- }
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/ImportManager.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/ImportManager.java
deleted file mode 100644
index 45c819c29ef..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/ImportManager.java
+++ /dev/null
@@ -1,69 +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.generators.di;
-
-import com.google.common.collect.Maps;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.kotlin.utils.Printer;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Map;
-
-public class ImportManager {
-
- private final Map> classes = Maps.newLinkedHashMap();
-
- public boolean addClass(@NotNull Class> classToImport) {
- String simpleName = classToImport.getSimpleName();
-
- Class> imported = classes.get(simpleName);
- if (imported != null) return classToImport.equals(imported);
-
- classes.put(simpleName, classToImport);
- return true;
- }
-
- @NotNull
- public Collection> getImportedClasses() {
- return classes.values();
- }
-
- @NotNull
- public CharSequence render(@NotNull DiType type) {
- StringBuilder out = new StringBuilder();
- Printer p = new Printer(out);
- if (addClass(type.getClazz())) {
- p.print(type.getClazz().getSimpleName());
- }
- else {
- p.print(type.getClazz().getCanonicalName());
- }
-
- if (!type.getTypeParameters().isEmpty()) {
- p.print("<");
- for (Iterator iterator = type.getTypeParameters().iterator(); iterator.hasNext(); ) {
- p.print(render(iterator.next()));
- if (iterator.hasNext()) {
- p.print(", ");
- }
- }
- p.print(">");
- }
- return out;
- }
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InjectionLogicGenerator.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InjectionLogicGenerator.java
deleted file mode 100644
index a8e5e1fdbec..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InjectionLogicGenerator.java
+++ /dev/null
@@ -1,131 +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.generators.di;
-
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.kotlin.utils.DFS;
-import org.jetbrains.kotlin.utils.Printer;
-
-import java.lang.reflect.Method;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-public abstract class InjectionLogicGenerator {
-
- public static void generateForFields(@NotNull Printer p, @NotNull Collection fields) {
- new InjectionLogicGenerator() {
- @Override
- public String prefixForPostConstructorCall(Field field) {
- return "";
- }
-
- @Override
- public String prefixForSetterCall(Field field) {
- return field.isPublic() ? "this." : "";
- }
-
- @Override
- public String prefixForInitialization(Field field) {
- return "this.";
- }
- }.generate(p, fields);
- }
-
- public static void generateForLocalVariables(
- @NotNull final ImportManager importManager,
- @NotNull Printer p,
- @NotNull Collection fields
- ) {
- new InjectionLogicGenerator() {
- @Override
- public String prefixForPostConstructorCall(Field field) {
- return "";
- }
-
- @Override
- public String prefixForSetterCall(Field field) {
- return "";
- }
-
- @Override
- public String prefixForInitialization(Field field) {
- return importManager.render(field.getType()) + " ";
- }
- }.generate(p, fields);
- }
-
- protected void generate(@NotNull Printer p, @NotNull Collection fields) {
- List topOrder = DFS.topologicalOrder(fields, new DFS.Neighbors() {
- @NotNull
- @Override
- public Iterable getNeighbors(Field current) {
- Expression initialization = current.getInitialization();
- if (initialization instanceof ConstructorCall) {
- ConstructorCall call = (ConstructorCall) initialization;
- return call.getConstructorArguments();
- }
- else if (initialization instanceof MethodCall) {
- return Collections.singletonList(((MethodCall) initialization).getReceiver());
- }
- return Collections.emptyList();
- }
- });
- Collections.reverse(topOrder);
-
- // Initialize fields
- for (Field field : topOrder) {
- //if (!backsParameter.contains(field) || field.isPublic()) {
- p.println(prefixForInitialization(field), field.getName(), " = ", field.getInitialization().renderAsCode(), ";");
- //}
- }
- p.printlnWithNoIndent();
-
- // Call setters
- for (Field field : fields) {
- if (!(field.getInitialization() instanceof ConstructorCall)) continue;
- for (SetterDependency dependency : field.getDependencies()) {
- String prefix = prefixForSetterCall(field);
- String dependencyName = dependency.getDependency().getName();
- String dependentName = dependency.getDependent().getName();
- p.println(prefix, dependentName, ".", dependency.getSetterName(), "(", dependencyName, ");");
- }
- if (!field.getDependencies().isEmpty()) {
- p.printlnWithNoIndent();
- }
- }
-
- // call @PostConstruct
- for (Field field : fields) {
- // TODO: type of field may be different from type of object
- List postConstructMethods = InjectorGeneratorUtil
- .getPostConstructMethods(InjectorGeneratorUtil.getEffectiveFieldType(field).getClazz());
- for (Method postConstruct : postConstructMethods) {
- p.println(prefixForPostConstructorCall(field), field.getName(), ".", postConstruct.getName(), "();");
- }
- if (postConstructMethods.size() > 0) {
- p.printlnWithNoIndent();
- }
- }
- }
-
- protected abstract String prefixForInitialization(Field field);
-
- protected abstract String prefixForSetterCall(Field field);
-
- protected abstract String prefixForPostConstructorCall(Field field);
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InjectorGeneratorFacade.kt b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InjectorGeneratorFacade.kt
deleted file mode 100644
index 318c06a9b0d..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InjectorGeneratorFacade.kt
+++ /dev/null
@@ -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.generators.di
-
-public fun generator(
- targetSourceRoot: String,
- injectorPackageName: String,
- injectorClassName: String,
- generatedBy: String,
- body: DependencyInjectorGenerator.() -> Unit
-): DependencyInjectorGenerator {
- val generator = DependencyInjectorGenerator()
- generator.configure(targetSourceRoot, injectorPackageName, injectorClassName, generatedBy)
- generator.body()
- return generator
-}
-
-inline public fun DependencyInjectorGenerator.field(
- name: String = defaultName(javaClass()),
- init: Expression? = null,
- useAsContext: Boolean = false
-) {
- addField(false, DiType(javaClass()), name, init, useAsContext)
-}
-
-inline public fun DependencyInjectorGenerator.publicField(
- name: String = defaultName(javaClass()),
- init: Expression? = null,
- useAsContext: Boolean = false
-) {
- addField(true, DiType(javaClass()), name, init, useAsContext)
-}
-
-inline public fun DependencyInjectorGenerator.parameter(
- name: String = defaultName(javaClass()),
- useAsContext: Boolean = false
-) {
- addParameter(false, DiType(javaClass()), name, true, useAsContext)
-}
-
-inline public fun DependencyInjectorGenerator.publicParameter(
- name: String = defaultName(javaClass()),
- useAsContext: Boolean = false
-) {
- addParameter(true, DiType(javaClass()), name, true, useAsContext)
-}
-
-public fun defaultName(entityType: Class<*>): String = InjectorGeneratorUtil.`var`(DiType(entityType))
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InjectorGeneratorUtil.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InjectorGeneratorUtil.java
deleted file mode 100644
index 1a6342dc4ee..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InjectorGeneratorUtil.java
+++ /dev/null
@@ -1,70 +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.generators.di;
-
-import com.google.common.collect.Lists;
-import com.intellij.openapi.util.text.StringUtil;
-import org.jetbrains.annotations.NotNull;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.util.List;
-
-public class InjectorGeneratorUtil {
- public static DiType getEffectiveFieldType(Field field) {
- DiType implType = field.getInitialization().getType();
- return implType == null ? field.getType() : implType;
- }
-
- public static List getPostConstructMethods(Class> clazz) {
- return getInjectSpecialMethods(clazz, PostConstruct.class);
- }
-
- public static List getPreDestroyMethods(Class> clazz) {
- return getInjectSpecialMethods(clazz, PreDestroy.class);
- }
-
- private static List getInjectSpecialMethods(Class> clazz, Class extends Annotation> annotationClass) {
- List r = Lists.newArrayList();
- for (Method method : clazz.getMethods()) {
- if (method.getAnnotation(annotationClass) != null) {
- if (method.getParameterTypes().length != 0) {
- throw new IllegalStateException("@PostConstruct method must have no arguments: " + method);
- }
- r.add(method);
- }
- }
- return r;
- }
-
- @NotNull
- public static String var(@NotNull DiType type) {
- StringBuilder sb = new StringBuilder();
- sb.append(StringUtil.decapitalize(type.getClazz().getSimpleName().replaceFirst("(?<=.)Impl$", "")));
- if (type.getTypeParameters().size() > 0) {
- sb.append("Of");
- }
- for (DiType parameter : type.getTypeParameters()) {
- sb.append(StringUtil.capitalize(var(parameter)));
- }
- return sb.toString();
- }
-
- private InjectorGeneratorUtil() {}
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InstantiateType.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InstantiateType.java
deleted file mode 100644
index 6322943ae2c..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InstantiateType.java
+++ /dev/null
@@ -1,57 +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.generators.di;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.util.Collection;
-
-public class InstantiateType implements Expression {
-
- private final DiType type;
-
- public InstantiateType(@NotNull DiType type) {
- this.type = type;
- }
-
- public InstantiateType(@NotNull Class> theClass) {
- this(new DiType(theClass));
- }
-
- @Override
- @NotNull
- public DiType getType() {
- return type;
- }
-
- @Override
- public String toString() {
- return "[Instantiate type: " + getType() + "]";
- }
-
- @NotNull
- @Override
- public String renderAsCode() {
- throw new UnsupportedOperationException("This should be replaced by some concrete expression by the time this method is called");
- }
-
- @NotNull
- @Override
- public Collection getTypesToImport() {
- throw new UnsupportedOperationException("This should be replaced by some concrete expression by the time this method is called");
- }
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InstantiationFailedException.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InstantiationFailedException.java
deleted file mode 100644
index 2481b91a4ad..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/InstantiationFailedException.java
+++ /dev/null
@@ -1,23 +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.generators.di;
-
-public class InstantiationFailedException extends RuntimeException {
- public InstantiationFailedException(String message, Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/MethodCall.kt b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/MethodCall.kt
deleted file mode 100644
index f1d237c5fc9..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/MethodCall.kt
+++ /dev/null
@@ -1,32 +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.generators.di
-
-import java.lang.reflect.Method
-
-public class MethodCall(
- val receiver: Field,
- val method: Method
-) : Expression {
- override fun renderAsCode(): String {
- return "${receiver.getName()}.${method.getName()}()"
- }
-
- override fun getTypesToImport() = listOf()
-
- override fun getType(): DiType = DiType.fromReflectionType(method.getGenericReturnType())
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/Parameter.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/Parameter.java
deleted file mode 100644
index dc6e7b75188..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/Parameter.java
+++ /dev/null
@@ -1,68 +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.generators.di;
-
-class Parameter {
- private final DiType type;
- private final String name;
- private final Field field;
- private final boolean required;
-
- Parameter(DiType type, String name, Field field, boolean required) {
- this.type = type;
- this.name = name;
- this.field = field;
- this.required = required;
- }
-
- public DiType getType() {
- return type;
- }
-
- public String getName() {
- return name;
- }
-
- public Field getField() {
- return field;
- }
-
- public boolean isRequired() {
- return required;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- Parameter parameter = (Parameter) o;
-
- if (name != null ? !name.equals(parameter.name) : parameter.name != null) return false;
- if (type != null ? !type.equals(parameter.type) : parameter.type != null) return false;
-
- return true;
- }
- @Override
- public int hashCode() {
- int result = type != null ? type.hashCode() : 0;
- result = 31 * result + (name != null ? name.hashCode() : 0);
- return result;
- }
-
-
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/ParameterExpression.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/ParameterExpression.java
deleted file mode 100644
index 5c946a34cd4..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/ParameterExpression.java
+++ /dev/null
@@ -1,57 +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.generators.di;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.util.Collection;
-import java.util.Collections;
-
-public class ParameterExpression implements Expression {
- private final Parameter parameter;
-
- public ParameterExpression(Parameter parameter) {
- this.parameter = parameter;
- }
-
- public Parameter getParameter() {
- return parameter;
- }
-
- @Override
- public String toString() {
- return "parameter<" + parameter.getName() + ">";
- }
-
- @NotNull
- @Override
- public String renderAsCode() {
- return parameter.getName();
- }
-
- @NotNull
- @Override
- public Collection getTypesToImport() {
- return Collections.emptyList();
- }
-
- @NotNull
- @Override
- public DiType getType() {
- return parameter.getType();
- }
-}
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/SetterDependency.java b/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/SetterDependency.java
deleted file mode 100644
index 2106b6110a1..00000000000
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/SetterDependency.java
+++ /dev/null
@@ -1,46 +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.generators.di;
-
-class SetterDependency {
- private final Field dependent;
- private final String setterName;
- private final Field dependency;
-
- SetterDependency(Field dependent, String setterName, Field dependency) {
- this.dependent = dependent;
- this.setterName = setterName;
- this.dependency = dependency;
- }
-
- public Field getDependent() {
- return dependent;
- }
-
- public String getSetterName() {
- return setterName;
- }
-
- public Field getDependency() {
- return dependency;
- }
-
- @Override
- public String toString() {
- return dependent.getName() + "." + setterName + "(" + dependency.getName() + ")";
- }
-}
diff --git a/generators/src/org/jetbrains/kotlin/generators/evaluate/GenerateOperationsMap.kt b/generators/src/org/jetbrains/kotlin/generators/evaluate/GenerateOperationsMap.kt
index b831d2b8f85..bcb6cc7b13c 100644
--- a/generators/src/org/jetbrains/kotlin/generators/evaluate/GenerateOperationsMap.kt
+++ b/generators/src/org/jetbrains/kotlin/generators/evaluate/GenerateOperationsMap.kt
@@ -16,15 +16,14 @@
package org.jetbrains.kotlin.generators.evaluate
-import java.io.File
-import com.intellij.openapi.util.io.FileUtil
-import org.jetbrains.kotlin.generators.di.GeneratorsFileUtil
-import org.jetbrains.kotlin.utils.Printer
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
-import org.jetbrains.kotlin.types.TypeUtils
+import org.jetbrains.kotlin.generators.util.GeneratorsFileUtil
import org.jetbrains.kotlin.types.JetType
+import org.jetbrains.kotlin.types.TypeUtils
+import org.jetbrains.kotlin.utils.Printer
+import java.io.File
val DEST_FILE: File = File("compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/OperationsMapGenerated.kt")
private val EXCLUDED_FUNCTIONS = listOf("rangeTo", "hashCode", "inc", "dec", "subSequence")
diff --git a/generators/src/org/jetbrains/kotlin/generators/frontend/GenerateKeywordStrings.java b/generators/src/org/jetbrains/kotlin/generators/frontend/GenerateKeywordStrings.java
index 5c6051b96d4..4570e0448b5 100644
--- a/generators/src/org/jetbrains/kotlin/generators/frontend/GenerateKeywordStrings.java
+++ b/generators/src/org/jetbrains/kotlin/generators/frontend/GenerateKeywordStrings.java
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.generators.frontend;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.psi.tree.IElementType;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.kotlin.generators.di.GeneratorsFileUtil;
+import org.jetbrains.kotlin.generators.util.GeneratorsFileUtil;
import org.jetbrains.kotlin.lexer.JetKeywordToken;
import org.jetbrains.kotlin.lexer.JetTokens;
import org.jetbrains.kotlin.utils.Printer;
diff --git a/generators/src/org/jetbrains/kotlin/generators/injectors/GenerateInjectors.kt b/generators/src/org/jetbrains/kotlin/generators/injectors/GenerateInjectors.kt
deleted file mode 100644
index f0f381299eb..00000000000
--- a/generators/src/org/jetbrains/kotlin/generators/injectors/GenerateInjectors.kt
+++ /dev/null
@@ -1,288 +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.generators.injectors
-
-import com.intellij.openapi.project.Project
-import com.intellij.psi.search.GlobalSearchScope
-import org.jetbrains.kotlin.context.GlobalContext
-import org.jetbrains.kotlin.context.LazyResolveToken
-import org.jetbrains.kotlin.context.ModuleContext
-import org.jetbrains.kotlin.descriptors.ModuleDescriptor
-import org.jetbrains.kotlin.generators.di.*
-import org.jetbrains.kotlin.js.resolve.KotlinJsCheckerProvider
-import org.jetbrains.kotlin.load.java.JavaClassFinderImpl
-import org.jetbrains.kotlin.load.java.JavaFlexibleTypeCapabilitiesProvider
-import org.jetbrains.kotlin.load.java.components.*
-import org.jetbrains.kotlin.load.java.lazy.ModuleClassResolver
-import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver
-import org.jetbrains.kotlin.load.java.reflect.ReflectJavaClassFinder
-import org.jetbrains.kotlin.load.java.sam.SamConversionResolverImpl
-import org.jetbrains.kotlin.load.java.structure.JavaPropertyInitializerEvaluator
-import org.jetbrains.kotlin.load.java.structure.impl.JavaPropertyInitializerEvaluatorImpl
-import org.jetbrains.kotlin.load.kotlin.DeserializationComponentsForJava
-import org.jetbrains.kotlin.load.kotlin.KotlinJvmCheckerProvider
-import org.jetbrains.kotlin.load.kotlin.JvmVirtualFileFinder
-import org.jetbrains.kotlin.load.kotlin.JvmVirtualFileFinderFactory
-import org.jetbrains.kotlin.load.kotlin.reflect.ReflectKotlinClassFinder
-import org.jetbrains.kotlin.resolve.*
-import org.jetbrains.kotlin.resolve.calls.CallResolver
-import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver
-import org.jetbrains.kotlin.resolve.jvm.JavaLazyAnalyzerPostConstruct
-import org.jetbrains.kotlin.resolve.lazy.*
-import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory
-import org.jetbrains.kotlin.storage.StorageManager
-import org.jetbrains.kotlin.types.DynamicTypesAllowed
-import org.jetbrains.kotlin.types.DynamicTypesSettings
-import org.jetbrains.kotlin.types.expressions.*
-
-// NOTE: After making changes, you need to re-generate the injectors.
-// To do that, you can run main in this file.
-public fun main(args: Array) {
- for (generator in createInjectorGenerators()) {
- try {
- generator.generate()
- }
- catch (e: Throwable) {
- System.err.println(generator.getOutputFile())
- throw e
- }
- }
-}
-
-private val DI_DEFAULT_PACKAGE = "org.jetbrains.kotlin.di"
-
-public fun createInjectorGenerators(): List =
- listOf(
- generatorForLazyLocalClassifierAnalyzer(),
- generatorForTopDownAnalyzerForJvm(),
- generatorForRuntimeDescriptorLoader(),
- generatorForLazyResolveWithJava(),
- generatorForTopDownAnalyzerForJs(),
- generatorForMacro(),
- generatorForTests(),
- generatorForLazyResolve(),
- generatorForBodyResolve(),
- generatorForLazyBodyResolve(),
- generatorForReplWithJava()
- )
-
-private fun generatorForLazyLocalClassifierAnalyzer() =
- generator("compiler/frontend/src", DI_DEFAULT_PACKAGE, "InjectorForLazyLocalClassifierAnalyzer") {
- parameter(useAsContext = true)
- parameter()
- parameter(useAsContext = true)
- parameter()
- parameter()
-
- publicField()
-
- field()
- field()
- field()
- field()
- }
-
-private fun generatorForLazyBodyResolve() =
- generator("compiler/frontend/src", DI_DEFAULT_PACKAGE, "InjectorForLazyBodyResolve") {
- parameter(useAsContext = true)
- parameter(name = "analyzer")
- parameter()
- parameter()
- parameter(useAsContext = true)
- parameter()
-
- publicField()
- }
-
-private fun generatorForTopDownAnalyzerForJs() =
- generator("js/js.frontend/src", DI_DEFAULT_PACKAGE, "InjectorForTopDownAnalyzerForJs") {
- commonForResolveSessionBased()
-
- publicField()
-
- field(useAsContext = true)
- field()
- }
-
-private fun generatorForTopDownAnalyzerForJvm() =
- generator("compiler/frontend.java/src", DI_DEFAULT_PACKAGE, "InjectorForTopDownAnalyzerForJvm") {
- commonForJavaTopDownAnalyzer()
- }
-
-private fun generatorForRuntimeDescriptorLoader() =
- generator("core/descriptors.runtime/src", DI_DEFAULT_PACKAGE, "InjectorForRuntimeDescriptorLoader") {
- parameter()
- publicParameter()
- parameter()
-
- publicField()
- publicField()
-
- field(init = GetSingleton.byField(javaClass(), "DO_NOTHING"))
- field(init = GetSingleton.byField(javaClass(), "EMPTY"))
- field(init = GetSingleton.byField(javaClass(), "EMPTY"))
- field(init = GetSingleton.byField(javaClass(), "DO_NOTHING"))
- field(init = GetSingleton.byField(javaClass(), "EMPTY"))
-
- field()
- field()
- field()
-
- field()
- field()
- }
-
-private fun generatorForLazyResolveWithJava() =
- generator("compiler/frontend.java/src", DI_DEFAULT_PACKAGE, "InjectorForLazyResolveWithJava") {
- commonForResolveSessionBased()
-
- parameter(name = "moduleContentScope")
- parameter()
-
- publicField()
-
- field(
- init = GivenExpression(javaClass().getName()
- + ".SERVICE.getInstance(project).create(moduleContentScope)")
- )
-
- field()
- field()
- field()
- field()
- field()
- field()
- field()
- field()
- field()
- field()
- field()
-
- field(useAsContext = true)
- }
-
-private fun generatorForReplWithJava() =
- generator("compiler/frontend.java/src", DI_DEFAULT_PACKAGE, "InjectorForReplWithJava") {
- commonForJavaTopDownAnalyzer()
- parameter()
- }
-
-private fun generatorForMacro() =
- generator("compiler/frontend/src", DI_DEFAULT_PACKAGE, "InjectorForMacros") {
- parameter()
- parameter(useAsContext = true)
-
- publicField()
- publicField()
- publicField()
- publicField()
-
- field(useAsContext = true,
- init = GivenExpression("org.jetbrains.kotlin.context.ContextPackage.GlobalContext()"))
-
- field(useAsContext = true)
- }
-
-private fun generatorForTests() =
- generator("compiler/tests", DI_DEFAULT_PACKAGE, "InjectorForTests") {
- parameter()
- parameter(useAsContext = true)
-
- publicField()
- publicField()
- publicField()
- publicField()
- publicField(name = "additionalCheckerProvider", useAsContext = true)
- publicField()
- publicField()
-
- field(init = GivenExpression("org.jetbrains.kotlin.context.ContextPackage.GlobalContext()"),
- useAsContext = true)
- }
-
-private fun generatorForBodyResolve() =
- generator("compiler/frontend/src", DI_DEFAULT_PACKAGE, "InjectorForBodyResolve") {
- parameter(useAsContext = true)
- parameter()
- parameter(useAsContext = true)
- parameter()
-
- publicField()
- }
-
-private fun generatorForLazyResolve() =
- generator("compiler/frontend/src", DI_DEFAULT_PACKAGE, "InjectorForLazyResolve") {
- parameter(useAsContext = true)
- parameter()
- parameter()
- parameter(useAsContext = true)
- parameter()
-
- publicField()
-
- field()
- field()
- }
-
-private fun DependencyInjectorGenerator.commonForResolveSessionBased() {
- publicParameter(useAsContext = true)
- parameter()
- parameter()
-
- publicField()
- field()
-}
-
-private fun DependencyInjectorGenerator.commonForJavaTopDownAnalyzer() {
- commonForResolveSessionBased()
-
- parameter(name = "moduleContentScope")
-
- publicField()
- publicField()
- publicField()
- publicField()
-
- field(
- init = GivenExpression(javaClass().getName()
- + ".SERVICE.getInstance(project).create(moduleContentScope)")
- )
-
- field()
- field()
- field()
- field()
- field()
- field()
- field()
- field()
- field()
- field()
- field()
-
- field(useAsContext = true)
-
- field(init = GivenExpression(javaClass().getName() + ".SERVICE.getInstance(project)"))
-}
-
-
-private fun generator(
- targetSourceRoot: String,
- injectorPackageName: String,
- injectorClassName: String,
- body: DependencyInjectorGenerator.() -> Unit
-) = generator(targetSourceRoot, injectorPackageName, injectorClassName, "org.jetbrains.kotlin.generators.injectors.InjectorsPackage", body)
diff --git a/generators/src/org/jetbrains/kotlin/generators/tests/generateTestDataForReservedWords.kt b/generators/src/org/jetbrains/kotlin/generators/tests/generateTestDataForReservedWords.kt
index 81388f6c63f..5b98d26e66f 100644
--- a/generators/src/org/jetbrains/kotlin/generators/tests/generateTestDataForReservedWords.kt
+++ b/generators/src/org/jetbrains/kotlin/generators/tests/generateTestDataForReservedWords.kt
@@ -17,7 +17,7 @@
package org.jetbrains.kotlin.generators.tests.reservedWords
import com.google.dart.compiler.backend.js.ast.JsFunctionScope
-import org.jetbrains.kotlin.generators.di.GeneratorsFileUtil.writeFileIfContentChanged
+import org.jetbrains.kotlin.generators.util.GeneratorsFileUtil
import org.jetbrains.kotlin.lexer.JetTokens
import org.jetbrains.kotlin.renderer.KeywordStringsGenerated
import java.io.File
@@ -313,7 +313,7 @@ class TestDataBuilder() {
error("Unexpected new testdata file: '$fileName'. It may cause for example because of bug in stdlib.")
}
- writeFileIfContentChanged(testDataFile, out, false)
+ GeneratorsFileUtil.writeFileIfContentChanged(testDataFile, out, false)
}
}
}
diff --git a/generators/src/org/jetbrains/kotlin/generators/tests/generator/TestGenerator.java b/generators/src/org/jetbrains/kotlin/generators/tests/generator/TestGenerator.java
index 90534172903..c6d9ccf694e 100644
--- a/generators/src/org/jetbrains/kotlin/generators/tests/generator/TestGenerator.java
+++ b/generators/src/org/jetbrains/kotlin/generators/tests/generator/TestGenerator.java
@@ -22,7 +22,7 @@ import com.intellij.util.containers.ContainerUtil;
import junit.framework.TestCase;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import org.jetbrains.kotlin.generators.di.GeneratorsFileUtil;
+import org.jetbrains.kotlin.generators.util.GeneratorsFileUtil;
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.test.JetTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
diff --git a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/GeneratorsFileUtil.java b/generators/src/org/jetbrains/kotlin/generators/util/GeneratorsFileUtil.java
similarity index 98%
rename from generators/injector-generator/src/org/jetbrains/kotlin/generators/di/GeneratorsFileUtil.java
rename to generators/src/org/jetbrains/kotlin/generators/util/GeneratorsFileUtil.java
index 485dac3268f..6f8912aee7a 100644
--- a/generators/injector-generator/src/org/jetbrains/kotlin/generators/di/GeneratorsFileUtil.java
+++ b/generators/src/org/jetbrains/kotlin/generators/util/GeneratorsFileUtil.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.jetbrains.kotlin.generators.di;
+package org.jetbrains.kotlin.generators.util;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.util.io.FileUtil;
diff --git a/generators/tests/org/jetbrains/kotlin/generators/injectors/GenerateInjectorsTest.java b/generators/tests/org/jetbrains/kotlin/generators/injectors/GenerateInjectorsTest.java
deleted file mode 100644
index bc9fbe138b1..00000000000
--- a/generators/tests/org/jetbrains/kotlin/generators/injectors/GenerateInjectorsTest.java
+++ /dev/null
@@ -1,54 +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.generators.injectors;
-
-import com.intellij.openapi.util.io.FileUtil;
-import com.intellij.openapi.util.text.StringUtil;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import org.jetbrains.kotlin.generators.di.DependencyInjectorGenerator;
-import org.junit.Assert;
-
-import java.io.IOException;
-
-@SuppressWarnings({"JUnitTestCaseWithNoTests", "JUnitTestCaseWithNonTrivialConstructors"})
-public class GenerateInjectorsTest extends TestCase {
-
- private final DependencyInjectorGenerator generator;
-
- public GenerateInjectorsTest(DependencyInjectorGenerator generator) {
- super(generator.getInjectorClassName());
- this.generator = generator;
- }
-
- @Override
- protected void runTest() throws Throwable {
- CharSequence text = generator.generateText();
- String expected = FileUtil.loadFile(generator.getOutputFile(), true);
- String expectedText = StringUtil.convertLineSeparators(expected.trim());
- String actualText = StringUtil.convertLineSeparators(text.toString().trim());
- Assert.assertEquals("To fix this problem you need to run GenerateInjectors", expectedText, actualText);
- }
-
- public static TestSuite suite() throws IOException {
- TestSuite suite = new TestSuite();
- for (DependencyInjectorGenerator generator : InjectorsPackage.createInjectorGenerators()) {
- suite.addTest(new GenerateInjectorsTest(generator));
- }
- return suite;
- }
-}
diff --git a/js/js.frontend/src/org/jetbrains/kotlin/di/InjectorForTopDownAnalyzerForJs.java b/js/js.frontend/src/org/jetbrains/kotlin/di/InjectorForTopDownAnalyzerForJs.java
deleted file mode 100644
index 84b36fcae1a..00000000000
--- a/js/js.frontend/src/org/jetbrains/kotlin/di/InjectorForTopDownAnalyzerForJs.java
+++ /dev/null
@@ -1,335 +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 org.jetbrains.kotlin.context.ModuleContext;
-import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
-import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
-import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
-import com.intellij.openapi.project.Project;
-import org.jetbrains.kotlin.storage.StorageManager;
-import org.jetbrains.kotlin.resolve.BindingTrace;
-import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory;
-import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
-import org.jetbrains.kotlin.resolve.lazy.ScopeProvider;
-import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzerForTopLevel;
-import org.jetbrains.kotlin.js.resolve.KotlinJsCheckerProvider;
-import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator;
-import org.jetbrains.kotlin.types.DynamicTypesAllowed;
-import org.jetbrains.kotlin.resolve.AnnotationResolver;
-import org.jetbrains.kotlin.resolve.calls.CallResolver;
-import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices;
-import org.jetbrains.kotlin.types.expressions.ExpressionTypingComponents;
-import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver;
-import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils;
-import org.jetbrains.kotlin.resolve.DescriptorResolver;
-import org.jetbrains.kotlin.resolve.DelegatedPropertyResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver;
-import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver;
-import org.jetbrains.kotlin.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider;
-import org.jetbrains.kotlin.context.TypeLazinessToken;
-import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker;
-import org.jetbrains.kotlin.types.expressions.FakeCallResolver;
-import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver;
-import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer;
-import org.jetbrains.kotlin.types.expressions.MultiDeclarationResolver;
-import org.jetbrains.kotlin.builtins.ReflectionTypes;
-import org.jetbrains.kotlin.types.expressions.ValueParameterResolver;
-import org.jetbrains.kotlin.resolve.StatementFilter;
-import org.jetbrains.kotlin.resolve.calls.CallCompleter;
-import org.jetbrains.kotlin.resolve.calls.CandidateResolver;
-import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer;
-import org.jetbrains.kotlin.psi.JetImportsFactory;
-import org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver;
-import org.jetbrains.kotlin.resolve.lazy.DeclarationScopeProviderImpl;
-import org.jetbrains.kotlin.resolve.ScriptBodyResolver;
-import org.jetbrains.kotlin.resolve.lazy.ScopeProvider.AdditionalFileScopeProvider;
-import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer;
-import org.jetbrains.kotlin.resolve.BodyResolver;
-import org.jetbrains.kotlin.resolve.ControlFlowAnalyzer;
-import org.jetbrains.kotlin.resolve.DeclarationsChecker;
-import org.jetbrains.kotlin.resolve.ModifiersChecker;
-import org.jetbrains.kotlin.resolve.FunctionAnalyzerExtension;
-import org.jetbrains.kotlin.resolve.DeclarationResolver;
-import org.jetbrains.kotlin.resolve.OverloadResolver;
-import org.jetbrains.kotlin.resolve.OverrideResolver;
-import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker;
-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 InjectorForTopDownAnalyzerForJs {
-
- private final ModuleContext moduleContext;
- private final KotlinBuiltIns kotlinBuiltIns;
- private final ModuleDescriptor moduleDescriptor;
- private final PlatformToKotlinClassMap platformToKotlinClassMap;
- private final Project project;
- private final StorageManager storageManager;
- private final BindingTrace bindingTrace;
- private final DeclarationProviderFactory declarationProviderFactory;
- private final ResolveSession resolveSession;
- private final ScopeProvider scopeProvider;
- private final LazyTopDownAnalyzerForTopLevel lazyTopDownAnalyzerForTopLevel;
- private final KotlinJsCheckerProvider kotlinJsCheckerProvider;
- private final SymbolUsageValidator symbolUsageValidator;
- private final DynamicTypesAllowed dynamicTypesAllowed;
- private final AnnotationResolver annotationResolver;
- private final CallResolver callResolver;
- private final ArgumentTypeResolver argumentTypeResolver;
- private final ExpressionTypingServices expressionTypingServices;
- private final ExpressionTypingComponents expressionTypingComponents;
- private final CallExpressionResolver callExpressionResolver;
- private final ControlStructureTypingUtils controlStructureTypingUtils;
- private final DescriptorResolver descriptorResolver;
- private final DelegatedPropertyResolver delegatedPropertyResolver;
- private final TypeResolver typeResolver;
- private final QualifiedExpressionResolver qualifiedExpressionResolver;
- private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider;
- private final TypeLazinessToken typeLazinessToken;
- private final ForLoopConventionsChecker forLoopConventionsChecker;
- private final FakeCallResolver fakeCallResolver;
- private final FunctionDescriptorResolver functionDescriptorResolver;
- private final LocalClassifierAnalyzer localClassifierAnalyzer;
- private final MultiDeclarationResolver multiDeclarationResolver;
- private final ReflectionTypes reflectionTypes;
- private final ValueParameterResolver valueParameterResolver;
- private final StatementFilter statementFilter;
- private final CallCompleter callCompleter;
- private final CandidateResolver candidateResolver;
- private final TaskPrioritizer taskPrioritizer;
- private final JetImportsFactory jetImportsFactory;
- private final LazyDeclarationResolver lazyDeclarationResolver;
- private final DeclarationScopeProviderImpl declarationScopeProvider;
- private final ScriptBodyResolver scriptBodyResolver;
- private final AdditionalFileScopeProvider additionalFileScopeProvider;
- private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
- private final BodyResolver bodyResolver;
- private final ControlFlowAnalyzer controlFlowAnalyzer;
- private final DeclarationsChecker declarationsChecker;
- private final ModifiersChecker modifiersChecker;
- private final FunctionAnalyzerExtension functionAnalyzerExtension;
- private final DeclarationResolver declarationResolver;
- private final OverloadResolver overloadResolver;
- private final OverrideResolver overrideResolver;
- private final VarianceChecker varianceChecker;
-
- public InjectorForTopDownAnalyzerForJs(
- @NotNull ModuleContext moduleContext,
- @NotNull BindingTrace bindingTrace,
- @NotNull DeclarationProviderFactory declarationProviderFactory
- ) {
- this.moduleContext = moduleContext;
- this.kotlinBuiltIns = moduleContext.getBuiltIns();
- this.moduleDescriptor = moduleContext.getModule();
- this.platformToKotlinClassMap = moduleContext.getPlatformToKotlinClassMap();
- this.project = moduleContext.getProject();
- this.storageManager = moduleContext.getStorageManager();
- this.bindingTrace = bindingTrace;
- this.declarationProviderFactory = declarationProviderFactory;
- this.resolveSession = new ResolveSession(project, getModuleContext(), moduleDescriptor, declarationProviderFactory, bindingTrace);
- this.scopeProvider = new ScopeProvider(getResolveSession());
- this.lazyTopDownAnalyzerForTopLevel = new LazyTopDownAnalyzerForTopLevel();
- this.kotlinJsCheckerProvider = KotlinJsCheckerProvider.INSTANCE$;
- this.symbolUsageValidator = kotlinJsCheckerProvider.getSymbolUsageValidator();
- this.dynamicTypesAllowed = new DynamicTypesAllowed();
- this.annotationResolver = new AnnotationResolver();
- this.callResolver = new CallResolver();
- this.argumentTypeResolver = new ArgumentTypeResolver();
- this.expressionTypingComponents = new ExpressionTypingComponents();
- this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents);
- this.callExpressionResolver = new CallExpressionResolver(callResolver, kotlinBuiltIns);
- this.controlStructureTypingUtils = new ControlStructureTypingUtils(callResolver);
- this.descriptorResolver = new DescriptorResolver();
- this.delegatedPropertyResolver = new DelegatedPropertyResolver();
- this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
- this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider();
- this.typeLazinessToken = new TypeLazinessToken();
- this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, moduleDescriptor, flexibleTypeCapabilitiesProvider, storageManager, typeLazinessToken, dynamicTypesAllowed);
- this.forLoopConventionsChecker = new ForLoopConventionsChecker();
- this.fakeCallResolver = new FakeCallResolver(project, callResolver);
- this.functionDescriptorResolver = new FunctionDescriptorResolver(typeResolver, descriptorResolver, annotationResolver, storageManager, expressionTypingServices, kotlinBuiltIns);
- this.localClassifierAnalyzer = new LocalClassifierAnalyzer(descriptorResolver, functionDescriptorResolver, typeResolver, annotationResolver);
- this.multiDeclarationResolver = new MultiDeclarationResolver(fakeCallResolver, descriptorResolver, typeResolver, symbolUsageValidator);
- this.reflectionTypes = new ReflectionTypes(moduleDescriptor);
- this.valueParameterResolver = new ValueParameterResolver(kotlinJsCheckerProvider, expressionTypingServices);
- this.statementFilter = new StatementFilter();
- this.candidateResolver = new CandidateResolver();
- this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver);
- this.taskPrioritizer = new TaskPrioritizer(storageManager);
- this.jetImportsFactory = new JetImportsFactory();
- this.lazyDeclarationResolver = new LazyDeclarationResolver(getModuleContext(), bindingTrace);
- this.declarationScopeProvider = new DeclarationScopeProviderImpl(lazyDeclarationResolver);
- this.scriptBodyResolver = new ScriptBodyResolver();
- this.additionalFileScopeProvider = new AdditionalFileScopeProvider();
- this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
- this.bodyResolver = new BodyResolver();
- this.controlFlowAnalyzer = new ControlFlowAnalyzer();
- this.declarationsChecker = new DeclarationsChecker();
- this.modifiersChecker = new ModifiersChecker(bindingTrace, kotlinJsCheckerProvider);
- this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
- this.declarationResolver = new DeclarationResolver();
- this.overloadResolver = new OverloadResolver();
- this.overrideResolver = new OverrideResolver();
- this.varianceChecker = new VarianceChecker(bindingTrace);
-
- this.resolveSession.setAnnotationResolve(annotationResolver);
- this.resolveSession.setDescriptorResolver(descriptorResolver);
- this.resolveSession.setFunctionDescriptorResolver(functionDescriptorResolver);
- this.resolveSession.setJetImportFactory(jetImportsFactory);
- this.resolveSession.setLazyDeclarationResolver(lazyDeclarationResolver);
- this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
- this.resolveSession.setScopeProvider(scopeProvider);
- this.resolveSession.setScriptBodyResolver(scriptBodyResolver);
- this.resolveSession.setTypeResolver(typeResolver);
-
- scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
- scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
-
- this.lazyTopDownAnalyzerForTopLevel.setKotlinCodeAnalyzer(resolveSession);
- this.lazyTopDownAnalyzerForTopLevel.setLazyTopDownAnalyzer(lazyTopDownAnalyzer);
-
- annotationResolver.setCallResolver(callResolver);
- annotationResolver.setStorageManager(storageManager);
- annotationResolver.setTypeResolver(typeResolver);
-
- callResolver.setAdditionalCheckerProvider(kotlinJsCheckerProvider);
- callResolver.setArgumentTypeResolver(argumentTypeResolver);
- callResolver.setCallCompleter(callCompleter);
- callResolver.setCandidateResolver(candidateResolver);
- callResolver.setExpressionTypingServices(expressionTypingServices);
- callResolver.setTaskPrioritizer(taskPrioritizer);
- callResolver.setTypeResolver(typeResolver);
-
- argumentTypeResolver.setBuiltIns(kotlinBuiltIns);
- argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
- argumentTypeResolver.setTypeResolver(typeResolver);
-
- expressionTypingServices.setStatementFilter(statementFilter);
-
- expressionTypingComponents.setAdditionalCheckerProvider(kotlinJsCheckerProvider);
- expressionTypingComponents.setAnnotationResolver(annotationResolver);
- expressionTypingComponents.setBuiltIns(kotlinBuiltIns);
- expressionTypingComponents.setCallExpressionResolver(callExpressionResolver);
- expressionTypingComponents.setCallResolver(callResolver);
- expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils);
- expressionTypingComponents.setDescriptorResolver(descriptorResolver);
- expressionTypingComponents.setDynamicTypesSettings(dynamicTypesAllowed);
- expressionTypingComponents.setExpressionTypingServices(expressionTypingServices);
- expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker);
- expressionTypingComponents.setFunctionDescriptorResolver(functionDescriptorResolver);
- expressionTypingComponents.setGlobalContext(moduleContext);
- expressionTypingComponents.setLocalClassifierAnalyzer(localClassifierAnalyzer);
- expressionTypingComponents.setMultiDeclarationResolver(multiDeclarationResolver);
- expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap);
- expressionTypingComponents.setReflectionTypes(reflectionTypes);
- expressionTypingComponents.setSymbolUsageValidator(symbolUsageValidator);
- expressionTypingComponents.setTypeResolver(typeResolver);
- expressionTypingComponents.setValueParameterResolver(valueParameterResolver);
-
- callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
-
- descriptorResolver.setAnnotationResolver(annotationResolver);
- descriptorResolver.setBuiltIns(kotlinBuiltIns);
- descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- descriptorResolver.setExpressionTypingServices(expressionTypingServices);
- descriptorResolver.setStorageManager(storageManager);
- descriptorResolver.setTypeResolver(typeResolver);
-
- delegatedPropertyResolver.setAdditionalCheckerProvider(kotlinJsCheckerProvider);
- delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns);
- delegatedPropertyResolver.setCallResolver(callResolver);
- delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
-
- qualifiedExpressionResolver.setSymbolUsageValidator(symbolUsageValidator);
-
- forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns);
- forLoopConventionsChecker.setFakeCallResolver(fakeCallResolver);
- forLoopConventionsChecker.setSymbolUsageValidator(symbolUsageValidator);
-
- candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
-
- jetImportsFactory.setProject(project);
-
- lazyDeclarationResolver.setDeclarationScopeProvider(declarationScopeProvider);
- lazyDeclarationResolver.setTopLevelDescriptorProvider(resolveSession);
-
- declarationScopeProvider.setFileScopeProvider(scopeProvider);
-
- scriptBodyResolver.setAdditionalCheckerProvider(kotlinJsCheckerProvider);
- scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
-
- lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
- lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
- lazyTopDownAnalyzer.setDeclarationScopeProvider(declarationScopeProvider);
- lazyTopDownAnalyzer.setFileScopeProvider(scopeProvider);
- lazyTopDownAnalyzer.setLazyDeclarationResolver(lazyDeclarationResolver);
- lazyTopDownAnalyzer.setModuleDescriptor(moduleDescriptor);
- lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
- lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
- lazyTopDownAnalyzer.setTopLevelDescriptorProvider(resolveSession);
- lazyTopDownAnalyzer.setTrace(bindingTrace);
- lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
-
- bodyResolver.setAdditionalCheckerProvider(kotlinJsCheckerProvider);
- bodyResolver.setAnnotationResolver(annotationResolver);
- bodyResolver.setCallResolver(callResolver);
- bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
- bodyResolver.setDeclarationsChecker(declarationsChecker);
- bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
- bodyResolver.setExpressionTypingServices(expressionTypingServices);
- bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
- bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
- bodyResolver.setTrace(bindingTrace);
- bodyResolver.setValueParameterResolver(valueParameterResolver);
-
- controlFlowAnalyzer.setTrace(bindingTrace);
-
- declarationsChecker.setDescriptorResolver(descriptorResolver);
- declarationsChecker.setModifiersChecker(modifiersChecker);
- declarationsChecker.setTrace(bindingTrace);
-
- functionAnalyzerExtension.setTrace(bindingTrace);
-
- declarationResolver.setAnnotationResolver(annotationResolver);
- declarationResolver.setTrace(bindingTrace);
-
- overloadResolver.setTrace(bindingTrace);
-
- overrideResolver.setTrace(bindingTrace);
-
- }
-
- @PreDestroy
- public void destroy() {
- }
-
- public ModuleContext getModuleContext() {
- return this.moduleContext;
- }
-
- public ResolveSession getResolveSession() {
- return this.resolveSession;
- }
-
- public LazyTopDownAnalyzerForTopLevel getLazyTopDownAnalyzerForTopLevel() {
- return this.lazyTopDownAnalyzerForTopLevel;
- }
-
-}