diff options
Diffstat (limited to 'plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/expression/ast/CollectionExpression.java')
-rw-r--r-- | plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/expression/ast/CollectionExpression.java | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/expression/ast/CollectionExpression.java b/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/expression/ast/CollectionExpression.java index 10e76e3a..d38cf927 100644 --- a/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/expression/ast/CollectionExpression.java +++ b/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/expression/ast/CollectionExpression.java @@ -117,6 +117,7 @@ public class CollectionExpression extends FeatureCall { } private Object executeForAll(final Collection collection, ExecutionContext ctx) { + if ( collection.size()== 0) return Boolean.FALSE; for (final Iterator iter = collection.iterator(); iter.hasNext();) { ctx = ctx.cloneWithVariable(new Variable(getElementName(), iter.next())); final Object result = closure.evaluate(ctx); @@ -137,13 +138,8 @@ public class CollectionExpression extends FeatureCall { } private Object executeNotExists(final Collection collection, ExecutionContext ctx) { - for (final Iterator iter = collection.iterator(); iter.hasNext();) { - ctx = ctx.cloneWithVariable(new Variable(getElementName(), iter.next())); - final Object result = closure.evaluate(ctx); - if (result instanceof Boolean && ((Boolean) result).booleanValue()) - return Boolean.FALSE; - } - return Boolean.TRUE; + Boolean bool = (Boolean) executeExists(collection, ctx); + return Boolean.valueOf(!bool); } private Object executeReject(final Collection collection, ExecutionContext ctx) { |