From 4800ceb34fa50ab2770d435ba065164105a6e8e5 Mon Sep 17 00:00:00 2001 From: JesseBrault0709 <62299747+JesseBrault0709@users.noreply.github.com> Date: Mon, 27 May 2024 10:53:55 +0200 Subject: [PATCH] Fixed false positive warning for script statements in preamble. --- .../web/transpile/DefaultGroovyTranspiler.java | 8 ++++---- .../web/transpiler/GroovyTranspilerTests.java | 10 ++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultGroovyTranspiler.java b/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultGroovyTranspiler.java index 895a5e6..4b7e592 100644 --- a/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultGroovyTranspiler.java +++ b/web-view-components-compiler/src/main/java/groowt/view/component/web/transpile/DefaultGroovyTranspiler.java @@ -1,6 +1,5 @@ package groowt.view.component.web.transpile; -import groovy.transform.Field; import groowt.view.component.compiler.ComponentTemplateCompileException; import groowt.view.component.compiler.ComponentTemplateCompileUnit; import groowt.view.component.compiler.ComponentTemplateCompilerConfiguration; @@ -32,8 +31,6 @@ public class DefaultGroovyTranspiler implements GroovyTranspiler { private static final Logger logger = LoggerFactory.getLogger(DefaultGroovyTranspiler.class); - private static final ClassNode FIELD_ANNOTATION = ClassHelper.make(Field.class); - protected TranspilerConfiguration getConfiguration( ClassLoaderComponentClassNodeResolver classLoaderComponentClassNodeResolver ) { @@ -122,7 +119,10 @@ public class DefaultGroovyTranspiler implements GroovyTranspiler { } final BlockStatement preambleBlock = convertResult.blockStatement(); - if (preambleBlock != null) { + if (!(preambleBlock == null + || preambleBlock.isEmpty() + || preambleBlock.getStatements().getFirst() instanceof ReturnStatement) + ) { logger.warn( "{} contains script statements which are not supported. Currently, only classes and" + " methods are supported. The rest will be ignored.", diff --git a/web-view-components-compiler/src/testFixtures/java/groowt/view/component/web/transpiler/GroovyTranspilerTests.java b/web-view-components-compiler/src/testFixtures/java/groowt/view/component/web/transpiler/GroovyTranspilerTests.java index ed138d6..6cd3b3c 100644 --- a/web-view-components-compiler/src/testFixtures/java/groowt/view/component/web/transpiler/GroovyTranspilerTests.java +++ b/web-view-components-compiler/src/testFixtures/java/groowt/view/component/web/transpiler/GroovyTranspilerTests.java @@ -89,4 +89,14 @@ public abstract class GroovyTranspilerTests { this.doTranspile(""); } + @Test + public void withPackageInPreamble() { + this.doTranspile(""" + --- + package test + --- + Hello, World! + """.stripIndent().trim()); + } + }