int x; typedef double y; typedef float t; y z; type u = struct { int a; double b; }; int f( int y ); y q; y w(y y, u v) { type x | { x t(u); }; u u = y; x z = t(u); } y p; context has_u( type z ) { z u(z); }; forall( type t | has_u( t ) ) y q( t the_t ) { t y = u( the_t ); } t f( y p ) { int y; typedef char x; { x y; typedef x z; { z x; typedef z y; y z = x; } z x = y; } x q = y; } t g( void ) { typedef char x; try { some_func(); } catch ( x x ) { t y = x; } x z; } y q(i) int i; { switch (i) { y q = i; case 0: return q; default: return i; } }