-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AST alt arms should take an expression instead of a block #3085
Comments
I started on this but hit some code in the auto_serializer that I didn't understand. |
non-critical for 0.6, de-milestoning |
Doing this between builds. |
Visiting for triage, email from 2013 sep 30. @catamorphism did you make progress on it? |
@pnkfelix Sort of -- I made some progress in a branch but then I broke everything. I'm still planning to get to it, but given that it would be hard to rebase, maybe someone should just start over. |
@catamorphism can you provide a pointer to the branch, in case someone wants to look at your commits as inspiration and/or basis for work estimate? |
@pnkfelix: Sure, here it is: https://github.com/catamorphism/rust/tree/issue-3085-totally-broken It's not rebased at all. I don't even remember the error message I was getting -- just that I felt like I was getting somewhere and then suddenly, something incomprehensible and seemingly unrelated (possibly related to deriving(Encodable) and so on?) was broken, and I gave up. |
Triage, no change; I might have a go at this later. |
syntax: make match arms store the expr directly. Previously `ast::Arm` was always storing a single `ast::Expr` wrapped in an `ast::Block` (for historical reasons, AIUI), so we might as just store that expr directly. Closes #3085.
.gitignore: Ignore Emacs backup files
fix normalization in backtrace-api tests also remove a normalization rule that doesn't seem to apply
This is still incomplete, but hopefully it can be merged as an unstable feature. I'll publish an RFC shortly. This instruments the function body with assertion checks to see if users are generating invalid values. This covers: - Union access - Raw pointer dereference - Transmute value - Field assignment of struct with invalid values - Aggregate assignment Things not covered today should trigger ICE or a delayed verification failure due to unsupported feature. ## Design This change has two main design changes which are inside the new `kani_compiler::kani_middle::transform` module: 1- Instance body should now be retrieved from the `BodyTransformation` structure. This structure will run transformation passes on instance bodies (i.e.: monomorphic instances) and cache the result. 2- Create a new transformation pass that instruments the body of a function for every potential invalid value generation. 3- Create a body builder which contains all elements of a function body and mutable functions to modify them accordingly. Related to rust-lang#2998 Fixes rust-lang#301 --------- Co-authored-by: Zyad Hassan <[email protected]>
In the previous PR rust-lang#3085, we did not support checks for `write_bytes` which is added in this PR. I am waiting for rust-lang#3092 to add expected tests.
The parser is inserting an extra block into every alt arm.
The text was updated successfully, but these errors were encountered: