summaryrefslogtreecommitdiff
path: root/Test/test0/EmptyCallArgs.bpl
blob: eb1c43b7250df86101efeca9f8e588e3c2b306f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
type C;

procedure P(x:int, y:bool) returns (z:C);
procedure Q<a>(x:int, y:a) returns (z:a);

procedure CallP() {
  var x:int;
  var y:bool;
  var z:C;

  call z := P(x, y);
  call * := P(x, y);
  call z := P(*, y);
  call z := P(x, *);
  call * := P(*, y);
  call * := P(x, *);
  call z := P(*, *);
  call * := P(*, *);
}

procedure CallQ() {
  var x:int;
  var y:bool;
  var z:bool;

  call z := Q(x, y);
  call * := Q(x, y);
  call z := Q(*, y);
  call z := Q(x, *);
  call * := Q(*, y);
  call * := Q(x, *);  // problem: type parameter cannot be inferred
  call * := Q(*, *);  // problem: type parameter cannot be inferred
}