Open ktoso opened 9 months ago
In https://github.com/apple/swift-syntax/pull/2450 we introduced
@freestanding(expression) public macro checkGeneric_root<DAS>() = #externalMacro(module: "MacroDefinition", type: "GenericToVoidMacro") @freestanding(expression) public macro checkGeneric<DAS>() = #checkGeneric_root<DAS>()
such that the DAS gets replaced in every expansion:
checkGeneric<String> -> checkGeneric_root<String>
but the following cases are not replaced yet:
Would it make sense to specialize macros with types that aren’t part of the second-level macro? Ie. would the following make sense?
macro gen<T>(a: T) = #externalMacro … macro genString(a: String) = #gen<String>(a: a)
And then #genString(a: "x") would have the intermediate expansion step #gen(a: "x")
Similarly, would it make sense to allow generic nesting in a second-level macro definition? Ie. would something like the following make sense?
macro gen<T>(a: T) = #externalMacro … macro genArray<T>(a: [T]) = #gen<Array<T>>(a: a)
And then #genArray(a: [1]) would have the intermediate expansion step #gen<Array>(a: [1])
https://github.com/apple/swift-syntax/pull/2450#discussion_r1479217425
No response
rdar://122364628
I wanted to work on this issue but I had difficulties understanding what exactly the issue is. May anyone familiar with the issue give a brief explanation for me?
Description
In https://github.com/apple/swift-syntax/pull/2450 we introduced
such that the DAS gets replaced in every expansion:
but the following cases are not replaced yet:
Would it make sense to specialize macros with types that aren’t part of the second-level macro? Ie. would the following make sense?
And then #genString(a: "x") would have the intermediate expansion step #gen(a: "x")
Similarly, would it make sense to allow generic nesting in a second-level macro definition? Ie. would something like the following make sense?
And then #genArray(a: [1]) would have the intermediate expansion step #gen<Array>(a: [1])
https://github.com/apple/swift-syntax/pull/2450#discussion_r1479217425
Steps to Reproduce
No response
Radar
rdar://122364628