Skip to content

Commit e628d16

Browse files
authored
Add missing visitor for ConstantRefs and update prefix pass (#769)
1 parent 496567e commit e628d16

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

Diff for: internal/ast/compiler/prefix_objects_names.go

+9
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ func (pass *PrefixObjectNames) Process(schemas []*ast.Schema) ([]*ast.Schema, er
2525
OnRef: pass.processRef,
2626
OnEnum: pass.processEnum,
2727
OnDisjunction: pass.processDisjunction,
28+
OnConstantRef: pass.processConstantRef,
2829
}
2930

3031
return visitor.VisitSchemas(schemas)
@@ -111,3 +112,11 @@ func (pass *PrefixObjectNames) processEnum(_ *Visitor, _ *ast.Schema, enum ast.T
111112

112113
return enum, nil
113114
}
115+
116+
func (pass *PrefixObjectNames) processConstantRef(_ *Visitor, _ *ast.Schema, ref ast.Type) (ast.Type, error) {
117+
originalName := ref.ConstantReference.ReferredType
118+
ref.ConstantReference.ReferredType = pass.Prefix + originalName
119+
ref.AddToPassesTrail(fmt.Sprintf("PrefixObjectNames[%s → %s]", originalName, ref.ConstantReference.ReferredType))
120+
121+
return ref, nil
122+
}

Diff for: internal/ast/compiler/visitor.go

+13
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ type Visitor struct {
2525
OnEnum VisitTypeFunc
2626
OnScalar VisitTypeFunc
2727
OnRef VisitTypeFunc
28+
OnConstantRef VisitTypeFunc
2829

2930
newObjects *orderedmap.Map[string, ast.Object]
3031
}
@@ -149,6 +150,10 @@ func (visitor *Visitor) VisitType(schema *ast.Schema, def ast.Type) (ast.Type, e
149150
return visitor.VisitRef(schema, def)
150151
}
151152

153+
if def.IsConstantRef() {
154+
return visitor.VisitConsantRef(schema, def)
155+
}
156+
152157
return def, nil
153158
}
154159

@@ -274,3 +279,11 @@ func (visitor *Visitor) VisitRef(schema *ast.Schema, def ast.Type) (ast.Type, er
274279

275280
return def, nil
276281
}
282+
283+
func (visitor *Visitor) VisitConsantRef(schema *ast.Schema, def ast.Type) (ast.Type, error) {
284+
if visitor.OnConstantRef != nil {
285+
return visitor.OnConstantRef(visitor, schema, def)
286+
}
287+
288+
return def, nil
289+
}

0 commit comments

Comments
 (0)