mirror of
https://github.com/golang/go
synced 2024-11-17 12:54:47 -07:00
go/types: fix panic when using multiple type arguments
Fix a panic caused by using type arguments without first unpacking. This was noticed in the review of CL 300998, but unfortunately not yet fixed. Fixes #45635 Change-Id: I8ab1720f3e27a6002bc925f0eea943ec6f778341 Reviewed-on: https://go-review.googlesource.com/c/go/+/311669 Trust: Robert Findley <rfindley@google.com> Run-TryBot: Robert Findley <rfindley@google.com> Reviewed-by: Robert Griesemer <gri@golang.org> TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
3711ea0b5d
commit
9f87943424
@ -10,6 +10,7 @@ import (
|
||||
"fmt"
|
||||
"go/ast"
|
||||
"go/constant"
|
||||
"go/internal/typeparams"
|
||||
"go/token"
|
||||
"math"
|
||||
)
|
||||
@ -1435,7 +1436,7 @@ func (check *Checker) exprInternal(x *operand, e ast.Expr, hint Type) exprKind {
|
||||
case *ast.IndexExpr:
|
||||
check.exprOrType(x, e.X)
|
||||
if x.mode == invalid {
|
||||
check.use(e.Index)
|
||||
check.use(typeparams.UnpackExpr(e.Index)...)
|
||||
goto Error
|
||||
}
|
||||
|
||||
|
9
src/go/types/fixedbugs/issue45635.go2
Normal file
9
src/go/types/fixedbugs/issue45635.go2
Normal file
@ -0,0 +1,9 @@
|
||||
// Copyright 2021 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 main
|
||||
|
||||
func main() {
|
||||
some /* ERROR "undeclared name" */ [int, int]()
|
||||
}
|
Loading…
Reference in New Issue
Block a user