From 1a16c515f3c462fa5198e912c0f67ed4803b9405 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Thu, 19 Jun 2014 18:14:18 +0400 Subject: [PATCH] Pseudocode: Generate resolved-call-based read instructions for this-expressions --- .../org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java | 3 --- .../jet/lang/cfg/JetControlFlowBuilderAdapter.java | 7 ------- .../jetbrains/jet/lang/cfg/JetControlFlowProcessor.java | 4 ++-- .../pseudocode/JetControlFlowInstructionsGenerator.java | 7 ------- 4 files changed, 2 insertions(+), 19 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java index 6e7456491e1..4ef0da40578 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java @@ -22,7 +22,6 @@ import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue; import org.jetbrains.jet.lang.cfg.pseudocode.Pseudocode; import org.jetbrains.jet.lang.cfg.pseudocode.TypePredicate; import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.*; -import org.jetbrains.jet.lang.descriptors.ReceiverParameterDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall; @@ -126,8 +125,6 @@ public interface JetControlFlowBuilder { @NotNull List inputValues ); - @NotNull - ReadValueInstruction readThis(@NotNull JetExpression expression, @Nullable ReceiverParameterDescriptor parameterDescriptor); @NotNull ReadValueInstruction readVariable( @NotNull JetElement instructionElement, diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilderAdapter.java b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilderAdapter.java index cedd10e5a53..453ee4269bb 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilderAdapter.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilderAdapter.java @@ -22,7 +22,6 @@ import org.jetbrains.jet.lang.cfg.pseudocode.PseudoValue; import org.jetbrains.jet.lang.cfg.pseudocode.Pseudocode; import org.jetbrains.jet.lang.cfg.pseudocode.TypePredicate; import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.*; -import org.jetbrains.jet.lang.descriptors.ReceiverParameterDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall; @@ -84,12 +83,6 @@ public abstract class JetControlFlowBuilderAdapter implements JetControlFlowBuil return getDelegateBuilder().merge(expression, inputValues); } - @NotNull - @Override - public ReadValueInstruction readThis(@NotNull JetExpression expression, @Nullable ReceiverParameterDescriptor parameterDescriptor) { - return getDelegateBuilder().readThis(expression, parameterDescriptor); - } - @NotNull @Override public ReadValueInstruction readVariable( diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowProcessor.java b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowProcessor.java index 844abbb8162..fc336163bdc 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowProcessor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowProcessor.java @@ -288,13 +288,13 @@ public class JetControlFlowProcessor { public void visitThisExpressionVoid(@NotNull JetThisExpression expression, CFPContext context) { ResolvedCall resolvedCall = getResolvedCall(expression); if (resolvedCall == null) { - builder.readThis(expression, null); + createNonSyntheticValue(expression); return; } CallableDescriptor resultingDescriptor = resolvedCall.getResultingDescriptor(); if (resultingDescriptor instanceof ReceiverParameterDescriptor) { - builder.readThis(expression, (ReceiverParameterDescriptor) resultingDescriptor); + builder.readVariable(expression, expression, resolvedCall, getReceiverValues(expression, resolvedCall, true)); } copyValue(expression, expression.getInstanceReference()); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/JetControlFlowInstructionsGenerator.java b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/JetControlFlowInstructionsGenerator.java index 114c4d809e1..581fefb43d6 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/JetControlFlowInstructionsGenerator.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/JetControlFlowInstructionsGenerator.java @@ -25,7 +25,6 @@ import org.jetbrains.jet.lang.cfg.pseudocode.instructions.LexicalScope; import org.jetbrains.jet.lang.cfg.pseudocode.instructions.eval.*; import org.jetbrains.jet.lang.cfg.pseudocode.instructions.jumps.*; import org.jetbrains.jet.lang.cfg.pseudocode.instructions.special.*; -import org.jetbrains.jet.lang.descriptors.ReceiverParameterDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall; @@ -448,12 +447,6 @@ public class JetControlFlowInstructionsGenerator extends JetControlFlowBuilderAd return instruction; } - @NotNull - @Override - public ReadValueInstruction readThis(@NotNull JetExpression expression, @Nullable ReceiverParameterDescriptor parameterDescriptor) { - return read(expression); - } - @NotNull @Override public ReadValueInstruction readVariable(