Skip to content

Commit 39a44ff

Browse files
committed
Fix visitor for arguments
1 parent 113c6c3 commit 39a44ff

File tree

3 files changed

+17
-10
lines changed

3 files changed

+17
-10
lines changed

ast/visitor.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,18 @@ func (w *walker) walk(node *Node) {
6464
w.visitor.Exit(node)
6565
case *MethodNode:
6666
w.walk(&n.Node)
67-
for _, arg := range n.Arguments {
68-
w.walk(&arg)
67+
for i := range n.Arguments {
68+
w.walk(&n.Arguments[i])
6969
}
7070
w.visitor.Exit(node)
7171
case *FunctionNode:
72-
for _, arg := range n.Arguments {
73-
w.walk(&arg)
72+
for i := range n.Arguments {
73+
w.walk(&n.Arguments[i])
7474
}
7575
w.visitor.Exit(node)
7676
case *BuiltinNode:
77-
for _, arg := range n.Arguments {
78-
w.walk(&arg)
77+
for i := range n.Arguments {
78+
w.walk(&n.Arguments[i])
7979
}
8080
w.visitor.Exit(node)
8181
case *ClosureNode:

cmd/exe/debugger.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"fmt"
5+
"github.com/antonmedv/expr/checker"
56
"github.com/antonmedv/expr/compiler"
67
"github.com/antonmedv/expr/optimizer"
78
"github.com/antonmedv/expr/parser"
@@ -19,6 +20,9 @@ func debugger() {
1920
tree, err := parser.Parse(input())
2021
check(err)
2122

23+
_, err = checker.Check(tree, nil)
24+
check(err)
25+
2226
if opt {
2327
optimizer.Optimize(&tree.Node)
2428
}

cmd/exe/main.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,15 +80,18 @@ func check(err error) {
8080
func printAst() {
8181
tree, err := parser.Parse(input())
8282
check(err)
83-
if !dot {
84-
litter.Dump(tree.Node)
85-
return
86-
}
83+
84+
_, err = checker.Check(tree, nil)
85+
check(err)
8786

8887
if opt {
8988
optimizer.Optimize(&tree.Node)
9089
}
9190

91+
if !dot {
92+
litter.Dump(tree.Node)
93+
return
94+
}
9295
dotAst(tree.Node)
9396
}
9497

0 commit comments

Comments
 (0)