From 3952a121fb57289fe22d593017df302aa2226676 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Mon, 7 Apr 2014 17:41:55 +0400 Subject: [PATCH] Pseudocode: Track PSI elements which correspond to jump instructions --- .../jet/lang/cfg/JetControlFlowBuilder.java | 12 ++-- .../cfg/JetControlFlowBuilderAdapter.java | 24 ++++---- .../jet/lang/cfg/JetControlFlowProcessor.java | 56 +++++++++++-------- .../lang/cfg/JetFlowInformationProvider.java | 15 ++++- .../pseudocode/AbstractJumpInstruction.java | 7 ++- .../ConditionalJumpInstruction.java | 7 ++- .../JetControlFlowInstructionsGenerator.java | 25 +++++---- .../lang/cfg/pseudocode/JumpInstruction.java | 20 +++++++ .../NondeterministicJumpInstruction.java | 13 +++-- .../pseudocode/ReturnNoValueInstruction.java | 12 +--- .../pseudocode/ReturnValueInstruction.java | 20 ++----- .../pseudocode/ThrowExceptionInstruction.java | 24 +++----- .../UnconditionalJumpInstruction.java | 9 ++- .../diagnostics/tests/BreakContinue.kt | 6 +- idea/testData/checker/BreakContinue.kt | 4 +- 15 files changed, 135 insertions(+), 119 deletions(-) create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/JumpInstruction.java 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 bd489bdb0d6..42083b19c4f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java @@ -63,12 +63,12 @@ public interface JetControlFlowBuilder { void bindLabel(@NotNull Label label); // Jumps - void jump(@NotNull Label label); - void jumpOnFalse(@NotNull Label label); - void jumpOnTrue(@NotNull Label label); - void nondeterministicJump(@NotNull Label label); // Maybe, jump to label - void nondeterministicJump(@NotNull List