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; |