handle nested lists correctly

This commit is contained in:
Ben Kraft
2021-04-15 17:49:09 -07:00
parent e82a32f47a
commit 40fc7fdbc5
5 changed files with 45 additions and 2 deletions
+3 -2
View File
@@ -292,14 +292,15 @@ func (builder *typeBuilder) writeType(name, namePrefix string, typ *ast.Type, fi
// gqlgen does slightly different things here, but its implementation may
// be useful to crib from:
// https://github.com/99designs/gqlgen/blob/master/plugin/modelgen/models.go#L113
if typ.Elem != nil { // XXX: this should be for, not if
for typ.Elem != nil {
// Type is a list.
builder.WriteString("[]")
typ = typ.Elem
}
if options.GetPointer() {
// TODO: this does []*T, you might in principle want *[]T or
// *[]*T. We could add a "sliceptr" option if it comes up.
// *[]*T. We could add a "sliceptr" option if it comes up (that's
// still not correct if you wanted *[][]*[]T, but, like, tough luck).
builder.WriteString("*")
}