Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java10
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) {

Back to the top