aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/noder/expr.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2021-08-23 21:04:56 -0700
committerRobert Griesemer <gri@golang.org>2021-08-24 16:36:59 +0000
commite6798795ff523b9b5df2514bffd8d5ce743c312e (patch)
treeefad5a35171abae03abfc18c0753222814a9debd /src/cmd/compile/internal/noder/expr.go
parentb1cdf860dd5f517a2835c6bd48d12dad29ade1da (diff)
downloadgo-e6798795ff523b9b5df2514bffd8d5ce743c312e.tar.gz
go-e6798795ff523b9b5df2514bffd8d5ce743c312e.zip
cmd/compile/internal/types2: use TypeList in the Inferred struct
This is a port of CL 343934 from go/types with the necessary adjustments to the compiler. Change-Id: I810144e6e2eb2bc8fa0d34dc206403c993cbbe7a Reviewed-on: https://go-review.googlesource.com/c/go/+/344616 Trust: Robert Griesemer <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dan Scales <danscales@google.com>
Diffstat (limited to 'src/cmd/compile/internal/noder/expr.go')
-rw-r--r--src/cmd/compile/internal/noder/expr.go16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/cmd/compile/internal/noder/expr.go b/src/cmd/compile/internal/noder/expr.go
index cb20d645aa..2f004ba1a2 100644
--- a/src/cmd/compile/internal/noder/expr.go
+++ b/src/cmd/compile/internal/noder/expr.go
@@ -116,12 +116,12 @@ func (g *irgen) expr0(typ types2.Type, expr syntax.Expr) ir.Node {
// The key for the Inferred map is the CallExpr (if inferring
// types required the function arguments) or the IndexExpr below
// (if types could be inferred without the function arguments).
- if inferred, ok := g.info.Inferred[expr]; ok && len(inferred.TArgs) > 0 {
+ if inferred, ok := g.info.Inferred[expr]; ok && inferred.TArgs.Len() > 0 {
// This is the case where inferring types required the
// types of the function arguments.
- targs := make([]ir.Node, len(inferred.TArgs))
- for i, targ := range inferred.TArgs {
- targs[i] = ir.TypeNode(g.typ(targ))
+ targs := make([]ir.Node, inferred.TArgs.Len())
+ for i := range targs {
+ targs[i] = ir.TypeNode(g.typ(inferred.TArgs.At(i)))
}
if fun.Op() == ir.OFUNCINST {
// Replace explicit type args with the full list that
@@ -149,13 +149,13 @@ func (g *irgen) expr0(typ types2.Type, expr syntax.Expr) ir.Node {
case *syntax.IndexExpr:
var targs []ir.Node
- if inferred, ok := g.info.Inferred[expr]; ok && len(inferred.TArgs) > 0 {
+ if inferred, ok := g.info.Inferred[expr]; ok && inferred.TArgs.Len() > 0 {
// This is the partial type inference case where the types
// can be inferred from other type arguments without using
// the types of the function arguments.
- targs = make([]ir.Node, len(inferred.TArgs))
- for i, targ := range inferred.TArgs {
- targs[i] = ir.TypeNode(g.typ(targ))
+ targs = make([]ir.Node, inferred.TArgs.Len())
+ for i := range targs {
+ targs[i] = ir.TypeNode(g.typ(inferred.TArgs.At(i)))
}
} else if _, ok := expr.Index.(*syntax.ListExpr); ok {
targs = g.exprList(expr.Index)