mirror of https://github.com/golang/go.git
go/types: report invalid ... in conversions
This is a port of CL 277072 from the dev.typeparams branch. Fixes #43124 Change-Id: I1424c396dc1ea984ec85b8f31a4d43353bf7e4fc Reviewed-on: https://go-review.googlesource.com/c/go/+/277352 Run-TryBot: Robert Findley <rfindley@google.com> TryBot-Result: Go Bot <gobot@golang.org> Trust: Robert Findley <rfindley@google.com> Reviewed-by: Robert Griesemer <gri@golang.org>
This commit is contained in:
parent
278b9a8a4a
commit
6e3cc5c56f
|
|
@ -33,6 +33,10 @@ func (check *Checker) call(x *operand, e *ast.CallExpr) exprKind {
|
||||||
case 1:
|
case 1:
|
||||||
check.expr(x, e.Args[0])
|
check.expr(x, e.Args[0])
|
||||||
if x.mode != invalid {
|
if x.mode != invalid {
|
||||||
|
if e.Ellipsis.IsValid() {
|
||||||
|
check.errorf(e.Args[0], _BadDotDotDotSyntax, "invalid use of ... in conversion to %s", T)
|
||||||
|
break
|
||||||
|
}
|
||||||
check.conversion(x, T)
|
check.conversion(x, T)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
// Copyright 2020 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.
|
||||||
|
|
||||||
|
package p
|
||||||
|
|
||||||
|
var _ = int(0 /* ERROR invalid use of \.\.\. in conversion to int */ ...)
|
||||||
|
|
||||||
|
// test case from issue
|
||||||
|
|
||||||
|
type M []string
|
||||||
|
|
||||||
|
var (
|
||||||
|
x = []string{"a", "b"}
|
||||||
|
_ = M(x /* ERROR invalid use of \.\.\. in conversion to M */ ...)
|
||||||
|
)
|
||||||
Loading…
Reference in New Issue