preserve allowzero, align, volatile, and addrspace on pointer types#3172
Open
barry3406 wants to merge 1 commit intozigtools:masterfrom
Open
preserve allowzero, align, volatile, and addrspace on pointer types#3172barry3406 wants to merge 1 commit intozigtools:masterfrom
barry3406 wants to merge 1 commit intozigtools:masterfrom
Conversation
The `ptr_type` resolver in analysis.zig only read `const_token` from `ptr_info`, and `Data.createPointer` only set `is_const` on the `InternPool.pointer_type` flags. As a result, types like `*allowzero u8`, `*align(4) u8`, `*volatile u8` were collapsed to `*u8` in inlay hints (and any other surface that runs through `stringifyTypeOf`). Read `volatile_token`, `allowzero_token`, and the integer literal in `ast.align_node` from `ptr_info`, plumb them through `createPointerType` / `Data.createPointer` into the IP flags and the `.pointer` Data fallback, and update `rawStringify` so the fallback path matches the InternPool printer. Address-space resolution from arbitrary expressions still defers to `.generic`; only the literal alignment integer is read for now. Fixes zigtools#2603.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The
ptr_typeresolver inanalysis.zigonly readconst_tokenfromptr_info, andData.createPointeronly setis_conston theInternPool.pointer_typeflags. So*allowzero u8,*align(4) u8,*volatile u8and friends all collapsed to*u8in inlay hints (and anywhere else that runs throughstringifyTypeOf).This reads
volatile_token,allowzero_token, and the literal integer inast.align_nodefromptr_info, plumbs them throughcreatePointerType/Data.createPointerinto the IP flags and the.pointerData fallback, and updatesrawStringifyso the fallback path matches the InternPool printer.Address-space resolution from arbitrary expressions still defers to
.generic; the field is plumbed through but only the literal alignment integer is currently read.Regression coverage added in
tests/lsp_features/inlay_hints.zig.Fixes #2603.