Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
+++ src/SymTab/Validate.cc	(revision 48fa82401317bb7f5eb3e1e71cabcefc6026e478)
@@ -423,4 +423,12 @@
 	}
 
+	void checkGenericParameters( ReferenceToType * inst ) {
+		for ( Expression * param : inst->parameters ) {
+			if ( ! dynamic_cast< TypeExpr * >( param ) ) {
+				throw SemanticError( "Expression parameters for generic types are currently unsupported: ", inst );
+			}
+		}
+	}
+
 	void LinkReferenceToTypes::postvisit( StructInstType *structInst ) {
 		StructDecl *st = local_indexer->lookupStruct( structInst->get_name() );
@@ -434,4 +442,5 @@
 			forwardStructs[ structInst->get_name() ].push_back( structInst );
 		} // if
+		checkGenericParameters( structInst );
 	}
 
@@ -446,4 +455,5 @@
 			forwardUnions[ unionInst->get_name() ].push_back( unionInst );
 		} // if
+		checkGenericParameters( unionInst );
 	}
 
