mirror of
https://github.com/golang/go
synced 2024-09-05 07:54:46 +00:00
cmd/gc: increase specificity of errors in function call context
Fixes #7129 LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/86470044
This commit is contained in:
parent
f973d9460f
commit
a599b4890a
|
@ -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;
|
||||
|
|
21
test/fixedbugs/issue7129.go
Normal file
21
test/fixedbugs/issue7129.go
Normal file
|
@ -0,0 +1,21 @@
|
|||
// 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"
|
||||
}
|
Loading…
Reference in a new issue