From bc47f40b0dd352d3bf9dc8228fbf0279ac67e907 Mon Sep 17 00:00:00 2001 From: Nathan Harmata Date: Wed, 13 Jul 2016 16:22:30 +0000 Subject: Re-implement variables in the blaze query language. Instead of using a mutable global context of variable bindings, pass around immutable local contexts. The motivation is so we can safely evaluate all blaze query expressions concurrently under the hood. A global context is hostile to this goal. -- MOS_MIGRATED_REVID=127324600 --- .../devtools/build/lib/query2/engine/LabelsFunction.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/query2/engine/LabelsFunction.java') diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/LabelsFunction.java b/src/main/java/com/google/devtools/build/lib/query2/engine/LabelsFunction.java index a13f42cfb8..140e732437 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/engine/LabelsFunction.java +++ b/src/main/java/com/google/devtools/build/lib/query2/engine/LabelsFunction.java @@ -52,12 +52,16 @@ class LabelsFunction implements QueryFunction { } @Override - public void eval(final QueryEnvironment env, final QueryExpression expression, - final List args, final Callback callback) + public void eval( + final QueryEnvironment env, + VariableContext context, + final QueryExpression expression, + final List args, + final Callback callback) throws QueryException, InterruptedException { final String attrName = args.get(0).getWord(); final Uniquifier uniquifier = env.createUniquifier(); - env.eval(args.get(1).getExpression(), new Callback() { + env.eval(args.get(1).getExpression(), context, new Callback() { @Override public void process(Iterable partialResult) throws QueryException, InterruptedException { for (T input : partialResult) { -- cgit v1.2.3