diff --git a/.idea/inspectionProfiles/idea_default.xml b/.idea/inspectionProfiles/idea_default.xml index 6c2f8ad45ac..23bae163cd7 100644 --- a/.idea/inspectionProfiles/idea_default.xml +++ b/.idea/inspectionProfiles/idea_default.xml @@ -410,9 +410,6 @@ diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java index b759f9352ea..b1359061dd1 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java @@ -276,8 +276,7 @@ public class ClosureCodegen { : typeMapper.mapType(((VariableDescriptor) descriptor).getType(), MapTypeMode.VALUE); args.add(new Pair("$" + descriptor.getName().getName(), type)); } - else if (isNamedFun(state.getBindingContext(), descriptor) && - descriptor.getContainingDeclaration() instanceof FunctionDescriptor) { + else if (isLocalNamedFun(state.getBindingContext(), descriptor)) { final Type type = classNameForAnonymousClass(bindingContext, (JetElement) BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor)) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenBinding.java b/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenBinding.java index ab41d77fe84..118d97be21d 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenBinding.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/context/CodegenBinding.java @@ -233,10 +233,11 @@ public class CodegenBinding { return false; } - public static boolean isNamedFun(BindingContext bindingContext, DeclarationDescriptor fd) { + public static boolean isLocalNamedFun(BindingContext bindingContext, DeclarationDescriptor fd) { PsiElement psiElement = BindingContextUtils.descriptorToDeclaration(bindingContext, fd); if (psiElement instanceof JetNamedFunction) { - return true; + final DeclarationDescriptor declaration = fd.getContainingDeclaration(); + return declaration instanceof FunctionDescriptor || declaration instanceof PropertyDescriptor; } return false; } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/context/LocalLookup.java b/compiler/backend/src/org/jetbrains/jet/codegen/context/LocalLookup.java index 846dd41bec6..54984795e2f 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/context/LocalLookup.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/context/LocalLookup.java @@ -65,7 +65,7 @@ public interface LocalLookup { LOCAL_NAMED_FUNCTION { @Override public boolean isCase(DeclarationDescriptor d, GenerationState state) { - return isNamedFun(state.getBindingContext(), d) && (d.getContainingDeclaration() instanceof FunctionDescriptor); + return isLocalNamedFun(state.getBindingContext(), d); } @Override