(BindingContext,BindingTrace,TypeMapper,GenerationState)Aware classes introduced and related changes in GenerationState construction/injection

This commit is contained in:
Alex Tkachman
2012-08-30 11:50:13 +03:00
parent 97cab46c39
commit 0852f3939f
15 changed files with 221 additions and 231 deletions
@@ -37,11 +37,11 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.TestOnly;
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
import org.jetbrains.jet.codegen.ClassBuilderMode;
import org.jetbrains.jet.codegen.JetTypeMapper;
import org.jetbrains.jet.codegen.MapTypeMode;
import org.jetbrains.jet.codegen.NamespaceCodegen;
import org.jetbrains.jet.codegen.context.CodegenBinding;
import org.jetbrains.jet.di.InjectorForJetTypeMapper;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
@@ -206,10 +206,9 @@ public class JetPositionManager implements PositionManager {
List<JetFile> namespaceFiles = JetFilesProvider.getInstance(file.getProject()).allNamespaceFiles().fun(file);
final DelegatingBindingTrace bindingTrace = new DelegatingBindingTrace(analyzeExhaust.getBindingContext());
final InjectorForJetTypeMapper injector = new InjectorForJetTypeMapper(bindingTrace, namespaceFiles);
JetTypeMapper typeMapper = injector.getJetTypeMapper();
JetTypeMapper typeMapper = new JetTypeMapper(bindingTrace, true, ClassBuilderMode.FULL);
//noinspection unchecked
CodegenBinding.initTrace(bindingTrace, injector.getListOfJetFile());
CodegenBinding.initTrace(bindingTrace, namespaceFiles);
return new Result<JetTypeMapper>(typeMapper, PsiModificationTracker.MODIFICATION_COUNT);
}
}, false);
@@ -18,10 +18,10 @@ package org.jetbrains.jet.plugin.debugger;
import com.intellij.debugger.engine.DebugProcess;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.codegen.ClassBuilderMode;
import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.codegen.JetTypeMapper;
import org.jetbrains.jet.codegen.context.CodegenBinding;
import org.jetbrains.jet.di.InjectorForJetTypeMapper;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.DelegatingBindingTrace;
import org.jetbrains.jet.plugin.PluginTestCaseBase;
@@ -47,10 +47,9 @@ public class JetPositionManagerTest extends PositionManagerTestCase {
assertNotNull(positionManager);
final DelegatingBindingTrace bindingTrace = new DelegatingBindingTrace(state.getBindingContext());
final InjectorForJetTypeMapper injector = new InjectorForJetTypeMapper(bindingTrace, files);
JetTypeMapper typeMapper = injector.getJetTypeMapper();
JetTypeMapper typeMapper = new JetTypeMapper(bindingTrace, true, ClassBuilderMode.FULL);
//noinspection unchecked
CodegenBinding.initTrace(bindingTrace, injector.getListOfJetFile());
CodegenBinding.initTrace(bindingTrace, files);
for (JetFile file : files) {
positionManager.addTypeMapper(file, typeMapper);
}