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..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) { 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); + } + } }