Skip to content

Try atomic bodies - #31

Open
andrewcmyers wants to merge 13 commits into
masterfrom
try-atomic-bodies
Open

andrewcmyers wants to merge 13 commits into
masterfrom
try-atomic-bodies

Conversation

@andrewcmyers

@andrewcmyers andrewcmyers commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

To merge after #29.

This fixes a bug in try and atomic. The methods generated for try and atomic bodies now receive the locals read by struct construction, contract creation, call receivers and call specs, which they previously did not, breaking the generated Solidity code.

I also rolled in a few other small bug fixes.

…he leaky semantics, and pick up SHErrLoc's hypothesis-soundness fixes.
exception types are now checked properly and support dependent types.
…ositional for both reads and writes, and receivers can be any variable, member or element.
… by adding a Block node to the AST to replace the previous

fairly ad-hoc 'list of statements' approach.

Also got rid of the endorse statement that was not really suppored anyway.
…nodes;

throw and emit take a name and arguments and share argument checking with calls,
which makes emit sound when a principal argument is not a name.
…ad by struct construction, contract creation, call receivers and call specs.
failures.  Reject return statements that do not match the method's return type
and call options on calls that are not external method calls.
Clearer errors for new.
@andrewcmyers andrewcmyers mentioned this pull request Nov 7, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant