Index: /trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java	(revision 10773)
+++ /trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java	(revision 10774)
@@ -271,30 +271,4 @@
         }
 
-        /**
-         * Tests whether one of the primitives matches.
-         * @param primitives primitives
-         * @return {@code true} if one of the primitives matches, {@code false} otherwise
-         */
-        protected boolean existsMatch(Collection<? extends OsmPrimitive> primitives) {
-            for (OsmPrimitive p : primitives) {
-                if (match(p))
-                    return true;
-            }
-            return false;
-        }
-
-        /**
-         * Tests whether all primitives match.
-         * @param primitives primitives
-         * @return {@code true} if all primitives match, {@code false} otherwise
-         */
-        protected boolean forallMatch(Collection<? extends OsmPrimitive> primitives) {
-            for (OsmPrimitive p : primitives) {
-                if (!match(p))
-                    return false;
-            }
-            return true;
-        }
-
         @Override
         public final boolean test(OsmPrimitive object) {
@@ -1473,20 +1447,13 @@
                 return false;
             else if (osm instanceof Node) {
+                LatLon coordinate = ((Node) osm).getCoor();
                 Collection<Bounds> allBounds = getBounds(osm);
-                if (allBounds != null) {
-                    LatLon coor = ((Node) osm).getCoor();
-                    for (Bounds bounds: allBounds) {
-                        if (bounds.contains(coor)) {
-                            return true;
-                        }
-                    }
-                }
-                return false;
+                return allBounds != null && allBounds.stream().anyMatch(bounds -> bounds.contains(coordinate));
             } else if (osm instanceof Way) {
                 Collection<Node> nodes = ((Way) osm).getNodes();
-                return all ? forallMatch(nodes) : existsMatch(nodes);
+                return all ? nodes.stream().allMatch(this) : nodes.stream().anyMatch(this);
             } else if (osm instanceof Relation) {
-                Collection<OsmPrimitive> primitives = ((Relation) osm).getMemberPrimitives();
-                return all ? forallMatch(primitives) : existsMatch(primitives);
+                Collection<OsmPrimitive> primitives = ((Relation) osm).getMemberPrimitivesList();
+                return all ? primitives.stream().allMatch(this) : primitives.stream().anyMatch(this);
             } else
                 return false;
