mirror of
https://github.com/github/codeql.git
synced 2026-04-30 19:26:02 +02:00
Java: Add test for missing summary flow
This commit is contained in:
@@ -169,4 +169,25 @@ public class A {
|
||||
sink(res2); // $ flow=19
|
||||
}
|
||||
|
||||
static void applyConsumer1Field1Field2(A a1, A a2, Consumer1 con) {
|
||||
// summary:
|
||||
// con.eat(a1.field1);
|
||||
// con.eat(a2.field2);
|
||||
}
|
||||
|
||||
static void wrapSinkToAvoidFieldSsa(A a) { sink(a.field1); }
|
||||
|
||||
void foo3() {
|
||||
A a1 = new A();
|
||||
a1.field1 = source(1);
|
||||
A a2 = new A();
|
||||
applyConsumer1Field1Field2(a1, a2, p -> {
|
||||
sink(p); // MISSING FLOW
|
||||
});
|
||||
wrapSinkToAvoidFieldSsa(a1); // MISSING FLOW
|
||||
sink(a2.field2);
|
||||
}
|
||||
|
||||
public Object field1;
|
||||
public Object field2;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ class SummaryModelTest extends SummaryModelCsv {
|
||||
row =
|
||||
[
|
||||
"my.callback.qltest;A;false;applyConsumer1;(Object,Consumer1);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"my.callback.qltest;A;false;applyConsumer1Field1Field2;(A,A,Consumer1);;Field[my.callback.qltest.A.field1] of Argument[0];Parameter[0] of Argument[2];value",
|
||||
"my.callback.qltest;A;false;applyConsumer1Field1Field2;(A,A,Consumer1);;Field[my.callback.qltest.A.field2] of Argument[1];Parameter[0] of Argument[2];value",
|
||||
"my.callback.qltest;A;false;applyConsumer2;(Object,Consumer2);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"my.callback.qltest;A;false;applyConsumer3;(Object,Consumer3);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"my.callback.qltest;A;false;applyConsumer3_ret_postup;(Consumer3);;Parameter[0] of Argument[0];ReturnValue;value",
|
||||
|
||||
Reference in New Issue
Block a user