Commit a599b489 authored by Jan Ziak's avatar Jan Ziak

cmd/gc: increase specificity of errors in function call context

Fixes #7129

LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/86470044
parent f973d946
......@@ -310,7 +310,7 @@ typecheck1(Node **np, int top)
int ok, ntop;
Type *t, *tp, *missing, *have, *badtype;
Val v;
char *why;
char *why, *desc, descbuf[64];
n = *np;
......@@ -1139,7 +1139,11 @@ reswitch:
}
break;
}
typecheckaste(OCALL, n->left, n->isddd, getinargx(t), n->list, "function argument");
if(snprint(descbuf, sizeof descbuf, "argument to %N", n->left) < sizeof descbuf)
desc = descbuf;
else
desc = "function argument";
typecheckaste(OCALL, n->left, n->isddd, getinargx(t), n->list, desc);
ok |= Etop;
if(t->outtuple == 0)
goto ret;
......
// errorcheck
// Copyright 2014 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Issue 7129: inconsistent "wrong arg type" error for multivalued g in f(g())
package main
func f(int) {}
func g() bool { return true }
func h(int, int) {}
func main() {
f(g()) // ERROR "in argument to f"
f(true) // ERROR "in argument to f"
h(true, true) // ERROR "in argument to h"
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment