From c3614c46cd2e0e6b3f0d20d9957d3b01032525ad Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Mon, 28 Oct 2013 17:45:59 +0400 Subject: [PATCH] Do not keep scopes in the trace for CLI compiler --- .../CliLightClassGenerationSupport.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliLightClassGenerationSupport.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliLightClassGenerationSupport.java index dc8b759a3c9..df1064d872b 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliLightClassGenerationSupport.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliLightClassGenerationSupport.java @@ -33,15 +33,14 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.asJava.KotlinLightClassForExplicitDeclaration; import org.jetbrains.jet.asJava.LightClassConstructionContext; import org.jetbrains.jet.asJava.LightClassGenerationSupport; -import org.jetbrains.jet.codegen.binding.PsiCodegenPredictor; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.*; import org.jetbrains.jet.lang.resolve.java.JvmAbi; -import org.jetbrains.jet.lang.resolve.java.JvmClassName; import org.jetbrains.jet.lang.resolve.name.FqName; +import org.jetbrains.jet.util.slicedmap.WritableSlice; import java.util.Collection; import java.util.Collections; @@ -73,7 +72,21 @@ public class CliLightClassGenerationSupport extends LightClassGenerationSupport @NotNull public BindingTrace getTrace() { if (trace == null) { - trace = new BindingTraceContext(); + trace = new BindingTraceContext() { + @Override + public void record(WritableSlice slice, K key, V value) { + if (slice == BindingContext.RESOLUTION_SCOPE || slice == BindingContext.TYPE_RESOLUTION_SCOPE) { + // In the compiler there's no need to keep scopes + return; + } + super.record(slice, key, value); + } + + @Override + public String toString() { + return "Filtering trace for the CLI compiler: does not save scopes"; + } + }; } return trace; }