enum SomeEnum {
	FIRST, SECOND
}

class Wrapper<T> {
	public T object { get; set; }
}

void main () {
	var int_wrapper = new Wrapper<int> ();
	int_wrapper.object = 1;
	// Works fine
	assert (int_wrapper.object == 1);
	
	var enum_wrapper = new Wrapper<SomeEnum> ();
	enum_wrapper.object = SomeEnum.FIRST;
	// Causes invalid C code to be generated
	assert (enum_wrapper.object == SomeEnum.FIRST);
}
