From 90bf7cdd79f3efb8695909240ff927024c42fce4 Mon Sep 17 00:00:00 2001 From: Brian Koropoff Date: Thu, 16 Oct 2014 19:03:29 -0700 Subject: [PATCH] Fix ICE in overloaded call with incorrect arity When an overloaded call expression has parameters but the function object takes none, construct an array of formal argument types with the arity of the call expression so that we don't fail by indexing out of bounds later. Closes #16939 --- src/librustc/middle/typeck/check/mod.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs index be622bd68550..06f4a48189f3 100644 --- a/src/librustc/middle/typeck/check/mod.rs +++ b/src/librustc/middle/typeck/check/mod.rs @@ -2516,8 +2516,10 @@ fn check_argument_types<'a>(fcx: &FnCtxt, "this function takes 0 parameters but {} parameter{} supplied", args.len(), if args.len() == 1 {" was"} else {"s were"}); + err_args(args.len()) + } else { + vec![] } - Vec::new() } _ => { span_err!(tcx.sess, sp, E0059,