summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2019-12-04 04:52:16 -0800
committerJon Bratseth <bratseth@verizonmedia.com>2019-12-04 04:52:16 -0800
commita71001d66ada9eaf4ae89d896fea60a39ea2056b (patch)
tree4cd063b18eb095407df8a4e244564d8bfc690de5 /config-model
parent78b29e76f2bab63f7cec92f4c1fd9e7661602df7 (diff)
Propagate binding context to/from tensor functions
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/MapEvaluationTypeContext.java10
1 files changed, 5 insertions, 5 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/MapEvaluationTypeContext.java b/config-model/src/main/java/com/yahoo/searchdefinition/MapEvaluationTypeContext.java
index a54e21aae68..2be3022ce6e 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/MapEvaluationTypeContext.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/MapEvaluationTypeContext.java
@@ -108,7 +108,8 @@ public class MapEvaluationTypeContext extends FunctionReferenceContext implement
if (FeatureNames.isSimpleFeature(reference)) {
// The argument may be a local identifier bound to the actual value
String argument = reference.simpleArgument().get();
- reference = Reference.simple(reference.name(), bindings.getOrDefault(argument, argument));
+ String argumentBinding = getBinding(argument);
+ reference = Reference.simple(reference.name(), argumentBinding != null ? argumentBinding : argument);
return featureTypes.get(reference);
}
@@ -152,7 +153,7 @@ public class MapEvaluationTypeContext extends FunctionReferenceContext implement
private Optional<String> boundIdentifier(Reference reference) {
if ( ! reference.arguments().isEmpty()) return Optional.empty();
if ( reference.output() != null) return Optional.empty();
- return Optional.ofNullable(bindings.get(reference.name()));
+ return Optional.ofNullable(getBinding(reference.name()));
}
private Optional<ExpressionFunction> functionInvocation(Reference reference) {
@@ -203,8 +204,8 @@ public class MapEvaluationTypeContext extends FunctionReferenceContext implement
Map<String, String> bindings = new HashMap<>(formalArguments.size());
for (int i = 0; i < formalArguments.size(); i++) {
String identifier = invocationArguments.expressions().get(i).toString();
- identifier = super.bindings.getOrDefault(identifier, identifier);
- bindings.put(formalArguments.get(i), identifier);
+ String identifierBinding = super.getBinding(identifier);
+ bindings.put(formalArguments.get(i), identifierBinding != null ? identifierBinding : identifier);
}
return bindings;
}
@@ -215,7 +216,6 @@ public class MapEvaluationTypeContext extends FunctionReferenceContext implement
@Override
public MapEvaluationTypeContext withBindings(Map<String, String> bindings) {
- if (bindings.isEmpty() && this.bindings.isEmpty()) return this;
return new MapEvaluationTypeContext(functions(), bindings, featureTypes, currentResolutionCallStack);
}