From d4d309f3c02baae7f500bc201ce8b9ce2d6da40c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E4=BA=9A=E4=B8=9C?= Date: Fri, 3 Nov 2023 14:14:16 +0800 Subject: [PATCH 1/2] fix and ut --- .../src/main/java/io/fury/codegen/Expression.java | 8 ++++++-- .../src/test/java/io/fury/codegen/ExpressionTest.java | 11 +++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/java/fury-core/src/main/java/io/fury/codegen/Expression.java b/java/fury-core/src/main/java/io/fury/codegen/Expression.java index 90c300386f..b7e2ecddca 100644 --- a/java/fury-core/src/main/java/io/fury/codegen/Expression.java +++ b/java/fury-core/src/main/java/io/fury/codegen/Expression.java @@ -182,12 +182,16 @@ public ExprCode doGenCode(CodegenContext ctx) { hasCode = true; } } - ExprCode lastExprCode = last.genCode(ctx); String code = codeBuilder.toString(); if (!hasCode) { code = null; } - return new ExprCode(code, lastExprCode.isNull(), lastExprCode.value()); + if (code != null) { + ExprCode lastExprCode = last.genCode(ctx); + return new ExprCode(code, lastExprCode.isNull(), lastExprCode.value()); + } else { + return new ExprCode(code); + } } @Override diff --git a/java/fury-core/src/test/java/io/fury/codegen/ExpressionTest.java b/java/fury-core/src/test/java/io/fury/codegen/ExpressionTest.java index 72fdb4756c..730c66dff0 100644 --- a/java/fury-core/src/test/java/io/fury/codegen/ExpressionTest.java +++ b/java/fury-core/src/test/java/io/fury/codegen/ExpressionTest.java @@ -17,7 +17,9 @@ package io.fury.codegen; import static io.fury.type.TypeUtils.PRIMITIVE_SHORT_TYPE; +import static org.testng.Assert.assertNull; +import io.fury.codegen.Expression.ListExpression; import io.fury.codegen.Expression.Literal; import io.fury.codegen.Expression.Reference; import io.fury.codegen.Expression.Return; @@ -64,4 +66,13 @@ public void testIfExpression() { Assert.assertEquals(code, expected); } } + + @Test + public void testListExpression() { + { + ListExpression exp = new ListExpression(); + String code = exp.genCode(new CodegenContext()).code(); + assertNull(code); + } + } } From c53f7b8759541b546b3a2ed6b0b8a0b4b989f88d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E4=BA=9A=E4=B8=9C?= Date: Fri, 3 Nov 2023 15:18:28 +0800 Subject: [PATCH 2/2] change --- .../src/main/java/io/fury/codegen/Expression.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/java/fury-core/src/main/java/io/fury/codegen/Expression.java b/java/fury-core/src/main/java/io/fury/codegen/Expression.java index b7e2ecddca..f2ca150d16 100644 --- a/java/fury-core/src/main/java/io/fury/codegen/Expression.java +++ b/java/fury-core/src/main/java/io/fury/codegen/Expression.java @@ -172,6 +172,10 @@ public TypeToken type() { @Override public ExprCode doGenCode(CodegenContext ctx) { + if (last == null) { + return new ExprCode(null, null, null); + } + StringBuilder codeBuilder = new StringBuilder(); boolean hasCode = false; for (Expression expr : expressions) { @@ -182,16 +186,12 @@ public ExprCode doGenCode(CodegenContext ctx) { hasCode = true; } } + ExprCode lastExprCode = last.genCode(ctx); String code = codeBuilder.toString(); if (!hasCode) { code = null; } - if (code != null) { - ExprCode lastExprCode = last.genCode(ctx); - return new ExprCode(code, lastExprCode.isNull(), lastExprCode.value()); - } else { - return new ExprCode(code); - } + return new ExprCode(code, lastExprCode.isNull(), lastExprCode.value()); } @Override