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
|
|
@ -6,6 +6,7 @@ import front.creader;
|
|||
import driver.session;
|
||||
import util.common.new_def_hash;
|
||||
import util.common.span;
|
||||
import util.typestate_ann.ts_ann;
|
||||
import std.map.hashmap;
|
||||
import std.list.list;
|
||||
import std.list.nil;
|
||||
|
|
@ -348,7 +349,7 @@ fn lookup_name_wrapped(&env e, ast.ident i, namespace ns)
|
|||
|
||||
fn found_decl_stmt(@ast.stmt s, namespace ns) -> def_wrap {
|
||||
alt (s.node) {
|
||||
case (ast.stmt_decl(?d)) {
|
||||
case (ast.stmt_decl(?d,_)) {
|
||||
alt (d.node) {
|
||||
case (ast.decl_local(?loc)) {
|
||||
auto t = ast.def_local(loc.id);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue