Clarifying comments for RETURN_NOT_ALLOWED
This commit is contained in:
+4
@@ -485,6 +485,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor {
|
|||||||
JetDeclaration parentDeclaration = PsiTreeUtil.getParentOfType(expression, JetDeclaration.class);
|
JetDeclaration parentDeclaration = PsiTreeUtil.getParentOfType(expression, JetDeclaration.class);
|
||||||
|
|
||||||
if (parentDeclaration instanceof JetParameter) {
|
if (parentDeclaration instanceof JetParameter) {
|
||||||
|
// In a default value for parameter
|
||||||
context.trace.report(RETURN_NOT_ALLOWED.on(expression));
|
context.trace.report(RETURN_NOT_ALLOWED.on(expression));
|
||||||
}
|
}
|
||||||
assert parentDeclaration != null;
|
assert parentDeclaration != null;
|
||||||
@@ -500,6 +501,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor {
|
|||||||
containingFunctionDescriptor = DescriptorUtils.getParentOfType(containingFunctionDescriptor, FunctionDescriptor.class);
|
containingFunctionDescriptor = DescriptorUtils.getParentOfType(containingFunctionDescriptor, FunctionDescriptor.class);
|
||||||
containingFunction = containingFunctionDescriptor != null ? BindingContextUtils.callableDescriptorToDeclaration(context.trace.getBindingContext(), containingFunctionDescriptor) : null;
|
containingFunction = containingFunctionDescriptor != null ? BindingContextUtils.callableDescriptorToDeclaration(context.trace.getBindingContext(), containingFunctionDescriptor) : null;
|
||||||
} while (containingFunction instanceof JetFunctionLiteral);
|
} while (containingFunction instanceof JetFunctionLiteral);
|
||||||
|
// Unqualified, in a function literal
|
||||||
context.trace.report(RETURN_NOT_ALLOWED.on(expression));
|
context.trace.report(RETURN_NOT_ALLOWED.on(expression));
|
||||||
}
|
}
|
||||||
if (containingFunctionDescriptor != null) {
|
if (containingFunctionDescriptor != null) {
|
||||||
@@ -507,6 +509,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
// Outside a function
|
||||||
context.trace.report(RETURN_NOT_ALLOWED.on(expression));
|
context.trace.report(RETURN_NOT_ALLOWED.on(expression));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -515,6 +518,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor {
|
|||||||
if (functionDescriptor != null) {
|
if (functionDescriptor != null) {
|
||||||
expectedType = DescriptorUtils.getFunctionExpectedReturnType(functionDescriptor, element);
|
expectedType = DescriptorUtils.getFunctionExpectedReturnType(functionDescriptor, element);
|
||||||
if (functionDescriptor != containingFunctionDescriptor) {
|
if (functionDescriptor != containingFunctionDescriptor) {
|
||||||
|
// Qualified, non-local
|
||||||
context.trace.report(RETURN_NOT_ALLOWED.on(expression));
|
context.trace.report(RETURN_NOT_ALLOWED.on(expression));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user