Index: src/ResolvExpr/CandidateFinder.cpp
===================================================================
--- src/ResolvExpr/CandidateFinder.cpp	(revision 302ef2aaddd091c9a6a4d293cbed9ee47deef00a)
+++ src/ResolvExpr/CandidateFinder.cpp	(revision 0536c03a6e246eaed6f60082bd9f1b239186a0a4)
@@ -905,5 +905,10 @@
 			// xxx - is it possible that handleTupleAssignment and main finder both produce candidates?
 			// this means there exists ctor/assign functions with a tuple as first parameter.
-			funcFinder.find( untypedExpr->func, selfFinder.candidates.empty() ? ResolvMode::withAdjustment() : ResolvMode::withoutFailFast() );
+			ResolvMode mode = {
+				true, // adjust
+				!untypedExpr->func.as<ast::NameExpr>(), // prune if not calling by name
+				selfFinder.candidates.empty() // failfast if other options are not found
+			};
+			funcFinder.find( untypedExpr->func, mode );
 			// short-circuit if no candidates
 			// if ( funcFinder.candidates.empty() ) return;
Index: src/ResolvExpr/ResolvMode.h
===================================================================
--- src/ResolvExpr/ResolvMode.h	(revision 302ef2aaddd091c9a6a4d293cbed9ee47deef00a)
+++ src/ResolvExpr/ResolvMode.h	(revision 0536c03a6e246eaed6f60082bd9f1b239186a0a4)
@@ -23,9 +23,7 @@
 		const bool failFast;         ///< Fail on no resulting alternatives? [true]
 
-	private:
 		constexpr ResolvMode(bool a, bool p, bool ff) 
 		: adjust(a), prune(p), failFast(ff) {}
 
-	public:
 		/// Default settings
 		constexpr ResolvMode() : adjust(false), prune(true), failFast(true) {}
