Create new trace before each resolve (to avoid writing to a trace already filled in by previous analysis)
This commit is contained in:
+1
-1
@@ -74,7 +74,7 @@ public class CliLightClassGenerationSupport extends LightClassGenerationSupport
|
||||
return trace;
|
||||
}
|
||||
|
||||
public void clearBindingTrace() {
|
||||
public void newBindingTrace() {
|
||||
assert ApplicationManager.getApplication().isUnitTestMode() : "Mutating project service's state shouldn't happen other than in tests";
|
||||
trace = null;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.TestOnly;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.CliLightClassGenerationSupport;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime;
|
||||
import org.jetbrains.jet.codegen.forTestCompile.ForTestPackJdkAnnotations;
|
||||
@@ -333,6 +334,11 @@ public class JetTestUtils {
|
||||
return configuration;
|
||||
}
|
||||
|
||||
public static void newTrace(@NotNull JetCoreEnvironment environment) {
|
||||
// let the next analysis use another trace
|
||||
CliLightClassGenerationSupport.getInstanceForCli(environment.getProject()).newBindingTrace();
|
||||
}
|
||||
|
||||
public interface TestFileFactory<F> {
|
||||
F create(String fileName, String text);
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.google.common.collect.Sets;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.JetTestUtils;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.CliLightClassGenerationSupport;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver;
|
||||
@@ -63,6 +64,8 @@ public class LazyResolveTestUtil {
|
||||
}
|
||||
|
||||
public static InjectorForTopDownAnalyzer createInjectorForTDA(ModuleDescriptor module, JetCoreEnvironment environment) {
|
||||
JetTestUtils.newTrace(environment);
|
||||
|
||||
TopDownAnalysisParameters params = new TopDownAnalysisParameters(
|
||||
Predicates.<PsiFile>alwaysTrue(), false, false, Collections.<AnalyzerScriptParameter>emptyList());
|
||||
BindingTrace sharedTrace = CliLightClassGenerationSupport.getInstanceForCli(environment.getProject()).getTrace();
|
||||
@@ -77,6 +80,8 @@ public class LazyResolveTestUtil {
|
||||
}
|
||||
|
||||
public static ModuleDescriptor resolveLazily(List<JetFile> files, JetCoreEnvironment environment) {
|
||||
JetTestUtils.newTrace(environment);
|
||||
|
||||
ModuleDescriptor javaModule = new ModuleDescriptor(Name.special("<java module>"));
|
||||
|
||||
final Project project = environment.getProject();
|
||||
|
||||
Reference in New Issue
Block a user