mirror of
https://github.com/golang/go
synced 2024-11-23 00:30:07 -07:00
[dev.typeparams] cmd/compile/internal/types2: report error for invalid type expression
This bug was introduced by the change from go/ast to syntax which represents pointer types as (unary) operations rather than dedicated StarExpr nodes. Accordingly, this bug does not exist for go/types. It's still ok to backport the test. Fixes #43125. Change-Id: Ic55d913f8afc92862856e1eb7c2861d07fc56cfb Reviewed-on: https://go-review.googlesource.com/c/go/+/278013 Trust: Robert Griesemer <gri@golang.org> Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Robert Findley <rfindley@google.com> TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
f8930a2413
commit
8fe8e29c9f
8
src/cmd/compile/internal/types2/fixedbugs/issue43125.src
Normal file
8
src/cmd/compile/internal/types2/fixedbugs/issue43125.src
Normal file
@ -0,0 +1,8 @@
|
||||
// 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 _ = new(- /* ERROR not a type */ 1)
|
||||
var _ = new(1 /* ERROR not a type */ + 1)
|
@ -535,6 +535,9 @@ func (check *Checker) typInternal(e0 syntax.Expr, def *Named) (T Type) {
|
||||
return typ
|
||||
}
|
||||
|
||||
check.errorf(e0, "%s is not a type", e0)
|
||||
check.use(e0)
|
||||
|
||||
case *syntax.FuncType:
|
||||
typ := new(Signature)
|
||||
def.setUnderlying(typ)
|
||||
|
Loading…
Reference in New Issue
Block a user