mirror of
https://github.com/apple/swift.git
synced 2026-06-20 15:42:51 +02:00
55f61a84ca
This is mostly just cleanup: 1. Removes `diagnostic-descriptions.md` since it isn't used any more 2. Adds the group name to all the old notes files 3. Removes trailing whitespace 4. Adds "See Also" sections for notes that have links
1.6 KiB
1.6 KiB
@dynamicCallable implementation requirements (DynamicCallable)
Overview
If a type is marked with the @dynamicCallable attribute, it must provide a valid implementation of dynamicallyCall(withArguments:), dynamicallyCall(withKeywordArguments:), or both. If it fails to do so, an error will be reported at compile-time. Note that an implementation of dynamicallyCall(withKeywordArguments:) is required to support calls with keyword arguments.
To be considered valid, an implementation of dynamicallyCall(withArguments:) must:
- Be an instance method.
staticorclassimplementations are not allowed. - Have an argument type which conforms to the
ExpressibleByArrayLiteralprotocol. Often, this will be the built inArraytype. - The return type of
dynamicallyCall(withArguments:)may be any valid type.
To be considered valid, an implementation of dynamicallyCall(withKeywordArguments:) must:
- Be an instance method.
staticorclassimplementations are not allowed. - Have an argument type which conforms to the
ExpressibleByDictionaryLiteralprotocol. This can beDictionary,KeyValuePairs(which may be used to support duplicated keyword arguments), or some other conforming type. - The
Keyassociated type of the argument type must conform to theExpressibleByStringLiteralprotocol. This type is used to represent the dynamic argument keywords. - The
Valueassociated type of the argument type and the return type ofdynamicallyCall(withKeywordArguments:)may be any valid types.