Getting rid of Computable and Function in lazy values and memoized functions

This commit is contained in:
Andrey Breslav
2013-10-04 19:17:10 +04:00
committed by Alexander Udalov
parent 4d28dfada6
commit 7d1c46ed2c
27 changed files with 103 additions and 131 deletions
@@ -58,7 +58,7 @@ public abstract class AbstractDescriptorFinder implements DescriptorFinder {
@Nullable
@Override
public ClassDescriptor findClass(@NotNull ClassId classId) {
return findClass.fun(classId);
return findClass.invoke(classId);
}
@Nullable
@@ -136,7 +136,7 @@ public class TypeDeserializer {
private TypeConstructor typeConstructor(@NotNull ProtoBuf.Type.Constructor proto) {
switch (proto.getKind()) {
case CLASS:
ClassDescriptor classDescriptor = classDescriptors.fun(proto.getId());
ClassDescriptor classDescriptor = classDescriptors.invoke(proto.getId());
if (classDescriptor == null) return null;
return classDescriptor.getTypeConstructor();
@@ -227,7 +227,7 @@ public class TypeDeserializer {
@NotNull
@Override
public TypeConstructor getConstructor() {
return constructor.compute();
return constructor.invoke();
}
@NotNull
@@ -254,7 +254,7 @@ public class TypeDeserializer {
@NotNull
@Override
public JetScope getMemberScope() {
return memberScope.compute();
return memberScope.invoke();
}
@Override
@@ -151,7 +151,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
@NotNull
@Override
public DeclarationDescriptor getContainingDeclaration() {
return containingDeclaration.compute();
return containingDeclaration.invoke();
}
@NotNull
@@ -201,7 +201,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
@Override
public List<AnnotationDescriptor> getAnnotations() {
return annotations.compute();
return annotations.invoke();
}
@Override
@@ -226,7 +226,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
@Nullable
@Override
public ConstructorDescriptor getUnsubstitutedPrimaryConstructor() {
return primaryConstructor.compute();
return primaryConstructor.invoke();
}
@NotNull
@@ -306,7 +306,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
@Nullable
@Override
public ClassDescriptor getClassObjectDescriptor() {
return classObjectDescriptor.compute();
return classObjectDescriptor.invoke();
}
@NotNull
@@ -463,7 +463,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
@Nullable
@Override
protected ClassifierDescriptor getClassDescriptor(@NotNull Name name) {
return classDescriptor.nestedClasses.findClass.fun(name);
return classDescriptor.nestedClasses.findClass.invoke(name);
}
@Override
@@ -474,7 +474,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
@Nullable
@Override
public ClassDescriptor getObjectDescriptor(@NotNull Name name) {
return classDescriptor.nestedObjects.findClass.fun(name);
return classDescriptor.nestedObjects.findClass.invoke(name);
}
@NotNull
@@ -504,7 +504,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
public Collection<ClassDescriptor> getAllDescriptors() {
Collection<ClassDescriptor> result = new ArrayList<ClassDescriptor>(declaredNames.size());
for (Name name : declaredNames) {
ClassDescriptor descriptor = findClass.fun(name);
ClassDescriptor descriptor = findClass.invoke(name);
if (descriptor != null) {
result.add(descriptor);
}
@@ -143,7 +143,7 @@ public abstract class DeserializedMemberScope implements JetScope {
@NotNull
@Override
public final Collection<FunctionDescriptor> getFunctions(@NotNull Name name) {
return functions.fun(name);
return functions.invoke(name);
}
@NotNull
@@ -160,7 +160,7 @@ public abstract class DeserializedMemberScope implements JetScope {
@NotNull
@Override
public Collection<VariableDescriptor> getProperties(@NotNull Name name) {
return properties.fun(name);
return properties.invoke(name);
}
@Nullable
@@ -184,7 +184,7 @@ public abstract class DeserializedMemberScope implements JetScope {
@NotNull
@Override
public Collection<ClassDescriptor> getObjectDescriptors() {
return objectDescriptors.compute();
return objectDescriptors.invoke();
}
@Nullable
@@ -231,7 +231,7 @@ public abstract class DeserializedMemberScope implements JetScope {
@NotNull
@Override
public final Collection<DeclarationDescriptor> getAllDescriptors() {
return allDescriptors.compute();
return allDescriptors.invoke();
}
@NotNull
@@ -45,7 +45,7 @@ class ImportsProvider {
@NotNull
public List<JetImportDirective> getImports(@NotNull Name name) {
return importsCacheValue.compute().getImports(name);
return importsCacheValue.invoke().getImports(name);
}
@NotNull
@@ -234,7 +234,7 @@ public class LazyImportScope implements JetScope {
@NotNull
private JetScope getImportScope(JetImportDirective directive, LookupMode lookupMode) {
return importedScopesProvider.fun(directive).scopeForMode(lookupMode);
return importedScopesProvider.invoke(directive).scopeForMode(lookupMode);
}
@Nullable
@@ -65,7 +65,7 @@ public class ScopeProvider {
@NotNull
public JetScope getFileScope(JetFile file) {
return fileScopes.fun(file);
return fileScopes.invoke(file);
}
private JetScope createFileScope(JetFile file) {
@@ -88,7 +88,7 @@ public class ScopeProvider {
packageDescriptor.getMemberScope(),
rootPackageDescriptor.getMemberScope(),
importsScope,
defaultImportsScope.compute());
defaultImportsScope.invoke());
}
private JetScope createScopeWithDefaultImports() {
@@ -106,7 +106,7 @@ public class FilteringClassLikeInfo implements JetClassLikeInfo {
@Override
@NotNull
public List<JetDeclaration> getDeclarations() {
return filteredDeclarations.compute();
return filteredDeclarations.invoke();
}
@Override
@@ -84,24 +84,24 @@ public abstract class AbstractPsiBasedDeclarationProvider implements Declaration
@Override
public List<JetDeclaration> getAllDeclarations() {
return index.compute().allDeclarations;
return index.invoke().allDeclarations;
}
@NotNull
@Override
public List<JetNamedFunction> getFunctionDeclarations(@NotNull Name name) {
return Lists.newArrayList(index.compute().functions.get(name));
return Lists.newArrayList(index.invoke().functions.get(name));
}
@NotNull
@Override
public List<JetProperty> getPropertyDeclarations(@NotNull Name name) {
return Lists.newArrayList(index.compute().properties.get(name));
return Lists.newArrayList(index.invoke().properties.get(name));
}
@NotNull
@Override
public Collection<JetClassOrObject> getClassOrObjectDeclarations(@NotNull Name name) {
return index.compute().classesAndObjects.get(name);
return index.invoke().classesAndObjects.get(name);
}
}
@@ -102,7 +102,7 @@ public class FileBasedDeclarationProviderFactory implements DeclarationProviderF
}
/*package*/ boolean isPackageDeclaredExplicitly(@NotNull FqName packageFqName) {
return index.compute().declaredPackages.contains(packageFqName);
return index.invoke().declaredPackages.contains(packageFqName);
}
/*package*/ boolean isPackageDeclared(@NotNull FqName packageFqName) {
@@ -110,7 +110,7 @@ public class FileBasedDeclarationProviderFactory implements DeclarationProviderF
}
/*package*/ Collection<FqName> getAllDeclaredSubPackagesOf(@NotNull final FqName parent) {
return Collections2.filter(index.compute().declaredPackages, new Predicate<FqName>() {
return Collections2.filter(index.invoke().declaredPackages, new Predicate<FqName>() {
@Override
public boolean apply(FqName fqName) {
return !fqName.isRoot() && fqName.parent().equals(parent);
@@ -124,9 +124,9 @@ public class FileBasedDeclarationProviderFactory implements DeclarationProviderF
}
Collection<NavigatablePsiElement> resultElements = Lists.newArrayList();
for (FqName declaredPackage : index.compute().filesByPackage.keys()) {
for (FqName declaredPackage : index.invoke().filesByPackage.keys()) {
if (QualifiedNamesUtil.isSubpackageOf(declaredPackage, fqName)) {
Collection<JetFile> files = index.compute().filesByPackage.get(declaredPackage);
Collection<JetFile> files = index.invoke().filesByPackage.get(declaredPackage);
resultElements.addAll(ContainerUtil.map(files, new Function<JetFile, NavigatablePsiElement>() {
@Override
public NavigatablePsiElement fun(JetFile file) {
@@ -141,7 +141,7 @@ public class FileBasedDeclarationProviderFactory implements DeclarationProviderF
@Override
public PackageMemberDeclarationProvider getPackageMemberDeclarationProvider(@NotNull FqName packageFqName) {
return packageDeclarationProviders.fun(packageFqName);
return packageDeclarationProviders.invoke(packageFqName);
}
@Nullable
@@ -153,13 +153,13 @@ public class FileBasedDeclarationProviderFactory implements DeclarationProviderF
return null;
}
return new FileBasedPackageMemberDeclarationProvider(storageManager, packageFqName, this, index.compute().filesByPackage.get(packageFqName));
return new FileBasedPackageMemberDeclarationProvider(storageManager, packageFqName, this, index.invoke().filesByPackage.get(packageFqName));
}
@NotNull
@Override
public ClassMemberDeclarationProvider getClassMemberDeclarationProvider(@NotNull JetClassLikeInfo classLikeInfo) {
if (!index.compute().filesByPackage.containsKey(classLikeInfo.getContainingPackageFqName())) {
if (!index.invoke().filesByPackage.containsKey(classLikeInfo.getContainingPackageFqName())) {
throw new IllegalStateException("This factory doesn't know about this class: " + classLikeInfo);
}
@@ -71,7 +71,7 @@ public class FileBasedPackageMemberDeclarationProvider extends AbstractPsiBasedD
@Override
public Collection<FqName> getAllDeclaredPackages() {
return allDeclaredPackages.compute();
return allDeclaredPackages.invoke();
}
@NotNull
@@ -126,12 +126,12 @@ public abstract class AbstractLazyMemberScope<D extends DeclarationDescriptor, D
@Override
public ClassifierDescriptor getClassifier(@NotNull Name name) {
return first(classDescriptors.fun(name));
return first(classDescriptors.invoke(name));
}
@Override
public ClassDescriptor getObjectDescriptor(@NotNull Name name) {
return first(objectDescriptors.fun(name));
return first(objectDescriptors.invoke(name));
}
private static <T> T first(@NotNull List<T> list) {
@@ -142,7 +142,7 @@ public abstract class AbstractLazyMemberScope<D extends DeclarationDescriptor, D
@NotNull
@Override
public Set<FunctionDescriptor> getFunctions(@NotNull Name name) {
return functionDescriptors.fun(name);
return functionDescriptors.invoke(name);
}
@NotNull
@@ -175,7 +175,7 @@ public abstract class AbstractLazyMemberScope<D extends DeclarationDescriptor, D
@NotNull
@Override
public Set<VariableDescriptor> getProperties(@NotNull Name name) {
return propertyDescriptors.fun(name);
return propertyDescriptors.invoke(name);
}
@NotNull
@@ -224,7 +224,7 @@ public abstract class AbstractLazyMemberScope<D extends DeclarationDescriptor, D
@NotNull
@Override
public Collection<ClassDescriptor> getObjectDescriptors() {
return allDescriptors.compute().objects;
return allDescriptors.invoke().objects;
}
@Override
@@ -248,7 +248,7 @@ public abstract class AbstractLazyMemberScope<D extends DeclarationDescriptor, D
@NotNull
@Override
public Collection<DeclarationDescriptor> getAllDescriptors() {
return allDescriptors.compute().all;
return allDescriptors.invoke().all;
}
@NotNull
@@ -275,7 +275,7 @@ public abstract class AbstractLazyMemberScope<D extends DeclarationDescriptor, D
JetClassOrObject classOrObject = (JetClassOrObject) declaration;
Name name = safeNameForLazyResolve(classOrObject.getNameAsName());
if (name != null) {
result.all.addAll(classDescriptors.fun(name));
result.all.addAll(classDescriptors.invoke(name));
}
}
else if (declaration instanceof JetFunction) {
@@ -175,7 +175,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyDesc
@NotNull
public JetScope getScopeForClassHeaderResolution() {
return scopeForClassHeaderResolution.compute();
return scopeForClassHeaderResolution.invoke();
}
@NotNull
@@ -195,7 +195,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyDesc
@NotNull
public JetScope getScopeForMemberDeclarationResolution() {
return scopeForMemberDeclarationResolution.compute();
return scopeForMemberDeclarationResolution.invoke();
}
@NotNull
@@ -218,7 +218,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyDesc
@NotNull
public JetScope getScopeForPropertyInitializerResolution() {
return scopeForPropertyInitializerResolution.compute();
return scopeForPropertyInitializerResolution.invoke();
}
@NotNull
@@ -263,7 +263,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyDesc
@Override
public ClassDescriptor getClassObjectDescriptor() {
return classObjectDescriptor.compute();
return classObjectDescriptor.invoke();
}
@Nullable
@@ -323,12 +323,12 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyDesc
@NotNull
@Override
public ReceiverParameterDescriptor getThisAsReceiverParameter() {
return thisAsReceiverParameter.compute();
return thisAsReceiverParameter.invoke();
}
@Override
public List<AnnotationDescriptor> getAnnotations() {
return annotations.compute();
return annotations.invoke();
}
@NotNull
@@ -427,13 +427,13 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyDesc
@NotNull
@Override
public List<TypeParameterDescriptor> getParameters() {
return parameters.compute();
return parameters.invoke();
}
@NotNull
@Override
public Collection<JetType> getSupertypes() {
return supertypes.compute();
return supertypes.invoke();
}
private void findAndDisconnectLoopsInTypeHierarchy(Collection<JetType> supertypes) {
@@ -348,7 +348,7 @@ public class LazyClassMemberScope extends AbstractLazyMemberScope<LazyClassDescr
@Nullable
public ConstructorDescriptor getPrimaryConstructor() {
return primaryConstructor.compute();
return primaryConstructor.invoke();
}
@Nullable
@@ -54,7 +54,7 @@ public class LazyPackageMemberScope extends AbstractLazyMemberScope<NamespaceDes
@Override
public NamespaceDescriptor getNamespace(@NotNull Name name) {
return packageDescriptors.fun(name);
return packageDescriptors.invoke(name);
}
@Nullable
@@ -54,7 +54,7 @@ public class DeferredType implements JetType {
@NotNull
public JetType getActualType() {
return lazyValue.compute();
return lazyValue.invoke();
}
@Override
@@ -3,6 +3,8 @@ package org.jetbrains.jet.storage;
import com.intellij.openapi.util.Computable;
import com.intellij.util.Consumer;
import com.intellij.util.Function;
import jet.Function0;
import jet.Function1;
import junit.framework.TestCase;
import java.util.ArrayList;
@@ -22,23 +24,23 @@ public class StorageManagerTest extends TestCase {
m = new LockBasedStorageManager();
}
public static <T> void doTestComputesOnce(Computable<T> v, T expected, Counter counter) throws Exception {
public static <T> void doTestComputesOnce(Function0<T> v, T expected, Counter counter) throws Exception {
assert 0 == counter.getCount();
T result1 = v.compute();
T result2 = v.compute();
T result1 = v.invoke();
T result2 = v.invoke();
assertEquals(1, counter.getCount());
assertEquals(expected, result1);
assertEquals(result1, result2);
}
public static <T> void doTestExceptionPreserved(Computable<T> v, Class<? extends Throwable> expected, Counter counter)
public static <T> void doTestExceptionPreserved(Function0<T> v, Class<? extends Throwable> expected, Counter counter)
throws Exception {
assert 0 == counter.getCount();
Throwable caught1 = null;
try {
v.compute();
v.invoke();
fail();
}
catch (Throwable e) {
@@ -46,7 +48,7 @@ public class StorageManagerTest extends TestCase {
}
Throwable caught2 = null;
try {
v.compute();
v.invoke();
fail();
}
catch (Throwable e) {
@@ -64,14 +66,14 @@ public class StorageManagerTest extends TestCase {
public void testIsComputed() throws Exception {
NotNullLazyValue<String> value = m.createLazyValue(new CounterValue());
assertFalse(value.isComputed());
value.compute();
value.invoke();
assertTrue(value.isComputed());
}
public void testIsNullableComputed() throws Exception {
NullableLazyValue<String> value = m.createNullableLazyValue(new CounterValueNull());
assertFalse(value.isComputed());
value.compute();
value.invoke();
assertTrue(value.isComputed());
}
@@ -80,7 +82,7 @@ public class StorageManagerTest extends TestCase {
assertFalse(value.isComputed());
try {
value.compute();
value.invoke();
}
catch (Exception ignored) {
}
@@ -93,7 +95,7 @@ public class StorageManagerTest extends TestCase {
assertFalse(value.isComputed());
try {
value.compute();
value.invoke();
}
catch (Exception ignored) {
}
@@ -168,13 +170,13 @@ public class StorageManagerTest extends TestCase {
NotNullLazyValue<String> rec = m.createLazyValue(new Computable<String>() {
@Override
public String compute() {
return rec.compute();
return rec.invoke();
}
});
}
try {
new C().rec.compute();
new C().rec.invoke();
fail();
}
catch (IllegalStateException e) {
@@ -187,13 +189,13 @@ public class StorageManagerTest extends TestCase {
NullableLazyValue<String> rec = m.createNullableLazyValue(new Computable<String>() {
@Override
public String compute() {
return rec.compute();
return rec.invoke();
}
});
}
try {
new C().rec.compute();
new C().rec.invoke();
fail();
}
catch (IllegalStateException e) {
@@ -206,13 +208,13 @@ public class StorageManagerTest extends TestCase {
NotNullLazyValue<String> rec = m.createRecursionTolerantLazyValue(new Computable<String>() {
@Override
public String compute() {
assertEquals("rec", rec.compute());
assertEquals("rec", rec.invoke());
return "tolerant!";
}
}, "rec");
}
assertEquals("tolerant!", new C().rec.compute());
assertEquals("tolerant!", new C().rec.invoke());
}
public void testNullableRecursionTolerance() throws Exception {
@@ -220,13 +222,13 @@ public class StorageManagerTest extends TestCase {
NullableLazyValue<String> rec = m.createRecursionTolerantNullableLazyValue(new Computable<String>() {
@Override
public String compute() {
assertEquals(null, rec.compute());
assertEquals(null, rec.invoke());
return "tolerant!";
}
}, null);
}
assertEquals("tolerant!", new C().rec.compute());
assertEquals("tolerant!", new C().rec.invoke());
}
public void testRecursionIntoleranceWithPostCompute() throws Exception {
@@ -236,7 +238,7 @@ public class StorageManagerTest extends TestCase {
new Computable<String>() {
@Override
public String compute() {
return rec.compute();
return rec.invoke();
}
},
null,
@@ -245,7 +247,7 @@ public class StorageManagerTest extends TestCase {
}
try {
new C().rec.compute();
new C().rec.invoke();
fail();
}
catch (IllegalStateException e) {
@@ -260,7 +262,7 @@ public class StorageManagerTest extends TestCase {
new Computable<String>() {
@Override
public String compute() {
return rec.compute();
return rec.invoke();
}
},
new Function<Boolean, String>() {
@@ -280,8 +282,8 @@ public class StorageManagerTest extends TestCase {
}
C c = new C();
assertEquals("tolerant", c.rec.compute());
c.rec.compute();
assertEquals("tolerant", c.rec.invoke());
c.rec.invoke();
assertEquals("postCompute() called more than once", 1, counter.getCount());
}
@@ -306,8 +308,8 @@ public class StorageManagerTest extends TestCase {
}
);
assertEquals(Arrays.asList("first", "postComputed"), v.compute());
v.compute();
assertEquals(Arrays.asList("first", "postComputed"), v.invoke());
v.invoke();
assertEquals(1, counter.getCount());
}
@@ -331,8 +333,8 @@ public class StorageManagerTest extends TestCase {
}
);
assertEquals(Arrays.asList("first", "postComputed"), v.compute());
v.compute();
assertEquals(Arrays.asList("first", "postComputed"), v.invoke());
v.invoke();
assertEquals(1, counter.getCount());
}
@@ -343,7 +345,7 @@ public class StorageManagerTest extends TestCase {
new Computable<String>() {
@Override
public String compute() {
return rec.compute();
return rec.invoke();
}
},
new Function<Boolean, String>() {
@@ -366,23 +368,23 @@ public class StorageManagerTest extends TestCase {
C c = new C();
try {
c.rec.compute();
c.rec.invoke();
fail();
}
catch (ReenteringLazyValueComputationException e) {
// OK
}
assertEquals("second", c.rec.compute());
assertEquals("second", c.rec.invoke());
}
// Utilities
private static <K, V> Computable<V> apply(final Function<K, V> f, final K x) {
return new Computable<V>() {
private static <K, V> Function0<V> apply(final Function1<K, V> f, final K x) {
return new Function0<V>() {
@Override
public V compute() {
return f.fun(x);
public V invoke() {
return f.invoke(x);
}
};
}
@@ -237,7 +237,7 @@ public class AnnotationDescriptorDeserializer implements AnnotationDeserializer
errorReporter.reportAnnotationLoadingError("Kotlin class for loading member annotations is not found: " + container, null);
}
List<AnnotationDescriptor> annotations = memberAnnotations.fun(kotlinClass).get(signature);
List<AnnotationDescriptor> annotations = memberAnnotations.invoke(kotlinClass).get(signature);
return annotations == null ? Collections.<AnnotationDescriptor>emptyList() : annotations;
}
@@ -105,7 +105,7 @@ public abstract class AbstractLazyTypeParameterDescriptor implements TypeParamet
@NotNull
@Override
public Set<JetType> getUpperBounds() {
return upperBounds.compute();
return upperBounds.invoke();
}
@NotNull
@@ -114,7 +114,7 @@ public abstract class AbstractLazyTypeParameterDescriptor implements TypeParamet
@NotNull
@Override
public JetType getUpperBoundsAsType() {
return upperBoundsAsType.compute();
return upperBoundsAsType.invoke();
}
@NotNull
@@ -144,7 +144,7 @@ public abstract class AbstractLazyTypeParameterDescriptor implements TypeParamet
@NotNull
@Override
public TypeConstructor getTypeConstructor() {
return typeConstructor.compute();
return typeConstructor.invoke();
}
@NotNull
@@ -192,7 +192,7 @@ public abstract class AbstractLazyTypeParameterDescriptor implements TypeParamet
@NotNull
@Override
public JetType getDefaultType() {
return defaultType.compute();
return defaultType.invoke();
}
@NotNull
@@ -30,6 +30,6 @@ public class LazyScopeAdapter extends AbstractScopeAdapter {
@NotNull
@Override
protected JetScope getWorkerScope() {
return scope.compute();
return scope.invoke();
}
}
@@ -143,7 +143,7 @@ class BuiltinsNamespaceDescriptorImpl extends AbstractNamespaceDescriptorImpl {
@NotNull
@Override
public Collection<Name> getClassNames(@NotNull FqName packageName) {
return packageName.equals(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME) ? classNames.compute() : Collections.<Name>emptyList();
return packageName.equals(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME) ? classNames.invoke() : Collections.<Name>emptyList();
}
}
}
@@ -181,11 +181,6 @@ public class LockBasedStorageManager implements StorageManager {
@Override
public T invoke() {
return compute();
}
@Override
public T compute() {
Object _value = value;
if (!(value instanceof NotValue)) return WrappedValues.unescapeThrowable(_value);
@@ -245,8 +240,8 @@ public class LockBasedStorageManager implements StorageManager {
@Override
@NotNull
public T compute() {
T result = super.compute();
public T invoke() {
T result = super.invoke();
assert result != null : "compute() returned null";
return result;
}
@@ -263,14 +258,9 @@ public class LockBasedStorageManager implements StorageManager {
this.compute = compute;
}
@Override
public V invoke(K k) {
return fun(k);
}
@Override
@Nullable
public V fun(@NotNull K input) {
public V invoke(@NotNull K input) {
Object value = cache.get(input);
if (value != null) return WrappedValues.unescapeExceptionOrNull(value);
@@ -311,8 +301,8 @@ public class LockBasedStorageManager implements StorageManager {
@NotNull
@Override
public V fun(@NotNull K input) {
V result = super.fun(input);
public V invoke(@NotNull K input) {
V result = super.invoke(input);
assert result != null : "compute() returned null";
return result;
}
@@ -16,15 +16,10 @@
package org.jetbrains.jet.storage;
import com.intellij.util.Function;
import jet.Function1;
import org.jetbrains.annotations.NotNull;
public interface MemoizedFunctionToNotNull<P, R> extends Function<P, R>, Function1<P, R> {
@Override
@NotNull
R fun(P p);
public interface MemoizedFunctionToNotNull<P, R> extends Function1<P, R> {
@Override
@NotNull
R invoke(P p);
@@ -16,15 +16,10 @@
package org.jetbrains.jet.storage;
import com.intellij.util.Function;
import jet.Function1;
import org.jetbrains.annotations.Nullable;
public interface MemoizedFunctionToNullable<P, R> extends Function<P, R>, Function1<P, R> {
@Override
@Nullable
R fun(P p);
public interface MemoizedFunctionToNullable<P, R> extends Function1<P, R> {
@Override
@Nullable
R invoke(P p);
@@ -16,15 +16,10 @@
package org.jetbrains.jet.storage;
import com.intellij.openapi.util.Computable;
import jet.Function0;
import org.jetbrains.annotations.NotNull;
public interface NotNullLazyValue<T> extends Computable<T>, Function0<T> {
@Override
@NotNull
T compute();
public interface NotNullLazyValue<T> extends Function0<T> {
@Override
@NotNull
T invoke();
@@ -16,15 +16,10 @@
package org.jetbrains.jet.storage;
import com.intellij.openapi.util.Computable;
import jet.Function0;
import org.jetbrains.annotations.Nullable;
public interface NullableLazyValue<T> extends Computable<T>, Function0<T> {
@Override
@Nullable
T compute();
public interface NullableLazyValue<T> extends Function0<T> {
@Override
@Nullable
T invoke();
@@ -99,7 +99,7 @@ public class ResolveElementCache {
elementOfAdditionalResolve = jetElement;
}
return additionalResolveCache.getValue().fun(elementOfAdditionalResolve);
return additionalResolveCache.getValue().invoke(elementOfAdditionalResolve);
}
JetParameter parameter = PsiTreeUtil.getTopmostParentOfType(jetElement, JetParameter.class);