Java: Make JumpStmt a proper superclass

This commit is contained in:
Marcono1234
2022-03-28 19:13:16 +02:00
parent 8faabb837a
commit a93b4ed0f2
11 changed files with 65 additions and 21 deletions

View File

@@ -1,3 +1,8 @@
| stmts/A.java:18:5:18:12 | yield ... | stmts/A.java:16:10:16:18 | switch (...) |
| stmts/A.java:22:6:22:13 | yield ... | stmts/A.java:20:14:20:22 | switch (...) |
| stmts/A.java:25:6:25:13 | yield ... | stmts/A.java:20:14:20:22 | switch (...) |
| stmts/A.java:34:7:34:14 | yield ... | stmts/A.java:16:10:16:18 | switch (...) |
| stmts/A.java:37:5:37:13 | yield ... | stmts/A.java:16:10:16:18 | switch (...) |
| stmts/B.java:8:5:8:10 | break | stmts/B.java:6:3:6:26 | for (...;...;...) |
| stmts/B.java:10:5:10:13 | continue | stmts/B.java:6:3:6:26 | for (...;...;...) |
| stmts/B.java:13:6:13:11 | break | stmts/B.java:11:4:11:17 | while (...) |

View File

@@ -1,6 +1,14 @@
| stmts/A.java:6:3:6:10 | case ... |
| stmts/A.java:8:3:8:10 | case ... |
| stmts/A.java:10:3:10:10 | default |
| stmts/A.java:17:4:17:12 | case ... |
| stmts/A.java:20:4:20:12 | case ... |
| stmts/A.java:21:5:21:13 | case ... |
| stmts/A.java:24:5:24:14 | default |
| stmts/A.java:28:4:28:12 | case ... |
| stmts/A.java:29:4:29:13 | default |
| stmts/A.java:32:6:32:14 | case ... |
| stmts/A.java:33:6:33:14 | case ... |
| stmts/B.java:21:5:21:12 | case ... |
| stmts/B.java:23:5:23:12 | case ... |
| stmts/B.java:25:5:25:12 | case ... |

View File

@@ -0,0 +1 @@
//semmle-extractor-options: --javac-args -source 14 -target 14

View File

@@ -11,4 +11,31 @@ public class A {
return x;
}
}
public int nestedSwitchExpr(int x, int y) {
return switch(x) {
case 1 -> {
yield 1;
}
case 2 -> switch(y) {
case 0 -> {
yield 0;
}
default -> {
yield 1;
}
};
case 3 -> 3;
default -> {
// SwitchStmt inside SwitchExpr
switch (y) {
case 1 -> System.out.println("1");
case 2 -> {
yield 2;
}
}
yield -1;
}
};
}
}