Index: src/Tuples/TupleAssignment.cc
===================================================================
--- src/Tuples/TupleAssignment.cc	(revision 2449aef9797c5a8ca2a279d0445a619d426f6c99)
+++ src/Tuples/TupleAssignment.cc	(revision d16d159c20c0dfd7fa228ef48ab2a37a11be43c6)
@@ -62,5 +62,5 @@
 		struct Matcher {
 		  public:
-			Matcher( TupleAssignSpotter &spotter, const ResolvExpr::AltList& lhs, const 
+			Matcher( TupleAssignSpotter &spotter, const ResolvExpr::AltList& lhs, const
 				ResolvExpr::AltList& rhs );
 			virtual ~Matcher() {}
@@ -76,5 +76,5 @@
 		struct MassAssignMatcher : public Matcher {
 		  public:
-			MassAssignMatcher( TupleAssignSpotter &spotter, const ResolvExpr::AltList& lhs, 
+			MassAssignMatcher( TupleAssignSpotter &spotter, const ResolvExpr::AltList& lhs,
 				const ResolvExpr::AltList& rhs ) : Matcher(spotter, lhs, rhs) {}
 			virtual void match( std::list< Expression * > &out );
@@ -83,5 +83,5 @@
 		struct MultipleAssignMatcher : public Matcher {
 		  public:
-			MultipleAssignMatcher( TupleAssignSpotter &spotter, const ResolvExpr::AltList& lhs, 
+			MultipleAssignMatcher( TupleAssignSpotter &spotter, const ResolvExpr::AltList& lhs,
 				const ResolvExpr::AltList& rhs ) : Matcher(spotter, lhs, rhs) {}
 			virtual void match( std::list< Expression * > &out );
@@ -120,5 +120,5 @@
 	}
 
-	void handleTupleAssignment( ResolvExpr::AlternativeFinder & currentFinder, UntypedExpr * expr, 
+	void handleTupleAssignment( ResolvExpr::AlternativeFinder & currentFinder, UntypedExpr * expr,
 				std::vector<ResolvExpr::AlternativeFinder> &args ) {
 		TupleAssignSpotter spotter( currentFinder );
@@ -129,5 +129,5 @@
 		: currentFinder(f) {}
 
-	void TupleAssignSpotter::spot( UntypedExpr * expr, 
+	void TupleAssignSpotter::spot( UntypedExpr * expr,
 			std::vector<ResolvExpr::AlternativeFinder> &args ) {
 		if (  NameExpr *op = dynamic_cast< NameExpr * >(expr->get_function()) ) {
@@ -138,5 +138,5 @@
 				if ( args.size() == 0 ) return;
 
-				// if an assignment only takes 1 argument, that's odd, but maybe someone wrote 
+				// if an assignment only takes 1 argument, that's odd, but maybe someone wrote
 				// the function, in which case AlternativeFinder will handle it normally
 				if ( args.size() == 1 && CodeGen::isAssignment( fname ) ) return;
@@ -147,11 +147,11 @@
 					if ( ! refToTuple(lhsAlt.expr) ) continue;
 
-					// explode is aware of casts - ensure every LHS expression is sent into explode 
+					// explode is aware of casts - ensure every LHS expression is sent into explode
 					// with a reference cast
-					// xxx - this seems to change the alternatives before the normal 
+					// xxx - this seems to change the alternatives before the normal
 					//  AlternativeFinder flow; maybe this is desired?
 					if ( ! dynamic_cast<CastExpr*>( lhsAlt.expr ) ) {
-						lhsAlt.expr = new CastExpr( lhsAlt.expr, 
-								new ReferenceType( Type::Qualifiers(), 
+						lhsAlt.expr = new CastExpr( lhsAlt.expr,
+								new ReferenceType( Type::Qualifiers(),
 									lhsAlt.expr->get_result()->clone() ) );
 					}
@@ -161,9 +161,9 @@
 					explode( lhsAlt, currentFinder.get_indexer(), back_inserter(lhs), true );
 					for ( ResolvExpr::Alternative& alt : lhs ) {
-						// each LHS value must be a reference - some come in with a cast expression, 
+						// each LHS value must be a reference - some come in with a cast expression,
 						// if not just cast to reference here
 						if ( ! dynamic_cast<ReferenceType*>( alt.expr->get_result() ) ) {
-							alt.expr = new CastExpr( alt.expr, 
-								new ReferenceType( Type::Qualifiers(), 
+							alt.expr = new CastExpr( alt.expr,
+								new ReferenceType( Type::Qualifiers(),
 									alt.expr->get_result()->clone() ) );
 						}
@@ -179,10 +179,10 @@
 						// TODO build iterative version of this instead of using combos
 						std::vector< ResolvExpr::AltList > rhsAlts;
-						combos( std::next(args.begin(), 1), args.end(), 
+						combos( std::next(args.begin(), 1), args.end(),
 							std::back_inserter( rhsAlts ) );
 						for ( const ResolvExpr::AltList& rhsAlt : rhsAlts ) {
 							// multiple assignment
 							ResolvExpr::AltList rhs;
-							explode( rhsAlt, currentFinder.get_indexer(), 
+							explode( rhsAlt, currentFinder.get_indexer(),
 								std::back_inserter(rhs), true );
 							matcher.reset( new MultipleAssignMatcher( *this, lhs, rhs ) );
@@ -194,5 +194,5 @@
 							if ( isTuple(rhsAlt.expr) ) {
 								// multiple assignment
-								explode( rhsAlt, currentFinder.get_indexer(),  
+								explode( rhsAlt, currentFinder.get_indexer(),
 									std::back_inserter(rhs), true );
 								matcher.reset( new MultipleAssignMatcher( *this, lhs, rhs ) );
@@ -223,5 +223,5 @@
 		ResolvExpr::AltList current;
 		// now resolve new assignments
-		for ( std::list< Expression * >::iterator i = new_assigns.begin(); 
+		for ( std::list< Expression * >::iterator i = new_assigns.begin();
 				i != new_assigns.end(); ++i ) {
 			PRINT(
@@ -230,5 +230,5 @@
 			)
 
-			ResolvExpr::AlternativeFinder finder{ currentFinder.get_indexer(), 
+			ResolvExpr::AlternativeFinder finder{ currentFinder.get_indexer(),
 				currentFinder.get_environ() };
 			try {
@@ -254,11 +254,11 @@
 		// xxx -- was push_front
 		currentFinder.get_alternatives().push_back( ResolvExpr::Alternative(
-			new TupleAssignExpr(solved_assigns, matcher->tmpDecls), matcher->compositeEnv, 
+			new TupleAssignExpr(solved_assigns, matcher->tmpDecls), matcher->compositeEnv,
 			ResolvExpr::sumCost( current ) + matcher->baseCost ) );
 	}
 
-	TupleAssignSpotter::Matcher::Matcher( TupleAssignSpotter &spotter, 
-		const ResolvExpr::AltList &lhs, const ResolvExpr::AltList &rhs ) 
-	: lhs(lhs), rhs(rhs), spotter(spotter), 
+	TupleAssignSpotter::Matcher::Matcher( TupleAssignSpotter &spotter,
+		const ResolvExpr::AltList &lhs, const ResolvExpr::AltList &rhs )
+	: lhs(lhs), rhs(rhs), spotter(spotter),
 	  baseCost( ResolvExpr::sumCost( lhs ) + ResolvExpr::sumCost( rhs ) ) {
 		simpleCombineEnvironments( lhs.begin(), lhs.end(), compositeEnv );
