Skip to content

Commit 9f3a8f5

Browse files
author
tom.johnson
committed
aeron-io#910 Finish(?) fixing unqualified yield errors
This now generates code that compiles in Java 17 for all the paths through writeTokenDisplay I can find, and I think that's all that's needed here?
1 parent 7b783c4 commit 9f3a8f5

File tree

2 files changed

+29
-5
lines changed

2 files changed

+29
-5
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaGenerator.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -3575,9 +3575,9 @@ private int writeTokenDisplay(
35753575
if (typeToken.encoding().primitiveType() == PrimitiveType.CHAR)
35763576
{
35773577
append(sb, indent,
3578-
"for (int i = 0; i < " + fieldName + "Length() && " + fieldName + "(i) > 0; i++)");
3578+
"for (int i = 0; i < " + fieldName + "Length() && this." + fieldName + "(i) > 0; i++)");
35793579
append(sb, indent, "{");
3580-
append(sb, indent, " builder.append((char)" + fieldName + "(i));");
3580+
append(sb, indent, " builder.append((char)this." + fieldName + "(i));");
35813581
append(sb, indent, "}");
35823582
}
35833583
else
@@ -3587,7 +3587,7 @@ private int writeTokenDisplay(
35873587
append(sb, indent, "{");
35883588
append(sb, indent, " for (int i = 0; i < " + fieldName + "Length(); i++)");
35893589
append(sb, indent, " {");
3590-
append(sb, indent, " builder.append(" + fieldName + "(i));");
3590+
append(sb, indent, " builder.append(this." + fieldName + "(i));");
35913591
Separator.ENTRY.appendToGeneratedBuilder(sb, indent + INDENT + INDENT);
35923592
append(sb, indent, " }");
35933593
append(sb, indent, " builder.setLength(builder.length() - 1);");
@@ -3603,11 +3603,11 @@ private int writeTokenDisplay(
36033603
break;
36043604

36053605
case BEGIN_ENUM:
3606-
append(sb, indent, "builder.append(" + fieldName + "());");
3606+
append(sb, indent, "builder.append(this." + fieldName + "());");
36073607
break;
36083608

36093609
case BEGIN_SET:
3610-
append(sb, indent, fieldName + "().appendTo(builder);");
3610+
append(sb, indent, "this." + fieldName + "().appendTo(builder);");
36113611
break;
36123612

36133613
case BEGIN_COMPOSITE:

sbe-tool/src/test/resources/issue910.xml

+24
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,18 @@
2121
<type name="blockLength" primitiveType="uint16"/>
2222
<type name="numInGroup" primitiveType="uint16"/>
2323
</composite>
24+
<enum name="Enum" encodingType="char">
25+
<validValue name="A">A</validValue>
26+
<validValue name="B">B</validValue>
27+
<validValue name="C">C</validValue>
28+
</enum>
29+
<set name="Set" encodingType="uint8">
30+
<choice name="A">0</choice>
31+
<choice name="B">1</choice>
32+
<choice name="C">2</choice>
33+
</set>
34+
<type name="Array" primitiveType="int32" length="5"/>
35+
<type name="CharArray" primitiveType="char" length="5"/>
2436
</types>
2537
<sbe:message name="issue910Field" id="1" description="issue 910 field test">
2638
<field name="yield" type="uint64" id="1"/>
@@ -33,4 +45,16 @@
3345
<field name="whatever" type="uint64" id="1"/>
3446
</group>
3547
</sbe:message>
48+
<sbe:message name="issue910Enum" id="4" description="issue 910 enum test">
49+
<field name="yield" type="Enum" id="1"/>
50+
</sbe:message>
51+
<sbe:message name="issue910Set" id="5" description="issue 910 set test">
52+
<field name="yield" type="Set" id="1"/>
53+
</sbe:message>
54+
<sbe:message name="issue910Array" id="6" description="issue 910 array test">
55+
<field name="yield" type="Array" id="1"/>
56+
</sbe:message>
57+
<sbe:message name="issue910CharArray" id="7" description="issue 910 char array test">
58+
<field name="yield" type="CharArray" id="1"/>
59+
</sbe:message>
3660
</sbe:messageSchema>

0 commit comments

Comments
 (0)