Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision 8d7bef249652cc2b9854c7090c758bcd9ad9f613)
+++ src/ResolvExpr/Resolver.cc	(revision 34dcc474f4920507b7bdae9742138b4d088dcffc)
@@ -219,20 +219,14 @@
 		assertf( expr, "expected a non-null expression." );
 
-		static CastExpr untyped( nullptr ); // cast to void
+		auto untyped = new CastExpr{ expr }; // cast to void
 
 		// set up and resolve expression cast to void
-		untyped.arg = expr;
 		Alternative choice;
-		findUnfinishedKindExpression( &untyped, choice, indexer, "", standardAlternativeFilter, true );
+		findUnfinishedKindExpression( untyped, choice, indexer, "", standardAlternativeFilter, true );
 		CastExpr * castExpr = strict_dynamic_cast< CastExpr * >( choice.expr );
 		env = std::move( choice.env );
 
 		// clean up resolved expression
-		Expression * ret = castExpr->arg;
-		castExpr->arg = nullptr;
-
-		// unlink the arg so that it isn't deleted twice at the end of the program
-		untyped.arg = nullptr;
-		return ret;
+		return castExpr->arg;
 	}
 
