Index: src/ResolvExpr/CandidateFinder.cpp
===================================================================
--- src/ResolvExpr/CandidateFinder.cpp	(revision 822332e90fec6c4a9a05fd800863fb5009a81bcd)
+++ src/ResolvExpr/CandidateFinder.cpp	(revision 0f5e8cdba2bacf645f79f523a3a2c2aa393e7d17)
@@ -1196,6 +1196,12 @@
 			// return casts are eliminated (merely selecting an overload, no actual operation)
 			candidates = std::move(finder.candidates);
-		}
-		finder.find( castExpr->arg, ResolveMode::withAdjustment() );
+			return;
+		}
+		else if (toType->isVoid()) {
+			finder.find( castExpr->arg ); // no adjust
+		}
+		else {
+			finder.find( castExpr->arg, ResolveMode::withAdjustment() );
+		}
 
 		if ( !finder.candidates.empty() ) reason.code = NoMatch;
Index: src/ResolvExpr/Resolver.cpp
===================================================================
--- src/ResolvExpr/Resolver.cpp	(revision 822332e90fec6c4a9a05fd800863fb5009a81bcd)
+++ src/ResolvExpr/Resolver.cpp	(revision 0f5e8cdba2bacf645f79f523a3a2c2aa393e7d17)
@@ -255,5 +255,5 @@
 	ast::ptr< ast::CastExpr > untyped = new ast::CastExpr{ expr };
 	CandidateRef choice = findUnfinishedKindExpression(
-		untyped, context, "", anyCandidate, ResolveMode::withAdjustment() );
+		untyped, context, "", anyCandidate );
 
 	// a cast expression has either 0 or 1 interpretations (by language rules);
