| // RUN: %empty-directory(%t) |
| // RUN: cp %s %t/main.swift |
| // RUN: %target-build-swift -Xfrontend -playground -o %t/main %S/Inputs/PlaygroundsRuntime.swift %t/main.swift |
| // RUN: %target-codesign %t/main |
| // RUN: %target-run %t/main | %FileCheck %s |
| // RUN: %target-build-swift -Xfrontend -pc-macro -Xfrontend -playground -o %t/main2 %S/Inputs/PlaygroundsRuntime.swift %S/Inputs/SilentPCMacroRuntime.swift %t/main.swift -module-name main |
| // RUN: %target-codesign %t/main2 |
| // RUN: %target-run %t/main2 | %FileCheck %s |
| // REQUIRES: executable_test |
| |
| class A { |
| func access() -> Void { |
| } |
| } |
| |
| class B { |
| var a : A = A() |
| init() { |
| a.access() |
| } |
| func mutateIvar() -> Void { |
| a.access() |
| } |
| } |
| |
| var b = B() |
| b.mutateIvar() |
| // CHECK: [{{.*}}] __builtin_log_scope_entry |
| // CHECK-NEXT: [{{.*}}] __builtin_log_scope_entry |
| // CHECK-NEXT: [{{.*}}] __builtin_log_scope_exit |
| // note: b.a should not be reported here because we are in init() |
| // CHECK-NEXT: [{{.*}}] __builtin_log_scope_exit |
| // CHECK-NEXT: [{{.*}}] __builtin_log[b='main.B'] |
| // CHECK-NEXT: [{{.*}}] __builtin_log_scope_entry |
| // CHECK-NEXT: [{{.*}}] __builtin_log_scope_entry |
| // CHECK-NEXT: [{{.*}}] __builtin_log_scope_exit |
| // CHECK-NEXT: [{{.*}}] __builtin_log[a='main.A'] |
| // CHECK-NEXT: [{{.*}}] __builtin_log_scope_exit |
| // CHECK-NEXT: [{{.*}}] __builtin_log[b='main.B'] |