Chromium Code Reviews| Index: pkg/polymer_expressions/lib/eval.dart |
| diff --git a/pkg/polymer_expressions/lib/eval.dart b/pkg/polymer_expressions/lib/eval.dart |
| index be2fdec6245a73779b9a518331d8852be6c583db..8c3305a9cbbfbc08706b57d78b99c25ffc72f4d6 100644 |
| --- a/pkg/polymer_expressions/lib/eval.dart |
| +++ b/pkg/polymer_expressions/lib/eval.dart |
| @@ -215,21 +215,6 @@ class Scope { |
| } |
| } |
| - bool contains(String name) { |
| - if (_variables.containsKey(name)) { |
| - return true; |
| - } else { |
| - var symbol = new Symbol(name); |
| - var classMirror = _modelMirror.type; |
| - if (getMemberMirror(classMirror, symbol) != null) { |
| - return true; |
| - } |
| - } |
| - if (parent != null) { |
| - return parent.contains(name); |
| - } |
| - return false; |
| - } |
| } |
| Object _convert(v) { |
| @@ -290,11 +275,6 @@ class Updater extends RecursiveVisitor { |
| visitExpression(ExpressionObserver e) { |
| e._observe(scope); |
| } |
| - |
| - visitInExpression(InObserver c) { |
| - visit(c.right); |
| - visitExpression(c); |
| - } |
| } |
| class ObserverBuilder extends Visitor { |
| @@ -389,14 +369,13 @@ class ObserverBuilder extends Visitor { |
| } |
| visitInExpression(InExpression i) { |
| - // don't visit the left. It's an identifier, but we don't want to evaluate |
| - // it, we just want to add it to the comprehension object |
| - var left = visit(i.left); |
| - var right = visit(i.right); |
| - var inexpr = new InObserver(i, left, right); |
| - right._parent = inexpr; |
| - return inexpr; |
| + throw "can't eval an in expression"; |
|
Jennifer Messerly
2014/01/31 02:48:50
throw new UnsupportedError?
justinfagnani
2014/03/12 23:21:30
Done.
|
| + } |
| + |
| + visitAsExpression(AsExpression i) { |
| + throw "can't eval an as expression"; |
| } |
| + |
| } |
| class EmptyObserver extends ExpressionObserver<EmptyExpression> |
| @@ -676,32 +655,6 @@ class InvokeObserver extends ExpressionObserver<Invoke> implements Invoke { |
| accept(Visitor v) => v.visitInvoke(this); |
| } |
| -class InObserver extends ExpressionObserver<InExpression> |
| - implements InExpression { |
| - IdentifierObserver left; |
| - ExpressionObserver right; |
| - |
| - InObserver(Expression expr, this.left, this.right) : super(expr); |
| - |
| - _updateSelf(Scope scope) { |
| - Identifier identifier = left; |
| - var iterable = right._value; |
| - |
| - if (iterable is! Iterable && iterable != null) { |
| - throw new EvalException("right side of 'in' is not an iterator"); |
| - } |
| - |
| - if (iterable is ObservableList) { |
| - _subscription = iterable.listChanges.listen((_) => _invalidate(scope)); |
| - } |
| - |
| - // TODO: make Comprehension observable and update it |
| - _value = new Comprehension(identifier.value, iterable); |
| - } |
| - |
| - accept(Visitor v) => v.visitInExpression(this); |
| -} |
| - |
| _toBool(v) => (v == null) ? false : v; |
| /** Call a [Function] or a [Method]. */ |
| @@ -718,19 +671,6 @@ Object call(Object receiver, List args) { |
| return _convert(result); |
| } |
| -/** |
| - * A comprehension declaration ("a in b"). [identifier] is the loop variable |
| - * that's added to the scope during iteration. [iterable] is the set of |
| - * objects to iterate over. |
| - */ |
| -class Comprehension { |
| - final String identifier; |
| - final Iterable iterable; |
| - |
| - Comprehension(this.identifier, Iterable iterable) |
| - : iterable = (iterable != null) ? iterable : const []; |
| -} |
| - |
| /** A method on a model object in a [Scope]. */ |
| class Method { |
| final InstanceMirror mirror; |