File tree Expand file tree Collapse file tree 2 files changed +23
-1
lines changed Expand file tree Collapse file tree 2 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -339,7 +339,7 @@ extension LazyFilterSequence {
339
339
_ isIncluded: @escaping ( Element ) -> Bool
340
340
) -> LazyFilterSequence < Base > {
341
341
return LazyFilterSequence ( _base: _base) {
342
- isIncluded ( $0) && self . _predicate ( $0)
342
+ self . _predicate ( $0) && isIncluded ( $0)
343
343
}
344
344
}
345
345
}
Original file line number Diff line number Diff line change @@ -73,4 +73,26 @@ FilterTests.test("single-count") {
73
73
expectEqual ( 30 , count)
74
74
}
75
75
76
+ FilterTests . test ( " chained filter order " ) {
77
+ let array = [ 1 ]
78
+
79
+ let lazyFilter = array. lazy
80
+ . filter { _ in false }
81
+ . filter { _ in
82
+ expectUnreachable ( " Executed second filter before first " )
83
+ return true
84
+ }
85
+ let lazyResult = Array ( lazyFilter)
86
+
87
+ let result = array
88
+ . filter { _ in false }
89
+ . filter { _ in
90
+ expectUnreachable ( " Executed second filter before first " )
91
+ return true
92
+ }
93
+
94
+ expectEqual ( lazyResult. count, 0 )
95
+ expectEqual ( result. count, 0 )
96
+ }
97
+
76
98
runAllTests ( )
You can’t perform that action at this time.
0 commit comments