--- /dev/null
+struct g1 g2 g3 g4 end;
+struct g5 g6 end;
+
+method foo(p1 p2 p3)
+ var l1 := 0;
+ var l2 := g6;
+
+ g1.g2.l1 := 0xDEAD; /* l1 kein feld */
+end;
--- /dev/null
+struct g1 g2 g3 g4 end;
+struct g5 g6 end;
+
+method foo(p1 p2 p3)
+ var l1 := 0;
+ var l2 := g6;
+
+ g1.g2.p1 := 0xDEAD; /* p1 kein feld */
+end;
--- /dev/null
+struct g1 g2 g3 g4 end;
+struct g5 g6 end;
+
+method foo(p1 p2 p3)
+ var l1 := 0;
+ var l2 := g6;
+
+ l1.g5.g4 := 0x900d; /* ok */
+end;
--- /dev/null
+struct g1 g2 g3 g4 end;
+struct g5 g6 end;
+
+method foo(p1 p2 p3)
+ var l1 := 0;
+ var l2 := g6;
+
+ (4 - 23).g5.g4 := 0x900d; /* ok */
+end;
--- /dev/null
+struct g1 g2 g3 g4 end;
+struct g5 g6 end;
+
+method foo(p1 p2 p3)
+ var l1 := 0;
+ var l2 := g6;
+
+ g1.l2.g2 := 0xDEAD; /* l2 kein feld */
+end;
--- /dev/null
+struct g1 g2 g3 g4 end;
+struct g5 g6 end;
+
+method foo(p1 p2 p3)
+ var l1 := 0;
+ var l2 := g6;
+
+ g1.p3.g6:= 0xDEAD; /* p3 kein feld */
+end;
--- /dev/null
+struct g1 g2 g3 g4 end;
+struct g5 g6 end;
+
+method foo(p1 p2 p3)
+ var l1 := 0;
+ var l2 := g6;
+
+ (not g2).g3.g6:= 0x900d; /* ok */
+end;
--- /dev/null
+struct g1 g2 g3 g4 end;
+struct g5 g6 end;
+
+method foo(p1 p2 p3)
+ var l1 := 0;
+ var l2 := g6;
+
+ (l1 or p2).g3.g6:= 0x900d; /* ok */
+end;