Index: src/SymTab/Autogen.cc
===================================================================
--- src/SymTab/Autogen.cc	(revision d8ba08645e3a1d872799a07b1bf581390d8798ce)
+++ src/SymTab/Autogen.cc	(revision 7cc6bd68b7a1f68775069a2ef3cfe55f7a5220f9)
@@ -10,5 +10,5 @@
 // Created On       : Thu Mar 03 15:45:56 2016
 // Last Modified By : Rob Schluntz
-// Last Modified On : Fri Apr 29 13:11:04 2016
+// Last Modified On : Tue May 03 16:56:21 2016
 // Update Count     : 1
 //
@@ -163,28 +163,6 @@
 	/// Creates a new type decl that's the same as src, but renamed and with only the ?=?, ?{} (default and copy), and ^?{} assertions (for complete types only)
 	TypeDecl *cloneAndRename( TypeDecl *src, const std::string &name ) {
-		TypeDecl *dst = new TypeDecl( name, src->get_storageClass(), 0, src->get_kind() );
-
-		if ( src->get_kind() == TypeDecl::Any ) {
-			TypeInstType *opParamType = new TypeInstType( Type::Qualifiers(), name, dst );
-			FunctionType *opFunctionType = new FunctionType( Type::Qualifiers(), false );
-			opFunctionType->get_parameters().push_back(
-				new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), opParamType->clone() ), 0 ) );
-			FunctionDecl *ctorAssert = new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, opFunctionType->clone(), 0, false, false );
-			FunctionDecl *dtorAssert = new FunctionDecl( "^?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, opFunctionType->clone(), 0, false, false );
-
-			opFunctionType->get_parameters().push_back(
-				new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, opParamType, 0 ) );
-			FunctionDecl *copyCtorAssert = new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, opFunctionType->clone(), 0, false, false );
-
-			opFunctionType->get_returnVals().push_back(
-				new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, opParamType->clone(), 0 ) );
-			FunctionDecl *assignAssert = new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, opFunctionType, 0, false, false );
-
-			dst->get_assertions().push_back( assignAssert );
-			dst->get_assertions().push_back( ctorAssert );
-			dst->get_assertions().push_back( dtorAssert );
-			dst->get_assertions().push_back( copyCtorAssert );
-		}
-
+		TypeDecl *dst = new TypeDecl( src->get_name(), src->get_storageClass(), 0, src->get_kind() );
+		cloneAll(src->get_assertions(), dst->get_assertions());
 		return dst;
 	}
