diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2011-05-02 11:23:07 -0700 |
|---|---|---|
| committer | Graydon Hoare <graydon@mozilla.com> | 2011-05-02 12:16:29 -0700 |
| commit | aa25f22f197682de3b18fc4c8ba068d1feda220f (patch) | |
| tree | 6d01f8fbb5680964fd9c53564c96aa58cb75d3d1 /src/boot | |
| parent | 870435caf55fe167862865bfe4196230ab7c1c6b (diff) | |
Use different syntax for checks that matter to typestate
This giant commit changes the syntax of Rust to use "assert" for "check" expressions that didn't mean anything to the typestate system, and continue using "check" for checks that are used as part of typestate checking. Most of the changes are just replacing "check" with "assert" in test cases and rustc.
Diffstat (limited to 'src/boot')
| -rw-r--r-- | src/boot/fe/item.ml | 8 | ||||
| -rw-r--r-- | src/boot/fe/lexer.mll | 1 | ||||
| -rw-r--r-- | src/boot/fe/token.ml | 2 |
3 files changed, 11 insertions, 0 deletions
diff --git a/src/boot/fe/item.ml b/src/boot/fe/item.ml index 6b232e7eba7..70e59be3039 100644 --- a/src/boot/fe/item.ml +++ b/src/boot/fe/item.ml @@ -199,6 +199,14 @@ and parse_stmts_including_none (ps:pstate) : Ast.stmt array = bump ps; expect ps SEMI; [| span ps apos (lexpos ps) Ast.STMT_cont |] + | ASSERT -> + bump ps; + let (stmts, expr) = + ctxt "stmts: check value" parse_expr ps + in + expect ps SEMI; + spans ps stmts apos (Ast.STMT_check_expr expr) +(* leaving check as it is; adding assert as a synonym for the "old" check *) | CHECK -> bump ps; begin diff --git a/src/boot/fe/lexer.mll b/src/boot/fe/lexer.mll index b375b874b89..a65acba1a6f 100644 --- a/src/boot/fe/lexer.mll +++ b/src/boot/fe/lexer.mll @@ -92,6 +92,7 @@ ("type", TYPE); ("check", CHECK); + ("assert", ASSERT); ("claim", CLAIM); ("prove", PROVE); diff --git a/src/boot/fe/token.ml b/src/boot/fe/token.ml index 0b157983984..27cb399b551 100644 --- a/src/boot/fe/token.ml +++ b/src/boot/fe/token.ml @@ -77,6 +77,7 @@ type token = (* Type and type-state keywords *) | TYPE | CHECK + | ASSERT | CLAIM | PROVE @@ -237,6 +238,7 @@ let rec string_of_tok t = (* Type and type-state keywords *) | TYPE -> "type" | CHECK -> "check" + | ASSERT -> "assert" | CLAIM -> "claim" | PROVE -> "prove" |
