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 7cded462135..6a416e006f6 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java @@ -284,7 +284,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); scriptHeaderResolver.setTrace(bindingTrace); - overloadResolver.setContext(topDownAnalysisContext); overloadResolver.setTrace(bindingTrace); overrideResolver.setContext(topDownAnalysisContext); diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java index 63578d90551..0591bd220d4 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java @@ -239,7 +239,6 @@ public class InjectorForTopDownAnalyzerBasic { scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); scriptHeaderResolver.setTrace(bindingTrace); - overloadResolver.setContext(topDownAnalysisContext); overloadResolver.setTrace(bindingTrace); overrideResolver.setContext(topDownAnalysisContext); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverloadResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverloadResolver.java index 66eedf04a3b..a50b1c64b33 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverloadResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverloadResolver.java @@ -36,15 +36,8 @@ import java.util.Set; import static org.jetbrains.jet.lang.resolve.DescriptorUtils.getFqName; public class OverloadResolver { - private TopDownAnalysisContext context; private BindingTrace trace; - - @Inject - public void setContext(TopDownAnalysisContext context) { - this.context = context; - } - @Inject public void setTrace(BindingTrace trace) { this.trace = trace; @@ -52,26 +45,27 @@ public class OverloadResolver { - public void process() { - checkOverloads(); + public void process(@NotNull BodiesResolveContext c) { + checkOverloads(c); } - private void checkOverloads() { + private void checkOverloads(@NotNull BodiesResolveContext c) { MultiMap inClasses = MultiMap.create(); MultiMap inPackages = MultiMap.create(); - fillGroupedConstructors(inClasses, inPackages); + fillGroupedConstructors(c, inClasses, inPackages); - for (Map.Entry entry : context.getClasses().entrySet()) { + for (Map.Entry entry : c.getClasses().entrySet()) { checkOverloadsInAClass(entry.getValue(), entry.getKey(), inClasses.get(entry.getValue())); } - checkOverloadsInPackages(inPackages); + checkOverloadsInPackages(c, inPackages); } private void fillGroupedConstructors( + @NotNull BodiesResolveContext c, @NotNull MultiMap inClasses, @NotNull MultiMap inPackages ) { - for (ClassDescriptorWithResolutionScopes klass : context.getClasses().values()) { + for (ClassDescriptorWithResolutionScopes klass : c.getClasses().values()) { if (klass.getKind().isSingleton()) { // Constructors of singletons aren't callable from the code, so they shouldn't participate in overload name checking continue; @@ -90,17 +84,20 @@ public class OverloadResolver { } } - private void checkOverloadsInPackages(MultiMap inPackages) { + private void checkOverloadsInPackages( + @NotNull BodiesResolveContext c, + @NotNull MultiMap inPackages + ) { MultiMap functionsByName = MultiMap.create(); - for (SimpleFunctionDescriptor function : context.getFunctions().values()) { + for (SimpleFunctionDescriptor function : c.getFunctions().values()) { if (function.getContainingDeclaration() instanceof PackageFragmentDescriptor) { functionsByName.putValue(getFqName(function), function); } } - for (PropertyDescriptor property : context.getProperties().values()) { + for (PropertyDescriptor property : c.getProperties().values()) { if (property.getContainingDeclaration() instanceof PackageFragmentDescriptor) { functionsByName.putValue(getFqName(property), property); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java index 705fd6c1b9e..199cbb1e1cb 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java @@ -123,7 +123,7 @@ public class TopDownAnalyzer { lockScopes(c); - overloadResolver.process(); + overloadResolver.process(c); if (!topDownAnalysisParameters.isAnalyzingBootstrapLibrary()) { bodyResolver.resolveBodies(c); 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 844fee4d298..86f323bbd3e 100644 --- a/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java +++ b/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java @@ -239,7 +239,6 @@ public class InjectorForTopDownAnalyzerForJs { scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); scriptHeaderResolver.setTrace(bindingTrace); - overloadResolver.setContext(topDownAnalysisContext); overloadResolver.setTrace(bindingTrace); overrideResolver.setContext(topDownAnalysisContext);