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>
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
defercalc++
lno := lineno
- lineno = t.Pos
+ if t.nod != nil {
+ lineno = t.nod.Pos
+ }
+
t.Width = -2
t.Align = 0
}
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)