From aeed586fba0f3542d243c1c5719ea0ce2bc3c79e Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Mon, 30 Apr 2012 15:24:19 +0400 Subject: [PATCH] 'thisObject' is known in 'variable as function' call case, while constructing second 'invoke' call --- .../src/org/jetbrains/jet/lang/psi/Call.java | 3 +++ .../jetbrains/jet/lang/resolve/calls/CallMaker.java | 12 ++++++++++++ .../jet/lang/resolve/calls/DelegatingCall.java | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/Call.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/Call.java index 4d5a1fa5937..d3c46683dbb 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/Call.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/Call.java @@ -36,6 +36,9 @@ public interface Call { @NotNull ReceiverDescriptor getExplicitReceiver(); + @NotNull + ReceiverDescriptor getThisObject(); + @Nullable JetExpression getCalleeExpression(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallMaker.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallMaker.java index abdb02465b6..98e42503e85 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallMaker.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallMaker.java @@ -98,6 +98,12 @@ public class CallMaker { return explicitReceiver; } + @NotNull + @Override + public ReceiverDescriptor getThisObject() { + return ReceiverDescriptor.NO_RECEIVER; + } + @Override public JetExpression getCalleeExpression() { return calleeExpression; @@ -199,6 +205,12 @@ public class CallMaker { return explicitReceiver; } + @NotNull + @Override + public ReceiverDescriptor getThisObject() { + return ReceiverDescriptor.NO_RECEIVER; + } + @Nullable public JetExpression getCalleeExpression() { return callElement.getCalleeExpression(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/DelegatingCall.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/DelegatingCall.java index 80cc4eb7f29..9c82f0829d8 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/DelegatingCall.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/DelegatingCall.java @@ -48,6 +48,12 @@ public class DelegatingCall implements Call { return delegate.getExplicitReceiver(); } + @NotNull + @Override + public ReceiverDescriptor getThisObject() { + return delegate.getThisObject(); + } + @Override @Nullable public JetExpression getCalleeExpression() { -- GitLab