blob: 5febd582f4de9bd2244ecbfec6e874ee3ba70bff [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