struct S { let count = 1 } public class CC { func foo(_ s : S) -> Int { if s.count > 0 { return 1 } else { return 0 } } func getSelf() -> CC { return self } func getSelf(_ i : Int) -> CC { return self } } func foo1(_ c : CC) -> CC{ _ = c.getSelf().getSelf().getSelf().getSelf() _ = c.getSelf(1).getSelf(1).getSelf(1).getSelf(1) return c.getSelf() } protocol Foo { var bar: String { get } } func foo(x: Foo) { _ = x.bar } func testWithoutActuallyEscaping(closure: (Int) -> Void) { withoutActuallyEscaping(closure) { escapable in _ = escapable } } // https://github.com/apple/swift/issues/55403 class C2 { static let main = C2() } func bar(x: C2 = .main) {} // RUN: %target-swift-ide-test -range -pos=7:8 -end-pos=7:19 -source-filename %s | %FileCheck %s -check-prefix=CHECK-BOOL // CHECK-BOOL: Bool // RUN: %target-swift-ide-test -range -pos=22:39 -end-pos=22:48 -source-filename %s | %FileCheck %s -check-prefix=CHECK-PART-EXPR // RUN: %target-swift-ide-test -range -pos=22:29 -end-pos=22:38 -source-filename %s | %FileCheck %s -check-prefix=CHECK-PART-EXPR // RUN: %target-swift-ide-test -range -pos=22:19 -end-pos=22:28 -source-filename %s | %FileCheck %s -check-prefix=CHECK-PART-EXPR // RUN: %target-swift-ide-test -range -pos=22:9 -end-pos=22:18 -source-filename %s | %FileCheck %s -check-prefix=CHECK-PART-EXPR // RUN: %target-swift-ide-test -range -pos=23:42 -end-pos=23:52 -source-filename %s | %FileCheck %s -check-prefix=CHECK-PART-EXPR1 // RUN: %target-swift-ide-test -range -pos=23:31 -end-pos=23:41 -source-filename %s | %FileCheck %s -check-prefix=CHECK-PART-EXPR1 // RUN: %target-swift-ide-test -range -pos=23:20 -end-pos=23:30 -source-filename %s | %FileCheck %s -check-prefix=CHECK-PART-EXPR1 // RUN: %target-swift-ide-test -range -pos=23:9 -end-pos=23:19 -source-filename %s | %FileCheck %s -check-prefix=CHECK-PART-EXPR1 // RUN: %target-swift-ide-test -range -pos=31:7 -end-pos=31:12 -source-filename %s | %FileCheck %s -check-prefix=CHECK-OEE-EXPR // RUN: %target-swift-ide-test -range -pos=35:1 -end-pos=38:1 -source-filename %s | %FileCheck %s -check-prefix=CHECK-MTEE-EXPR-1 // RUN: %target-swift-ide-test -range -pos=35:27 -end-pos=35:34 -source-filename %s | %FileCheck %s -check-prefix=CHECK-MTEE-EXPR-2 // RUN: %target-swift-ide-test -range -pos=35:36 -end-pos=37:4 -source-filename %s | %FileCheck %s -check-prefix=CHECK-MTEE-EXPR-3 // RUN: %target-swift-ide-test -range -pos=45:18 -end-pos=45:23 -source-filename %s | %FileCheck %s -check-prefix=CHECK-DEFAULT-ARGUMENT // CHECK-PART-EXPR: PartOfExpression // CHECK-PART-EXPR-NEXT: getSelf() // CHECK-PART-EXPR-NEXT: swift_ide_test.(file).foo1(_:) // CHECK-PART-EXPR-NEXT: Call // CHECK-PART-EXPR-NEXT: 1 // CHECK-PART-EXPR-NEXT: // CHECK-PART-EXPR1: PartOfExpression // CHECK-PART-EXPR2: getSelf(1) // CHECK-PART-EXPR2: swift_ide_test.(file).foo1(_:) // CHECK-PART-EXPR2: Call // CHECK-PART-EXPR2: 2 // CHECK-PART-EXPR2: // CHECK-OEE-EXPR: SingleExpression // CHECK-OEE-EXPR-NEXT: x.bar // CHECK-OEE-EXPR-NEXT: Stringfalse // CHECK-OEE-EXPR-NEXT: swift_ide_test.(file).foo(x:) // CHECK-OEE-EXPR-NEXT: 1 // CHECK-OEE-EXPR-NEXT: // CHECK-MTEE-EXPR-1: SingleExpression // CHECK-MTEE-EXPR-1-NEXT: withoutActuallyEscaping(closure) { escapable in // CHECK-MTEE-EXPR-1-NEXT: _ = escapable // CHECK-MTEE-EXPR-1-NEXT: } // CHECK-MTEE-EXPR-1-NEXT: ()false // CHECK-MTEE-EXPR-1-NEXT: swift_ide_test.(file).testWithoutActuallyEscaping(closure:) // CHECK-MTEE-EXPR-1-NEXT: escapablefalse // CHECK-MTEE-EXPR-1-NEXT: closure(Int) -> Void // CHECK-MTEE-EXPR-1-NEXT: escapable(Int) -> Void // CHECK-MTEE-EXPR-1-NEXT: 1 // CHECK-MTEE-EXPR-1-NEXT: // CHECK-MTEE-EXPR-2: SingleExpression // CHECK-MTEE-EXPR-2-NEXT: closure // CHECK-MTEE-EXPR-2-NEXT: (Int) -> Voidfalse // CHECK-MTEE-EXPR-2-NEXT: swift_ide_test.(file).testWithoutActuallyEscaping(closure:) // CHECK-MTEE-EXPR-2-NEXT: closure(Int) -> Void // CHECK-MTEE-EXPR-2-NEXT: 1 // CHECK-MTEE-EXPR-2-NEXT: // CHECK-MTEE-EXPR-3: SingleExpression // CHECK-MTEE-EXPR-3-NEXT: { escapable in // CHECK-MTEE-EXPR-3-NEXT: _ = escapable // CHECK-MTEE-EXPR-3-NEXT: } // CHECK-MTEE-EXPR-3-NEXT: (_ escapable: @escaping (Int) -> Void) -> ()false // CHECK-MTEE-EXPR-3-NEXT: swift_ide_test.(file).testWithoutActuallyEscaping(closure:) // CHECK-MTEE-EXPR-3-NEXT: escapablefalse // CHECK-MTEE-EXPR-3-NEXT: escapable(Int) -> Void // CHECK-MTEE-EXPR-3-NEXT: 1 // CHECK-MTEE-EXPR-3-NEXT: // CHECK-DEFAULT-ARGUMENT: SingleExpression // CHECK-DEFAULT-ARGUMENT-NEXT: .main // CHECK-DEFAULT-ARGUMENT-NEXT: C2false // CHECK-DEFAULT-ARGUMENT-NEXT: swift_ide_test.(file).bar(x:) // CHECK-DEFAULT-ARGUMENT-NEXT: 1 // CHECK-DEFAULT-ARGUMENT-NEXT: