typedef A = ( int i, const int c, ); typedef Deep = ( A a, const A ca, (int xx) x, ((A yyy)#[1] yy)#[1] y, ); int constglobal = 0; var int varglobal; A conststructglobal = (0, 0); var A semiconstglobal = (0, 0); var Deep deepvarglobal; Deep deepconstglobal; () test() { var int varlocal; var A semiconstlocal; var Deep deepvarlocal; varlocal = 1; varglobal = 1; semiconstglobal.i = 1; semiconstlocal.i = 1; deepvarglobal.a.i = 1; deepvarglobal.x.xx = 1; deepvarglobal.y#[0].yy#[0].yyy.i = 1; deepvarglobal.y#[0].yy#[0].yyy = (12, 34); // FIXME this should perhaps not be allowed deepvarlocal.a.i = 1; deepvarlocal.x.xx = 1; deepvarlocal.y#[0].yy#[0].yyy.i = 1; deepvarlocal.y#[0].yy#[0].yyy = (12, 34); // FIXME this should perhaps not be allowed }