Add some regression tests

This commit is contained in:
Slava Pestov
2025-12-10 13:50:48 -05:00
parent da8b721654
commit a0927392f3
5 changed files with 72 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
// RUN: %target-typecheck-verify-swift -solver-scope-threshold=110000
func slow() {
print(Array(1...5).filter({ $0 < 3 }).map({ $0 * 10 }).reduce(0, +))
}

View File

@@ -0,0 +1,21 @@
// RUN: %target-typecheck-verify-swift -solver-scope-threshold=100
class Something {
var placeName: String? = "Home"
var streetAddress: String? = "123 Home Street"
var cityTown: String? = "New Hometown"
var state: String? = "HO"
var zipCode: String? = "12345"
var coordinate = (latitude: 40.5, longitude: 40.5)
var description: String {
return "-----------------------------\n" +
"Place Name: \(placeName ?? "")\n" +
"Street Address: \(streetAddress ?? "")\n" +
"City: \(cityTown ?? "")\n" +
"State: \(state ?? "")\n" +
"Zip Code: \(zipCode ?? "")\n" +
"Coordinate: latitude: \(coordinate.latitude) longitude \(coordinate.longitude)\n" +
"-----------------------------\n"
}
}

View File

@@ -0,0 +1,25 @@
// RUN: %target-swift-frontend -emit-ir %s
struct P<A, B> { let l: A; let r: B }
struct Value { let v: Double? }
func +<A, B, C>(l: P<A, C>, r: P<B, C>) -> P<(A, B), C> {
return P(l: (l.l, r.l), r: l.r)
}
infix operator <!>
func <!> <A>(l: A?, r: A) -> A {
return l == nil ? r : l!
}
func <!> <A, B, C>(l: P<A, B>, r: () -> C) -> P<A, C> {
return P(l: l.l, r: r())
}
let xs: [Value] = []
let a: String = String(xs.reduce(0.0, { (acc, i) in
acc + (i.v <!> 0)
}))
print(a)

View File

@@ -0,0 +1,11 @@
// RUN: not %target-swift-frontend -typecheck %s
struct X: ExpressibleByStringLiteral {
let i: Int
}
enum E: X {
case fooBar = "A"
}
print(E.fooBar)

View File

@@ -0,0 +1,10 @@
// RUN: %target-swift-frontend -emit-ir %s
func test(_ data: UnsafePointer<Int8>?, len: Int) {
data?.withMemoryRebound(to: UInt8.self, capacity: len) {
data in
for i in 0..<len {
print("\(data[i])")
}
}
}