Fixing interdependency between delegation and fake overrides

Main changes sit in OverrideResolver::generateOverridesAndDelegationInAClass()

Now fake overrides AND delegation are generated for supertypes before any processing is done for subclasses.
This commit is contained in:
Andrey Breslav
2012-08-15 16:15:04 +04:00
parent 734a9a02ef
commit 00305ba920
10 changed files with 62 additions and 100 deletions
@@ -42,7 +42,6 @@ import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
import org.jetbrains.jet.lang.resolve.calls.OverloadingConflictResolver;
import org.jetbrains.jet.lang.resolve.ImportsResolver;
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
import org.jetbrains.jet.lang.resolve.DelegationResolver;
import org.jetbrains.jet.lang.resolve.OverloadResolver;
import org.jetbrains.jet.lang.resolve.OverrideResolver;
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
@@ -80,7 +79,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
private OverloadingConflictResolver overloadingConflictResolver;
private ImportsResolver importsResolver;
private ScriptHeaderResolver scriptHeaderResolver;
private DelegationResolver delegationResolver;
private OverloadResolver overloadResolver;
private OverrideResolver overrideResolver;
private TypeHierarchyResolver typeHierarchyResolver;
@@ -120,7 +118,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
this.overloadingConflictResolver = new OverloadingConflictResolver();
this.importsResolver = new ImportsResolver();
this.scriptHeaderResolver = new ScriptHeaderResolver();
this.delegationResolver = new DelegationResolver();
this.overloadResolver = new OverloadResolver();
this.overrideResolver = new OverrideResolver();
this.typeHierarchyResolver = new TypeHierarchyResolver();
@@ -132,7 +129,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
this.topDownAnalyzer.setBodyResolver(bodyResolver);
this.topDownAnalyzer.setContext(topDownAnalysisContext);
this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
this.topDownAnalyzer.setDelegationResolver(delegationResolver);
this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
this.topDownAnalyzer.setNamespaceFactory(namespaceFactory);
this.topDownAnalyzer.setOverloadResolver(overloadResolver);
@@ -214,9 +210,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
scriptHeaderResolver.setTrace(bindingTrace);
delegationResolver.setContext(topDownAnalysisContext);
delegationResolver.setTrace(bindingTrace);
overloadResolver.setContext(topDownAnalysisContext);
overloadResolver.setTrace(bindingTrace);