mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Many tests that use `-parse-stdlib` only do so because they want access to the Builtin module. Now that we have the flag and ability to import it, use that instead.
50 lines
2.0 KiB
Swift
50 lines
2.0 KiB
Swift
// RUN: %target-typecheck-verify-swift -enable-builtin-module -debug-constraints > %t.log 2>&1
|
|
// RUN: %FileCheck %s < %t.log
|
|
import Builtin
|
|
|
|
|
|
func takeDoubleAndBool(_: Double, _: Bool) { }
|
|
|
|
func testTernaryOneWay(b: Bool, b2: Bool) {
|
|
// CHECK: ---Connected components---
|
|
// CHECK-NEXT: 3: $T{{[0-9]+}} depends on 1
|
|
// CHECK-NEXT: 1: $T{{[0-9]+}} $T{{[0-9]+}} $T{{[0-9]+}} depends on 0, 2
|
|
// CHECK-NEXT: 2: $T{{[0-9]+}}
|
|
// CHECK-NEXT: 0: $T{{[0-9]+}}
|
|
// CHECK-NEXT: 4: $T{{[0-9]+}} $T{{[0-9]+}} $T{{[0-9]+}}
|
|
takeDoubleAndBool(
|
|
Builtin.one_way(
|
|
b ? Builtin.one_way(3.14159) : Builtin.one_way(2.71828)),
|
|
b == true)
|
|
}
|
|
|
|
func int8Or16(_ x: Int8) -> Int8 { return x }
|
|
func int8Or16(_ x: Int16) -> Int16 { return x }
|
|
|
|
func testTernaryOneWayOverload(b: Bool) {
|
|
// CHECK: ---Connected components---
|
|
// CHECK: 1: [[A:\$T[0-9]+]] [[B:\$T[0-9]+]] [[C:\$T[0-9]+]] depends on 0, 2
|
|
// CHECK: 2: $T{{[0-9]+}} $T{{[0-9]+}} $T{{[0-9]+}}
|
|
// CHECK: 0: $T{{[0-9]+}} $T{{[0-9]+}} $T{{[0-9]+}}
|
|
|
|
// CHECK: solving component #1
|
|
// CHECK: (attempting type variable binding [[C]] := Int8
|
|
|
|
// CHECK: solving component #1
|
|
// CHECK: (attempting type variable binding [[C]] := Int8
|
|
|
|
// CHECK: solving component #1
|
|
// CHECK: (attempting type variable binding [[C]] := Int8
|
|
|
|
// CHECK: solving component #1
|
|
// CHECK: (attempting type variable binding [[C]] := Int8
|
|
// CHECK: (considering: $T{{[0-9]+}} conv [[C]]
|
|
// CHECK: (considering: $T{{[0-9]+}} conv [[C]]
|
|
// CHECK: (considering: [[C]] conv Int8
|
|
// CHECK: (found solution: [component: non-default literal(s), value: 2] [component: use of overloaded unapplied function(s), value: 2])
|
|
|
|
// CHECK: (composed solution: [component: non-default literal(s), value: 2] [component: use of overloaded unapplied function(s), value: 2])
|
|
// CHECK-NOT: (composed solution: [component: non-default literal(s), value: 2] [component: use of overloaded unapplied function(s), value: 2])
|
|
let _: Int8 = b ? Builtin.one_way(int8Or16(17)) : Builtin.one_way(int8Or16(42))
|
|
}
|