M src/symtbl.rs +1 -1
@@ 620,7 620,7 @@ pub(crate) fn predeclare_decls(symtbl: &
}
}
-fn rename_decl(symtbl: &mut Symtbl, decl: hir::Decl) -> hir::Decl {
+pub fn rename_decl(symtbl: &mut Symtbl, decl: hir::Decl) -> hir::Decl {
use hir::Decl::*;
match decl {
Function {
M tests/programs/test_module3.gt +2 -2
@@ 72,7 72,8 @@ fn impl_list_len(|T|) Len[List[T]] =
}
end
-fn module_len(|T| impll Len[T], l T) I32 =
+/-
+fn module_len(|Q| impll Len[Q], l Q) I32 =
let total I32 = 0
impll$.len(l)
end
@@ 83,7 84,6 @@ fn list_len(|T| l List[T]) I32 =
module_len(impll, l)
end
-/-
const ListIdx Idx[List[T], T] = Idx {
.idx = fn(selff List[T], i I32) T = selff$.dummy_data end
}
M tests/programs/test_module7.gt +6 -9
@@ 1,7 1,7 @@
-- Format:
-- status: success
-- Compile:
--- status: error
+-- status: success
-- Run:
-- stdout: 12
@@ 27,7 27,7 @@ type Cell[V] = struct
val: V
end
-fn make_cell_functor(f fn(A) B) Functor[Cell[A], Cell[B]] =
+fn make_cell_functor(|A, B| f fn(A) B) Functor[Cell[A], Cell[B]] =
-- to work this needs closures, 'cause it
-- captures f()
let m = fn(c Cell[A]) Cell[B] =
@@ 35,25 35,22 @@ fn make_cell_functor(f fn(A) B) Functor[
.val = f(c$.val)
})
end
- Functor({
+ Functor( {
.map = m,
})
end
-/-
fn f(i Bool) I32 =
12
end
--/
fn main() {} =
- {}
- /-
- let test_cell Cell(Bool) = Cell {
+ let test_cell Cell[Bool] = Cell {
.val = true
}
+ /-
let thing = make_cell_functor(f)
- let test_result Cell(I32) = thing$.map(test_cell)
+ let test_result Cell[I32] = thing$.map(test_cell)
__println(test_result$.val)
-/
end