More tests on AST
This commit is contained in:
@@ -45,6 +45,8 @@ type Subnode struct {
|
||||
Definitions []Definition
|
||||
}
|
||||
|
||||
func (s *Subnode) Pos() Position { return s.Position }
|
||||
|
||||
type Value interface {
|
||||
Node
|
||||
isValue()
|
||||
@@ -115,7 +117,11 @@ type Comment struct {
|
||||
Doc bool // true if starts with //#
|
||||
}
|
||||
|
||||
func (c *Comment) Pos() Position { return c.Position }
|
||||
|
||||
type Pragma struct {
|
||||
Position Position
|
||||
Text string
|
||||
}
|
||||
|
||||
func (p *Pragma) Pos() Position { return p.Position }
|
||||
|
||||
@@ -84,11 +84,29 @@ func TestASTCoverage(t *testing.T) {
|
||||
|
||||
// Package
|
||||
pkg := &parser.Package{Position: pos}
|
||||
// Package implements Node?
|
||||
// ast.go: func (p *Package) Pos() Position { return p.Position }
|
||||
// Yes.
|
||||
n = pkg
|
||||
if n.Pos() != pos {
|
||||
t.Error("Package.Pos failed")
|
||||
}
|
||||
|
||||
// Subnode
|
||||
sn := &parser.Subnode{Position: pos}
|
||||
n = sn
|
||||
if n.Pos() != pos {
|
||||
t.Error("Subnode.Pos failed")
|
||||
}
|
||||
|
||||
// Comment
|
||||
cmt := &parser.Comment{Position: pos}
|
||||
n = cmt
|
||||
if n.Pos() != pos {
|
||||
t.Error("Comment.Pos failed")
|
||||
}
|
||||
|
||||
// Pragma
|
||||
prg := &parser.Pragma{Position: pos}
|
||||
n = prg
|
||||
if n.Pos() != pos {
|
||||
t.Error("Pragma.Pos failed")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user