From a3667d1b28b73aab7c508122b6d0a84789924174 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Mon, 11 Feb 2013 20:41:24 +0400 Subject: [PATCH] Rename --- .../lang/resolve/lazy/AbstractLazyMemberScope.java | 2 +- .../lazy/FileBasedDeclarationProviderFactory.java | 2 +- .../lang/resolve/lazy/LazyPackageMemberScope.java | 2 +- .../lang/resolve/lazy/LockBasedStorageManager.java | 14 +++++++------- .../jet/lang/resolve/lazy/ScopeProvider.java | 2 +- .../jet/lang/resolve/lazy/StorageManager.java | 11 +++++++---- 6 files changed, 18 insertions(+), 15 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyMemberScope.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyMemberScope.java index c62caa4c0e3..8daf6f6c6cd 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyMemberScope.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyMemberScope.java @@ -36,7 +36,7 @@ import java.util.List; import java.util.Set; import static org.jetbrains.jet.lang.resolve.lazy.ResolveSessionUtils.safeNameForLazyResolve; -import static org.jetbrains.jet.lang.resolve.lazy.StorageManager.MemoizationMode.STRONG; +import static org.jetbrains.jet.lang.resolve.lazy.StorageManager.ReferenceKind.STRONG; public abstract class AbstractLazyMemberScope implements JetScope { protected final ResolveSession resolveSession; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/FileBasedDeclarationProviderFactory.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/FileBasedDeclarationProviderFactory.java index 42dcb8325fc..3e34adda9d0 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/FileBasedDeclarationProviderFactory.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/FileBasedDeclarationProviderFactory.java @@ -70,7 +70,7 @@ public class FileBasedDeclarationProviderFactory implements DeclarationProviderF public PackageMemberDeclarationProvider fun(FqName fqName) { return createPackageMemberDeclarationProvider(fqName); } - }, StorageManager.MemoizationMode.STRONG); + }, StorageManager.ReferenceKind.STRONG); } @NotNull diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyPackageMemberScope.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyPackageMemberScope.java index 1ab112a45c8..595c6861190 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyPackageMemberScope.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyPackageMemberScope.java @@ -45,7 +45,7 @@ public class LazyPackageMemberScope extends AbstractLazyMemberScope Function createMemoizedFunction(@NotNull final Function compute, @NotNull final MemoizationMode modeForValues) { + public Function createMemoizedFunction(@NotNull final Function compute, @NotNull final ReferenceKind valuesReferenceKind) { return new Function() { - private final ConcurrentMap cache = createConcurrentMap(modeForValues); + private final ConcurrentMap cache = createConcurrentMap(valuesReferenceKind); @Override public V fun(@NotNull final K input) { @@ -72,10 +72,10 @@ public class LockBasedStorageManager implements StorageManager { @NotNull @Override public Function createMemoizedFunctionWithNullableValues( - @NotNull final Function compute, @NotNull final MemoizationMode modeForValues + @NotNull final Function compute, @NotNull final ReferenceKind valuesReferenceKind ) { return new Function() { - private final ConcurrentMap> cache = createConcurrentMap(modeForValues); + private final ConcurrentMap> cache = createConcurrentMap(valuesReferenceKind); @Override public V fun(@NotNull final K input) { @@ -97,8 +97,8 @@ public class LockBasedStorageManager implements StorageManager { }; } - private static ConcurrentMap createConcurrentMap(MemoizationMode mode) { - return (mode == WEAK) ? new ConcurrentWeakValueHashMap() : new ConcurrentHashMap(); + private static ConcurrentMap createConcurrentMap(ReferenceKind referenceKind) { + return (referenceKind == WEAK) ? new ConcurrentWeakValueHashMap() : new ConcurrentHashMap(); } @NotNull diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java index 02709f05778..49749022e0a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java @@ -34,7 +34,7 @@ import org.jetbrains.jet.lang.resolve.scopes.JetScope; import java.util.Collection; import java.util.List; -import static org.jetbrains.jet.lang.resolve.lazy.StorageManager.MemoizationMode.WEAK; +import static org.jetbrains.jet.lang.resolve.lazy.StorageManager.ReferenceKind.WEAK; public class ScopeProvider { private final ResolveSession resolveSession; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/StorageManager.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/StorageManager.java index fe4d4f8fa22..e5585976ab7 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/StorageManager.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/StorageManager.java @@ -26,12 +26,15 @@ public interface StorageManager { /** * Given a function compute: K -> V create a memoized version of it that computes a value only once for each key * @param compute the function to be memoized - * @param modeForValues how to store teh memoized values + * @param valuesReferenceKind how to store teh memoized values + * + * NOTE: if compute() has side-effects the WEAK reference kind is dangerous: the side-effects will be repeated if + * the value gets collected and then re-computed */ @NotNull - Function createMemoizedFunction(@NotNull Function compute, @NotNull MemoizationMode modeForValues); + Function createMemoizedFunction(@NotNull Function compute, @NotNull ReferenceKind valuesReferenceKind); @NotNull - Function createMemoizedFunctionWithNullableValues(@NotNull Function compute, @NotNull MemoizationMode modeForValues); + Function createMemoizedFunctionWithNullableValues(@NotNull Function compute, @NotNull ReferenceKind valuesReferenceKind); @NotNull LazyValue createLazyValue(@NotNull Computable computable); @@ -56,7 +59,7 @@ public interface StorageManager { @NotNull BindingTrace createSafeTrace(@NotNull BindingTrace originalTrace); - enum MemoizationMode { + enum ReferenceKind { STRONG, WEAK }