From 0a8fa404bf1e4e46384cbb1b9b50b3e0bf1e5dbf Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Fri, 27 Jun 2014 13:42:40 +0400 Subject: [PATCH] Pseudocode: Generate additional returns for implicit return values (lambdas, functions with expression bodies) --- .../jet/lang/cfg/JetControlFlowBuilder.java | 2 +- .../cfg/JetControlFlowBuilderAdapter.java | 2 +- .../jet/lang/cfg/JetControlFlowProcessor.java | 10 ++++ .../JetControlFlowInstructionsGenerator.java | 4 +- .../jumps/ReturnValueInstruction.kt | 5 ++ .../jet/lang/cfg/pseudocode/pseudocodeUtil.kt | 47 ++++--------------- .../basic/IfWithUninitialized.instructions | 1 + .../basic/UsageInFunctionLiteral.instructions | 4 +- .../basic/VariablesUsage.instructions | 1 + ...eferenceToPropertyInitializer.instructions | 3 +- .../varInitializationInIfInCycle.instructions | 1 + ...localFunctionScopeWithoutBody.instructions | 1 + .../testData/cfg/basic/Basic.instructions | 7 +-- .../cfg/basic/ShortFunction.instructions | 7 +-- .../local/ObjectExpression.instructions | 7 +-- .../multiDeclaration/MultiDecl.instructions | 14 +++--- .../properties/DelegatedProperty.instructions | 1 + ...backingFieldQualifiedWithThis.instructions | 1 + .../DefaultValuesForArguments.instructions | 1 + .../jet/cfg/PseudoValueTestGenerated.java | 7 ++- .../extractFunction/extractFunctionUtils.kt | 15 ++++-- 21 files changed, 73 insertions(+), 68 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 9da324d252b..6f25e60a7ac 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java @@ -74,7 +74,7 @@ public interface JetControlFlowBuilder { void nondeterministicJump(@NotNull List