diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/AnnotationDescriptorDeserializer.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/AnnotationDescriptorDeserializer.java index 001a9772d2f..9ae4f89cdbd 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/AnnotationDescriptorDeserializer.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/AnnotationDescriptorDeserializer.java @@ -16,6 +16,7 @@ package org.jetbrains.jet.lang.resolve.kotlin; +import com.intellij.util.Function; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.descriptors.serialization.JavaProtoBuf; @@ -61,7 +62,7 @@ public class AnnotationDescriptorDeserializer implements AnnotationDeserializer private final MemoizedFunctionToNotNull>> memberAnnotations = storageManager.createMemoizedFunction( - new MemoizedFunctionToNotNull>>() { + new Function>>() { @NotNull @Override public Map> fun(@NotNull KotlinJvmBinaryClass kotlinClass) { diff --git a/core/util.runtime/src/org/jetbrains/jet/storage/LockBasedStorageManager.java b/core/util.runtime/src/org/jetbrains/jet/storage/LockBasedStorageManager.java index 0811051f68e..69a35dc6410 100644 --- a/core/util.runtime/src/org/jetbrains/jet/storage/LockBasedStorageManager.java +++ b/core/util.runtime/src/org/jetbrains/jet/storage/LockBasedStorageManager.java @@ -179,6 +179,11 @@ public class LockBasedStorageManager implements StorageManager { return value != NotValue.NOT_COMPUTED && value != NotValue.COMPUTING; } + @Override + public T invoke() { + return compute(); + } + @Override public T compute() { Object _value = value; @@ -258,6 +263,11 @@ 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) { diff --git a/core/util.runtime/src/org/jetbrains/jet/storage/MemoizedFunctionToNotNull.java b/core/util.runtime/src/org/jetbrains/jet/storage/MemoizedFunctionToNotNull.java index 3160c938982..31f63ea4a82 100644 --- a/core/util.runtime/src/org/jetbrains/jet/storage/MemoizedFunctionToNotNull.java +++ b/core/util.runtime/src/org/jetbrains/jet/storage/MemoizedFunctionToNotNull.java @@ -17,10 +17,15 @@ package org.jetbrains.jet.storage; import com.intellij.util.Function; +import jet.Function1; import org.jetbrains.annotations.NotNull; -public interface MemoizedFunctionToNotNull extends Function { +public interface MemoizedFunctionToNotNull extends Function, Function1 { @Override @NotNull R fun(P p); + + @Override + @NotNull + R invoke(P p); } diff --git a/core/util.runtime/src/org/jetbrains/jet/storage/MemoizedFunctionToNullable.java b/core/util.runtime/src/org/jetbrains/jet/storage/MemoizedFunctionToNullable.java index f1301b19852..cba43b7fd0e 100644 --- a/core/util.runtime/src/org/jetbrains/jet/storage/MemoizedFunctionToNullable.java +++ b/core/util.runtime/src/org/jetbrains/jet/storage/MemoizedFunctionToNullable.java @@ -17,10 +17,15 @@ package org.jetbrains.jet.storage; import com.intellij.util.Function; +import jet.Function1; import org.jetbrains.annotations.Nullable; -public interface MemoizedFunctionToNullable extends Function { +public interface MemoizedFunctionToNullable extends Function, Function1 { @Override @Nullable R fun(P p); + + @Override + @Nullable + R invoke(P p); } diff --git a/core/util.runtime/src/org/jetbrains/jet/storage/NotNullLazyValue.java b/core/util.runtime/src/org/jetbrains/jet/storage/NotNullLazyValue.java index 456a10dd041..02b29df856f 100644 --- a/core/util.runtime/src/org/jetbrains/jet/storage/NotNullLazyValue.java +++ b/core/util.runtime/src/org/jetbrains/jet/storage/NotNullLazyValue.java @@ -17,13 +17,18 @@ package org.jetbrains.jet.storage; import com.intellij.openapi.util.Computable; +import jet.Function0; import org.jetbrains.annotations.NotNull; -public interface NotNullLazyValue extends Computable { +public interface NotNullLazyValue extends Computable, Function0 { @Override @NotNull T compute(); + @Override + @NotNull + T invoke(); + // Needed for proper toString() behaviors boolean isComputed(); } diff --git a/core/util.runtime/src/org/jetbrains/jet/storage/NullableLazyValue.java b/core/util.runtime/src/org/jetbrains/jet/storage/NullableLazyValue.java index 8a124e621df..84701f4d87f 100644 --- a/core/util.runtime/src/org/jetbrains/jet/storage/NullableLazyValue.java +++ b/core/util.runtime/src/org/jetbrains/jet/storage/NullableLazyValue.java @@ -17,13 +17,18 @@ package org.jetbrains.jet.storage; import com.intellij.openapi.util.Computable; +import jet.Function0; import org.jetbrains.annotations.Nullable; -public interface NullableLazyValue extends Computable { +public interface NullableLazyValue extends Computable, Function0 { @Override @Nullable T compute(); + @Override + @Nullable + T invoke(); + // Needed for proper toString() behaviors boolean isComputed(); } diff --git a/core/util.runtime/util.runtime.iml b/core/util.runtime/util.runtime.iml index 2f312886c89..a515075a8a1 100644 --- a/core/util.runtime/util.runtime.iml +++ b/core/util.runtime/util.runtime.iml @@ -8,6 +8,7 @@ +