aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/gc/noder.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/compile/internal/gc/noder.go')
-rw-r--r--src/cmd/compile/internal/gc/noder.go26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/cmd/compile/internal/gc/noder.go b/src/cmd/compile/internal/gc/noder.go
index 8d3babc544..e52b0c7511 100644
--- a/src/cmd/compile/internal/gc/noder.go
+++ b/src/cmd/compile/internal/gc/noder.go
@@ -22,7 +22,7 @@ func parseFile(filename string) {
}
defer src.Close()
- p := noder{baseline: lexlineno}
+ p := noder{baseline: lexlineno.Line()}
file, _ := syntax.Parse(src, p.error, p.pragma, 0) // errors are tracked via p.error
p.file(file)
@@ -40,7 +40,7 @@ func parseFile(filename string) {
// noder transforms package syntax's AST into a Nod tree.
type noder struct {
- baseline src.Pos
+ baseline int32
linknames []int // tracks //go:linkname lines
}
@@ -50,7 +50,7 @@ func (p *noder) file(file *syntax.File) {
xtop = append(xtop, p.decls(file.DeclList)...)
- lexlineno = p.baseline + src.Pos(file.Lines) - 1
+ lexlineno = src.MakePos(p.baseline + int32(file.Lines) - 1)
lineno = lexlineno
}
@@ -231,7 +231,7 @@ func (p *noder) funcDecl(fun *syntax.FuncDecl) *Node {
yyerror("can only use //go:noescape with external func implementations")
}
f.Func.Pragma = pragma
- lineno = p.baseline + src.Pos(fun.EndLine) - 1
+ lineno = src.MakePos(p.baseline + int32(fun.EndLine) - 1)
f.Func.Endlineno = lineno
funcbody(f)
@@ -357,14 +357,14 @@ func (p *noder) expr(expr syntax.Expr) *Node {
l[i] = p.wrapname(expr.ElemList[i], e)
}
n.List.Set(l)
- lineno = p.baseline + src.Pos(expr.EndLine) - 1
+ lineno = src.MakePos(p.baseline + int32(expr.EndLine) - 1)
return n
case *syntax.KeyValueExpr:
return p.nod(expr, OKEY, p.expr(expr.Key), p.wrapname(expr.Value, p.expr(expr.Value)))
case *syntax.FuncLit:
closurehdr(p.typeExpr(expr.Type))
body := p.stmts(expr.Body)
- lineno = p.baseline + src.Pos(expr.EndLine) - 1
+ lineno = src.MakePos(p.baseline + int32(expr.EndLine) - 1)
return p.setlineno(expr, closurebody(body))
case *syntax.ParenExpr:
return p.nod(expr, OPAREN, p.expr(expr.X), nil)
@@ -986,12 +986,12 @@ func (p *noder) nod(orig syntax.Node, op Op, left, right *Node) *Node {
}
func (p *noder) setlineno(src_ syntax.Node, dst *Node) *Node {
- l := src.Pos(src_.Line())
+ l := src_.Line()
if l == 0 {
// TODO(mdempsky): Shouldn't happen. Fix package syntax.
return dst
}
- dst.Lineno = p.baseline + l - 1
+ dst.Lineno = src.MakePos(p.baseline + int32(l) - 1)
return dst
}
@@ -999,24 +999,24 @@ func (p *noder) lineno(n syntax.Node) {
if n == nil {
return
}
- l := src.Pos(n.Line())
+ l := n.Line()
if l == 0 {
// TODO(mdempsky): Shouldn't happen. Fix package syntax.
return
}
- lineno = p.baseline + l - 1
+ lineno = src.MakePos(p.baseline + int32(l) - 1)
}
func (p *noder) error(err error) {
line := p.baseline
var msg string
if err, ok := err.(syntax.Error); ok {
- line += src.Pos(err.Line) - 1
+ line += int32(err.Line) - 1
msg = err.Msg
} else {
msg = err.Error()
}
- yyerrorl(line, "%s", msg)
+ yyerrorl(src.MakePos(line), "%s", msg)
}
func (p *noder) pragma(pos, line int, text string) syntax.Pragma {
@@ -1039,7 +1039,7 @@ func (p *noder) pragma(pos, line int, text string) syntax.Pragma {
if n <= 0 {
break
}
- lexlineno = p.baseline + src.Pos(line)
+ lexlineno = src.MakePos(p.baseline + int32(line))
linehistupdate(text[5:i], n)
case strings.HasPrefix(text, "go:linkname "):