diff --git a/idea/src/org/jetbrains/jet/lang/resolve/WritableScopeImpl.java b/idea/src/org/jetbrains/jet/lang/resolve/WritableScopeImpl.java index 6f33d164d5e..eb516af6b52 100644 --- a/idea/src/org/jetbrains/jet/lang/resolve/WritableScopeImpl.java +++ b/idea/src/org/jetbrains/jet/lang/resolve/WritableScopeImpl.java @@ -36,7 +36,6 @@ public class WritableScopeImpl extends WritableScopeWithImports { @Nullable private JetType thisType; - private boolean variablesAsFunctionsAdded; private List variableDescriptors; public WritableScopeImpl(@NotNull JetScope scope, @NotNull DeclarationDescriptor owner, @NotNull ErrorHandler errorHandler) { @@ -243,9 +242,9 @@ public class WritableScopeImpl extends WritableScopeWithImports { } private void addVariablesAsFunctions() { - if (variablesAsFunctionsAdded) return; - variablesAsFunctionsAdded = true; - for (VariableDescriptor variableDescriptor : getVariableDescriptors()) { + List variableDescriptors = getVariableDescriptors(); + this.variableDescriptors = null; + for (VariableDescriptor variableDescriptor : variableDescriptors) { JetType outType = variableDescriptor.getOutType(); if (outType != null && JetStandardClasses.isFunctionType(outType)) { addFunctionDescriptor(VariableAsFunctionDescriptor.create(variableDescriptor)); diff --git a/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java b/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java index 6b066480c95..f9f505d4707 100644 --- a/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java +++ b/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java @@ -2482,7 +2482,6 @@ public class JetTypeInferrer { @Override public void visitProperty(JetProperty property) { - JetTypeReference receiverTypeRef = property.getReceiverTypeRef(); if (receiverTypeRef != null) { context.trace.getErrorHandler().genericError(receiverTypeRef.getNode(), "Local receiver-properties are not allowed"); diff --git a/idea/testData/checker/regression/Jet124.jet b/idea/testData/checker/regression/Jet124.jet new file mode 100644 index 00000000000..354a5f1711f --- /dev/null +++ b/idea/testData/checker/regression/Jet124.jet @@ -0,0 +1,8 @@ +fun foo1() : {(Int) : Int} + +fun foo() { + val h : {(Int) : Int} = foo1(); + h(1) + val m : {(Int) : Int} = {(a : Int) => 1}//foo1() + m(1) +} \ No newline at end of file