Skip to content
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

Further work on typestate_check #336

Closed
wants to merge 1 commit into from

Conversation

catamorphism
Copy link
Contributor

Lots of work on typestate_check, seems to get a lot of the way
through checking the standard library.

  • Added for, for_each, assign_op, bind, cast, put, check, break,
    and cont. (I'm not sure break and cont are actually handled correctly.)
  • Fixed side-effect bug in seq_preconds so that unioning the
    preconditions of a sequence of statements or expressions
    is handled correctly.
  • Pass poststate correctly through a stmt_decl.
  • Handle expr_ret and expr_fail properly (after execution of a ret
    or fail, everything is true -- this is needed to handle ifs and alts
    where one branch is a ret or fail)
  • Fixed bug in set_prestate_ann where a thing that needed to be
    mutated wasn't getting passed as an alias
  • Fixed bug in how expr_alt was treated (zero is not the identity
    for intersect, who knew, right?)
  • Update logging to reflect log_err vs. log
  • Fixed find_locals so as to return all local decls and exclude
    function arguments.
  • Make union_postconds work on an empty vector (needed to handle
    empty blocks correctly)
  • Added _vec.cat_options, which takes a list of option[T] to a list
    of T, ignoring any Nones
  • Added two test cases.

Lots of work on typestate_check, seems to get a lot of the way
through checking the standard library.

* Added for, for_each, assign_op, bind, cast, put, check, break,
and cont. (I'm not sure break and cont are actually handled correctly.)

* Fixed side-effect bug in seq_preconds so that unioning the
preconditions of a sequence of statements or expressions
is handled correctly.

* Pass poststate correctly through a stmt_decl.

* Handle expr_ret and expr_fail properly (after execution of a ret
or fail, everything is true -- this is needed to handle ifs and alts
where one branch is a ret or fail)

* Fixed bug in set_prestate_ann where a thing that needed to be
mutated wasn't getting passed as an alias

* Fixed bug in how expr_alt was treated (zero is not the identity
for intersect, who knew, right?)

* Update logging to reflect log_err vs. log

* Fixed find_locals so as to return all local decls and exclude
function arguments.

* Make union_postconds work on an empty vector (needed to handle
empty blocks correctly)

* Added _vec.cat_options, which takes a list of option[T] to a list
of T, ignoring any Nones

* Added two test cases.
oli-obk pushed a commit to oli-obk/rust that referenced this pull request Sep 19, 2017
Valiation: Identify write locks using an abstract lvalue
dlrobertson pushed a commit to dlrobertson/rust that referenced this pull request Nov 29, 2018
workingjubilee pushed a commit to workingjubilee/rustc that referenced this pull request May 10, 2023
Skip building wasm-bindgen-test on non-wasm targets
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