summaryrefslogtreecommitdiff
path: root/Chalice/tests/permission-model/permarith_parser.chalice
blob: 5b011d79fe0847f438688efbb45ef54f1d53ab59 (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
34
35
36
37
class Cell {
  var x: int;
  var y: Cell;
  
  method a1()
    requires acc(x,y); // ERROR: amount is not integer
  {
  }
  
  method a2()
    requires acc(x,n); // ERROR: unknown variable
  {
  }
  
  method a3()
    requires acc(x,rd(rd(1))); // ERROR: invalid permission expression
  {
  }
  
  method a4()
    requires acc(x,rd*(y)); // ERROR: invalid permission expression
  {
  }
  
  method a5()
    requires acc(x,rd(this.mu)); // ERROR: invalid type inside rd
    requires acc(x,rd(null)); // ERROR: invalid type inside rd
    requires acc(x,rd(true)); // ERROR: invalid type inside rd
  {
  }
  
  method a6()
    requires acc(x,rd(x)*rd(x)); // ERROR: permission multiplication not allowed
  {
  }
  
}