blob: 223e6c31c271f735cdc4907c741054d09f419af1 [file] [log] [blame]
// RUN: %target-run-simple-swift | %FileCheck %s
// REQUIRES: executable_test
// <rdar://problem/13986638> Missing Bool metadata when Bool is used as a generic
// parameter or existential value
prefix operator !!
infix operator &&&
protocol BooleanProtocol {
var boolValue: Bool { get }
}
extension Bool : BooleanProtocol {
var boolValue: Bool { return self }
}
prefix func !!<T : BooleanProtocol>(x: T) -> Bool {
return x.boolValue
}
func &&&(x: BooleanProtocol, y: @autoclosure () -> BooleanProtocol) -> Bool {
return x.boolValue ? y().boolValue : false
}
print(!!true) // CHECK: true
print(!!false) // CHECK: false
print(true &&& true) // CHECK: true
print(true &&& false) // CHECK: false