diff options
author | Arne Juul <arnej@yahooinc.com> | 2023-03-07 11:30:00 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahooinc.com> | 2023-03-07 11:30:00 +0000 |
commit | 6d4608361bfbb12cee3e0905d8e6763605ce7abf (patch) | |
tree | f88c27fa12d4bd9cc3c9c147e0c6a5f50a6a9b8e /searchlib | |
parent | 6a3858bbff93e2075999aebafdc26105f8f21b4b (diff) |
ensure consistent function type if addFunctionTypeSerialization() is called multiple times
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/SerializationContext.java | 6 |
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 |