Index: src/Tuples/Explode.cc
===================================================================
--- src/Tuples/Explode.cc	(revision 234b1cb4afd88ccf2b1f3e001a2eae5dc12ca39b)
+++ src/Tuples/Explode.cc	(revision 9af00d231cf219857c0daa7acd7bcf57da94ac23)
@@ -133,8 +133,7 @@
 			if ( first ) {
 				castAdded = true;
-				const ast::Expr * tuple = new ast::TupleExpr(
-					tupleExpr->location, std::move( exprs ) );
-				return new ast::CastExpr( tuple->location,
-					tuple, new ast::ReferenceType( tuple->result.get(), ast::CV::Qualifiers() ) );
+				const ast::Expr * tuple = new ast::TupleExpr{
+					tupleExpr->location, std::move( exprs ) };
+				return new ast::CastExpr{ tuple, new ast::ReferenceType{ tuple->result } };
 			} else {
 				return new ast::TupleExpr( tupleExpr->location, std::move( exprs ) );
@@ -145,6 +144,5 @@
 		} else {
 			castAdded = true;
-			return new ast::CastExpr( expr->location, expr,
-				new ast::ReferenceType( expr->result, ast::CV::Qualifiers() ) );
+			return new ast::CastExpr{ expr, new ast::ReferenceType{ expr->result } };
 		}
 	}
@@ -164,5 +162,5 @@
 			castAdded = false;
 			const ast::Type * newType = getReferenceBase( newNode->result );
-			return new ast::CastExpr( newNode->location, node, newType );
+			return new ast::CastExpr{ newNode->location, node, newType };
 		}
 		return newNode;
@@ -183,6 +181,5 @@
 	expr = expr->accept( exploder );
 	if ( ! exploder.pass.foundUniqueExpr ) {
-		expr = new ast::CastExpr( expr->location, expr,
-			new ast::ReferenceType( expr->result, ast::CV::Qualifiers() ) );
+		expr = new ast::CastExpr{ expr, new ast::ReferenceType{ expr->result } };
 	}
 	return expr;
Index: src/Tuples/Explode.h
===================================================================
--- src/Tuples/Explode.h	(revision 234b1cb4afd88ccf2b1f3e001a2eae5dc12ca39b)
+++ src/Tuples/Explode.h	(revision 9af00d231cf219857c0daa7acd7bcf57da94ac23)
@@ -211,5 +211,5 @@
 			// Cast a reference away to a value-type to allow further explosion.
 			if ( dynamic_cast< const ast::ReferenceType *>( local->result.get() ) ) {
-				local = new ast::CastExpr( local->location, local, tupleType );
+				local = new ast::CastExpr{ local, tupleType };
 			}
 			// Now we have to go across the tuple via indexing.
Index: src/Tuples/TupleAssignment.cc
===================================================================
--- src/Tuples/TupleAssignment.cc	(revision 234b1cb4afd88ccf2b1f3e001a2eae5dc12ca39b)
+++ src/Tuples/TupleAssignment.cc	(revision 9af00d231cf219857c0daa7acd7bcf57da94ac23)
@@ -464,5 +464,5 @@
 					// resolve ctor/dtor for the new object
 					ast::ptr< ast::Init > ctorInit = ResolvExpr::resolveCtorInit( 
-							InitTweak::genCtorInit( ret ), spotter.crntFinder.symtab );
+							InitTweak::genCtorInit( location, ret ), spotter.crntFinder.symtab );
 					// remove environments from subexpressions of stmtExpr
 					ast::Pass< EnvRemover > rm{ env };
@@ -550,6 +550,5 @@
 					// is && and RHS is lvalue
 					auto lhsType = lhsCand->expr->result.strict_as< ast::ReferenceType >();
-					rhsCand->expr = new ast::CastExpr{ 
-						rhsCand->expr->location, rhsCand->expr, lhsType->base };
+					rhsCand->expr = new ast::CastExpr{ rhsCand->expr, lhsType->base };
 					ast::ptr< ast::ObjectDecl > lobj = newObject( lhsNamer, lhsCand->expr );
 					ast::ptr< ast::ObjectDecl > robj = newObject( rhsNamer, rhsCand->expr );
@@ -604,6 +603,5 @@
 					if ( ! lhsCand->expr.as< ast::CastExpr >() ) {
 						lhsCand->expr = new ast::CastExpr{ 
-							lhsCand->expr->location, lhsCand->expr, 
-							new ast::ReferenceType{ lhsCand->expr->result } };
+							lhsCand->expr, new ast::ReferenceType{ lhsCand->expr->result } };
 					}
 
@@ -616,6 +614,5 @@
 						if ( ! cand->expr->result.as< ast::ReferenceType >() ) {
 							cand->expr = new ast::CastExpr{
-								cand->expr->location, cand->expr, 
-								new ast::ReferenceType{ cand->expr->result } };
+								cand->expr, new ast::ReferenceType{ cand->expr->result } };
 						}
 					}
