diff --git a/crates/web/src/lib.rs b/crates/web/src/lib.rs index 44c0832..c5563f1 100644 --- a/crates/web/src/lib.rs +++ b/crates/web/src/lib.rs @@ -437,10 +437,10 @@ pub fn pprint(f: &Func) -> Result { writeln!(&mut s, "x{}[{}]", tuple.var(), member.member())? } rose::Expr::Slice { array, index } => { - writeln!(&mut s, "x{}![x{}]", array.var(), index.var())? + writeln!(&mut s, "&x{}[x{}]", array.var(), index.var())? } rose::Expr::Field { tuple, member } => { - writeln!(&mut s, "x{}![{}]", tuple.var(), member.member())? + writeln!(&mut s, "&x{}[{}]", tuple.var(), member.member())? } rose::Expr::Unary { op, arg } => match op { rose::Unop::Not => writeln!(&mut s, "not x{}", arg.var())?, @@ -558,9 +558,7 @@ pub fn pprint(f: &Func) -> Result { rose::Ty::Fin { size } => writeln!(&mut s, "{size}")?, rose::Ty::Generic { id } => writeln!(&mut s, "G{}", id.generic())?, rose::Ty::Ref { inner } => writeln!(&mut s, "&T{}", inner.ty())?, - rose::Ty::Array { index, elem } => { - writeln!(&mut s, "[T{}; T{}]", elem.ty(), index.ty())? - } + rose::Ty::Array { index, elem } => writeln!(&mut s, "[T{}]T{}", index.ty(), elem.ty())?, rose::Ty::Tuple { members } => { write!(&mut s, "(")?; print_elems(&mut s, 'T', members.iter().map(|member| member.ty()))?; diff --git a/packages/core/src/impl.test.ts b/packages/core/src/impl.test.ts index b8686cf..b7f3a2a 100644 --- a/packages/core/src/impl.test.ts +++ b/packages/core/src/impl.test.ts @@ -176,7 +176,7 @@ T1 = Bool ` T0 = 3 T1 = F64 -T2 = [T1; T0] +T2 = [T0]T1 (x0: T2, x1: T2) -> T2 { x6: T2 = for x2: T0 { x3: T1 = x0[x2]