From 0b4f313b6d6cda82a99e2a34bcc37a95c50c680e Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Fri, 29 Aug 2014 21:36:16 +0400 Subject: [PATCH] Jump on 'continue' to condition entry points for all loops --- .../jet/lang/cfg/BreakableBlockInfo.java | 9 ++++ .../jet/lang/cfg/JetControlFlowProcessor.java | 6 +-- .../org/jetbrains/jet/lang/cfg/LoopInfo.java | 5 ++ .../JetControlFlowInstructionsGenerator.java | 4 +- .../varInitializationInIfInCycle.instructions | 2 +- .../controlStructures/Finally.instructions | 18 +++---- .../FinallyTestCopy.instructions | 12 ++--- .../continueInDoWhile.instructions | 40 ++++++++++++++++ .../controlStructures/continueInDoWhile.kt | 6 +++ .../continueInDoWhile.values | 18 +++++++ .../continueInFor.instructions | 47 +++++++++++++++++++ .../cfg/controlStructures/continueInFor.kt | 6 +++ .../controlStructures/continueInFor.values | 21 +++++++++ .../continueInWhile.instructions | 41 ++++++++++++++++ .../cfg/controlStructures/continueInWhile.kt | 6 +++ .../controlStructures/continueInWhile.values | 19 ++++++++ .../jet/cfg/ControlFlowTestGenerated.java | 15 ++++++ .../jet/cfg/PseudoValueTestGenerated.java | 15 ++++++ 18 files changed, 267 insertions(+), 23 deletions(-) create mode 100644 compiler/testData/cfg/controlStructures/continueInDoWhile.instructions create mode 100644 compiler/testData/cfg/controlStructures/continueInDoWhile.kt create mode 100644 compiler/testData/cfg/controlStructures/continueInDoWhile.values create mode 100644 compiler/testData/cfg/controlStructures/continueInFor.instructions create mode 100644 compiler/testData/cfg/controlStructures/continueInFor.kt create mode 100644 compiler/testData/cfg/controlStructures/continueInFor.values create mode 100644 compiler/testData/cfg/controlStructures/continueInWhile.instructions create mode 100644 compiler/testData/cfg/controlStructures/continueInWhile.kt create mode 100644 compiler/testData/cfg/controlStructures/continueInWhile.values diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/BreakableBlockInfo.java b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/BreakableBlockInfo.java index 2531d50fd85..4a41b1e7762 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/BreakableBlockInfo.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/BreakableBlockInfo.java @@ -16,17 +16,22 @@ package org.jetbrains.jet.lang.cfg; +import com.google.common.collect.Sets; import org.jetbrains.jet.lang.psi.JetElement; +import java.util.Set; + public class BreakableBlockInfo extends BlockInfo { private final JetElement element; private final Label entryPoint; private final Label exitPoint; + protected final Set