diff options
| -rw-r--r-- | bootstrap/test.cff | 6 | ||||
| -rw-r--r-- | src/fold.cff | 2 | ||||
| -rw-r--r-- | src/parse.cff | 1 |
3 files changed, 7 insertions, 2 deletions
diff --git a/bootstrap/test.cff b/bootstrap/test.cff index 6f20b6e..5e384af 100644 --- a/bootstrap/test.cff +++ b/bootstrap/test.cff @@ -11,7 +11,7 @@ enum Color { } defmacro each(i, x, arr, &body) [ - for let i = 0; i < arr.#len; ++i { + for let i = 0z; i < arr.#len; ++i { let x = arr[i]; body } @@ -117,6 +117,10 @@ extern fn main (argc int, argv **u8) int { case else; "idk"; } + + switch colors[0] { + case :Red; + } return 0; diff --git a/src/fold.cff b/src/fold.cff index 476e860..a2c95b8 100644 --- a/src/fold.cff +++ b/src/fold.cff @@ -113,7 +113,7 @@ extern fn fold(ex *Expr) bool { numcast(ex, ex.ty); return #t; - case :StrLit, :NullLit; + case :StrLit, :NullLit, :EnumIni; return #t; case :UnOp; diff --git a/src/parse.cff b/src/parse.cff index 7ce605c..a2071f8 100644 --- a/src/parse.cff +++ b/src/parse.cff @@ -1808,6 +1808,7 @@ fn pstiswitch(P *Parser, loc Loc, ex Expr) Stmt { } let es Vec<Expr> = {}; do { + P.targty = ex.ty; let e = parseexpr(P); if !fold(&e) { err(P, e.loc, "expected compile-time expression"); |