You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2021/09/17 18:40:44 UTC
[plc4x] 03/08: fix(pl4go/codegen): fixed broken inline if
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit e030d688545e0182640f7c2ffefb2309946e9abf
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri Sep 17 20:29:06 2021 +0200
fix(pl4go/codegen): fixed broken inline if
---
.../java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
index 36aec11..40e3065 100644
--- a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
+++ b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
@@ -576,10 +576,9 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
Term a = tt.getA();
Term b = tt.getB();
Term c = tt.getC();
- // TODO: This is not quite correct with the cast to uint16
return "utils.InlineIf(" + toExpression(new DefaultBooleanTypeReference(), a, parserArguments, serializerArguments, serialize, false) + ", " +
- "func() uint16 {return uint16(" + toExpression(fieldType, b, parserArguments, serializerArguments, serialize, false) + ")}, " +
- "func() uint16 {return uint16(" + toExpression(fieldType, c, parserArguments, serializerArguments, serialize, false) + ")})";
+ "func() interface{} {return " + getCastExpressionForTypeReference(fieldType) + "(" + toExpression(fieldType, b, parserArguments, serializerArguments, serialize, false) + ")}, " +
+ "func() interface{} {return " + getCastExpressionForTypeReference(fieldType) + "(" + toExpression(fieldType, c, parserArguments, serializerArguments, serialize, false) + ")}).(" + getCastExpressionForTypeReference(fieldType) + ")";
} else {
throw new RuntimeException("Unsupported ternary operation type " + tt.getOperation());
}