KT-776 Wrong detection of unreachable code

KT-1001 Argument 2 for @NotNull parameter of JetFlowInformationProvider.checkIsInitialized must not be null
This commit is contained in:
svtk
2012-01-17 15:27:54 +04:00
parent a07e164076
commit 3a634417b9
14 changed files with 291 additions and 130 deletions
+42 -25
View File
@@ -13,6 +13,7 @@ l0:
l2:
r(2) NEXT:[<END>] PREV:[r(1)]
l1:
l3:
<END> NEXT:[<SINK>] PREV:[r(2)]
error:
<ERROR> NEXT:[] PREV:[]
@@ -41,13 +42,14 @@ l0:
jf(l2) NEXT:[read (Unit), r(2)] PREV:[r(2 > 3)]
r(2) NEXT:[ret l1] PREV:[jf(l2)]
ret l1 NEXT:[<END>] PREV:[r(2)]
* jmp(l3) NEXT:[r(2)] PREV:[]
- jmp(l3) NEXT:[r(2)] PREV:[]
l2:
read (Unit) NEXT:[r(2)] PREV:[jf(l2)]
l3:
l4:
r(2) NEXT:[<END>] PREV:[read (Unit)]
l1:
l5:
<END> NEXT:[<SINK>] PREV:[ret l1, r(2)]
error:
<ERROR> NEXT:[] PREV:[]
@@ -69,7 +71,7 @@ l3:
r(2 > 3) NEXT:[jf(l5)] PREV:[r(>)]
jf(l5) NEXT:[read (Unit), ret l4] PREV:[r(2 > 3)]
ret l4 NEXT:[<END>] PREV:[jf(l5)]
* jmp(l6) NEXT:[<END>] PREV:[]
- jmp(l6) NEXT:[<END>] PREV:[]
l5:
read (Unit) NEXT:[<END>] PREV:[jf(l5)]
l4:
@@ -112,6 +114,7 @@ l2:
l7:
r(2) NEXT:[<END>] PREV:[r({ () => if (2 > 3) { retur..)]
l1:
l8:
<END> NEXT:[<SINK>] PREV:[r(2)]
error:
<ERROR> NEXT:[] PREV:[]
@@ -125,7 +128,7 @@ l3:
r(2 > 3) NEXT:[jf(l5)] PREV:[r(>)]
jf(l5) NEXT:[read (Unit), ret l4] PREV:[r(2 > 3)]
ret l4 NEXT:[<END>] PREV:[jf(l5)]
* jmp(l6) NEXT:[<END>] PREV:[]
- jmp(l6) NEXT:[<END>] PREV:[]
l5:
read (Unit) NEXT:[<END>] PREV:[jf(l5)]
l4:
@@ -158,13 +161,14 @@ l3:
jf(l5) NEXT:[read (Unit), r(2)] PREV:[r(2 > 3)]
r(2) NEXT:[ret l4] PREV:[jf(l5)]
ret l4 NEXT:[<END>] PREV:[r(2)]
* jmp(l6) NEXT:[r(2)] PREV:[]
- jmp(l6) NEXT:[r(2)] PREV:[]
l5:
read (Unit) NEXT:[r(2)] PREV:[jf(l5)]
l6:
l7:
r(2) NEXT:[<END>] PREV:[read (Unit)]
l4:
l8:
<END> NEXT:[<SINK>] PREV:[ret l4, r(2)]
error:
<ERROR> NEXT:[] PREV:[]
@@ -225,13 +229,14 @@ l3:
jf(l5) NEXT:[read (Unit), r(2)] PREV:[r(2 > 3)]
r(2) NEXT:[ret l4] PREV:[jf(l5)]
ret l4 NEXT:[<END>] PREV:[r(2)]
* jmp(l6) NEXT:[r(2)] PREV:[]
- jmp(l6) NEXT:[r(2)] PREV:[]
l5:
read (Unit) NEXT:[r(2)] PREV:[jf(l5)]
l6:
l7:
r(2) NEXT:[<END>] PREV:[read (Unit)]
l4:
l8:
<END> NEXT:[<SINK>] PREV:[ret l4, r(2)]
error:
<ERROR> NEXT:[] PREV:[]
@@ -267,12 +272,13 @@ l4:
jf(l6) NEXT:[read (Unit), r(2)] PREV:[r(2 > 3)]
r(2) NEXT:[jmp(l3)] PREV:[jf(l6)]
jmp(l3) NEXT:[read (Unit)] PREV:[r(2)]
* jmp(l7) NEXT:[r(2)] PREV:[]
- jmp(l7) NEXT:[r(2)] PREV:[]
l6:
read (Unit) NEXT:[r(2)] PREV:[jf(l6)]
l7:
l8:
r(2) NEXT:[jmp(l2)] PREV:[read (Unit)]
l9:
jmp(l2) NEXT:[r(true)] PREV:[r(2)]
l3:
read (Unit) NEXT:[<END>] PREV:[jf(l3), jmp(l3)]
@@ -312,7 +318,7 @@ l4:
r(2 > 3) NEXT:[jf(l6)] PREV:[r(>)]
jf(l6) NEXT:[read (Unit), jmp(l3)] PREV:[r(2 > 3)]
jmp(l3) NEXT:[read (Unit)] PREV:[jf(l6)]
* jmp(l7) NEXT:[jmp(l2)] PREV:[]
- jmp(l7) NEXT:[jmp(l2)] PREV:[]
l6:
read (Unit) NEXT:[jmp(l2)] PREV:[jf(l6)]
l7:
@@ -323,6 +329,7 @@ l3:
l8:
r(2) NEXT:[<END>] PREV:[r(5)]
l1:
l9:
<END> NEXT:[<SINK>] PREV:[r(2)]
error:
<ERROR> NEXT:[] PREV:[]
@@ -357,7 +364,7 @@ l4:
r(2 > 3) NEXT:[jf(l6)] PREV:[r(>)]
jf(l6) NEXT:[read (Unit), jmp(l3)] PREV:[r(2 > 3)]
jmp(l3) NEXT:[read (Unit)] PREV:[jf(l6)]
* jmp(l7) NEXT:[jmp(l2)] PREV:[]
- jmp(l7) NEXT:[jmp(l2)] PREV:[]
l6:
read (Unit) NEXT:[jmp(l2)] PREV:[jf(l6)]
l7:
@@ -367,6 +374,7 @@ l3:
l8:
r(2) NEXT:[<END>] PREV:[read (Unit)]
l1:
l9:
<END> NEXT:[<SINK>] PREV:[r(2)]
error:
<ERROR> NEXT:[] PREV:[]
@@ -409,12 +417,13 @@ l5:
jf(l6) NEXT:[read (Unit), r(2)] PREV:[r(2 > 3)]
r(2) NEXT:[jmp(l4)] PREV:[jf(l6)]
jmp(l4) NEXT:[r(1)] PREV:[r(2)]
* jmp(l7) NEXT:[r(2)] PREV:[]
- jmp(l7) NEXT:[r(2)] PREV:[]
l6:
read (Unit) NEXT:[r(2)] PREV:[jf(l6)]
l7:
l8:
r(2) NEXT:[jmp?(l4)] PREV:[read (Unit)]
l9:
jmp?(l4) NEXT:[r(1), read (Unit)] PREV:[r(2)]
l2:
read (Unit) NEXT:[<END>] PREV:[jmp?(l2), jmp?(l4)]
@@ -461,7 +470,7 @@ l5:
r(2 > 3) NEXT:[jf(l6)] PREV:[r(>)]
jf(l6) NEXT:[read (Unit), jmp(l4)] PREV:[r(2 > 3)]
jmp(l4) NEXT:[r(1)] PREV:[jf(l6)]
* jmp(l7) NEXT:[jmp?(l4)] PREV:[]
- jmp(l7) NEXT:[jmp?(l4)] PREV:[]
l6:
read (Unit) NEXT:[jmp?(l4)] PREV:[jf(l6)]
l7:
@@ -472,6 +481,7 @@ l2:
l8:
r(2) NEXT:[<END>] PREV:[r(5)]
l1:
l9:
<END> NEXT:[<SINK>] PREV:[r(2)]
error:
<ERROR> NEXT:[] PREV:[]
@@ -513,7 +523,7 @@ l5:
r(2 > 3) NEXT:[jf(l6)] PREV:[r(>)]
jf(l6) NEXT:[read (Unit), jmp(l4)] PREV:[r(2 > 3)]
jmp(l4) NEXT:[r(1)] PREV:[jf(l6)]
* jmp(l7) NEXT:[jmp?(l4)] PREV:[]
- jmp(l7) NEXT:[jmp?(l4)] PREV:[]
l6:
read (Unit) NEXT:[jmp?(l4)] PREV:[jf(l6)]
l7:
@@ -523,6 +533,7 @@ l2:
l8:
r(2) NEXT:[<END>] PREV:[read (Unit)]
l1:
l9:
<END> NEXT:[<SINK>] PREV:[r(2)]
error:
<ERROR> NEXT:[] PREV:[]
@@ -544,11 +555,12 @@ l0:
r(1) NEXT:[r(2)] PREV:[<START>]
r(2) NEXT:[ret(*) l1] PREV:[r(1)]
ret(*) l1 NEXT:[<END>] PREV:[r(2)]
* ret(*) l1 NEXT:[<END>] PREV:[]
- ret(*) l1 NEXT:[<END>] PREV:[]
l2:
R r(2) NEXT:[ret(*) l1] PREV:[]
R ret(*) l1 NEXT:[<END>] PREV:[]
- r(2) NEXT:[ret(*) l1] PREV:[]
- ret(*) l1 NEXT:[<END>] PREV:[]
l1:
l3:
<END> NEXT:[<SINK>] PREV:[ret(*) l1]
error:
<ERROR> NEXT:[] PREV:[]
@@ -573,10 +585,11 @@ l0:
r(doSmth(3)) NEXT:[ret(*) l1] PREV:[r(doSmth)]
ret(*) l1 NEXT:[<END>] PREV:[r(doSmth(3))]
l2:
R r(3) NEXT:[r(doSmth)] PREV:[]
R r(doSmth) NEXT:[r(doSmth(3))] PREV:[]
R r(doSmth(3)) NEXT:[<END>] PREV:[]
- r(3) NEXT:[r(doSmth)] PREV:[]
- r(doSmth) NEXT:[r(doSmth(3))] PREV:[]
- r(doSmth(3)) NEXT:[<END>] PREV:[]
l1:
l3:
<END> NEXT:[<SINK>] PREV:[ret(*) l1]
error:
<ERROR> NEXT:[] PREV:[]
@@ -605,7 +618,7 @@ l0:
r(doSmth(3)) NEXT:[ret(*) l1] PREV:[r(doSmth)]
ret(*) l1 NEXT:[<END>] PREV:[r(doSmth(3))]
l3:
R jmp(l4) NEXT:[r(3)] PREV:[]
- jmp(l4) NEXT:[r(3)] PREV:[]
l2:
jmp?() NEXT:[v(e: UnsupportedOperationException)] PREV:[jmp?(l2)]
v(e: UnsupportedOperationException) NEXT:[w(e)] PREV:[jmp?()]
@@ -620,6 +633,7 @@ l4:
r(doSmth) NEXT:[r(doSmth(3))] PREV:[r(3)]
r(doSmth(3)) NEXT:[<END>] PREV:[r(doSmth)]
l1:
l6:
<END> NEXT:[<SINK>] PREV:[ret(*) l1, r(doSmth(3))]
error:
<ERROR> NEXT:[] PREV:[]
@@ -642,7 +656,7 @@ l0:
r(1) NEXT:[ret(*) l1] PREV:[jmp?(l2)]
ret(*) l1 NEXT:[<END>] PREV:[r(1)]
l3:
R jmp(l4) NEXT:[<END>] PREV:[]
- jmp(l4) NEXT:[<END>] PREV:[]
l2:
jmp?() NEXT:[v(e: UnsupportedOperationException)] PREV:[jmp?(l2)]
v(e: UnsupportedOperationException) NEXT:[w(e)] PREV:[jmp?()]
@@ -654,6 +668,7 @@ l5:
jmp(l4) NEXT:[<END>] PREV:[r(doSmth(2))]
l1:
l4:
l6:
<END> NEXT:[<SINK>] PREV:[ret(*) l1, jmp(l4)]
error:
<ERROR> NEXT:[] PREV:[]
@@ -682,7 +697,7 @@ l0:
r(doSmth(3)) NEXT:[ret(*) l1] PREV:[r(doSmth)]
ret(*) l1 NEXT:[<END>] PREV:[r(doSmth(3))]
l3:
R jmp(l4) NEXT:[r(3)] PREV:[]
- jmp(l4) NEXT:[r(3)] PREV:[]
l2:
jmp?() NEXT:[v(e: UnsupportedOperationException)] PREV:[jmp?(l2)]
v(e: UnsupportedOperationException) NEXT:[w(e)] PREV:[jmp?()]
@@ -693,12 +708,13 @@ l2:
r(doSmth(3)) NEXT:[ret(*) l1] PREV:[r(doSmth)]
ret(*) l1 NEXT:[<END>] PREV:[r(doSmth(3))]
l5:
R jmp(l4) NEXT:[r(3)] PREV:[]
- jmp(l4) NEXT:[r(3)] PREV:[]
l4:
R r(3) NEXT:[r(doSmth)] PREV:[]
R r(doSmth) NEXT:[r(doSmth(3))] PREV:[]
R r(doSmth(3)) NEXT:[<END>] PREV:[]
- r(3) NEXT:[r(doSmth)] PREV:[]
- r(doSmth) NEXT:[r(doSmth(3))] PREV:[]
- r(doSmth(3)) NEXT:[<END>] PREV:[]
l1:
l6:
<END> NEXT:[<SINK>] PREV:[ret(*) l1, ret(*) l1]
error:
<ERROR> NEXT:[] PREV:[]
@@ -736,12 +752,13 @@ l2:
r(doSmth(3)) NEXT:[ret(*) l1] PREV:[r(doSmth)]
ret(*) l1 NEXT:[<END>] PREV:[r(doSmth(3))]
l5:
R jmp(l4) NEXT:[r(3)] PREV:[]
- jmp(l4) NEXT:[r(3)] PREV:[]
l4:
r(3) NEXT:[r(doSmth)] PREV:[jmp(l4)]
r(doSmth) NEXT:[r(doSmth(3))] PREV:[r(3)]
r(doSmth(3)) NEXT:[<END>] PREV:[r(doSmth)]
l1:
l6:
<END> NEXT:[<SINK>] PREV:[ret(*) l1, r(doSmth(3))]
error:
<ERROR> NEXT:[] PREV:[]
+2 -2
View File
@@ -74,7 +74,7 @@ l0:
r(b) NEXT:[jf(l2)] PREV:[w(i)]
jf(l2) NEXT:[read (Unit), ret l1] PREV:[r(b)]
ret l1 NEXT:[<END>] PREV:[jf(l2)]
* jmp(l3) NEXT:[r(i)] PREV:[]
- jmp(l3) NEXT:[r(i)] PREV:[]
l2:
read (Unit) NEXT:[r(i)] PREV:[jf(l2)]
l3:
@@ -85,7 +85,7 @@ l3:
r(i is Int) NEXT:[jf(l4)] PREV:[r(i)]
jf(l4) NEXT:[read (Unit), ret l1] PREV:[r(i is Int)]
ret l1 NEXT:[<END>] PREV:[jf(l4)]
* jmp(l5) NEXT:[<END>] PREV:[]
- jmp(l5) NEXT:[<END>] PREV:[]
l4:
read (Unit) NEXT:[<END>] PREV:[jf(l4)]
l1:
@@ -38,13 +38,13 @@ l2:
l4:
ret l1 NEXT:[<END>] PREV:[<START>]
l5:
* r(1) NEXT:[r(0)] PREV:[]
* r(0) NEXT:[r(>)] PREV:[]
* r(>) NEXT:[r(1 > 0)] PREV:[]
* r(1 > 0) NEXT:[jt(l2)] PREV:[]
* jt(l2) NEXT:[read (Unit), ret l1] PREV:[]
- r(1) NEXT:[r(0)] PREV:[]
- r(0) NEXT:[r(>)] PREV:[]
- r(>) NEXT:[r(1 > 0)] PREV:[]
- r(1 > 0) NEXT:[jt(l2)] PREV:[]
- jt(l2) NEXT:[read (Unit), ret l1] PREV:[]
l3:
* read (Unit) NEXT:[<END>] PREV:[]
- read (Unit) NEXT:[<END>] PREV:[]
l1:
<END> NEXT:[<SINK>] PREV:[ret l1]
error: