From 02b9c8dc1b242326ec17ea694b561bba5b5fb96a Mon Sep 17 00:00:00 2001 From: hannahhoward Date: Thu, 7 Nov 2019 14:31:02 -0800 Subject: [PATCH 1/2] fix(schema/gen): return value not reference Map/List should return an actual node type, not a pointer to a node. Otherwise, breaks when nested in other map/list type --- schema/gen/go/genKindListNode.go | 2 +- schema/gen/go/genKindStructNode.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/schema/gen/go/genKindListNode.go b/schema/gen/go/genKindListNode.go index 39a77cb5..e874915a 100644 --- a/schema/gen/go/genKindListNode.go +++ b/schema/gen/go/genKindListNode.go @@ -278,7 +278,7 @@ func (gk generateNbKindList) EmitNodebuilderMethodCreateList(w io.Writer) { } func (lb *{{ .Type | mungeTypeNodeListBuilderIdent }}) Build() (ipld.Node, error) { - v := lb.v + v := *lb.v lb = nil return v, nil } diff --git a/schema/gen/go/genKindStructNode.go b/schema/gen/go/genKindStructNode.go index 906382f7..75e875b2 100644 --- a/schema/gen/go/genKindStructNode.go +++ b/schema/gen/go/genKindStructNode.go @@ -272,7 +272,7 @@ func (gk generateNbKindStruct) EmitNodebuilderMethodCreateMap(w io.Writer) { } {{- end}} {{- end}} - v := mb.v + v := *mb.v mb = nil return v, nil } From 28a82f04c785e8bd405df996fd465298fa6cab4f Mon Sep 17 00:00:00 2001 From: hannahhoward Date: Thu, 7 Nov 2019 17:26:38 -0800 Subject: [PATCH 2/2] fix(schema/gen): add code gen disclaimer Add a disclaimer to the header for generated code to prevent linters from complaining --- schema/gen/go/gen.go | 1 + 1 file changed, 1 insertion(+) diff --git a/schema/gen/go/gen.go b/schema/gen/go/gen.go index e2229b4a..1f95350d 100644 --- a/schema/gen/go/gen.go +++ b/schema/gen/go/gen.go @@ -95,6 +95,7 @@ func EmitFileHeader(packageName string, w io.Writer) { fmt.Fprintf(w, "\t\"github.com/ipld/go-ipld-prime/impl/typed\"\n") fmt.Fprintf(w, "\t\"github.com/ipld/go-ipld-prime/schema\"\n") fmt.Fprintf(w, ")\n\n") + fmt.Fprintf(w, "// Code generated go-ipld-prime DO NOT EDIT.\n\n") } // EmitEntireType outputs every possible type of code generation for a