summaryrefslogtreecommitdiff
path: root/Test/dafny0/TypeParameters.dfy
blob: a5764be5dc8adc7355d4bf7042da4ce9d2cf0155 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class C<U> {
  method M<T>(x: T, u: U) returns (y: T)
    ensures x == y && u == u;
  {
    y := x;
  }

  function F<X>(x: X, u: U): bool
  {
    x == x && u == u
  }

  method Main(u: U)
  {
    var t := F(3,u) && F(this,u);
    var kz;
    call kz := M(t,u);
    assert kz && (G() || !G());
  }

  function G<Y>(): Y;
}