From 4f44c7ba9c8c41f1f3ed907588463383d92af3e4 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 2 Apr 2014 14:47:08 +0400 Subject: [PATCH] Unused mechanism removed Incomplete traces are not needed for light classes any more, because light classes use lazy resolve --- .../resolve/DeclarationsCacheProvider.java | 2 +- .../resolve/JSDeclarationsCacheProvider.java | 2 +- .../resolve/JvmDeclarationsCacheProvider.java | 16 +----------- .../caches/resolve/KotlinCacheManager.java | 25 +------------------ 4 files changed, 4 insertions(+), 41 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/caches/resolve/DeclarationsCacheProvider.java b/idea/src/org/jetbrains/jet/plugin/caches/resolve/DeclarationsCacheProvider.java index fde49f88a61..782db5161a8 100644 --- a/idea/src/org/jetbrains/jet/plugin/caches/resolve/DeclarationsCacheProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/caches/resolve/DeclarationsCacheProvider.java @@ -47,7 +47,7 @@ public abstract class DeclarationsCacheProvider { new CancelableResolveSessionValueProvider(project, platform), true); } - public abstract KotlinDeclarationsCache getDeclarations(boolean allowIncomplete); + public abstract KotlinDeclarationsCache getDeclarations(); @NotNull public ResolveSessionForBodies getLazyResolveSession() { diff --git a/idea/src/org/jetbrains/jet/plugin/caches/resolve/JSDeclarationsCacheProvider.java b/idea/src/org/jetbrains/jet/plugin/caches/resolve/JSDeclarationsCacheProvider.java index 4e2dc6fcaa0..2071cd0b103 100644 --- a/idea/src/org/jetbrains/jet/plugin/caches/resolve/JSDeclarationsCacheProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/caches/resolve/JSDeclarationsCacheProvider.java @@ -71,7 +71,7 @@ class JSDeclarationsCacheProvider extends DeclarationsCacheProvider { } @Override - public KotlinDeclarationsCache getDeclarations(boolean allowIncomplete) { + public KotlinDeclarationsCache getDeclarations() { synchronized (declarationAnalysisLock) { return CachedValuesManager.getManager(project).getCachedValue( project, diff --git a/idea/src/org/jetbrains/jet/plugin/caches/resolve/JvmDeclarationsCacheProvider.java b/idea/src/org/jetbrains/jet/plugin/caches/resolve/JvmDeclarationsCacheProvider.java index 6be1b3fd215..009ac88cd8d 100644 --- a/idea/src/org/jetbrains/jet/plugin/caches/resolve/JvmDeclarationsCacheProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/caches/resolve/JvmDeclarationsCacheProvider.java @@ -81,22 +81,8 @@ class JvmDeclarationsCacheProvider extends DeclarationsCacheProvider { @Override @NotNull - public KotlinDeclarationsCache getDeclarations(boolean allowIncomplete) { + public KotlinDeclarationsCache getDeclarations() { synchronized (declarationAnalysisLock) { - if (allowIncomplete) { - if (incompleteTrace != null) { - // saving context to local variable to avoid race condition - final BindingContext context = incompleteTrace.getBindingContext(); - return new KotlinDeclarationsCache() { - @NotNull - @Override - public BindingContext getBindingContext() { - return context; - } - }; - } - } - return CachedValuesManager.getManager(project).getCachedValue( project, cachedKey, diff --git a/idea/src/org/jetbrains/jet/plugin/caches/resolve/KotlinCacheManager.java b/idea/src/org/jetbrains/jet/plugin/caches/resolve/KotlinCacheManager.java index 5d000a91cf3..c94e1b8a9c8 100644 --- a/idea/src/org/jetbrains/jet/plugin/caches/resolve/KotlinCacheManager.java +++ b/idea/src/org/jetbrains/jet/plugin/caches/resolve/KotlinCacheManager.java @@ -49,30 +49,7 @@ public class KotlinCacheManager { public KotlinDeclarationsCache getDeclarationsFromProject(@NotNull TargetPlatform platform) { // Computing declarations should be performed under read lock ApplicationManager.getApplication().assertReadAccessAllowed(); - return getRegisteredProvider(platform).getDeclarations(false); - } - - @NotNull - public KotlinDeclarationsCache getPossiblyIncompleteDeclarationsForLightClassGeneration() { - // Computing declarations should be performed under read lock - ApplicationManager.getApplication().assertReadAccessAllowed(); - - /* - * If we have the following classes - * - * class A // Kotlin - * class B extends A {} // Java - * class C : B() // Kotlin - * - * The analysis runs into infinite recursion, because - * C needs all members of B (to compute overrides), - * and B needs all members of A, - * and A is not available from KotlinCacheManager.getDeclarationsFromProject() -- it is being computed right now, - * so the analysis runs again... - * - * Our workaround is to return partially complete results when we generate light classes - */ - return getRegisteredProvider(TargetPlatform.JVM).getDeclarations(true); + return getRegisteredProvider(platform).getDeclarations(); } @NotNull