mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
82 lines
1.1 KiB
Swift
82 lines
1.1 KiB
Swift
// RUN: %target-typecheck-verify-swift -enable-experimental-feature DoExpressions -enable-experimental-feature ImplicitLastExprResults
|
|
// RUN: %target-swift-emit-ir -enable-experimental-feature DoExpressions -enable-experimental-feature ImplicitLastExprResults %s
|
|
|
|
// Required for experimental features
|
|
// REQUIRES: asserts
|
|
|
|
let a = do {
|
|
print("hello")
|
|
6
|
|
}
|
|
|
|
let b = do {
|
|
print("hello")
|
|
if .random() { 5 } else { 6 }
|
|
}
|
|
|
|
let c = do {
|
|
print("hello")
|
|
if .random() {
|
|
print("hello")
|
|
5
|
|
} else {
|
|
6
|
|
}
|
|
}
|
|
|
|
func throwingFn() throws {}
|
|
|
|
func testFn() -> Int {
|
|
print("hello")
|
|
do {
|
|
try throwingFn()
|
|
0
|
|
} catch {
|
|
print("error")
|
|
fatalError()
|
|
}
|
|
}
|
|
|
|
func testClosure() -> Int {
|
|
let fn = {
|
|
print("hello")
|
|
do {
|
|
try throwingFn()
|
|
0
|
|
} catch {
|
|
print("error")
|
|
fatalError()
|
|
}
|
|
}
|
|
return fn()
|
|
}
|
|
|
|
func nestedType1() -> Int {
|
|
let x = do {
|
|
struct S {
|
|
var x: Int
|
|
}
|
|
S(x: 0).x
|
|
}
|
|
return x
|
|
}
|
|
|
|
func nestedType2() -> Int {
|
|
do {
|
|
struct S {
|
|
var x: Int
|
|
}
|
|
S(x: 0).x
|
|
}
|
|
}
|
|
|
|
func doCatch1() -> Int {
|
|
do {
|
|
try throwingFn()
|
|
5
|
|
} catch {
|
|
print("\(error)")
|
|
0
|
|
}
|
|
}
|