@@ -89,8 +89,6 @@ func (renderer *Renderer) Typedefs(w io.Writer, imports *collect.ImportMap, mode
89
89
90
90
// Track postponed class aliases and their dependencies.
91
91
aliases := make (map [types.Object ][]* collect.ModelInfo , len (models ))
92
- // Placeholder for marking visited objects.
93
- visited := make ([]* collect.ModelInfo , 0 )
94
92
95
93
models = slices .Clone (models )
96
94
for i , j := 0 , 0 ; i < len (models ); i ++ {
@@ -101,7 +99,7 @@ func (renderer *Renderer) Typedefs(w io.Writer, imports *collect.ImportMap, mode
101
99
obj := models [i ].Type .(interface { Obj () * types.TypeName }).Obj ()
102
100
if obj .Pkg ().Path () == imports .Self {
103
101
// models[i] aliases a type from the current module.
104
- if a := aliases [obj ]; a == nil || len (a ) > 0 {
102
+ if a , ok := aliases [obj ]; ! ok || len (a ) > 0 {
105
103
// The aliased type has not been visited already, postpone.
106
104
aliases [obj ] = append (a , models [i ])
107
105
continue
@@ -116,7 +114,7 @@ func (renderer *Renderer) Typedefs(w io.Writer, imports *collect.ImportMap, mode
116
114
// Keep appending aliases whose aliased type has been just appended.
117
115
for k := j - 1 ; k < j ; k ++ {
118
116
a := aliases [models [k ].Object ()]
119
- aliases [models [k ].Object ()] = visited
117
+ aliases [models [k ].Object ()] = nil // Mark aliased model as visited
120
118
j += copy (models [j :], a )
121
119
}
122
120
}
0 commit comments