2
2
// RUN: %empty-directory(%t-scratch)
3
3
// RUN: %target-build-swift -I %swift-host-lib-dir -L %swift-host-lib-dir -emit-library -o %t/%target-library-name(MacroDefinition) -module-name=MacroDefinition %S/Inputs/syntax_macro_definitions.swift -g -no-toolchain-stdlib-rpath
4
4
// RUN: %target-swift-frontend -emit-module -o %t/macro_library.swiftmodule %S/Inputs/macro_library.swift -module-name macro_library -enable-experimental-feature Macros -load-plugin-library %t/%target-library-name(MacroDefinition) -I %swift-host-lib-dir
5
- // RUN: %target-swift-frontend -typecheck -I%t -verify -primary-file %s %S/Inputs/macro_expand_other.swift -verify-ignore-unknown -enable-experimental-feature Macros -load-plugin-library %t/%target-library-name(MacroDefinition) -I %swift-host-lib-dir
5
+ // RUN: %target-swift-frontend -typecheck -I%t -verify -primary-file %s %S/Inputs/macro_expand_other.swift -verify-ignore-unknown -enable-experimental-feature Macros -load-plugin-library %t/%target-library-name(MacroDefinition) -I %swift-host-lib-dir -dump-macro-expansions > %t/expansions-dump.txt 2>&1
6
+ // RUN: %FileCheck -check-prefix=CHECK-DUMP %s < %t/expansions-dump.txt
6
7
7
8
// REQUIRES: asserts
8
9
// REQUIRES: OS=macosx
@@ -13,10 +14,65 @@ struct Treat {}
13
14
14
15
@Observable
15
16
final class Dog : Observable {
17
+ // CHECK-DUMP: public nonisolated func addObserver
18
+ // CHECK-DUMP: public nonisolated func removeObserver
19
+
20
+ // CHECK-DUMP: private struct Storage {
21
+ // CHECK-DUMP: var name: String?
22
+ // CHECK-DUMP: var treat: Treat?
23
+ // CHECK-DUMP: var isHappy: Bool = true
24
+ // CHECK-DUMP: }
25
+
16
26
var name : String ?
27
+ // CHECK-DUMP: get {
28
+ // CHECK-DUMP: _registrar.beginAccess(\.name)
29
+ // CHECK-DUMP: defer { _registrar.endAccess() }
30
+ // CHECK-DUMP: return _storage.name
31
+ // CHECK-DUMP: }
32
+ // CHECK-DUMP: set {
33
+ // CHECK-DUMP: _registrar.beginAccess(\.name)
34
+ // CHECK-DUMP: _registrar.register(observable: self, willSet: \.name, to: newValue)
35
+ // CHECK-DUMP: defer {
36
+ // CHECK-DUMP: _registrar.register(observable: self, didSet: \.name)
37
+ // CHECK-DUMP: _registrar.endAccess()
38
+ // CHECK-DUMP: }
39
+ // CHECK-DUMP: _storage.name = newValue
40
+ // CHECK-DUMP: }
41
+
42
+
17
43
var treat : Treat ?
44
+ // CHECK-DUMP: get {
45
+ // CHECK-DUMP: _registrar.beginAccess(\.treat)
46
+ // CHECK-DUMP: defer { _registrar.endAccess() }
47
+ // CHECK-DUMP: return _storage.treat
48
+ // CHECK-DUMP: }
49
+ // CHECK-DUMP: set {
50
+ // CHECK-DUMP: _registrar.beginAccess(\.treat)
51
+ // CHECK-DUMP: _registrar.register(observable: self, willSet: \.treat, to: newValue)
52
+ // CHECK-DUMP: defer {
53
+ // CHECK-DUMP: _registrar.register(observable: self, didSet: \.treat)
54
+ // CHECK-DUMP: _registrar.endAccess()
55
+ // CHECK-DUMP: }
56
+ // CHECK-DUMP: _storage.treat = newValue
57
+ // CHECK-DUMP: }
58
+
18
59
19
60
var isHappy : Bool = true
61
+ // CHECK-DUMP: get {
62
+ // CHECK-DUMP: _registrar.beginAccess(\.isHappy)
63
+ // CHECK-DUMP: defer { _registrar.endAccess() }
64
+ // CHECK-DUMP: return _storage.isHappy
65
+ // CHECK-DUMP: }
66
+ // CHECK-DUMP: set {
67
+ // CHECK-DUMP: _registrar.beginAccess(\.isHappy)
68
+ // CHECK-DUMP: _registrar.register(observable: self, willSet: \.isHappy, to: newValue)
69
+ // CHECK-DUMP: defer {
70
+ // CHECK-DUMP: _registrar.register(observable: self, didSet: \.isHappy)
71
+ // CHECK-DUMP: _registrar.endAccess()
72
+ // CHECK-DUMP: }
73
+ // CHECK-DUMP: _storage.isHappy = newValue
74
+ // CHECK-DUMP: }
75
+
20
76
21
77
init ( ) { }
22
78
0 commit comments