Remove hlsl
namespace from SemaHLSL
#7656
Merged
+129
−101
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.
HLSL intrinsics were previously being added to the translation unit decl but assigned a namespace decl context which was then used only in codegen to determine if special handling was needed for the namespace. This causes an odd array of behaviors including strange mangling and confusing diagnostics.
This PR removes the HLSL namespace and properly adds intrinsics to namespaces when appropriate for the
vk
anddx
namespaces. This should allow qualified and unqualified name lookup to behave as expected, correct odd mangling, and improve the confusing diagnostics.The PR introduces a new HLSLBuiltinCallAttr to replace the use of the hlsl namespace. This attribute denotes when a function declaration should be emitted in codegen as an HLSL builtin. It is subtly different from HLSLIntrinsicAttr which is attached to all intrinsic functions and allows the AST to track the HL OpCode.