// RUN: %boogie -noVerify "%s" > "%t" // RUN: %diff "%s.expect" "%t" var m: []int; var p: []a; type C _; var bad: []C a; // error: b is not used function F(a, int) returns (bool) { true } type Set _; function EmptySet() returns (Set a); function G(a, int) returns (Set a) { EmptySet() } function H(int) returns (Set a); function {:inline true} K(int) returns (Set a) { EmptySet() } procedure P(x: int, y: bool) returns (z: int, w: bool); // error: "a" is not used procedure Q(x: int, y: bool) returns (z: int, w: a); procedure R(x: int, y: bool) returns (z: int, w: Set a); procedure S(x: a, y: bool) returns (z: int, w: Set a); function K2(int) returns (Set a) // now ok { EmptySet() }