Index: src/tests/ctor-autogen.c
===================================================================
--- src/tests/ctor-autogen.c	(revision 8e138da82cb7825087e9c8210a54d331b4d21cfd)
+++ src/tests/ctor-autogen.c	(revision c6e63339dbeec94ea159ba5f903b9b1fe2dad6aa)
@@ -1,2 +1,4 @@
+// TODO: add error cases (e.g., use of field constructors for managed types, etc.)
+
 enum Color { R, G, B };
 
@@ -4,4 +6,16 @@
 union U {};
 struct S {};
+
+struct SimpleUnion {
+	int x;
+	double y;
+	char z;
+};
+
+struct SimpleStruct {
+	int x;
+	double y;
+	char z;
+};
 
 // struct/union with members with generated ctor/dtors should themselves have generated ctor/dtors
@@ -13,5 +27,5 @@
 
 struct PopulatedStruct {
-	Color state;
+	Color c;
 	U u;
 	S s;
@@ -21,9 +35,15 @@
 T identity(T x) { return x; }
 
+// can identity e if only sized or only the assertion, but the combination breaks...
+// forall(dtype T | sized(T) | { void ?{}(T &); })
+// void identity(T x) {  }
+
 int main() {
 	S s;
 	U u;
+	Color e;
 
-	identity(R);  // Color should be an otype
+	// identity(R);  // Color should be an otype
+	// identity((Color)e);
 	identity(u);  // U should be an otype
 	identity(s);  // S should be an otype
