]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile/internal/gc: eliminate two uses of Type.Pos
authorMatthew Dempsky <mdempsky@google.com>
Mon, 20 Mar 2017 09:21:50 +0000 (02:21 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Mon, 20 Mar 2017 20:24:35 +0000 (20:24 +0000)
Instead we can use t.nod.Pos.

Change-Id: I643ee3226e402e38d4c77e8f328cbe83e55eac5c
Reviewed-on: https://go-review.googlesource.com/38309
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/cmd/compile/internal/gc/align.go
src/cmd/compile/internal/gc/typecheck.go

index c31464272d00e7dbb915ea762325dc9d0b6c6466..ee3c7aec7eb6cd27a1bc1a02a301e6df96ef5f54 100644 (file)
@@ -126,7 +126,7 @@ func dowidth(t *Type) {
        if t.Width == -2 {
                if !t.Broke() {
                        t.SetBroke(true)
-                       yyerrorl(t.Pos, "invalid recursive type %v", t)
+                       yyerrorl(t.nod.Pos, "invalid recursive type %v", t)
                }
 
                t.Width = 0
@@ -143,7 +143,10 @@ func dowidth(t *Type) {
        defercalc++
 
        lno := lineno
-       lineno = t.Pos
+       if t.nod != nil {
+               lineno = t.nod.Pos
+       }
+
        t.Width = -2
        t.Align = 0
 
index 81880e0694e506fff8b62dd7a6e4ad9d5ea27814..27b9bb7b5e9a0dea6e9ad7b6d571afec6c9cfc55 100644 (file)
@@ -3822,6 +3822,7 @@ func typecheckdef(n *Node) *Node {
                }
                n.Walkdef = 1
                n.Type = typ(TFORW)
+               n.Type.nod = n
                n.Type.Sym = n.Sym // TODO(gri) this also happens in typecheckdeftype(n) - where should it happen?
                nerrors0 := nerrors
                typecheckdeftype(n)