From 34df845778833978968ad1d43d8b26e568ccc963 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 16 Aug 2013 15:19:28 +0400 Subject: [PATCH] Clarifying comments for RETURN_NOT_ALLOWED --- .../lang/types/expressions/ControlStructureTypingVisitor.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java index 93968fecf40..aa301fb7c97 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java @@ -485,6 +485,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { JetDeclaration parentDeclaration = PsiTreeUtil.getParentOfType(expression, JetDeclaration.class); if (parentDeclaration instanceof JetParameter) { + // In a default value for parameter context.trace.report(RETURN_NOT_ALLOWED.on(expression)); } assert parentDeclaration != null; @@ -500,6 +501,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { containingFunctionDescriptor = DescriptorUtils.getParentOfType(containingFunctionDescriptor, FunctionDescriptor.class); containingFunction = containingFunctionDescriptor != null ? BindingContextUtils.callableDescriptorToDeclaration(context.trace.getBindingContext(), containingFunctionDescriptor) : null; } while (containingFunction instanceof JetFunctionLiteral); + // Unqualified, in a function literal context.trace.report(RETURN_NOT_ALLOWED.on(expression)); } if (containingFunctionDescriptor != null) { @@ -507,6 +509,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { } } else { + // Outside a function context.trace.report(RETURN_NOT_ALLOWED.on(expression)); } } @@ -515,6 +518,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { if (functionDescriptor != null) { expectedType = DescriptorUtils.getFunctionExpectedReturnType(functionDescriptor, element); if (functionDescriptor != containingFunctionDescriptor) { + // Qualified, non-local context.trace.report(RETURN_NOT_ALLOWED.on(expression)); } }