diff --git a/java/ql/test/library-tests/dispatch/ViableCallable4.java b/java/ql/test/library-tests/dispatch/ViableCallable4.java new file mode 100644 index 00000000000..bb1a5f4a678 --- /dev/null +++ b/java/ql/test/library-tests/dispatch/ViableCallable4.java @@ -0,0 +1,23 @@ +public class ViableCallable4 { + static class Sup { + void f() { } + } + static class A1 extends Sup { + @Override void f() { } + } + static class A2 extends Sup { + @Override void f() { } + } + static class A3 extends Sup { + @Override void f() { } + } + + void foo(Sup s, boolean b) { + s.f(); + if (s instanceof A1 || s instanceof A2) { + s.f(); + } + Sup s2 = b ? new A3() : new Sup(); + s2.f(); + } +} diff --git a/java/ql/test/library-tests/dispatch/viableCallable.expected b/java/ql/test/library-tests/dispatch/viableCallable.expected index 7490e4693b9..032bac595ac 100644 --- a/java/ql/test/library-tests/dispatch/viableCallable.expected +++ b/java/ql/test/library-tests/dispatch/viableCallable.expected @@ -7,6 +7,18 @@ | ViableCallable3.java:12:5:12:9 | h(...) | h | 1 | ViableCallable3 | | ViableCallable3.java:17:9:17:17 | get(...) | get | 9 | new Func(...) { ... } | | ViableCallable3.java:18:9:18:18 | get(...) | get | 10 | new Func(...) { ... } | +| ViableCallable4.java:16:5:16:9 | f(...) | f | 2 | Sup | +| ViableCallable4.java:16:5:16:9 | f(...) | f | 5 | A1 | +| ViableCallable4.java:16:5:16:9 | f(...) | f | 8 | A2 | +| ViableCallable4.java:16:5:16:9 | f(...) | f | 11 | A3 | +| ViableCallable4.java:18:7:18:11 | f(...) | f | 2 | Sup | +| ViableCallable4.java:18:7:18:11 | f(...) | f | 5 | A1 | +| ViableCallable4.java:18:7:18:11 | f(...) | f | 8 | A2 | +| ViableCallable4.java:18:7:18:11 | f(...) | f | 11 | A3 | +| ViableCallable4.java:21:5:21:10 | f(...) | f | 2 | Sup | +| ViableCallable4.java:21:5:21:10 | f(...) | f | 5 | A1 | +| ViableCallable4.java:21:5:21:10 | f(...) | f | 8 | A2 | +| ViableCallable4.java:21:5:21:10 | f(...) | f | 11 | A3 | | ViableCallable.java:5:3:5:13 | M(...) | M | 81 | C2 | | ViableCallable.java:5:3:5:13 | M(...) | M | 86 | C3 | | ViableCallable.java:5:3:5:13 | M(...) | M | 91 | C4 |