Java: Add test for missing summary flow

This commit is contained in:
Tom Hvitved
2021-10-08 16:05:06 +02:00
parent 30bf2aade4
commit d5955f1ae1
2 changed files with 23 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -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",