Skip to content

[5.9][Macros] Add back the ExtensionMacro feature identifier as a LANGUAGE_FEATURE for use in swiftinterfaces. #67628

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

hborla
Copy link
Member

@hborla hborla commented Jul 31, 2023

  • Explanation: The experimental ExtensionMacros feature identifier was recently removed with the acceptance of SE-0402. However, if a swiftinterfaces uses #if $ExtensionMacros, this condition will now evaluate to false for compilers that have the implementation of extension macros, but have the experimental feature removed. Add the identifier back as a language feature to preserve the behavior of #if $ExtensionMacros in swiftinterfaces.
  • Scope: Only impacts rebuilding modules from old swiftinterface produced by older compilers.
  • Risk: Very low.
  • Testing: Added a test that rebuilds a swiftinterface using #if $ExtensionMacros and applies the macro declared inside the condition.
  • Issue: rdar://113151151
  • Reviewer: @bnbarham
  • Main branch PR: [Macros] Add back the ExtensionMacro feature identifier as a LANGUAGE_FEATURE for use in swiftinterfaces. #67627

… feature

that can be used in swiftinterfaces.

(cherry picked from commit 4b09d4c)
@hborla hborla requested a review from a team as a code owner July 31, 2023 20:48
@hborla
Copy link
Member Author

hborla commented Jul 31, 2023

@swift-ci please test

@hborla
Copy link
Member Author

hborla commented Jul 31, 2023

@swift-ci please test Linux

@hborla hborla merged commit 3010fa5 into swiftlang:release/5.9 Aug 1, 2023
@hborla hborla deleted the 5.9-extension-macro-swiftinterface branch August 1, 2023 02:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants