Files
swift-mirror/test/IDE/complete_macro_attribute.swift
Doug Gregor 2388acdfd3 [SE-0415] Enable function body macros by default
Preamble macros are *not* part of the revised SE-0415, so leave them
experimental.

Tracked by rdar://119687390.
2024-05-20 22:08:33 -07:00

37 lines
1.7 KiB
Swift

// RUN: %batch-code-completion
@freestanding(#^FREESTANDING_ROLE^#)
macro FreestandingMacro
// FREESTANDING_ROLE: Begin completions, 2 items
// FREESTANDING_ROLE-DAG: Keyword/None: expression; name=expression
// FREESTANDING_ROLE-DAG: Keyword/None: declaration; name=declaration
@attached(#^ATTACHED_ROLE^#)
macro AttachedMacro
// ATTACHED_ROLE: Begin completions, 7 items
// ATTACHED_ROLE-DAG: Keyword/None: accessor; name=accessor
// ATTACHED_ROLE-DAG: Keyword/None: body; name=body
// ATTACHED_ROLE-DAG: Keyword/None: memberAttribute; name=memberAttribute
// ATTACHED_ROLE-DAG: Keyword/None: member; name=member
// ATTACHED_ROLE-DAG: Keyword/None: peer; name=peer
// ATTACHED_ROLE-DAG: Keyword/None: conformance; name=conformance
// ATTACHED_ROLE-DAG: Keyword/None: extension; name=extension
@freestanding(declaration, #^NAMES_POSITION^#)
macro FreestandingDeclarationMacro
// NAMES_POSITION: Begin completions, 1 item
// NAMES_POSITION-DAG: Keyword/None: names: [#Specify declared names#]; name=names
@attached(member, names: #^NAMES_ARGUMENT^#)
// NAMES_ARGUMENT: Begin completions, 5 items
// NAMES_ARGUMENT-DAG: Keyword/None: named({#(name)#}); name=named()
// NAMES_ARGUMENT-DAG: Keyword/None: overloaded; name=overloaded
// NAMES_ARGUMENT-DAG: Keyword/None: prefixed({#(name)#}); name=prefixed()
// NAMES_ARGUMENT-DAG: Keyword/None: suffixed({#(name)#}); name=suffixed()
// NAMES_ARGUMENT-DAG: Keyword/None: arbitrary; name=arbitrary