Skip to content

Commit 5227b54

Browse files
committed
[Macros] Validate the macro expansion via FileCheck for multi-file macro test.
1 parent 5c38727 commit 5227b54

File tree

1 file changed

+57
-1
lines changed

1 file changed

+57
-1
lines changed

test/Macros/macro_expand_primary.swift

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
// RUN: %empty-directory(%t-scratch)
33
// 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
44
// 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
67

78
// REQUIRES: asserts
89
// REQUIRES: OS=macosx
@@ -13,10 +14,65 @@ struct Treat {}
1314

1415
@Observable
1516
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+
1626
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+
1743
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+
1859

1960
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+
2076

2177
init() {}
2278

0 commit comments

Comments
 (0)