diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/Pseudocode.java b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/Pseudocode.java index 47dcbea39ea..1c5303de8fe 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/Pseudocode.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/Pseudocode.java @@ -17,16 +17,14 @@ package org.jetbrains.jet.lang.cfg.pseudocode; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import com.google.common.collect.Sets; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.cfg.Label; import org.jetbrains.jet.lang.psi.JetElement; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Set; +import java.util.*; /** * @author abreslav @@ -95,6 +93,17 @@ public class Pseudocode { return correspondingElement; } + public Set getLocalDeclarations() { + Set localDeclarations = Sets.newLinkedHashSet(); + //todo look recursively inside local declarations + for (Instruction instruction : instructions) { + if (instruction instanceof LocalDeclarationInstruction) { + localDeclarations.add(((LocalDeclarationInstruction) instruction).getBody()); + } + } + return localDeclarations; + } + public PseudocodeLabel createLabel(String name) { PseudocodeLabel label = new PseudocodeLabel(name); labels.add(label); @@ -190,10 +199,11 @@ public class Pseudocode { public void postProcess() { if (postPrecessed) return; postPrecessed = true; + errorInstruction.setSink(getSinkInstruction()); + exitInstruction.setSink(getSinkInstruction()); for (int i = 0, instructionsSize = mutableInstructionList.size(); i < instructionsSize; i++) { processInstruction(mutableInstructionList.get(i), i); } - getExitInstruction().setSink(getSinkInstruction()); Set reachableInstructions = collectReachableInstructions(); for (Instruction instruction : mutableInstructionList) { if (reachableInstructions.contains(instruction)) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/SubroutineExitInstruction.java b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/SubroutineExitInstruction.java index 1e9f26d81f1..c3ad2ee983f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/SubroutineExitInstruction.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/SubroutineExitInstruction.java @@ -46,10 +46,8 @@ public class SubroutineExitInstruction extends InstructionImpl { @NotNull @Override public Collection getNextInstructions() { - if (sinkInstruction != null) { - return Collections.singleton(sinkInstruction); - } - return Collections.emptyList(); + assert sinkInstruction != null; + return Collections.singleton(sinkInstruction); } @Override diff --git a/compiler/testData/cfg/AnonymousInitializers.instructions b/compiler/testData/cfg/AnonymousInitializers.instructions index 4636a66a836..32d8f65e3a2 100644 --- a/compiler/testData/cfg/AnonymousInitializers.instructions +++ b/compiler/testData/cfg/AnonymousInitializers.instructions @@ -7,9 +7,9 @@ l0: l1: NEXT:[] PREV:[r(20)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == AnonymousInitializers == class AnonymousInitializers() { @@ -46,16 +46,16 @@ l2: l1: NEXT:[] PREV:[w($i)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[d(get() = 20), ] + NEXT:[] PREV:[, , d(get() = 20)] l3: NEXT:[r(20)] PREV:[] r(20) NEXT:[] PREV:[] l4: NEXT:[] PREV:[r(20)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== diff --git a/compiler/testData/cfg/ArrayAccess.instructions b/compiler/testData/cfg/ArrayAccess.instructions index 6bdc275b8e8..1e0e143d1de 100644 --- a/compiler/testData/cfg/ArrayAccess.instructions +++ b/compiler/testData/cfg/ArrayAccess.instructions @@ -35,7 +35,7 @@ l0: l1: NEXT:[] PREV:[w(a[10])] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== diff --git a/compiler/testData/cfg/Assignments.instructions b/compiler/testData/cfg/Assignments.instructions index ec20a1a74fa..dc70c8556fb 100644 --- a/compiler/testData/cfg/Assignments.instructions +++ b/compiler/testData/cfg/Assignments.instructions @@ -9,9 +9,9 @@ l0: l1: NEXT:[] PREV:[v(var x : Int;)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == assignments == fun assignments() : Unit { @@ -72,7 +72,7 @@ l5: l1: NEXT:[] PREV:[w(t.x)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== diff --git a/compiler/testData/cfg/Basic.instructions b/compiler/testData/cfg/Basic.instructions index cfe03b78040..abd49b300ab 100644 --- a/compiler/testData/cfg/Basic.instructions +++ b/compiler/testData/cfg/Basic.instructions @@ -7,9 +7,9 @@ l3: l4: NEXT:[] PREV:[r(1)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == f == fun f(a : Boolean) : Unit { @@ -78,18 +78,18 @@ l6: l1: NEXT:[] PREV:[r(a || false)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[d({1}), ] + NEXT:[] PREV:[, , d({1})] l3: NEXT:[r(1)] PREV:[] r(1) NEXT:[] PREV:[] l4: NEXT:[] PREV:[r(1)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == foo == fun foo(a : Boolean, b : Int) : Unit {} @@ -104,9 +104,9 @@ l0: l1: NEXT:[] PREV:[read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == genfun == fun genfun() : Unit {} @@ -117,9 +117,9 @@ l0: l1: NEXT:[] PREV:[read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == flfun == fun flfun(f : () -> Any) : Unit {} @@ -132,7 +132,7 @@ l0: l1: NEXT:[] PREV:[read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== diff --git a/compiler/testData/cfg/EmptyFunction.instructions b/compiler/testData/cfg/EmptyFunction.instructions index b7afe8758e2..054789e37c6 100644 --- a/compiler/testData/cfg/EmptyFunction.instructions +++ b/compiler/testData/cfg/EmptyFunction.instructions @@ -7,7 +7,7 @@ l0: l1: NEXT:[] PREV:[read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== diff --git a/compiler/testData/cfg/FailFunction.instructions b/compiler/testData/cfg/FailFunction.instructions index be84d56dee9..c8a3ab1c608 100644 --- a/compiler/testData/cfg/FailFunction.instructions +++ b/compiler/testData/cfg/FailFunction.instructions @@ -15,7 +15,7 @@ l0: l1: NEXT:[] PREV:[] error: - NEXT:[] PREV:[jmp(error)] + NEXT:[] PREV:[jmp(error)] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== diff --git a/compiler/testData/cfg/Finally.instructions b/compiler/testData/cfg/Finally.instructions index 140aa447092..d9ef32e086e 100644 --- a/compiler/testData/cfg/Finally.instructions +++ b/compiler/testData/cfg/Finally.instructions @@ -21,9 +21,9 @@ l1: l3: NEXT:[] PREV:[r(2)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t2 == fun t2() { @@ -65,9 +65,9 @@ l1: l5: NEXT:[] PREV:[ret l1, r(2)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == anonymous_0 == { () => @@ -92,9 +92,9 @@ l4: l6: NEXT:[] PREV:[ret l4, read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t3 == fun t3() { @@ -141,9 +141,9 @@ l1: l8: NEXT:[] PREV:[r(2)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[d({ () => if (2 > 3) { retur..), ] + NEXT:[] PREV:[, , d({ () => if (2 > 3) { retur..)] l3: NEXT:[r(())] PREV:[] r(()) NEXT:[r(2)] PREV:[] @@ -160,9 +160,9 @@ l4: l6: NEXT:[] PREV:[ret l4, read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == anonymous_1 == { () => @@ -205,9 +205,9 @@ l4: l8: NEXT:[] PREV:[ret l4, r(2)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t4 == fun t4() { @@ -250,9 +250,9 @@ l2: l1: NEXT:[] PREV:[r({ () => try { 1 if (2 > 3)..)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[d({ () => try { 1 if (2 > 3)..), ] + NEXT:[] PREV:[, , d({ () => try { 1 if (2 > 3)..)] l3: NEXT:[r(())] PREV:[] r(()) NEXT:[r(try { 1 if (2 > 3) { retur..)] PREV:[] @@ -282,9 +282,9 @@ l4: l8: NEXT:[] PREV:[ret l4, r(2)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t5 == fun t5() { @@ -346,9 +346,9 @@ l3: l1: NEXT:[] PREV:[read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t6 == fun t6() { @@ -410,9 +410,9 @@ l1: l9: NEXT:[] PREV:[r(2)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t7 == fun t7() { @@ -471,9 +471,9 @@ l1: l9: NEXT:[] PREV:[r(2)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t8 == fun t8(a : Int) { @@ -542,9 +542,9 @@ l2: l1: NEXT:[] PREV:[read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t9 == fun t9(a : Int) { @@ -613,9 +613,9 @@ l1: l9: NEXT:[] PREV:[r(2)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t10 == fun t10(a : Int) { @@ -681,9 +681,9 @@ l1: l9: NEXT:[] PREV:[r(2)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t11 == fun t11() { @@ -714,9 +714,9 @@ l1: l3: NEXT:[] PREV:[ret(*) l1] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t12 == fun t12() : Int { @@ -749,9 +749,9 @@ l1: l3: NEXT:[] PREV:[ret(*) l1] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t13 == fun t13() : Int { @@ -802,9 +802,9 @@ l1: l6: NEXT:[] PREV:[ret(*) l1, r(doSmth(3))] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t14 == fun t14() : Int { @@ -843,9 +843,9 @@ l4: l6: NEXT:[] PREV:[ret(*) l1, jmp(l4)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t15 == fun t15() : Int { @@ -898,9 +898,9 @@ l1: l6: NEXT:[] PREV:[ret(*) l1, ret(*) l1] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t16 == fun t16() : Int { @@ -951,9 +951,9 @@ l1: l6: NEXT:[] PREV:[ret(*) l1, r(doSmth(3))] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == doSmth == fun doSmth(i: Int) { @@ -967,7 +967,7 @@ l0: l1: NEXT:[] PREV:[read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== diff --git a/compiler/testData/cfg/For.instructions b/compiler/testData/cfg/For.instructions index 9361d5f5882..f0935934a8b 100644 --- a/compiler/testData/cfg/For.instructions +++ b/compiler/testData/cfg/For.instructions @@ -29,9 +29,9 @@ l2: l1: NEXT:[] PREV:[read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == doSmth == fun doSmth(i: Int) {} @@ -44,7 +44,7 @@ l0: l1: NEXT:[] PREV:[read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== diff --git a/compiler/testData/cfg/If.instructions b/compiler/testData/cfg/If.instructions index 1a035099610..f23eeeeacd8 100644 --- a/compiler/testData/cfg/If.instructions +++ b/compiler/testData/cfg/If.instructions @@ -48,9 +48,9 @@ l5: l1: NEXT:[] PREV:[r(doSmth(r))] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == t2 == fun t2(b: Boolean) { @@ -92,9 +92,9 @@ l1: l5: NEXT:[] PREV:[ret l1, ret l1, read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == doSmth == fun doSmth(s: String) {} @@ -107,7 +107,7 @@ l0: l1: NEXT:[] PREV:[read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== diff --git a/compiler/testData/cfg/LazyBooleans.instructions b/compiler/testData/cfg/LazyBooleans.instructions index f204026d0a0..0fd8ee339c4 100644 --- a/compiler/testData/cfg/LazyBooleans.instructions +++ b/compiler/testData/cfg/LazyBooleans.instructions @@ -72,7 +72,7 @@ l13: l1: NEXT:[] PREV:[r(14)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== diff --git a/compiler/testData/cfg/LocalDeclarations.instructions b/compiler/testData/cfg/LocalDeclarations.instructions index 060b9e31931..500f605b982 100644 --- a/compiler/testData/cfg/LocalDeclarations.instructions +++ b/compiler/testData/cfg/LocalDeclarations.instructions @@ -25,9 +25,9 @@ l0: l1: NEXT:[] PREV:[w(a)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == O == object O { @@ -45,9 +45,9 @@ l0: l1: NEXT:[] PREV:[w($x)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == null == object { @@ -72,9 +72,9 @@ l0: l1: NEXT:[] PREV:[w($x)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == doSmth == fun doSmth(i: Int) {} @@ -87,9 +87,9 @@ l0: l1: NEXT:[] PREV:[read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == test1 == fun test1() { @@ -122,9 +122,9 @@ l0: l1: NEXT:[] PREV:[w(a)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == test2 == fun test2() { @@ -152,9 +152,9 @@ l0: l1: NEXT:[] PREV:[w(a)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == inner_bar == fun inner_bar() { @@ -168,9 +168,9 @@ l3: l4: NEXT:[] PREV:[w(y)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == test3 == fun test3() { @@ -206,9 +206,9 @@ l2: l1: NEXT:[] PREV:[w(a)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[d(fun inner_bar() { y = 10 }) , ] + NEXT:[] PREV:[, , d(fun inner_bar() { y = 10 }) ] l3: NEXT:[r(10)] PREV:[] r(10) NEXT:[w(y)] PREV:[] @@ -216,9 +216,9 @@ l3: l4: NEXT:[] PREV:[w(y)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == ggg == fun ggg() { @@ -232,9 +232,9 @@ l3: l4: NEXT:[] PREV:[w(y)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == test4 == fun test4() { @@ -285,9 +285,9 @@ l2: l1: NEXT:[] PREV:[w(a)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[d(fun ggg() { y = 10 }) , ] + NEXT:[] PREV:[, , d(fun ggg() { y = 10 }) ] l3: NEXT:[r(10)] PREV:[] r(10) NEXT:[w(y)] PREV:[] @@ -295,9 +295,9 @@ l3: l4: NEXT:[] PREV:[w(y)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == foo == fun foo() { @@ -311,9 +311,9 @@ l3: l4: NEXT:[] PREV:[w(x)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == bar == fun bar() { @@ -327,9 +327,9 @@ l6: l7: NEXT:[] PREV:[w(x)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == test5 == fun test5() { @@ -392,9 +392,9 @@ l5: l1: NEXT:[] PREV:[w(a)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[d(fun foo() { x = 3 }) , d(fun bar() { x = 4 }) , ] + NEXT:[] PREV:[, , d(fun foo() { x = 3 }) , d(fun bar() { x = 4 }) ] l3: NEXT:[r(3)] PREV:[] r(3) NEXT:[w(x)] PREV:[] @@ -402,9 +402,9 @@ l3: l4: NEXT:[] PREV:[w(x)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] l6: NEXT:[r(4)] PREV:[] r(4) NEXT:[w(x)] PREV:[] @@ -412,9 +412,9 @@ l6: l7: NEXT:[] PREV:[w(x)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == foo == fun foo() { @@ -433,7 +433,7 @@ l0: l1: NEXT:[] PREV:[r(doSmth(b))] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== diff --git a/compiler/testData/cfg/OnlyWhileInFunctionBody.instructions b/compiler/testData/cfg/OnlyWhileInFunctionBody.instructions index 800e16ea283..9d51f4a9e6a 100644 --- a/compiler/testData/cfg/OnlyWhileInFunctionBody.instructions +++ b/compiler/testData/cfg/OnlyWhileInFunctionBody.instructions @@ -25,9 +25,9 @@ l3: l1: NEXT:[] PREV:[read (Unit)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== == dowhile == fun dowhile() { @@ -53,7 +53,7 @@ l3: l1: NEXT:[] PREV:[ret l1] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== diff --git a/compiler/testData/cfg/ReturnFromExpression.instructions b/compiler/testData/cfg/ReturnFromExpression.instructions index 42171bf2a21..be7801a3b2a 100644 --- a/compiler/testData/cfg/ReturnFromExpression.instructions +++ b/compiler/testData/cfg/ReturnFromExpression.instructions @@ -15,7 +15,7 @@ l2: l1: NEXT:[] PREV:[ret(*) l1, r(false || (return false))] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] ===================== diff --git a/compiler/testData/cfg/ShortFunction.instructions b/compiler/testData/cfg/ShortFunction.instructions index fa0b7bbd2fe..138afba140a 100644 --- a/compiler/testData/cfg/ShortFunction.instructions +++ b/compiler/testData/cfg/ShortFunction.instructions @@ -7,7 +7,7 @@ l0: l1: NEXT:[] PREV:[r(1)] error: - NEXT:[] PREV:[] + NEXT:[] PREV:[] sink: - NEXT:[] PREV:[] + NEXT:[] PREV:[, ] =====================