summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2023-03-07 15:23:45 +0100
committerGitHub <noreply@github.com>2023-03-07 15:23:45 +0100
commit56057c40b54fc5b031ab9c2bfea9450e0ee77993 (patch)
tree956656920d38c4f508a19bfa5cd222c263ae9123 /searchlib
parent0d569d1ba3661484b3d30c94dadae9d0444ffe98 (diff)
parent1197f63fe1a32b3e17493c9387527ac1c4e40cff (diff)
Merge pull request #26338 from vespa-engine/arnej/declare-more-function-return-types
Arnej/declare more function return types
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java
index e2fffd824b9..c157f44be31 100644
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java
@@ -104,7 +104,11 @@ public class SerializationContext extends FunctionReferenceContext {
/** Adds the serialization of the return type of a function */
public void addFunctionTypeSerialization(String functionName, TensorType type) {
if (type.rank() == 0) return; // no explicit type implies scalar (aka rank 0 tensor)
- serializedFunctions.put(wrapInRankingExpression(functionName) + ".type", type.toString());
+ String key = wrapInRankingExpression(functionName) + ".type";
+ var old = serializedFunctions.put(key, type.toString());
+ if (old != null && !old.equals(type.toString())) {
+ throw new IllegalArgumentException("conflicting values for " + key + ": " + old + " != " + type.toString());
+ }
}
@Override