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..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" + @@ -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