diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-12-04 04:52:16 -0800 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-12-04 04:52:16 -0800 |
commit | a71001d66ada9eaf4ae89d896fea60a39ea2056b (patch) | |
tree | 4cd063b18eb095407df8a4e244564d8bfc690de5 /config-model | |
parent | 78b29e76f2bab63f7cec92f4c1fd9e7661602df7 (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.java | 10 |
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); } |