1111// * Cross-import overlays
1212// * Key path dynamic member lookup
1313// * Custom type attributes (and coverage of type attrs generally is sparse)
14- // * Macros
1514//
1615// It also might not cover all combinations of name lookup paths and inputs.
1716
@@ -58,6 +57,8 @@ extension A: @retroactive Swift::Equatable {
5857
5958 _ = \ModuleSelectorTestingKit : : A. magnitude
6059 _ = \A . ModuleSelectorTestingKit: : magnitude
60+
61+ _ = #ModuleSelectorTestingKit: : ExprMacro
6162 }
6263
6364 // FIXME: Can we test @convention(witness_method:)?
@@ -124,8 +125,14 @@ extension B: @retroactive main::Equatable {
124125 // FIXME improve: expected-error@-1 {{'main::A' in scope}} -- different diagnostic wording for legacy parser vs. ASTGen
125126 _ = \A . main: : magnitude
126127 // FIXME improve: expected-error@-1 {{value of type 'A' has no member 'main::magnitude'}}
128+
129+ _ = #main: : ExprMacro
130+ // expected-error@-1 {{no macro named 'main::ExprMacro'}}
127131 }
128132
133+ @main : : PeerMacro func thingy( ) { }
134+ // expected-error@-1 {{unknown attribute 'main::PeerMacro'}}
135+
129136 // FIXME: Can we test @convention(witness_method:)?
130137}
131138
@@ -184,8 +191,13 @@ extension C: @retroactive ModuleSelectorTestingKit::Equatable {
184191
185192 _ = \ModuleSelectorTestingKit : : A. magnitude
186193 _ = \A . ModuleSelectorTestingKit: : magnitude
194+
195+ _ = #ModuleSelectorTestingKit: : ExprMacro
187196 }
188197
198+ @ModuleSelectorTestingKit : : PeerMacro func thingy( ) { }
199+ // expected-error@-1 {{external macro implementation type 'Fnord.PeerMacro' could not be found for macro 'PeerMacro()'; plugin for module 'Fnord' not found}}
200+
189201 // FIXME: Can we test @convention(witness_method:)?
190202}
191203
@@ -244,8 +256,14 @@ extension D: @retroactive Swift::Equatable {
244256 // FIXME improve: expected-error@-1 {{'Swift::A' in scope}} -- different diagnostic wording for legacy parser vs. ASTGen
245257 _ = \A . Swift: : magnitude
246258 // FIXME improve: expected-error@-1 {{value of type 'A' has no member 'Swift::magnitude'}}
259+
260+ _ = #Swift: : ExprMacro
261+ // expected-error@-1 {{no macro named 'Swift::ExprMacro'}}
247262 }
248263
264+ @Swift : : PeerMacro func thingy( ) { }
265+ // expected-error@-1 {{unknown attribute 'Swift::PeerMacro'}}
266+
249267 // FIXME: Can we test @convention(witness_method:)?
250268}
251269
@@ -262,25 +280,25 @@ struct AvailableUser {
262280 @available ( macOS 10 . 15 , * ) var use1 : String { " foo " }
263281
264282 @main : : available( ) var use2
265- // FIXME improve: expected-error@-1 {{unknown attribute 'available'}}
283+ // FIXME improve: expected-error@-1 {{unknown attribute 'main:: available'}}
266284 // FIXME suppress: expected-error@-2 {{type annotation missing in pattern}}
267285
268286 @ModuleSelectorTestingKit : : available( ) var use4
269287 // no-error
270288
271289 @Swift : : available( ) var use5
272- // FIXME improve: expected-error@-1 {{unknown attribute 'available'}}
290+ // FIXME improve: expected-error@-1 {{unknown attribute 'Swift:: available'}}
273291 // FIXME suppress: expected-error@-2 {{type annotation missing in pattern}}
274292}
275293
276294func builderUser2( @main : : MyBuilder fn: ( ) -> Void) { }
277- // FIXME improve: expected-error@-1 {{unknown attribute 'MyBuilder'}}
295+ // FIXME improve: expected-error@-1 {{unknown attribute 'main:: MyBuilder'}}
278296
279297func builderUser3 ( @ModuleSelectorTestingKit : : MyBuilder fn: ( ) - > Void) { }
280298// no-error
281299
282300func builderUser4( @Swift : : MyBuilder fn: ( ) - > Void) { }
283- // FIXME improve: expected-error@-1 {{unknown attribute 'MyBuilder'}}
301+ // FIXME improve: expected-error@-1 {{unknown attribute 'Swift:: MyBuilder'}}
284302
285303// Error cases
286304
0 commit comments