Index: src/InitTweak/FixInit.cc
===================================================================
--- src/InitTweak/FixInit.cc	(revision 58094611c386c7e6f0ba52d00ecf89b154288c42)
+++ src/InitTweak/FixInit.cc	(revision 982832e24b58f99cf8d892fbb03bfd2c5cd57b15)
@@ -17,5 +17,5 @@
 #include <stddef.h>                    // for NULL
 #include <algorithm>                   // for set_difference, copy_if
-#include <cassert>                     // for assert, safe_dynamic_cast
+#include <cassert>                     // for assert, strict_dynamic_cast
 #include <iostream>                    // for operator<<, ostream, basic_ost...
 #include <iterator>                    // for insert_iterator, back_inserter
@@ -424,5 +424,5 @@
 			// arrays are not copy constructed, so this should always be an ExprStmt
 			ImplicitCtorDtorStmt * stmt = genCtorDtor( fname, var, cpArg );
-			ExprStmt * exprStmt = safe_dynamic_cast< ExprStmt * >( stmt->get_callStmt() );
+			ExprStmt * exprStmt = strict_dynamic_cast< ExprStmt * >( stmt->get_callStmt() );
 			Expression * untyped = exprStmt->get_expr();
 
@@ -532,5 +532,5 @@
 				assert( ! body->get_kids().empty() );
 				// must be an ExprStmt, otherwise it wouldn't have a result
-				ExprStmt * last = safe_dynamic_cast< ExprStmt * >( body->get_kids().back() );
+				ExprStmt * last = strict_dynamic_cast< ExprStmt * >( body->get_kids().back() );
 				last->set_expr( makeCtorDtor( "?{}", ret, last->get_expr() ) );
 
@@ -566,5 +566,5 @@
 			CP_CTOR_PRINT( std::cerr << "FixCopyCtors: " << impCpCtorExpr << std::endl; )
 
-			impCpCtorExpr = safe_dynamic_cast< ImplicitCopyCtorExpr * >( Parent::mutate( impCpCtorExpr ) );
+			impCpCtorExpr = strict_dynamic_cast< ImplicitCopyCtorExpr * >( Parent::mutate( impCpCtorExpr ) );
 			std::list< ObjectDecl * > & tempDecls = impCpCtorExpr->get_tempDecls();
 			std::list< ObjectDecl * > & returnDecls = impCpCtorExpr->get_returnDecls();
@@ -627,5 +627,5 @@
 				stmt = stmt->acceptMutator( *this );
 			} // for
-			// stmtExpr = safe_dynamic_cast< StmtExpr * >( Parent::mutate( stmtExpr ) );
+			// stmtExpr = strict_dynamic_cast< StmtExpr * >( Parent::mutate( stmtExpr ) );
 			assert( stmtExpr->get_result() );
 			Type * result = stmtExpr->get_result();
@@ -791,5 +791,5 @@
 						}
 					} else {
-						ImplicitCtorDtorStmt * implicit = safe_dynamic_cast< ImplicitCtorDtorStmt * > ( ctor );
+						ImplicitCtorDtorStmt * implicit = strict_dynamic_cast< ImplicitCtorDtorStmt * > ( ctor );
 						ExprStmt * ctorStmt = dynamic_cast< ExprStmt * >( implicit->get_callStmt() );
 						ApplicationExpr * ctorCall = nullptr;
@@ -996,5 +996,5 @@
 				FunctionType * type = function->get_functionType();
 				assert( ! type->get_parameters().empty() );
-				thisParam = safe_dynamic_cast< ObjectDecl * >( type->get_parameters().front() );
+				thisParam = strict_dynamic_cast< ObjectDecl * >( type->get_parameters().front() );
 				Type * thisType = getPointerBase( thisParam->get_type() );
 				StructInstType * structType = dynamic_cast< StructInstType * >( thisType );
@@ -1166,5 +1166,5 @@
 
 		Expression* MutatingResolver::mutate( UntypedExpr *untypedExpr ) {
-			return safe_dynamic_cast< ApplicationExpr * >( ResolvExpr::findVoidExpression( untypedExpr, indexer ) );
+			return strict_dynamic_cast< ApplicationExpr * >( ResolvExpr::findVoidExpression( untypedExpr, indexer ) );
 		}
 
@@ -1179,5 +1179,5 @@
 
 			// xxx - this can be TupleAssignExpr now. Need to properly handle this case.
-			ApplicationExpr * callExpr = safe_dynamic_cast< ApplicationExpr * > ( ctorExpr->get_callExpr() );
+			ApplicationExpr * callExpr = strict_dynamic_cast< ApplicationExpr * > ( ctorExpr->get_callExpr() );
 			TypeSubstitution * env = ctorExpr->get_env();
 			ctorExpr->set_callExpr( nullptr );
Index: src/InitTweak/GenInit.cc
===================================================================
--- src/InitTweak/GenInit.cc	(revision 58094611c386c7e6f0ba52d00ecf89b154288c42)
+++ src/InitTweak/GenInit.cc	(revision 982832e24b58f99cf8d892fbb03bfd2c5cd57b15)
@@ -17,5 +17,5 @@
 #include <stddef.h>                // for NULL
 #include <algorithm>               // for any_of
-#include <cassert>                 // for assert, safe_dynamic_cast, assertf
+#include <cassert>                 // for assert, strict_dynamic_cast, assertf
 #include <iterator>                // for back_inserter, inserter, back_inse...
 #include <list>                    // for _List_iterator, list
@@ -255,5 +255,5 @@
 		SymTab::genImplicitCall( srcParam, new VariableExpr( objDecl ), fname, back_inserter( stmts ), objDecl );
 		assert( stmts.size() <= 1 );
-		return stmts.size() == 1 ? safe_dynamic_cast< ImplicitCtorDtorStmt * >( stmts.front() ) : nullptr;
+		return stmts.size() == 1 ? strict_dynamic_cast< ImplicitCtorDtorStmt * >( stmts.front() ) : nullptr;
 	}
 
Index: src/InitTweak/InitTweak.cc
===================================================================
--- src/InitTweak/InitTweak.cc	(revision 58094611c386c7e6f0ba52d00ecf89b154288c42)
+++ src/InitTweak/InitTweak.cc	(revision 982832e24b58f99cf8d892fbb03bfd2c5cd57b15)
@@ -1,5 +1,5 @@
 #include <stddef.h>                // for NULL
 #include <algorithm>               // for find, all_of
-#include <cassert>                 // for assertf, assert, safe_dynamic_cast
+#include <cassert>                 // for assertf, assert, strict_dynamic_cast
 #include <iostream>                // for ostream, cerr, endl
 #include <iterator>                // for back_insert_iterator, back_inserter
@@ -414,6 +414,6 @@
 			std::list< Statement * > & stmts = tupleExpr->get_stmtExpr()->get_statements()->get_kids();
 			assertf( ! stmts.empty(), "TupleAssignExpr somehow has no statements." );
-			ExprStmt * stmt = safe_dynamic_cast< ExprStmt * >( stmts.back() );
-			TupleExpr * tuple = safe_dynamic_cast< TupleExpr * >( stmt->get_expr() );
+			ExprStmt * stmt = strict_dynamic_cast< ExprStmt * >( stmts.back() );
+			TupleExpr * tuple = strict_dynamic_cast< TupleExpr * >( stmt->get_expr() );
 			assertf( ! tuple->get_exprs().empty(), "TupleAssignExpr somehow has empty tuple expr." );
 			return getCallArg( tuple->get_exprs().front(), pos );
