From 88a43fac5fc7ebafc150dd3ef7c0fc9112023603 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Wed, 23 Oct 2013 14:46:34 +0400 Subject: [PATCH] Injectors regenerated --- .../jet/di/InjectorForTopDownAnalyzerForJvm.java | 14 ++++++++++---- .../jetbrains/jet/di/InjectorForBodyResolve.java | 14 ++++++++++---- .../jetbrains/jet/di/InjectorForLazyResolve.java | 8 ++++---- .../org/jetbrains/jet/di/InjectorForMacros.java | 8 ++++---- .../jet/di/InjectorForTopDownAnalyzerBasic.java | 14 ++++++++++---- .../org/jetbrains/jet/di/InjectorForTests.java | 8 ++++---- .../generators/injectors/GenerateInjectors.java | 13 +++++++------ .../jet/di/InjectorForTopDownAnalyzerForJs.java | 14 ++++++++++---- 8 files changed, 59 insertions(+), 34 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java index c3d5e58d119..0d3b62218a3 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java @@ -22,7 +22,7 @@ import org.jetbrains.jet.lang.resolve.BodyResolver; import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer; import org.jetbrains.jet.lang.resolve.DeclarationsChecker; import org.jetbrains.jet.lang.resolve.DescriptorResolver; -import org.jetbrains.jet.lang.resolve.calls.CompositeExtension; +import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import com.intellij.openapi.project.Project; import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; import org.jetbrains.jet.lang.resolve.BindingTrace; @@ -55,6 +55,7 @@ import org.jetbrains.jet.lang.resolve.OverloadResolver; import org.jetbrains.jet.lang.resolve.OverrideResolver; import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver; import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver; +import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension; import org.jetbrains.jet.lang.resolve.ScriptBodyResolver; import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver; import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver; @@ -82,7 +83,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly private final ControlFlowAnalyzer controlFlowAnalyzer; private final DeclarationsChecker declarationsChecker; private final DescriptorResolver descriptorResolver; - private final CompositeExtension compositeExtension; + private final CallResolverExtensionProvider callResolverExtensionProvider; private final Project project; private final TopDownAnalysisParameters topDownAnalysisParameters; private final BindingTrace bindingTrace; @@ -115,6 +116,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly private final OverrideResolver overrideResolver; private final TypeHierarchyResolver typeHierarchyResolver; private final DelegatedPropertyResolver delegatedPropertyResolver; + private final FunctionAnalyzerExtension functionAnalyzerExtension; private final ScriptBodyResolver scriptBodyResolver; private final JavaClassResolver javaClassResolver; private final JavaAnnotationResolver javaAnnotationResolver; @@ -143,7 +145,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly this.controlFlowAnalyzer = new ControlFlowAnalyzer(); this.declarationsChecker = new DeclarationsChecker(); this.descriptorResolver = new DescriptorResolver(); - this.compositeExtension = new CompositeExtension(); + this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.project = project; this.topDownAnalysisParameters = topDownAnalysisParameters; this.bindingTrace = bindingTrace; @@ -176,6 +178,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly this.overrideResolver = new OverrideResolver(); this.typeHierarchyResolver = new TypeHierarchyResolver(); this.delegatedPropertyResolver = new DelegatedPropertyResolver(); + this.functionAnalyzerExtension = new FunctionAnalyzerExtension(); this.scriptBodyResolver = new ScriptBodyResolver(); this.javaClassResolver = new JavaClassResolver(); this.javaAnnotationResolver = new JavaAnnotationResolver(); @@ -212,6 +215,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly this.bodyResolver.setDeclarationsChecker(declarationsChecker); this.bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver); this.bodyResolver.setExpressionTypingServices(expressionTypingServices); + this.bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension); this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver); this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); this.bodyResolver.setTrace(bindingTrace); @@ -261,7 +265,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly callResolver.setArgumentTypeResolver(argumentTypeResolver); callResolver.setCandidateResolver(candidateResolver); callResolver.setExpressionTypingServices(expressionTypingServices); - callResolver.setExtension(compositeExtension); callResolver.setTypeResolver(typeResolver); argumentTypeResolver.setExpressionTypingServices(expressionTypingServices); @@ -271,6 +274,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly expressionTypingServices.setCallExpressionResolver(callExpressionResolver); expressionTypingServices.setCallResolver(callResolver); expressionTypingServices.setDescriptorResolver(descriptorResolver); + expressionTypingServices.setExtensionProvider(callResolverExtensionProvider); expressionTypingServices.setPlatformToKotlinClassMap(javaToKotlinClassMap); expressionTypingServices.setProject(project); expressionTypingServices.setTypeResolver(typeResolver); @@ -313,6 +317,8 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices); + functionAnalyzerExtension.setTrace(bindingTrace); + scriptBodyResolver.setContext(topDownAnalysisContext); scriptBodyResolver.setExpressionTypingServices(expressionTypingServices); scriptBodyResolver.setTrace(bindingTrace); diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForBodyResolve.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForBodyResolve.java index bb7cdc18453..003e265c471 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForBodyResolve.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForBodyResolve.java @@ -17,8 +17,9 @@ package org.jetbrains.jet.di; import org.jetbrains.jet.lang.resolve.BodyResolver; -import org.jetbrains.jet.lang.resolve.calls.CompositeExtension; +import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import org.jetbrains.jet.lang.PlatformToKotlinClassMap; +import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension; import com.intellij.openapi.project.Project; import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; import org.jetbrains.jet.lang.resolve.BindingTrace; @@ -45,8 +46,9 @@ import javax.annotation.PreDestroy; public class InjectorForBodyResolve { private final BodyResolver bodyResolver; - private final CompositeExtension compositeExtension; + private final CallResolverExtensionProvider callResolverExtensionProvider; private final PlatformToKotlinClassMap platformToKotlinClassMap; + private final FunctionAnalyzerExtension functionAnalyzerExtension; private final Project project; private final TopDownAnalysisParameters topDownAnalysisParameters; private final BindingTrace bindingTrace; @@ -75,8 +77,9 @@ public class InjectorForBodyResolve { @NotNull ModuleDescriptor moduleDescriptor ) { this.bodyResolver = new BodyResolver(); - this.compositeExtension = new CompositeExtension(); + this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap(); + this.functionAnalyzerExtension = new FunctionAnalyzerExtension(); this.project = project; this.topDownAnalysisParameters = topDownAnalysisParameters; this.bindingTrace = bindingTrace; @@ -104,17 +107,19 @@ public class InjectorForBodyResolve { this.bodyResolver.setDeclarationsChecker(declarationsChecker); this.bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver); this.bodyResolver.setExpressionTypingServices(expressionTypingServices); + this.bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension); this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver); this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); this.bodyResolver.setTrace(bindingTrace); + functionAnalyzerExtension.setTrace(bindingTrace); + annotationResolver.setCallResolver(callResolver); annotationResolver.setExpressionTypingServices(expressionTypingServices); callResolver.setArgumentTypeResolver(argumentTypeResolver); callResolver.setCandidateResolver(candidateResolver); callResolver.setExpressionTypingServices(expressionTypingServices); - callResolver.setExtension(compositeExtension); callResolver.setTypeResolver(typeResolver); argumentTypeResolver.setExpressionTypingServices(expressionTypingServices); @@ -124,6 +129,7 @@ public class InjectorForBodyResolve { expressionTypingServices.setCallExpressionResolver(callExpressionResolver); expressionTypingServices.setCallResolver(callResolver); expressionTypingServices.setDescriptorResolver(descriptorResolver); + expressionTypingServices.setExtensionProvider(callResolverExtensionProvider); expressionTypingServices.setPlatformToKotlinClassMap(platformToKotlinClassMap); expressionTypingServices.setProject(project); expressionTypingServices.setTypeResolver(typeResolver); diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyResolve.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyResolve.java index 55db5de3cdd..a376c78f5cf 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyResolve.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyResolve.java @@ -26,7 +26,7 @@ import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider; import org.jetbrains.jet.lang.resolve.AnnotationResolver; import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; import org.jetbrains.jet.lang.psi.JetImportsFactory; -import org.jetbrains.jet.lang.resolve.calls.CompositeExtension; +import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import org.jetbrains.jet.lang.PlatformToKotlinClassMap; import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver; import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver; @@ -49,7 +49,7 @@ public class InjectorForLazyResolve { private final AnnotationResolver annotationResolver; private final QualifiedExpressionResolver qualifiedExpressionResolver; private final JetImportsFactory jetImportsFactory; - private final CompositeExtension compositeExtension; + private final CallResolverExtensionProvider callResolverExtensionProvider; private final PlatformToKotlinClassMap platformToKotlinClassMap; private final DelegatedPropertyResolver delegatedPropertyResolver; private final CallExpressionResolver callExpressionResolver; @@ -72,7 +72,7 @@ public class InjectorForLazyResolve { this.annotationResolver = new AnnotationResolver(); this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); this.jetImportsFactory = new JetImportsFactory(); - this.compositeExtension = new CompositeExtension(); + this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap(); this.delegatedPropertyResolver = new DelegatedPropertyResolver(); this.callExpressionResolver = new CallExpressionResolver(); @@ -89,6 +89,7 @@ public class InjectorForLazyResolve { this.expressionTypingServices.setCallExpressionResolver(callExpressionResolver); this.expressionTypingServices.setCallResolver(callResolver); this.expressionTypingServices.setDescriptorResolver(descriptorResolver); + this.expressionTypingServices.setExtensionProvider(callResolverExtensionProvider); this.expressionTypingServices.setPlatformToKotlinClassMap(platformToKotlinClassMap); this.expressionTypingServices.setProject(project); this.expressionTypingServices.setTypeResolver(typeResolver); @@ -109,7 +110,6 @@ public class InjectorForLazyResolve { callResolver.setArgumentTypeResolver(argumentTypeResolver); callResolver.setCandidateResolver(candidateResolver); callResolver.setExpressionTypingServices(expressionTypingServices); - callResolver.setExtension(compositeExtension); callResolver.setTypeResolver(typeResolver); argumentTypeResolver.setExpressionTypingServices(expressionTypingServices); diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java index 750fc5d5d9b..ca7c40de78c 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java @@ -17,7 +17,7 @@ package org.jetbrains.jet.di; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; -import org.jetbrains.jet.lang.resolve.calls.CompositeExtension; +import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import org.jetbrains.jet.lang.PlatformToKotlinClassMap; import com.intellij.openapi.project.Project; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; @@ -37,7 +37,7 @@ import javax.annotation.PreDestroy; public class InjectorForMacros { private final ExpressionTypingServices expressionTypingServices; - private final CompositeExtension compositeExtension; + private final CallResolverExtensionProvider callResolverExtensionProvider; private final PlatformToKotlinClassMap platformToKotlinClassMap; private final Project project; private final ModuleDescriptor moduleDescriptor; @@ -56,7 +56,7 @@ public class InjectorForMacros { @NotNull ModuleDescriptor moduleDescriptor ) { this.expressionTypingServices = new ExpressionTypingServices(); - this.compositeExtension = new CompositeExtension(); + this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap(); this.project = project; this.moduleDescriptor = moduleDescriptor; @@ -74,6 +74,7 @@ public class InjectorForMacros { this.expressionTypingServices.setCallExpressionResolver(callExpressionResolver); this.expressionTypingServices.setCallResolver(callResolver); this.expressionTypingServices.setDescriptorResolver(descriptorResolver); + this.expressionTypingServices.setExtensionProvider(callResolverExtensionProvider); this.expressionTypingServices.setPlatformToKotlinClassMap(platformToKotlinClassMap); this.expressionTypingServices.setProject(project); this.expressionTypingServices.setTypeResolver(typeResolver); @@ -84,7 +85,6 @@ public class InjectorForMacros { callResolver.setArgumentTypeResolver(argumentTypeResolver); callResolver.setCandidateResolver(candidateResolver); callResolver.setExpressionTypingServices(expressionTypingServices); - callResolver.setExtension(compositeExtension); callResolver.setTypeResolver(typeResolver); argumentTypeResolver.setExpressionTypingServices(expressionTypingServices); diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java index 9804a2c5d34..2dd5b9aa161 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java @@ -22,7 +22,7 @@ import org.jetbrains.jet.lang.resolve.BodyResolver; import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer; import org.jetbrains.jet.lang.resolve.DeclarationsChecker; import org.jetbrains.jet.lang.resolve.DescriptorResolver; -import org.jetbrains.jet.lang.resolve.calls.CompositeExtension; +import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import com.intellij.openapi.project.Project; import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; import org.jetbrains.jet.lang.resolve.BindingTrace; @@ -46,6 +46,7 @@ import org.jetbrains.jet.lang.resolve.OverloadResolver; import org.jetbrains.jet.lang.resolve.OverrideResolver; import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver; import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver; +import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension; import org.jetbrains.jet.lang.resolve.ScriptBodyResolver; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; @@ -59,7 +60,7 @@ public class InjectorForTopDownAnalyzerBasic { private final ControlFlowAnalyzer controlFlowAnalyzer; private final DeclarationsChecker declarationsChecker; private final DescriptorResolver descriptorResolver; - private final CompositeExtension compositeExtension; + private final CallResolverExtensionProvider callResolverExtensionProvider; private final Project project; private final TopDownAnalysisParameters topDownAnalysisParameters; private final BindingTrace bindingTrace; @@ -83,6 +84,7 @@ public class InjectorForTopDownAnalyzerBasic { private final OverrideResolver overrideResolver; private final TypeHierarchyResolver typeHierarchyResolver; private final DelegatedPropertyResolver delegatedPropertyResolver; + private final FunctionAnalyzerExtension functionAnalyzerExtension; private final ScriptBodyResolver scriptBodyResolver; public InjectorForTopDownAnalyzerBasic( @@ -98,7 +100,7 @@ public class InjectorForTopDownAnalyzerBasic { this.controlFlowAnalyzer = new ControlFlowAnalyzer(); this.declarationsChecker = new DeclarationsChecker(); this.descriptorResolver = new DescriptorResolver(); - this.compositeExtension = new CompositeExtension(); + this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.project = project; this.topDownAnalysisParameters = topDownAnalysisParameters; this.bindingTrace = bindingTrace; @@ -122,6 +124,7 @@ public class InjectorForTopDownAnalyzerBasic { this.overrideResolver = new OverrideResolver(); this.typeHierarchyResolver = new TypeHierarchyResolver(); this.delegatedPropertyResolver = new DelegatedPropertyResolver(); + this.functionAnalyzerExtension = new FunctionAnalyzerExtension(); this.scriptBodyResolver = new ScriptBodyResolver(); this.topDownAnalyzer.setBodyResolver(bodyResolver); @@ -144,6 +147,7 @@ public class InjectorForTopDownAnalyzerBasic { this.bodyResolver.setDeclarationsChecker(declarationsChecker); this.bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver); this.bodyResolver.setExpressionTypingServices(expressionTypingServices); + this.bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension); this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver); this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); this.bodyResolver.setTrace(bindingTrace); @@ -174,7 +178,6 @@ public class InjectorForTopDownAnalyzerBasic { callResolver.setArgumentTypeResolver(argumentTypeResolver); callResolver.setCandidateResolver(candidateResolver); callResolver.setExpressionTypingServices(expressionTypingServices); - callResolver.setExtension(compositeExtension); callResolver.setTypeResolver(typeResolver); argumentTypeResolver.setExpressionTypingServices(expressionTypingServices); @@ -184,6 +187,7 @@ public class InjectorForTopDownAnalyzerBasic { expressionTypingServices.setCallExpressionResolver(callExpressionResolver); expressionTypingServices.setCallResolver(callResolver); expressionTypingServices.setDescriptorResolver(descriptorResolver); + expressionTypingServices.setExtensionProvider(callResolverExtensionProvider); expressionTypingServices.setPlatformToKotlinClassMap(platformToKotlinClassMap); expressionTypingServices.setProject(project); expressionTypingServices.setTypeResolver(typeResolver); @@ -226,6 +230,8 @@ public class InjectorForTopDownAnalyzerBasic { delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices); + functionAnalyzerExtension.setTrace(bindingTrace); + scriptBodyResolver.setContext(topDownAnalysisContext); scriptBodyResolver.setExpressionTypingServices(expressionTypingServices); scriptBodyResolver.setTrace(bindingTrace); diff --git a/compiler/tests/org/jetbrains/jet/di/InjectorForTests.java b/compiler/tests/org/jetbrains/jet/di/InjectorForTests.java index 9c6ce51244f..630b146107d 100644 --- a/compiler/tests/org/jetbrains/jet/di/InjectorForTests.java +++ b/compiler/tests/org/jetbrains/jet/di/InjectorForTests.java @@ -20,7 +20,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorResolver; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; import org.jetbrains.jet.lang.resolve.TypeResolver; import org.jetbrains.jet.lang.resolve.calls.CallResolver; -import org.jetbrains.jet.lang.resolve.calls.CompositeExtension; +import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.lang.PlatformToKotlinClassMap; import com.intellij.openapi.project.Project; @@ -41,7 +41,7 @@ public class InjectorForTests { private final ExpressionTypingServices expressionTypingServices; private final TypeResolver typeResolver; private final CallResolver callResolver; - private final CompositeExtension compositeExtension; + private final CallResolverExtensionProvider callResolverExtensionProvider; private final KotlinBuiltIns kotlinBuiltIns; private final PlatformToKotlinClassMap platformToKotlinClassMap; private final Project project; @@ -61,7 +61,7 @@ public class InjectorForTests { this.expressionTypingServices = new ExpressionTypingServices(); this.typeResolver = new TypeResolver(); this.callResolver = new CallResolver(); - this.compositeExtension = new CompositeExtension(); + this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.kotlinBuiltIns = KotlinBuiltIns.getInstance(); this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap(); this.project = project; @@ -82,6 +82,7 @@ public class InjectorForTests { this.expressionTypingServices.setCallExpressionResolver(callExpressionResolver); this.expressionTypingServices.setCallResolver(callResolver); this.expressionTypingServices.setDescriptorResolver(descriptorResolver); + this.expressionTypingServices.setExtensionProvider(callResolverExtensionProvider); this.expressionTypingServices.setPlatformToKotlinClassMap(platformToKotlinClassMap); this.expressionTypingServices.setProject(project); this.expressionTypingServices.setTypeResolver(typeResolver); @@ -93,7 +94,6 @@ public class InjectorForTests { this.callResolver.setArgumentTypeResolver(argumentTypeResolver); this.callResolver.setCandidateResolver(candidateResolver); this.callResolver.setExpressionTypingServices(expressionTypingServices); - this.callResolver.setExtension(compositeExtension); this.callResolver.setTypeResolver(typeResolver); annotationResolver.setCallResolver(callResolver); diff --git a/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.java b/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.java index f20d7c47ffc..d935e69664c 100644 --- a/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.java +++ b/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.java @@ -30,7 +30,7 @@ import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; import org.jetbrains.jet.lang.psi.JetImportsFactory; import org.jetbrains.jet.lang.resolve.*; import org.jetbrains.jet.lang.resolve.calls.CallResolver; -import org.jetbrains.jet.lang.resolve.calls.CompositeExtension; +import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration; import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl; import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; @@ -87,7 +87,7 @@ public class GenerateInjectors { generator.addPublicField(AnnotationResolver.class); generator.addPublicField(QualifiedExpressionResolver.class); generator.addPublicField(JetImportsFactory.class); - generator.addField(CompositeExtension.class); + generator.addField(CallResolverExtensionProvider.class); generator.addField(false, PlatformToKotlinClassMap.class, null, new GivenExpression("moduleDescriptor.getPlatformToKotlinClassMap()")); generator.configure("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForLazyResolve", GenerateInjectors.class); return generator; @@ -168,7 +168,7 @@ public class GenerateInjectors { generator.addPublicField(ControlFlowAnalyzer.class); generator.addPublicField(DeclarationsChecker.class); generator.addPublicField(DescriptorResolver.class); - generator.addField(CompositeExtension.class); + generator.addField(CallResolverExtensionProvider.class); // Parameters generator.addPublicParameter(Project.class); @@ -183,7 +183,7 @@ public class GenerateInjectors { // Fields generator.addPublicField(ExpressionTypingServices.class); - generator.addField(CompositeExtension.class); + generator.addField(CallResolverExtensionProvider.class); generator.addField(false, PlatformToKotlinClassMap.class, null, new GivenExpression("moduleDescriptor.getPlatformToKotlinClassMap()")); // Parameters @@ -202,7 +202,7 @@ public class GenerateInjectors { generator.addPublicField(ExpressionTypingServices.class); generator.addPublicField(TypeResolver.class); generator.addPublicField(CallResolver.class); - generator.addField(CompositeExtension.class); + generator.addField(CallResolverExtensionProvider.class); generator.addField(true, KotlinBuiltIns.class, null, new GivenExpression("KotlinBuiltIns.getInstance()")); generator.addField(false, PlatformToKotlinClassMap.class, null, new GivenExpression("moduleDescriptor.getPlatformToKotlinClassMap()")); @@ -241,8 +241,9 @@ public class GenerateInjectors { DependencyInjectorGenerator generator = new DependencyInjectorGenerator(); // Fields generator.addPublicField(BodyResolver.class); - generator.addField(CompositeExtension.class); + generator.addField(CallResolverExtensionProvider.class); generator.addField(false, PlatformToKotlinClassMap.class, null, new GivenExpression("moduleDescriptor.getPlatformToKotlinClassMap()")); + generator.addField(FunctionAnalyzerExtension.class); // Parameters generator.addPublicParameter(Project.class); diff --git a/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java b/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java index e1cd750185d..aeee5aab156 100644 --- a/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java +++ b/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java @@ -22,7 +22,7 @@ import org.jetbrains.jet.lang.resolve.BodyResolver; import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer; import org.jetbrains.jet.lang.resolve.DeclarationsChecker; import org.jetbrains.jet.lang.resolve.DescriptorResolver; -import org.jetbrains.jet.lang.resolve.calls.CompositeExtension; +import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import com.intellij.openapi.project.Project; import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; import org.jetbrains.jet.lang.resolve.BindingTrace; @@ -46,6 +46,7 @@ import org.jetbrains.jet.lang.resolve.OverloadResolver; import org.jetbrains.jet.lang.resolve.OverrideResolver; import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver; import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver; +import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension; import org.jetbrains.jet.lang.resolve.ScriptBodyResolver; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; @@ -59,7 +60,7 @@ public class InjectorForTopDownAnalyzerForJs { private final ControlFlowAnalyzer controlFlowAnalyzer; private final DeclarationsChecker declarationsChecker; private final DescriptorResolver descriptorResolver; - private final CompositeExtension compositeExtension; + private final CallResolverExtensionProvider callResolverExtensionProvider; private final Project project; private final TopDownAnalysisParameters topDownAnalysisParameters; private final BindingTrace bindingTrace; @@ -83,6 +84,7 @@ public class InjectorForTopDownAnalyzerForJs { private final OverrideResolver overrideResolver; private final TypeHierarchyResolver typeHierarchyResolver; private final DelegatedPropertyResolver delegatedPropertyResolver; + private final FunctionAnalyzerExtension functionAnalyzerExtension; private final ScriptBodyResolver scriptBodyResolver; public InjectorForTopDownAnalyzerForJs( @@ -97,7 +99,7 @@ public class InjectorForTopDownAnalyzerForJs { this.controlFlowAnalyzer = new ControlFlowAnalyzer(); this.declarationsChecker = new DeclarationsChecker(); this.descriptorResolver = new DescriptorResolver(); - this.compositeExtension = new CompositeExtension(); + this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.project = project; this.topDownAnalysisParameters = topDownAnalysisParameters; this.bindingTrace = bindingTrace; @@ -121,6 +123,7 @@ public class InjectorForTopDownAnalyzerForJs { this.overrideResolver = new OverrideResolver(); this.typeHierarchyResolver = new TypeHierarchyResolver(); this.delegatedPropertyResolver = new DelegatedPropertyResolver(); + this.functionAnalyzerExtension = new FunctionAnalyzerExtension(); this.scriptBodyResolver = new ScriptBodyResolver(); this.topDownAnalyzer.setBodyResolver(bodyResolver); @@ -143,6 +146,7 @@ public class InjectorForTopDownAnalyzerForJs { this.bodyResolver.setDeclarationsChecker(declarationsChecker); this.bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver); this.bodyResolver.setExpressionTypingServices(expressionTypingServices); + this.bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension); this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver); this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); this.bodyResolver.setTrace(bindingTrace); @@ -173,7 +177,6 @@ public class InjectorForTopDownAnalyzerForJs { callResolver.setArgumentTypeResolver(argumentTypeResolver); callResolver.setCandidateResolver(candidateResolver); callResolver.setExpressionTypingServices(expressionTypingServices); - callResolver.setExtension(compositeExtension); callResolver.setTypeResolver(typeResolver); argumentTypeResolver.setExpressionTypingServices(expressionTypingServices); @@ -183,6 +186,7 @@ public class InjectorForTopDownAnalyzerForJs { expressionTypingServices.setCallExpressionResolver(callExpressionResolver); expressionTypingServices.setCallResolver(callResolver); expressionTypingServices.setDescriptorResolver(descriptorResolver); + expressionTypingServices.setExtensionProvider(callResolverExtensionProvider); expressionTypingServices.setPlatformToKotlinClassMap(platformToKotlinClassMap); expressionTypingServices.setProject(project); expressionTypingServices.setTypeResolver(typeResolver); @@ -225,6 +229,8 @@ public class InjectorForTopDownAnalyzerForJs { delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices); + functionAnalyzerExtension.setTrace(bindingTrace); + scriptBodyResolver.setContext(topDownAnalysisContext); scriptBodyResolver.setExpressionTypingServices(expressionTypingServices); scriptBodyResolver.setTrace(bindingTrace);