This is an automated email from the ASF dual-hosted git repository.

tzimanyi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git


The following commit(s) were added to refs/heads/main by this push:
     new 9711a14967 Support generic range type in DMN engine (#6123)
9711a14967 is described below

commit 9711a149672bc6721288e9ec16374a5b42d4a97e
Author: Tibor Zimányi <[email protected]>
AuthorDate: Mon Oct 14 14:34:03 2024 +0200

    Support generic range type in DMN engine (#6123)
---
 .../java/org/kie/dmn/core/DMNCompilerTest.java     |  2 +-
 .../org/kie/dmn/feel/parser/feel11/FEEL_1_1.g4     |  1 +
 .../dmn/feel/codegen/feel11/ASTCompilerHelper.java |  8 +++
 .../feel/codegen/feel11/ASTCompilerVisitor.java    |  7 +++
 .../feel/codegen/feel11/DMNCodegenConstants.java   |  3 +
 .../org/kie/dmn/feel/lang/ast/RangeTypeNode.java   | 48 ++++++++++++++++
 .../java/org/kie/dmn/feel/lang/ast/Visitor.java    |  1 +
 .../feel/lang/ast/visitor/DefaultedVisitor.java    |  6 ++
 .../org/kie/dmn/feel/lang/types/GenRangeType.java  | 64 ++++++++++++++++++++++
 .../dmn/feel/parser/feel11/ASTBuilderVisitor.java  |  7 +++
 .../kie/dmn/feel/parser/feel11/ParserHelper.java   |  5 ++
 .../codegen/feel11/CodegenFEELUnaryTestsTest.java  |  3 +-
 .../feel/codegen/feel11/DirectCompilerTest.java    | 13 +++--
 .../dmn/feel/lang/ast/ForExpressionNodeTest.java   |  6 +-
 .../kie/dmn/feel/lang/ast/RangeTypeNodeTest.java   | 52 ++++++++++++++++++
 .../ForIterationUtilsTest.java                     |  2 +-
 .../org/kie/dmn/feel/runtime/FEELCompilerTest.java | 14 ++---
 .../kie/dmn/feel/runtime/FEELOperatorsTest.java    |  2 +
 .../functions/BaseFEELFunctionHelperTest.java      |  4 +-
 .../runtime/functions/BaseFEELFunctionTest.java    |  4 +-
 .../feel/runtime/functions/ScorerHelperTest.java   | 18 +++---
 .../java/org/kie/dmn/feel/util/CompilerUtils.java  |  3 +-
 .../EvaluationContextTestUtil.java}                |  7 +--
 kie-dmn/kie-dmn-tck/pom.xml                        |  1 -
 24 files changed, 242 insertions(+), 39 deletions(-)

diff --git 
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNCompilerTest.java 
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNCompilerTest.java
index 7e9874ef7d..18d96e5ef7 100644
--- a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNCompilerTest.java
+++ b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNCompilerTest.java
@@ -56,7 +56,7 @@ import static 
org.kie.dmn.api.core.DMNDecisionResult.DecisionEvaluationStatus.SU
 import static org.kie.dmn.core.util.DynamicTypeUtils.entry;
 import static org.kie.dmn.core.util.DynamicTypeUtils.mapOf;
 import static org.kie.dmn.core.util.DynamicTypeUtils.prototype;
-import static 
org.kie.dmn.feel.codegen.feel11.CodegenTestUtil.newEmptyEvaluationContext;
+import static 
org.kie.dmn.feel.util.EvaluationContextTestUtil.newEmptyEvaluationContext;
 
 public class DMNCompilerTest extends BaseVariantTest {
 
diff --git 
a/kie-dmn/kie-dmn-feel/src/main/antlr4/org/kie/dmn/feel/parser/feel11/FEEL_1_1.g4
 
b/kie-dmn/kie-dmn-feel/src/main/antlr4/org/kie/dmn/feel/parser/feel11/FEEL_1_1.g4
index 4760125e12..9f04edc453 100644
--- 
a/kie-dmn/kie-dmn-feel/src/main/antlr4/org/kie/dmn/feel/parser/feel11/FEEL_1_1.g4
+++ 
b/kie-dmn/kie-dmn-feel/src/main/antlr4/org/kie/dmn/feel/parser/feel11/FEEL_1_1.g4
@@ -135,6 +135,7 @@ type
     helper.popScope();
 }
     : {_input.LT(1).getText().equals("list")}? sk=Identifier LT type GT        
                                                #listType
+    | {_input.LT(1).getText().equals("range")}? sk=Identifier LT type GT       
                                                 #rangeType
     | {_input.LT(1).getText().equals("context")}? sk=Identifier LT Identifier 
COLON type ( COMMA Identifier COLON type )* GT   #contextType
     | FUNCTION                                                                 
                                       #qnType
     | FUNCTION LT (type ( COMMA type )*)? GT RARROW type                       
                                       #functionType
diff --git 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/codegen/feel11/ASTCompilerHelper.java
 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/codegen/feel11/ASTCompilerHelper.java
index 3093057718..dc87cd9e5d 100644
--- 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/codegen/feel11/ASTCompilerHelper.java
+++ 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/codegen/feel11/ASTCompilerHelper.java
@@ -72,6 +72,7 @@ import org.kie.dmn.feel.lang.ast.PathExpressionNode;
 import org.kie.dmn.feel.lang.ast.QualifiedNameNode;
 import org.kie.dmn.feel.lang.ast.QuantifiedExpressionNode;
 import org.kie.dmn.feel.lang.ast.RangeNode;
+import org.kie.dmn.feel.lang.ast.RangeTypeNode;
 import org.kie.dmn.feel.lang.ast.SignedUnaryNode;
 import org.kie.dmn.feel.lang.ast.StringNode;
 import org.kie.dmn.feel.lang.ast.TemporalConstantNode;
@@ -136,6 +137,7 @@ import static 
org.kie.dmn.feel.codegen.feel11.DMNCodegenConstants.PATHEXPRESSION
 import static 
org.kie.dmn.feel.codegen.feel11.DMNCodegenConstants.QUALIFIEDNAMENODE_CT;
 import static 
org.kie.dmn.feel.codegen.feel11.DMNCodegenConstants.QUANTIFIEDEXPRESSIONNODE_CT;
 import static org.kie.dmn.feel.codegen.feel11.DMNCodegenConstants.RANGENODE_CT;
+import static 
org.kie.dmn.feel.codegen.feel11.DMNCodegenConstants.RANGETYPENODE_CT;
 import static 
org.kie.dmn.feel.codegen.feel11.DMNCodegenConstants.SIGNEDUNARYNODE_CT;
 import static 
org.kie.dmn.feel.codegen.feel11.DMNCodegenConstants.STRINGNODE_CT;
 import static 
org.kie.dmn.feel.codegen.feel11.DMNCodegenConstants.TEMPORALCONSTANTNODE_CT;
@@ -431,6 +433,12 @@ public class ASTCompilerHelper {
                                                                                
        endExpression), n.getText());
     }
 
+    public BlockStmt add(RangeTypeNode n) {
+        Expression genTypeNodeExpression = 
getNodeExpression(n.getGenericTypeNode());
+        return addVariableDeclaratorWithObjectCreation(RANGETYPENODE_CT, 
NodeList.nodeList(genTypeNodeExpression),
+                n.getText());
+    }
+
     public BlockStmt add(SignedUnaryNode n) {
         Expression signExpression = getEnumExpression(n.getSign());
         Expression expressionExpression = getNodeExpression(n.getExpression());
diff --git 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/codegen/feel11/ASTCompilerVisitor.java
 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/codegen/feel11/ASTCompilerVisitor.java
index 0a509bca66..a4bef5554d 100644
--- 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/codegen/feel11/ASTCompilerVisitor.java
+++ 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/codegen/feel11/ASTCompilerVisitor.java
@@ -50,6 +50,7 @@ import org.kie.dmn.feel.lang.ast.PathExpressionNode;
 import org.kie.dmn.feel.lang.ast.QualifiedNameNode;
 import org.kie.dmn.feel.lang.ast.QuantifiedExpressionNode;
 import org.kie.dmn.feel.lang.ast.RangeNode;
+import org.kie.dmn.feel.lang.ast.RangeTypeNode;
 import org.kie.dmn.feel.lang.ast.SignedUnaryNode;
 import org.kie.dmn.feel.lang.ast.StringNode;
 import org.kie.dmn.feel.lang.ast.TemporalConstantNode;
@@ -253,6 +254,12 @@ public class ASTCompilerVisitor implements 
Visitor<BlockStmt> {
         return compilerHelper.add(n);
     }
 
+    @Override
+    public BlockStmt visit(RangeTypeNode n) {
+        LOGGER.trace("visit {}", n);
+        return compilerHelper.add(n);
+    }
+
     @Override
     public BlockStmt visit(SignedUnaryNode n) {
         LOGGER.trace("visit {}", n);
diff --git 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/codegen/feel11/DMNCodegenConstants.java
 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/codegen/feel11/DMNCodegenConstants.java
index 96520d8689..f5db4e4150 100644
--- 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/codegen/feel11/DMNCodegenConstants.java
+++ 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/codegen/feel11/DMNCodegenConstants.java
@@ -51,6 +51,7 @@ import org.kie.dmn.feel.lang.ast.PathExpressionNode;
 import org.kie.dmn.feel.lang.ast.QualifiedNameNode;
 import org.kie.dmn.feel.lang.ast.QuantifiedExpressionNode;
 import org.kie.dmn.feel.lang.ast.RangeNode;
+import org.kie.dmn.feel.lang.ast.RangeTypeNode;
 import org.kie.dmn.feel.lang.ast.SignedUnaryNode;
 import org.kie.dmn.feel.lang.ast.StringNode;
 import org.kie.dmn.feel.lang.ast.TemporalConstantNode;
@@ -142,6 +143,8 @@ public class DMNCodegenConstants {
     public static final ClassOrInterfaceType LISTNODE_CT = 
parseClassOrInterfaceType(ListNode.class.getCanonicalName());
     public static final ClassOrInterfaceType LISTTYPENODE_CT =
             parseClassOrInterfaceType(ListTypeNode.class.getCanonicalName());
+    public static final ClassOrInterfaceType RANGETYPENODE_CT =
+            parseClassOrInterfaceType(RangeTypeNode.class.getCanonicalName());
     public static final ClassOrInterfaceType NAMEDEFNODE_CT =
             parseClassOrInterfaceType(NameDefNode.class.getCanonicalName());
     public static final ClassOrInterfaceType NAMEDPARAMETERNODE_CT =
diff --git 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/RangeTypeNode.java
 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/RangeTypeNode.java
new file mode 100644
index 0000000000..87771e9ac0
--- /dev/null
+++ 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/RangeTypeNode.java
@@ -0,0 +1,48 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file distributed with this work 
for additional information regarding copyright
+ * ownership.  The ASF licenses this file to you under the Apache License, 
Version 2.0 (the "License"); you may not use this file except in compliance 
with the License.  You may obtain a copy of the
+ * License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing permissions 
and limitations under the License.
+ */
+
+package org.kie.dmn.feel.lang.ast;
+
+import org.antlr.v4.runtime.ParserRuleContext;
+import org.kie.dmn.feel.lang.EvaluationContext;
+import org.kie.dmn.feel.lang.Type;
+import org.kie.dmn.feel.lang.types.GenRangeType;
+
+public class RangeTypeNode extends TypeNode {
+
+    private final TypeNode genericTypeNode;
+
+    public RangeTypeNode(ParserRuleContext ctx, TypeNode gen) {
+        super(ctx);
+        this.genericTypeNode = gen;
+    }
+
+    public RangeTypeNode(TypeNode genericTypeNode, String text) {
+        this.genericTypeNode = genericTypeNode;
+        this.setText(text);
+    }
+
+    @Override
+    public Type evaluate(EvaluationContext ctx) {
+        Type gen = genericTypeNode.evaluate(ctx);
+        return new GenRangeType(gen);
+    }
+
+    @Override
+    public <T> T accept(Visitor<T> v) {
+        return v.visit(this);
+    }
+
+    public TypeNode getGenericTypeNode() {
+        return genericTypeNode;
+    }
+
+}
diff --git 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/Visitor.java 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/Visitor.java
index 6904d03b2d..8277535645 100644
--- a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/Visitor.java
+++ b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/Visitor.java
@@ -50,6 +50,7 @@ public interface Visitor<T> {
     T visit(QualifiedNameNode n);
     T visit(QuantifiedExpressionNode n);
     T visit(RangeNode n);
+    T visit(RangeTypeNode n);
     T visit(SignedUnaryNode n);
     T visit(StringNode n);
 
diff --git 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/visitor/DefaultedVisitor.java
 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/visitor/DefaultedVisitor.java
index 68d5baaa16..6eb2d6b79d 100644
--- 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/visitor/DefaultedVisitor.java
+++ 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/ast/visitor/DefaultedVisitor.java
@@ -49,6 +49,7 @@ import org.kie.dmn.feel.lang.ast.PathExpressionNode;
 import org.kie.dmn.feel.lang.ast.QualifiedNameNode;
 import org.kie.dmn.feel.lang.ast.QuantifiedExpressionNode;
 import org.kie.dmn.feel.lang.ast.RangeNode;
+import org.kie.dmn.feel.lang.ast.RangeTypeNode;
 import org.kie.dmn.feel.lang.ast.SignedUnaryNode;
 import org.kie.dmn.feel.lang.ast.StringNode;
 import org.kie.dmn.feel.lang.ast.UnaryTestListNode;
@@ -194,6 +195,11 @@ public abstract class DefaultedVisitor<T> implements 
Visitor<T> {
         return defaultVisit(n);
     }
 
+    @Override
+    public T visit(RangeTypeNode n) {
+        return defaultVisit(n);
+    }
+
     @Override
     public T visit(SignedUnaryNode n) {
         return defaultVisit(n);
diff --git 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/types/GenRangeType.java
 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/types/GenRangeType.java
new file mode 100644
index 0000000000..4386040ba0
--- /dev/null
+++ 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/lang/types/GenRangeType.java
@@ -0,0 +1,64 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file distributed with this work 
for additional information regarding copyright
+ * ownership.  The ASF licenses this file to you under the Apache License, 
Version 2.0 (the "License"); you may not use this file except in compliance 
with the License.  You may obtain a copy of the
+ * License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing permissions 
and limitations under the License.
+ */
+
+package org.kie.dmn.feel.lang.types;
+
+import org.kie.dmn.feel.lang.SimpleType;
+import org.kie.dmn.feel.lang.Type;
+import org.kie.dmn.feel.runtime.impl.RangeImpl;
+
+public class GenRangeType implements SimpleType {
+
+    /**
+     * Represents the "generic" type of the current list
+     */
+    private final Type gen;
+
+
+    public GenRangeType(Type gen) {
+        this.gen = gen;
+    }
+
+    @Override
+    public boolean isInstanceOf(Object o) {
+        if (o instanceof RangeImpl rangeImpl) {
+            return gen.isInstanceOf(rangeImpl.getLowEndPoint()) && 
gen.isInstanceOf(rangeImpl.getHighEndPoint());
+        } else {
+            return false;
+        }
+    }
+
+    @Override
+    public boolean isAssignableValue(Object value) {
+        if ( value == null ) {
+            return true; // a null-value can be assigned to any type.
+        }
+        if (!(value instanceof RangeImpl)) {
+            return gen.isAssignableValue(value);
+        }
+        return isInstanceOf(value);
+    }
+
+    @Override
+    public String getName() {
+        return "[anonymous]";
+    }
+
+    public Type getGen() {
+        return gen;
+    }
+
+    @Override
+    public boolean conformsTo(Type t) {
+        return (t instanceof GenRangeType && 
this.gen.conformsTo(((GenRangeType) t).gen)) || t == BuiltInType.RANGE;
+    }
+
+}
diff --git 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/ASTBuilderVisitor.java
 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/ASTBuilderVisitor.java
index 62ce7781a5..295b9fe539 100644
--- 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/ASTBuilderVisitor.java
+++ 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/ASTBuilderVisitor.java
@@ -49,6 +49,7 @@ import org.kie.dmn.feel.lang.ast.NameRefNode;
 import org.kie.dmn.feel.lang.ast.QualifiedNameNode;
 import org.kie.dmn.feel.lang.ast.QuantifiedExpressionNode;
 import org.kie.dmn.feel.lang.ast.RangeNode;
+import org.kie.dmn.feel.lang.ast.RangeTypeNode;
 import org.kie.dmn.feel.lang.ast.StringNode;
 import org.kie.dmn.feel.lang.ast.TypeNode;
 import org.kie.dmn.feel.lang.ast.UnaryTestListNode;
@@ -586,6 +587,12 @@ public class ASTBuilderVisitor
         return new ListTypeNode(ctx, type);
     }
 
+    @Override
+    public BaseNode visitRangeType(FEEL_1_1Parser.RangeTypeContext ctx) {
+        TypeNode type = (TypeNode) visit(ctx.type());
+        return new RangeTypeNode(ctx, type);
+    }
+
     @Override
     public BaseNode visitContextType(FEEL_1_1Parser.ContextTypeContext ctx) {
         List<String> pNames = new ArrayList<>();
diff --git 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/ParserHelper.java
 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/ParserHelper.java
index 3ac1ca3315..4308519335 100644
--- 
a/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/ParserHelper.java
+++ 
b/kie-dmn/kie-dmn-feel/src/main/java/org/kie/dmn/feel/parser/feel11/ParserHelper.java
@@ -42,6 +42,7 @@ import org.kie.dmn.feel.lang.types.BuiltInType;
 import org.kie.dmn.feel.lang.types.DefaultBuiltinFEELTypeRegistry;
 import org.kie.dmn.feel.lang.types.FEELTypeRegistry;
 import org.kie.dmn.feel.lang.types.GenListType;
+import org.kie.dmn.feel.lang.types.GenRangeType;
 import org.kie.dmn.feel.lang.types.ScopeImpl;
 import org.kie.dmn.feel.lang.types.SymbolTable;
 import org.kie.dmn.feel.lang.types.VariableSymbol;
@@ -144,6 +145,10 @@ public class ParserHelper {
                 scopeType = ((GenListType) scopeType).getGen();
             }
 
+            if (scopeType instanceof GenRangeType) {
+                scopeType = ((GenRangeType) scopeType).getGen();
+            }
+
             if (resolved != null && scopeType instanceof CompositeType) {
                 pushScope(scopeType);
                 CompositeType type = (CompositeType) scopeType;
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/codegen/feel11/CodegenFEELUnaryTestsTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/codegen/feel11/CodegenFEELUnaryTestsTest.java
index ff42ea47a6..c598d4f9df 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/codegen/feel11/CodegenFEELUnaryTestsTest.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/codegen/feel11/CodegenFEELUnaryTestsTest.java
@@ -34,6 +34,7 @@ import org.kie.dmn.feel.lang.impl.FEELEventListenersManager;
 import org.kie.dmn.feel.parser.feel11.ASTBuilderVisitor;
 import org.kie.dmn.feel.parser.feel11.FEELParser;
 import org.kie.dmn.feel.parser.feel11.FEEL_1_1Parser;
+import org.kie.dmn.feel.util.EvaluationContextTestUtil;
 import org.kie.dmn.feel.util.NumberEvalHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -98,7 +99,7 @@ public class CodegenFEELUnaryTestsTest {
         FEELEventListenersManager mgr = new FEELEventListenersManager();
         SyntaxErrorListener listener = new SyntaxErrorListener();
         mgr.addListener(listener);
-        EvaluationContext emptyContext = 
CodegenTestUtil.newEmptyEvaluationContext(mgr);
+        EvaluationContext emptyContext = 
EvaluationContextTestUtil.newEmptyEvaluationContext(mgr);
         CompiledFEELUnaryTests compiledUnaryTests = 
parse(feelLiteralExpression, mgr, listener);
         LOG.debug("{}", compiledUnaryTests);
         List<Boolean> result = compiledUnaryTests.getUnaryTests()
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/codegen/feel11/DirectCompilerTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/codegen/feel11/DirectCompilerTest.java
index 9231a8b1d5..5a8f00660d 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/codegen/feel11/DirectCompilerTest.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/codegen/feel11/DirectCompilerTest.java
@@ -36,6 +36,7 @@ import org.kie.dmn.feel.runtime.FEELConditionsAndLoopsTest;
 import org.kie.dmn.feel.runtime.FEELTernaryLogicTest;
 import org.kie.dmn.feel.runtime.functions.CustomFEELFunction;
 import org.kie.dmn.feel.util.CompilerUtils;
+import org.kie.dmn.feel.util.EvaluationContextTestUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -226,7 +227,7 @@ public class DirectCompilerTest {
         CompiledFEELExpression nameRef = CompilerUtils.parseCodegen("[ {x:1, 
y:2}, {x:2, y:3} ][x]");
         LOG.debug("{}", nameRef);
         
-        EvaluationContext context = 
CodegenTestUtil.newEmptyEvaluationContext();
+        EvaluationContext context = 
EvaluationContextTestUtil.newEmptyEvaluationContext();
         context.setValue("x", 2);
         Object result = nameRef.apply(context);
         LOG.debug("{}", result);
@@ -239,7 +240,7 @@ public class DirectCompilerTest {
         CompiledFEELExpression nameRef = CompilerUtils.parseCodegen("[ {x:1, 
y:2}, {x:2, y:3} ][x]");
         LOG.debug("{}", nameRef);
 
-        EvaluationContext context = 
CodegenTestUtil.newEmptyEvaluationContext();
+        EvaluationContext context = 
EvaluationContextTestUtil.newEmptyEvaluationContext();
         context.setValue("x", false);
         Object result = nameRef.apply(context);
         LOG.debug("{}", result);
@@ -410,7 +411,7 @@ public class DirectCompilerTest {
         CompiledFEELExpression nameRef = parseCodegen(inputExpression, 
mapOf(entry("someSimpleName", BuiltInType.STRING) ) );
         LOG.debug("{}", nameRef);
         
-        EvaluationContext context = 
CodegenTestUtil.newEmptyEvaluationContext();
+        EvaluationContext context = 
EvaluationContextTestUtil.newEmptyEvaluationContext();
         context.setValue("someSimpleName", 123L);
         Object result = nameRef.apply(context);
         LOG.debug("{}", result);
@@ -425,7 +426,7 @@ public class DirectCompilerTest {
         CompiledFEELExpression qualRef = parseCodegen(inputExpression, 
mapOf(entry("My Person", personType) ) );
         LOG.debug("{}", qualRef);
         
-        EvaluationContext context = 
CodegenTestUtil.newEmptyEvaluationContext();
+        EvaluationContext context = 
EvaluationContextTestUtil.newEmptyEvaluationContext();
         context.setValue("My Person", mapOf( entry("Full Name", "John Doe"), 
entry("Age", 47) ));
         Object result = qualRef.apply(context);
         LOG.debug("{}", result);
@@ -456,7 +457,7 @@ public class DirectCompilerTest {
         CompiledFEELExpression qualRef = parseCodegen(inputExpression, 
mapOf(entry("My Person", personType) ) );
         LOG.debug("{}", qualRef);
         
-        EvaluationContext context = 
CodegenTestUtil.newEmptyEvaluationContext();
+        EvaluationContext context = 
EvaluationContextTestUtil.newEmptyEvaluationContext();
         context.setValue("My Person", new MyPerson());
         Object result = qualRef.apply(context);
         LOG.debug("{}", result);
@@ -471,7 +472,7 @@ public class DirectCompilerTest {
         CompiledFEELExpression qualRef = parseCodegen(inputExpression, 
mapOf(entry("a date", dateType)));
         LOG.debug("{}", qualRef);
         
-        EvaluationContext context = 
CodegenTestUtil.newEmptyEvaluationContext();
+        EvaluationContext context = 
EvaluationContextTestUtil.newEmptyEvaluationContext();
         context.setValue("a date", LocalDate.of(2016, 8, 2));
         Object result = qualRef.apply(context);
         LOG.debug("{}", result);
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/lang/ast/ForExpressionNodeTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/lang/ast/ForExpressionNodeTest.java
index 290abe5132..f09f03caa6 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/lang/ast/ForExpressionNodeTest.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/lang/ast/ForExpressionNodeTest.java
@@ -26,7 +26,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.junit.jupiter.api.Test;
-import org.kie.dmn.feel.codegen.feel11.CodegenTestUtil;
+import org.kie.dmn.feel.util.EvaluationContextTestUtil;
 import org.kie.dmn.feel.lang.Type;
 import org.kie.dmn.feel.lang.types.BuiltInType;
 
@@ -39,7 +39,7 @@ class ForExpressionNodeTest {
         IterationContextNode x = getIterationContextNode("x", getListNode("[ 
1, 2, 3, 4 ]", Arrays.asList("1", "2", "3", "4")), "x in [ 1, 2, 3, 4 ]");
         IterationContextNode y = getIterationContextNode("y", 
getNameRefNode(BuiltInType.UNKNOWN, "x"), "y in x");
         ForExpressionNode forExpressionNode = new 
ForExpressionNode(Arrays.asList(x, y), getNameRefNode(BuiltInType.UNKNOWN, 
"y"), "for x in [ 1, 2, 3, 4 ], y in x return y");
-        Object retrieved = 
forExpressionNode.evaluate(CodegenTestUtil.newEmptyEvaluationContext());
+        Object retrieved = 
forExpressionNode.evaluate(EvaluationContextTestUtil.newEmptyEvaluationContext());
         assertThat(retrieved).isInstanceOf(List.class).asList().
                 containsExactly(BigDecimal.ONE, BigDecimal.valueOf(2), 
BigDecimal.valueOf(3), BigDecimal.valueOf(4));
     }
@@ -52,7 +52,7 @@ class ForExpressionNodeTest {
         IterationContextNode x = getIterationContextNode("x", 
getNestedListNode("[ [1, 2], [3, 4] ]", firstIterationContext), "x in [ [1, 2], 
[3, 4] ]");
         IterationContextNode y = getIterationContextNode("y", 
getNameRefNode(BuiltInType.UNKNOWN, "x"), "y in x");
         ForExpressionNode forExpressionNode = new 
ForExpressionNode(Arrays.asList(x, y), getNameRefNode(BuiltInType.UNKNOWN, 
"y"), "for x in [ [1, 2], [3, 4] ], y in x return y");
-        Object retrieved = 
forExpressionNode.evaluate(CodegenTestUtil.newEmptyEvaluationContext());
+        Object retrieved = 
forExpressionNode.evaluate(EvaluationContextTestUtil.newEmptyEvaluationContext());
         assertThat(retrieved).isInstanceOf(List.class).asList().
                 containsExactly(BigDecimal.ONE, BigDecimal.valueOf(2), 
BigDecimal.valueOf(3), BigDecimal.valueOf(4));
 
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/lang/ast/RangeTypeNodeTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/lang/ast/RangeTypeNodeTest.java
new file mode 100644
index 0000000000..aaa5a3caa0
--- /dev/null
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/lang/ast/RangeTypeNodeTest.java
@@ -0,0 +1,52 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.kie.dmn.feel.lang.ast;
+
+import org.assertj.core.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.kie.dmn.feel.lang.types.GenRangeType;
+import org.kie.dmn.feel.util.EvaluationContextTestUtil;
+import org.kie.dmn.feel.lang.types.BuiltInType;
+import org.mockito.Mockito;
+
+class RangeTypeNodeTest {
+
+    @Test
+    void evaluate() {
+        final CTypeNode typeNode = new CTypeNode(BuiltInType.BOOLEAN);
+        final RangeTypeNode rangeTypeNode = new RangeTypeNode(typeNode, 
"sometext");
+        
Assertions.assertThat(rangeTypeNode.evaluate(EvaluationContextTestUtil.newEmptyEvaluationContext())).isInstanceOf(GenRangeType.class);
+    }
+
+    @Test
+    void accept() {
+        final Visitor visitor = Mockito.spy(Visitor.class);
+        final RangeTypeNode rangeTypeNode = new RangeTypeNode(null, 
"sometext");
+        rangeTypeNode.accept(visitor);
+        Mockito.verify(visitor).visit(rangeTypeNode);
+    }
+
+    @Test
+    void getGenTypeNode() {
+        final CTypeNode typeNode = new CTypeNode(BuiltInType.BOOLEAN);
+        final RangeTypeNode rangeTypeNode = new RangeTypeNode(typeNode, 
"sometext");
+        
Assertions.assertThat(rangeTypeNode.getGenericTypeNode()).isSameAs(typeNode);
+    }
+}
\ No newline at end of file
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/lang/ast/forexpressioniterators/ForIterationUtilsTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/lang/ast/forexpressioniterators/ForIterationUtilsTest.java
index 226d2e1797..43547f1508 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/lang/ast/forexpressioniterators/ForIterationUtilsTest.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/lang/ast/forexpressioniterators/ForIterationUtilsTest.java
@@ -32,7 +32,7 @@ import org.kie.dmn.feel.lang.impl.FEELEventListenersManager;
 import org.mockito.ArgumentCaptor;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static 
org.kie.dmn.feel.codegen.feel11.CodegenTestUtil.newEmptyEvaluationContext;
+import static 
org.kie.dmn.feel.util.EvaluationContextTestUtil.newEmptyEvaluationContext;
 import static 
org.kie.dmn.feel.lang.ast.forexpressioniterators.ForIterationUtils.getForIteration;
 import static 
org.kie.dmn.feel.lang.ast.forexpressioniterators.ForIterationUtils.validateValues;
 import static 
org.kie.dmn.feel.lang.ast.forexpressioniterators.ForIterationUtils.valueMustBeValid;
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELCompilerTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELCompilerTest.java
index 80502839d7..f3b34fef4f 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELCompilerTest.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELCompilerTest.java
@@ -25,7 +25,7 @@ import java.util.Collections;
 import java.util.List;
 
 import org.junit.jupiter.api.Test;
-import org.kie.dmn.feel.codegen.feel11.CodegenTestUtil;
+import org.kie.dmn.feel.util.EvaluationContextTestUtil;
 import org.kie.dmn.feel.codegen.feel11.CompiledFEELExpression;
 import org.kie.dmn.feel.lang.EvaluationContext;
 import org.kie.dmn.feel.lang.FEELProperty;
@@ -226,7 +226,7 @@ public class FEELCompilerTest {
         CompiledFEELExpression nameRef = CompilerUtils.parseInterpreted("[ 
{x:1, y:2}, {x:2, y:3} ][x]");
         LOG.debug("{}", nameRef);
         
-        EvaluationContext context = 
CodegenTestUtil.newEmptyEvaluationContext();
+        EvaluationContext context = 
EvaluationContextTestUtil.newEmptyEvaluationContext();
         context.setValue("x", 2);
         Object result = nameRef.apply(context);
         LOG.debug("{}", result);
@@ -239,7 +239,7 @@ public class FEELCompilerTest {
         CompiledFEELExpression nameRef = CompilerUtils.parseInterpreted("[ 
{x:1, y:2}, {x:2, y:3} ][x]");
         LOG.debug("{}", nameRef);
 
-        EvaluationContext context = 
CodegenTestUtil.newEmptyEvaluationContext();
+        EvaluationContext context = 
EvaluationContextTestUtil.newEmptyEvaluationContext();
         context.setValue("x", false);
         Object result = nameRef.apply(context);
         LOG.debug("{}", result);
@@ -410,7 +410,7 @@ public class FEELCompilerTest {
         CompiledFEELExpression nameRef = parseInterpreted(inputExpression, 
mapOf(entry("someSimpleName", BuiltInType.STRING) ) );
         LOG.debug("{}", nameRef);
         
-        EvaluationContext context = 
CodegenTestUtil.newEmptyEvaluationContext();
+        EvaluationContext context = 
EvaluationContextTestUtil.newEmptyEvaluationContext();
         context.setValue("someSimpleName", 123L);
         Object result = nameRef.apply(context);
         LOG.debug("{}", result);
@@ -425,7 +425,7 @@ public class FEELCompilerTest {
         CompiledFEELExpression qualRef = parseInterpreted(inputExpression, 
mapOf(entry("My Person", personType) ) );
         LOG.debug("{}", qualRef);
         
-        EvaluationContext context = 
CodegenTestUtil.newEmptyEvaluationContext();
+        EvaluationContext context = 
EvaluationContextTestUtil.newEmptyEvaluationContext();
         context.setValue("My Person", mapOf( entry("Full Name", "John Doe"), 
entry("Age", 47) ));
         Object result = qualRef.apply(context);
         LOG.debug("{}", result);
@@ -456,7 +456,7 @@ public class FEELCompilerTest {
         CompiledFEELExpression qualRef = parseInterpreted(inputExpression, 
mapOf(entry("My Person", personType) ) );
         LOG.debug("{}", qualRef);
         
-        EvaluationContext context = 
CodegenTestUtil.newEmptyEvaluationContext();
+        EvaluationContext context = 
EvaluationContextTestUtil.newEmptyEvaluationContext();
         context.setValue("My Person", new MyPerson());
         Object result = qualRef.apply(context);
         LOG.debug("{}", result);
@@ -471,7 +471,7 @@ public class FEELCompilerTest {
         CompiledFEELExpression qualRef = parseInterpreted(inputExpression, 
mapOf(entry("a date", dateType)));
         LOG.debug("{}", qualRef);
         
-        EvaluationContext context = 
CodegenTestUtil.newEmptyEvaluationContext();
+        EvaluationContext context = 
EvaluationContextTestUtil.newEmptyEvaluationContext();
         context.setValue("a date", LocalDate.of(2016, 8, 2));
         Object result = qualRef.apply(context);
         LOG.debug("{}", result);
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELOperatorsTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELOperatorsTest.java
index 92258af10b..5d167665c7 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELOperatorsTest.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/FEELOperatorsTest.java
@@ -127,6 +127,8 @@ public class FEELOperatorsTest extends BaseFEELTest {
                 {"(function(a: context<a: string>) {b: \"b\", c: \"c\"}) 
instance of function<context<a: string, b: string>>->context<b: string>", 
Boolean.TRUE , null},
                 {"(function(a: context<a: string, b: string>) \"foo\") 
instance of function<context<a: string>>->string", Boolean.FALSE , null},
                 {"(function(a: context<a: string>, b: context<a: string, b: 
string>) \"foo\") instance of function<context<a: string, b: string>,context<a: 
string, b: string, c: string>>->string", Boolean.TRUE , null},
+                {"range(\"[1..3]\") instance of range<number>", Boolean.TRUE , 
null},
+                {"range(\"[1..3]\") instance of range<string>", Boolean.FALSE 
, null}
         };
         return addAdditionalParameters(cases, false);
     }
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/BaseFEELFunctionHelperTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/BaseFEELFunctionHelperTest.java
index 9143712030..b8d51268fa 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/BaseFEELFunctionHelperTest.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/BaseFEELFunctionHelperTest.java
@@ -30,7 +30,7 @@ import java.util.stream.IntStream;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.kie.dmn.feel.codegen.feel11.CodegenTestUtil;
+import org.kie.dmn.feel.util.EvaluationContextTestUtil;
 import org.kie.dmn.feel.lang.EvaluationContext;
 import org.kie.dmn.feel.lang.impl.NamedParameter;
 import org.kie.dmn.feel.runtime.FEELFunction;
@@ -44,7 +44,7 @@ class BaseFEELFunctionHelperTest {
 
     @BeforeEach
     public void setUp() {
-        ctx = CodegenTestUtil.newEmptyEvaluationContext();
+        ctx = EvaluationContextTestUtil.newEmptyEvaluationContext();
     }
 
     @Test
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/BaseFEELFunctionTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/BaseFEELFunctionTest.java
index f5deff2214..af32bcc9c6 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/BaseFEELFunctionTest.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/BaseFEELFunctionTest.java
@@ -31,7 +31,7 @@ import java.util.List;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.kie.dmn.feel.codegen.feel11.CodegenTestUtil;
+import org.kie.dmn.feel.util.EvaluationContextTestUtil;
 import org.kie.dmn.feel.lang.EvaluationContext;
 import org.kie.dmn.feel.lang.ast.BaseNode;
 import org.kie.dmn.feel.lang.ast.InfixOpNode;
@@ -51,7 +51,7 @@ class BaseFEELFunctionTest {
 
     @BeforeEach
     public void setUp() {
-        ctx = CodegenTestUtil.newEmptyEvaluationContext();
+        ctx = EvaluationContextTestUtil.newEmptyEvaluationContext();
     }
 
     @Test
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/ScorerHelperTest.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/ScorerHelperTest.java
index 71f4bf6934..9cc4098d8c 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/ScorerHelperTest.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/runtime/functions/ScorerHelperTest.java
@@ -24,7 +24,7 @@ import java.util.List;
 import java.util.Random;
 
 import org.junit.jupiter.api.Test;
-import org.kie.dmn.feel.codegen.feel11.CodegenTestUtil;
+import org.kie.dmn.feel.util.EvaluationContextTestUtil;
 import org.kie.dmn.feel.lang.EvaluationContext;
 import org.kie.dmn.feel.lang.impl.NamedParameter;
 
@@ -443,7 +443,7 @@ class ScorerHelperTest {
         retrieved = ScoreHelper.typeIdentityOfParameters.applyAsInt(compares);
         assertThat(retrieved).isEqualTo(500);
 
-        originalInput = new Object[] { 
CodegenTestUtil.newEmptyEvaluationContext(), "String" };
+        originalInput = new Object[] { 
EvaluationContextTestUtil.newEmptyEvaluationContext(), "String" };
         adaptedInput = originalInput;
         parameterTypes = new Class<?>[] { EvaluationContext.class, 
String.class };
         compares = new ScoreHelper.Compares(originalInput, adaptedInput, 
parameterTypes);
@@ -451,7 +451,7 @@ class ScorerHelperTest {
         assertThat(retrieved).isEqualTo(1000);
 
         originalInput = new Object[] { "String" };
-        adaptedInput =  new Object[] { 
CodegenTestUtil.newEmptyEvaluationContext(), "String" };
+        adaptedInput =  new Object[] { 
EvaluationContextTestUtil.newEmptyEvaluationContext(), "String" };
         parameterTypes = new Class<?>[] { EvaluationContext.class, 
String.class };
         compares = new ScoreHelper.Compares(originalInput, adaptedInput, 
parameterTypes);
         retrieved = ScoreHelper.typeIdentityOfParameters.applyAsInt(compares);
@@ -465,7 +465,7 @@ class ScorerHelperTest {
         assertThat(retrieved).isEqualTo(0);
 
         originalInput = new Object[] { "String", 34 };
-        adaptedInput = new Object[] { 
CodegenTestUtil.newEmptyEvaluationContext(), "String", 34 };
+        adaptedInput = new Object[] { 
EvaluationContextTestUtil.newEmptyEvaluationContext(), "String", 34 };
         parameterTypes = new Class<?>[] { EvaluationContext.class, 
String.class, Integer.class };
         compares = new ScoreHelper.Compares(originalInput, adaptedInput, 
parameterTypes);
         retrieved = ScoreHelper.typeIdentityOfParameters.applyAsInt(compares);
@@ -491,7 +491,7 @@ class ScorerHelperTest {
         retrieved = ScoreHelper.typeIdentityOfParameters.applyAsInt(compares);
         assertThat(retrieved).isEqualTo(0);
 
-        originalInput = new Object[] { 
CodegenTestUtil.newEmptyEvaluationContext(), "String" };
+        originalInput = new Object[] { 
EvaluationContextTestUtil.newEmptyEvaluationContext(), "String" };
         parameterTypes = new Class<?>[] { EvaluationContext.class, 
Integer.class };
         compares = new ScoreHelper.Compares(originalInput, null, 
parameterTypes);
         retrieved = ScoreHelper.typeIdentityOfParameters.applyAsInt(compares);
@@ -531,20 +531,20 @@ class ScorerHelperTest {
         retrieved = ScoreHelper.coercedToVarargs.applyAsInt(compares);
         assertThat(retrieved).isEqualTo(coercedToVarargsScore);
 
-        originalInput = new Object[] { 
CodegenTestUtil.newEmptyEvaluationContext(), "String", 34 };
+        originalInput = new Object[] { 
EvaluationContextTestUtil.newEmptyEvaluationContext(), "String", 34 };
         adaptedInput = new Object[] { new Object[] {"String", 34} };
         compares = new ScoreHelper.Compares(originalInput, adaptedInput, null);
         retrieved = ScoreHelper.coercedToVarargs.applyAsInt(compares);
         assertThat(retrieved).isEqualTo(coercedToVarargsScore);
 
         originalInput = new Object[] { "String", 34 };
-        adaptedInput = new Object[] { 
CodegenTestUtil.newEmptyEvaluationContext(), new Object[] {"String", 34} };
+        adaptedInput = new Object[] { 
EvaluationContextTestUtil.newEmptyEvaluationContext(), new Object[] {"String", 
34} };
         compares = new ScoreHelper.Compares(originalInput, adaptedInput, null);
         retrieved = ScoreHelper.coercedToVarargs.applyAsInt(compares);
         assertThat(retrieved).isEqualTo(coercedToVarargsScore);
 
-        originalInput = new Object[] { 
CodegenTestUtil.newEmptyEvaluationContext(), "String", 34 };
-        adaptedInput = new Object[] { 
CodegenTestUtil.newEmptyEvaluationContext(), new Object[] {"String", 34} };
+        originalInput = new Object[] { 
EvaluationContextTestUtil.newEmptyEvaluationContext(), "String", 34 };
+        adaptedInput = new Object[] { 
EvaluationContextTestUtil.newEmptyEvaluationContext(), new Object[] {"String", 
34} };
         compares = new ScoreHelper.Compares(originalInput, adaptedInput, null);
         retrieved = ScoreHelper.coercedToVarargs.applyAsInt(compares);
         assertThat(retrieved).isEqualTo(coercedToVarargsScore);
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/util/CompilerUtils.java 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/util/CompilerUtils.java
index c201ec39ca..3c645548ed 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/util/CompilerUtils.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/util/CompilerUtils.java
@@ -25,7 +25,6 @@ import com.github.javaparser.ast.CompilationUnit;
 import com.github.javaparser.ast.stmt.BlockStmt;
 import org.antlr.v4.runtime.tree.ParseTree;
 import org.kie.dmn.feel.codegen.feel11.ASTCompilerVisitor;
-import org.kie.dmn.feel.codegen.feel11.CodegenTestUtil;
 import org.kie.dmn.feel.codegen.feel11.CompiledFEELExpression;
 import org.kie.dmn.feel.codegen.feel11.CompilerBytecodeLoader;
 import org.kie.dmn.feel.lang.EvaluationContext;
@@ -100,7 +99,7 @@ public class CompilerUtils {
 
     public static Object evaluate(CompiledFEELExpression compiledExpression) {
         LOG.debug("{}", compiledExpression);
-        EvaluationContext emptyContext = 
CodegenTestUtil.newEmptyEvaluationContext();
+        EvaluationContext emptyContext = 
EvaluationContextTestUtil.newEmptyEvaluationContext();
         Object result = compiledExpression.apply(emptyContext);
         LOG.debug("{}", result);
         return result;
diff --git 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/codegen/feel11/CodegenTestUtil.java
 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/util/EvaluationContextTestUtil.java
similarity index 91%
rename from 
kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/codegen/feel11/CodegenTestUtil.java
rename to 
kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/util/EvaluationContextTestUtil.java
index d4697b15d7..72011fb35d 100644
--- 
a/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/codegen/feel11/CodegenTestUtil.java
+++ 
b/kie-dmn/kie-dmn-feel/src/test/java/org/kie/dmn/feel/util/EvaluationContextTestUtil.java
@@ -16,17 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.kie.dmn.feel.codegen.feel11;
+package org.kie.dmn.feel.util;
 
 import org.kie.dmn.feel.lang.EvaluationContext;
 import org.kie.dmn.feel.lang.FEELDialect;
 import org.kie.dmn.feel.lang.impl.EvaluationContextImpl;
 import org.kie.dmn.feel.lang.impl.FEELEventListenersManager;
-import org.kie.dmn.feel.util.ClassLoaderUtil;
 
-public class CodegenTestUtil {
+public class EvaluationContextTestUtil {
 
-    private CodegenTestUtil() {
+    private EvaluationContextTestUtil() {
         // only static methods for util class.
     }
 
diff --git a/kie-dmn/kie-dmn-tck/pom.xml b/kie-dmn/kie-dmn-tck/pom.xml
index 8cd07ebced..83b29b7e35 100644
--- a/kie-dmn/kie-dmn-tck/pom.xml
+++ b/kie-dmn/kie-dmn-tck/pom.xml
@@ -52,7 +52,6 @@
           <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-scm-plugin</artifactId>
-            <version>1.11.1</version>
             <executions>
               <execution>
                 <id>run-tck-suite</id>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to