always use the argNames constructor for macro DeclNames #66497
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves rdar://110179186
When a macro without parameters is loaded from a built module, its DeclName is different than when it is loaded directly from source code. The deserialized macro is missing the
()
at the end of its name. This creates an inconsistent representation in symbol graphs, depending on whether the symbol graph is created during a regular compile or viaswift-symbolgraph-extract
on a previously-built module. This PR updates the deserialization logic for macros to always use theDeclName
constructor that accepts a list of argument names, even when there are no argument names to load. This allows parameterless macros to have the same DeclName regardless of whether it was loaded from source code or a compiled module.