Layout root graph#1515
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 954898ca67
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
e489c96 to
fc6226a
Compare
Replace structural layout holes with stable source and landing roots plus transactional contract allocation. Model provider targets, arrays, enum overlays, address spaces, and explicit or inferred reservations in one root graph. Derive canonical layout bundle signatures and carry affine layout evidence explicitly through semantic IR, calls, returns, effects, and MIR. Remove provenance-derived source analysis, hidden-ABI liveness, and callable interface reconstruction. Include the diagnostics and correctness fixes exposed by the hard cutover.
fc6226a to
ee8ac92
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. Swish! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Centralize HIR, dependency, and MIR diagnostic ordering so invalid roots stop before dependency analysis and dependency failures stop before MIR analysis. Treat immutable embedded core and std ingots as prevalidated while retaining validation for source dependencies and builtin replacements, and strengthen the whole-library validation tests to cover MIR diagnostics.
Replaces layout-hole handling type/provenance-based layout hole (aka const hole, eg
const SALT: usize = _) inference to an explicit layout-root graph and layout-evidence ABI.Each source layout parameter now has a stable identity, and each structural occurrence receives its own
slot assignment. Evidence is carried through HIR and MIR instead of being reconstructed later from types or provenance.
Bug fixes
maps: (StorageMap<u256, u256>, StorageMap<u256, u256>).SALT = 1followed by inferred maps can no longer collide, while intentionally duplicated explicit parameters stillshare.
checked indexed root families.
producing provisional or aliased layouts.
Storage layout LSP hover
Contract-name hover now shows the complete contract layout, grouped under Storage, Transient Storage, Immutable (code). Example:
shows:
Field hover shows the entries belonging to that field. Array layouts include their index formula and
dimensions, and invalid or blocked layouts explain why no assignment is available.