From 4debb6eb6a110636f1ef8db1b63286e623fbe71a Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Thu, 19 Jun 2014 16:17:42 +0400 Subject: [PATCH] Expression Typing: Record resolved calls for labeled this-expressions --- .../types/expressions/BasicExpressionTypingVisitor.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java index 71b008af17d..0fb97d20f3f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java @@ -378,8 +378,10 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { if (labelName != null) { LabelResolver.LabeledReceiverResolutionResult resolutionResult = LabelResolver.INSTANCE.resolveThisOrSuperLabel(expression, context, Name.identifier(labelName)); - if (onlyClassReceivers && resolutionResult.success()) { - if (!isDeclaredInClass(resolutionResult.getReceiverParameterDescriptor())) { + if (resolutionResult.success()) { + ReceiverParameterDescriptor receiverParameterDescriptor = resolutionResult.getReceiverParameterDescriptor(); + recordThisOrSuperCallInTraceAndCallExtension(context, receiverParameterDescriptor, expression); + if (onlyClassReceivers && !isDeclaredInClass(receiverParameterDescriptor)) { return LabelResolver.LabeledReceiverResolutionResult.labelResolutionSuccess(NO_RECEIVER_PARAMETER); } } @@ -402,7 +404,6 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { if (result != NO_RECEIVER_PARAMETER) { context.trace.record(REFERENCE_TARGET, expression.getInstanceReference(), result.getContainingDeclaration()); recordThisOrSuperCallInTraceAndCallExtension(context, result, expression); - } return LabelResolver.LabeledReceiverResolutionResult.labelResolutionSuccess(result); }