aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bootstrap/test.cff6
-rw-r--r--src/fold.cff2
-rw-r--r--src/parse.cff1
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");