From 3184b9ddba8181f794f94922d744e5115d5e105f Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 2 Apr 2014 14:33:45 +0400 Subject: [PATCH] Special factory method for local analysis - No need to pass the same flags all the time - No need to check for local mode when in LAZY mode --- .../org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java | 6 ++---- .../src/org/jetbrains/jet/lang/resolve/BodyResolver.java | 2 +- .../jetbrains/jet/lang/resolve/ScriptBodyResolver.java | 2 +- .../jet/lang/resolve/TopDownAnalysisParameters.java | 9 +++++++++ .../org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java | 8 +++----- .../jet/plugin/project/ResolveElementCache.java | 4 ++-- 6 files changed, 18 insertions(+), 13 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java index 117edc7aff6..475a6c0c60b 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java @@ -103,12 +103,10 @@ public class ReplInterpreter { Project project = jetCoreEnvironment.getProject(); trace = new BindingTraceContext(); module = AnalyzerFacadeForJVM.createJavaModule(""); - TopDownAnalysisParameters topDownAnalysisParameters = TopDownAnalysisParameters.create( + TopDownAnalysisParameters topDownAnalysisParameters = TopDownAnalysisParameters.createForLocalDeclarations( new LockBasedStorageManager(), new ExceptionTracker(), // dummy - Predicates.alwaysTrue(), - false, - true + Predicates.alwaysTrue() ); injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module, MemberFilter.ALWAYS_TRUE); topDownAnalysisContext = new TopDownAnalysisContext(topDownAnalysisParameters); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java index ade03a62fdc..b3e149a7556 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java @@ -590,7 +590,7 @@ public class BodyResolver { JetScope declaringScope = c.getDeclaringScopes().apply(declaration); assert declaringScope != null; - if (!c.getTopDownAnalysisParameters().isLazyTopDownAnalysis() || c.getTopDownAnalysisParameters().isDeclaredLocally()) { + if (!c.getTopDownAnalysisParameters().isLazyTopDownAnalysis()) { resolveAnnotationArguments(declaringScope, declaration); } resolveFunctionBody(c, trace, declaration, descriptor, declaringScope); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptBodyResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptBodyResolver.java index 198a80d672a..a5c79ec869f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptBodyResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptBodyResolver.java @@ -59,7 +59,7 @@ public class ScriptBodyResolver { JetScript declaration = e.getKey(); ScriptDescriptor descriptor = e.getValue(); - if (c.getTopDownAnalysisParameters().isLazyTopDownAnalysis() && !c.getTopDownAnalysisParameters().isDeclaredLocally()) { + if (c.getTopDownAnalysisParameters().isLazyTopDownAnalysis()) { ForceResolveUtil.forceResolveAllContents(descriptor); continue; } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalysisParameters.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalysisParameters.java index 527cfadae48..43c473e6b0a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalysisParameters.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalysisParameters.java @@ -45,6 +45,15 @@ public class TopDownAnalysisParameters implements GlobalContext { declaredLocally, LAZY); } + @NotNull + public static TopDownAnalysisParameters createForLocalDeclarations( + @NotNull StorageManager storageManager, + @NotNull ExceptionTracker exceptionTracker, + @NotNull Predicate analyzeCompletely + ) { + return new TopDownAnalysisParameters(storageManager, exceptionTracker, analyzeCompletely, false, true, false); + } + @NotNull private final StorageManager storageManager; @NotNull 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 40b89792896..e99faed1b59 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java @@ -129,7 +129,7 @@ public class TopDownAnalyzer { // c.enableDebugOutput(); c.debug("Enter"); - if (c.getTopDownAnalysisParameters().isLazyTopDownAnalysis() && !c.getTopDownAnalysisParameters().isDeclaredLocally()) { + if (c.getTopDownAnalysisParameters().isLazyTopDownAnalysis()) { final ResolveSession resolveSession = new InjectorForLazyResolve( project, new GlobalContextImpl((LockBasedStorageManager) c.getStorageManager(), c.getExceptionTracker()), // TODO @@ -356,12 +356,10 @@ public class TopDownAnalyzer { PlatformToKotlinClassMap.EMPTY); TopDownAnalysisParameters topDownAnalysisParameters = - TopDownAnalysisParameters.create( + TopDownAnalysisParameters.createForLocalDeclarations( globalContext.getStorageManager(), globalContext.getExceptionTracker(), - Predicates.equalTo(object.getContainingFile()), - false, - true + Predicates.equalTo(object.getContainingFile()) ); InjectorForTopDownAnalyzerBasic injector = new InjectorForTopDownAnalyzerBasic( diff --git a/idea/src/org/jetbrains/jet/plugin/project/ResolveElementCache.java b/idea/src/org/jetbrains/jet/plugin/project/ResolveElementCache.java index 2d70402c984..a0f39a2807d 100644 --- a/idea/src/org/jetbrains/jet/plugin/project/ResolveElementCache.java +++ b/idea/src/org/jetbrains/jet/plugin/project/ResolveElementCache.java @@ -333,9 +333,9 @@ public class ResolveElementCache { } private static TopDownAnalysisParameters createParameters(@NotNull ResolveSession resolveSession) { - return TopDownAnalysisParameters.create( + return TopDownAnalysisParameters.createForLocalDeclarations( resolveSession.getStorageManager(), resolveSession.getExceptionTracker(), - Predicates.alwaysTrue(), false, true); + Predicates.alwaysTrue()); } @NotNull