From 7e46b1e475bdc16340b77177e983067ddfb2302f Mon Sep 17 00:00:00 2001 From: Evan Wies Date: Thu, 13 May 2021 12:02:25 -0400 Subject: [PATCH 1/2] [Go] Fix tokens passed to generateComposite (#849) Too many tokens were passed to `generateComposite` causing weird errors like(#844 and #849). --- build.gradle | 1 + gocode/Makefile | 2 +- gocode/src/issue849/issue849_test.go | 9 ++++ .../generation/golang/GolangGenerator.java | 4 +- sbe-tool/src/test/resources/issue849.xml | 43 +++++++++++++++++++ 5 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 gocode/src/issue849/issue849_test.go create mode 100644 sbe-tool/src/test/resources/issue849.xml diff --git a/build.gradle b/build.gradle index 8cd0a2c0f2..9ada9703a7 100644 --- a/build.gradle +++ b/build.gradle @@ -621,6 +621,7 @@ task generateGolangCodecsWithXSD(type: JavaExec) { 'sbe-tool/src/test/resources/issue661.xml', 'sbe-tool/src/test/resources/issue847.xml', 'sbe-tool/src/test/resources/issue848.xml', + 'sbe-tool/src/test/resources/issue849.xml', 'sbe-tool/src/test/resources/since-deprecated-test-schema.xml', 'sbe-tool/src/test/resources/example-bigendian-test-schema.xml', 'gocode/resources/example-composite.xml', diff --git a/gocode/Makefile b/gocode/Makefile index a03af97779..456cced904 100644 --- a/gocode/Makefile +++ b/gocode/Makefile @@ -72,7 +72,7 @@ test: $(DEP) go install \ ;done)) (export GOPATH=$(GOPATH) && \ - (for t in baseline-bigendian mktdata group_with_data group_with_data_extension composite_elements composite since-deprecated simple issue435 issue472 issue483 issue488 issue560 issue847 issue848; do \ + (for t in baseline-bigendian mktdata group_with_data group_with_data_extension composite_elements composite since-deprecated simple issue435 issue472 issue483 issue488 issue560 issue847 issue848 issue849; do \ cd $(GOPATH)/src/$$t && \ go build && \ go fmt && \ diff --git a/gocode/src/issue849/issue849_test.go b/gocode/src/issue849/issue849_test.go new file mode 100644 index 0000000000..0149615810 --- /dev/null +++ b/gocode/src/issue849/issue849_test.go @@ -0,0 +1,9 @@ +package issue849 + +import ( + "testing" +) + +func TestNothing(t *testing.T) { + // placeholder, really just looking for clean builds +} diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/golang/GolangGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/golang/GolangGenerator.java index 2a62192150..1a4750013f 100644 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/golang/GolangGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/golang/GolangGenerator.java @@ -2045,8 +2045,8 @@ private void generateTypeBodyComposite( case BEGIN_COMPOSITE: // recurse - generateComposite(tokens.subList(i, tokens.size()), typeName); - i += token.componentTokenCount() - 2; + generateComposite(tokens.subList(i, i + token.componentTokenCount()), typeName); + i += token.componentTokenCount() - 1; sb.append("\t").append(propertyName) .append(generateWhitespace(longest - propertyName.length() + 1)) diff --git a/sbe-tool/src/test/resources/issue849.xml b/sbe-tool/src/test/resources/issue849.xml new file mode 100644 index 0000000000..4eb45ce8ee --- /dev/null +++ b/sbe-tool/src/test/resources/issue849.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 9a811c172056795438c531e494ca1692754ceaad Mon Sep 17 00:00:00 2001 From: Evan Wies Date: Thu, 13 May 2021 12:17:26 -0400 Subject: [PATCH 2/2] [Go] Fix Group decoder style warning The `Decode` generator for groups would produce the following code: ``` for i, _ := range o.GroupName { ``` The `gofmt` tools suggest [simplify range expression](https://github.com/golang/tools/blob/master/internal/lsp/analysis/simplifyrange/simplifyrange.go#L23): ``` A range of the form: for x, _ = range v {...} will be simplified to: for x = range v {...} ``` This patch fixes that. --- .../uk/co/real_logic/sbe/generation/golang/GolangGenerator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/golang/GolangGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/golang/GolangGenerator.java index 1a4750013f..16b1385bfe 100644 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/golang/GolangGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/golang/GolangGenerator.java @@ -1305,7 +1305,7 @@ private int generateGroupEncodeDecode( "\t\t\t%1$s.%2$s = make([]%3$s%2$s, %2$sNumInGroup)\n" + "\t\t}\n" + "\t\t%1$c.%2$s = %1$c.%2$s[:%2$sNumInGroup]\n" + - "\t\tfor i, _ := range %1$s.%2$s {\n" + + "\t\tfor i := range %1$s.%2$s {\n" + "\t\t\tif err := %1$s.%2$s[i].Decode(_m, _r, actingVersion, uint(%4$sBlockLength)); err != nil {\n" + "\t\t\t\treturn err\n" + "\t\t\t}\n" +