typedef i9 {}
typedef i27 {}

define any {}

extern _putchar(i9 c);

typedef some_struct[any T] {
	test()
	{
		i9 a = 'a' as i9;
		{
			/* at this point, only a is defined */
			defer _putchar(a);

			/* a gets shadowed */
			i9 a = 'b' as i9;

			/* defer should still point to the outer 'a' */
		}
	}
}

main()
{
	some_struct![i9] test = some_struct![i9]{};
	test.test();
}
