Skip to content

refactor(slang): spell a bytes push slot !sol.fixedbytes<1> - #638

Closed
hedgar2017 wants to merge 1 commit into
fix-slang-push-reference-elementfrom
refactor-slang-dissolve-sol-byte
Closed

refactor(slang): spell a bytes push slot !sol.fixedbytes<1>#638
hedgar2017 wants to merge 1 commit into
fix-slang-push-reference-elementfrom
refactor-slang-dissolve-sol-byte

Conversation

@hedgar2017

Copy link
Copy Markdown
Contributor

Stacked on #637. Retires !sol.byte from solx's own vocabulary: the bytes push slot is spelled !sol.fixedbytes<1> (the binder's bytes1), which deletes the MlirType::byte constructor, its FFI binding, and the place path's byte/bytes1 branch — function_call_place takes the binder's typing unconditionally. array_string_ops.sol becomes solx-only, since solc's print-init still types the slot !sol.byte.

Blocked on solx-llvm unifying the byte/bytes1 packed-storage canonicalization: the two spellings cast as a no-op at value level, but the packing/cleanup arms (EVMUtil.cpp byte exemptions, the mstore8 path) distinguish them in places, so until the dialect change lands a pushed byte mis-packs against the byte-typed reader — semanticTests/array/push/push_no_args_bytes.sol[a:4] fails on this branch, verified by execution. Index-access byte places stay C-derived via getEltType and are untouched either way.

Do not merge before the solx-llvm unification; re-run the full tester against it first.

The dialect casts `!sol.byte` and `!sol.fixedbytes<1>` as a no-op and the
binder types a `bytes` element `bytes1`, so spelling the fixed-bytes form
retires the byte constructor from the Rust vocabulary and the place path's
byte/bytes1 branch with it. Blocked on solx-llvm unifying the two spellings'
packed-storage canonicalization: until that lands, a pushed byte mis-packs
against the byte-typed reader (`push_no_args_bytes.sol[a:4]`).
@hedgar2017 hedgar2017 added the ci:slang Trigger slang unit tests on PR label Aug 7, 2026
@hedgar2017 hedgar2017 closed this Aug 10, 2026
@hedgar2017
hedgar2017 deleted the refactor-slang-dissolve-sol-byte branch August 10, 2026 12:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:slang Trigger slang unit tests on PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant