mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Reinstante var bindings in refutable patterns, except function parameters.
This reverts commits:b96e06da44,8f2fbdc93a,93b6962478,64024118f4,a759ca9141,3434f9642b,9f33429891,47c043e8a6. This commit leaves 'var' on function parameters as a warning to be merged into Swift 2.2. For Swift 3, this will be an error, to be converted in a follow-up.
This commit is contained in:
@@ -74,19 +74,16 @@ extension SequenceType ${"" if preds else "where Generator.Element : Comparable"
|
||||
@noescape isOrderedBefore: (${GElement}, ${GElement}) throws -> Bool
|
||||
% end
|
||||
) ${rethrows_}-> ${GElement}? {
|
||||
var minResult: ${GElement}? = nil
|
||||
for e in GeneratorSequence(generate()) {
|
||||
if let currentMinResult = minResult {
|
||||
var g = generate()
|
||||
guard var result = g.next() else { return nil }
|
||||
for e in GeneratorSequence(g) {
|
||||
% if preds:
|
||||
if try isOrderedBefore(e, currentMinResult) { minResult = e }
|
||||
if try isOrderedBefore(e, result) { result = e }
|
||||
% else:
|
||||
if e < currentMinResult { minResult = e }
|
||||
if e < result { result = e }
|
||||
% end
|
||||
} else {
|
||||
minResult = e
|
||||
}
|
||||
}
|
||||
return minResult
|
||||
return result
|
||||
}
|
||||
|
||||
/// Returns the maximum element in `self` or `nil` if the sequence is empty.
|
||||
@@ -99,19 +96,16 @@ extension SequenceType ${"" if preds else "where Generator.Element : Comparable"
|
||||
@noescape isOrderedBefore: (${GElement}, ${GElement}) throws -> Bool
|
||||
% end
|
||||
) ${rethrows_}-> ${GElement}? {
|
||||
var maxResult: ${GElement}? = nil
|
||||
for e in GeneratorSequence(generate()) {
|
||||
if let currentMaxResult = maxResult {
|
||||
var g = generate()
|
||||
guard var result = g.next() else { return nil }
|
||||
for e in GeneratorSequence(g) {
|
||||
% if preds:
|
||||
if try isOrderedBefore(currentMaxResult, e) { maxResult = e }
|
||||
if try isOrderedBefore(result, e) { result = e }
|
||||
% else:
|
||||
if e > currentMaxResult { maxResult = e }
|
||||
if e > result { result = e }
|
||||
% end
|
||||
} else {
|
||||
maxResult = e
|
||||
}
|
||||
}
|
||||
return maxResult
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user