Continued sketching out code for checking states against preconditions.
It's still sketchy. I added a typestate annotation field to statements tagged stmt_decl or stmt_expr, because a stmt_decl statement has a typestate that's different from that of its child node. This necessitated trivial changes to a bunch of other files all over to the compiler. I also added a few small standard library functions, some of which I didn't actually end up using but which I thought might be useful anyway.
This commit is contained in:
parent
36d75d6391
commit
2e90bd94de
16 changed files with 362 additions and 151 deletions
|
|
@ -339,8 +339,8 @@ impure fn print_block(ps s, ast.block blk) {
|
|||
cur_line = st.span.hi.line;
|
||||
maybe_print_comment(s, st.span.lo);
|
||||
alt (st.node) {
|
||||
case (ast.stmt_decl(?decl)) {print_decl(s, decl);}
|
||||
case (ast.stmt_expr(?expr)) {print_expr(s, expr);}
|
||||
case (ast.stmt_decl(?decl,_)) {print_decl(s, decl);}
|
||||
case (ast.stmt_expr(?expr,_)) {print_expr(s, expr);}
|
||||
}
|
||||
if (front.parser.stmt_ends_with_semi(st)) {wrd(s.s, ";");}
|
||||
if (!maybe_print_line_comment(s, st.span)) {line(s.s);}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue