trygve: access1.k

class cl1 {
   private int cl1o1;
   public int cl1o2;
   private cl1(int i) {
   }
}

context c1 {
   role c1r1 {
     void c1r1f1() {
        c1r2.c1r2f1();
        c1r2.c1r2f2(new cl1())
     }
     void clr1f2() {
        private int i;
        c1r1.c1r1f1();
     }
     private void c1r1f3() {
     }
   }
   role c1r2 {
      public void c1r2f1() {
         int j = cl1o.cl1o1;
      }
      void c1r2f2(cl1 cl1o) {
         int i1 = cl1o.cl1o1;
         int i1 = cl1o.cl1o2;
         int k = cl1o.cl1o1;
      }
   }
   private role clr3 {
      void c1r3f1() {
      }
   }
   void trigger(int k) { }
}

{
   cl1 cl1o = new cl1(456);
   c1 newcontext = new c1();
   newcontext.trigger(123)
}
/* GOLD:
line 15: Warning: Identifier `i« has a gratuitous access qualifier.
line 27: Identifier `i1« declared multiple times (earlier declaration at line 26).
line 31: WARNING: Gratuitous access qualifier `private« ignored.
line 12: Cannot access method `c1r2f2« with `default« access qualifier.
line 23: Object `cl1o« is not declared in scope `c1r2f1«.
line 23: Field `cl1o1« not found as member of void
line 23: Type mismatch in initialization of `j«.
line 26: Cannot access expression `cl1o.cl1o1« with `private« access qualifier.
line 28: Cannot access expression `cl1o.cl1o1« with `private« access qualifier.
line 39: Cannot access constructor `cl1« with `private« access qualifier.
line 41: Cannot access method `trigger« with `default« access qualifier.
___________________________________________________________
*/