blob: 0eff5addfff590afdddad9928be62c3a743b31b4 [file] [log] [blame]
// RUN: %target-typecheck-verify-swift
//===----------------------------------------------------------------------===//
// Refer to members of literals
//===----------------------------------------------------------------------===//
func testLiteralMembers() {
_ = 0._value
Int(0._value) // expected-warning{{unused}}
}
//===----------------------------------------------------------------------===//
// Overloading with literals
//===----------------------------------------------------------------------===//
func ovlLitA(_: Int32) -> Int32 {}
func ovlLitA(_: Int64) -> Int64 {}
func ovlLitB(_: Int32) -> Int32 {} // expected-note{{}}
func ovlLitB(_: Int64) -> Int64 {} // expected-note{{}}
func testLiteralOverloadingovlLitB() {
var y32 : Int32 = ovlLitA(ovlLitB(0))
var y64 : Int64 = ovlLitA(ovlLitB(0))
var y /*: Int*/ = ovlLitA(ovlLitB(0)) // expected-error{{ambiguous use of 'ovlLitB'}}
}
func literalOverloadSameReturn(_ i: Int) -> Int {}
func literalOverloadSameReturn(_ i: Int32) -> Int {}
func literalOverload2() {
var _ : Int = literalOverloadSameReturn(literalOverloadSameReturn(1))
}
//===----------------------------------------------------------------------===//
// Literals and protocols
//===----------------------------------------------------------------------===//
protocol CanWibble {
func wibble()
}
extension Int : CanWibble {
func wibble() {}
}
func doWibble(_: CanWibble) {}
func testWibble() {
doWibble(1)
doWibble(3.14) // expected-error{{argument type 'Double' does not conform to expected type 'CanWibble'}}
}