Skip to content

Commit 1a1a5bf

Browse files
committed
Improve TransformVisitor
1 parent 7857d6a commit 1a1a5bf

2 files changed

Lines changed: 10 additions & 21 deletions

File tree

grade/internal/infrastructure/seedwork/specification/transform_visitor.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@ var (
1313

1414
func NewTransformVisitor(context Context) *TransformVisitor {
1515
return &TransformVisitor{
16-
isChanged: false,
17-
Context: context,
16+
Context: context,
1817
}
1918
}
2019

2120
type TransformVisitor struct {
22-
isChanged bool
2321
compositeExpressions []CompositeExpression
2422
currentNode s.Visitable
2523
Context
@@ -107,7 +105,7 @@ func (v *TransformVisitor) VisitInfix(n s.InfixNode) error {
107105
}
108106
if newNode != nil {
109107
v.currentNode = newNode
110-
v.isChanged = true
108+
v.currentNode.Accept(v)
111109
} else {
112110
v.currentNode = s.NewInfixNode(left, n.Operator(), right, n.Associativity())
113111
}
@@ -134,10 +132,6 @@ func (v *TransformVisitor) buildNodeFromCompositeExpressions(n s.InfixNode) (s.V
134132
return nil, nil
135133
}
136134

137-
func (v TransformVisitor) IsChanged() bool {
138-
return v.isChanged
139-
}
140-
141135
func (v TransformVisitor) Result() (s.Visitable, error) {
142136
return v.currentNode, nil
143137
}

grade/internal/infrastructure/seedwork/specification/transform_visitor_test.go

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,14 @@ func (ss SomethingSpecification) Evaluate( /* session session.PgxSession */ ) (
5050
sql string, params []driver.Valuer, err error,
5151
) {
5252
exp := ss.Expression()
53-
for i := 1; i <= 10; i++ {
54-
v := NewTransformVisitor(TestContext{})
55-
err := exp.Accept(v)
56-
if err != nil {
57-
return "", nil, err
58-
}
59-
exp, err = v.Result()
60-
if err != nil {
61-
return "", nil, err
62-
}
63-
if !v.IsChanged() {
64-
break
65-
}
53+
tv := NewTransformVisitor(TestContext{})
54+
err = exp.Accept(tv)
55+
if err != nil {
56+
return "", nil, err
57+
}
58+
exp, err = tv.Result()
59+
if err != nil {
60+
return "", nil, err
6661
}
6762
v := NewPostgresqlVisitor(TestContext{})
6863
err = exp.Accept(v)

0 commit comments

Comments
 (0)