From 49656f68b8fbb8dc4bba552d9dd1fe8f7245033c Mon Sep 17 00:00:00 2001 From: Roy Frostig Date: Fri, 2 Jul 2010 11:03:33 -0700 Subject: [PATCH 1/2] Gut the box[m][o] family from util. --- src/lib/util.rs | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/src/lib/util.rs b/src/lib/util.rs index bf57bb52319..e0e52c8f93a 100644 --- a/src/lib/util.rs +++ b/src/lib/util.rs @@ -1,8 +1,4 @@ type option[T] = tag(none(), some(T)); -type box[T] = tup(@T); -type boxo[T] = option[box[T]]; -type boxm[T] = tup(mutable @T); -type boxmo[T] = option[boxm[T]]; type map[T, U] = fn(&T) -> U; @@ -17,28 +13,6 @@ fn option_map[T, U](map[T, U] f, &option[T] opt) -> option[U] { } } -fn unbox[T](&box[T] b) -> T { - ret b._0; -} - - -fn unboxm[T](&boxm[T] b) -> T { - ret b._0; -} - -fn unboxo[T](boxo[T] b) -> option[T] { - // Pending issue #90, no need to alias the function item in order to pass - // it as an arg. - let map[box[T], T] f = unbox[T]; - be option_map[box[T], T](f, b); -} - -fn unboxmo[T](boxmo[T] b) -> option[T] { - // Issue #90, as above - let map[boxm[T], T] f = unboxm[T]; - be option_map[boxm[T], T](f, b); -} - fn id[T](T x) -> T { ret x; } From a3431335118a00130de16857dc3d5e6d0c90c074 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 2 Jul 2010 11:54:07 -0700 Subject: [PATCH 2/2] Allow formatting individual decl_params --- src/boot/fe/ast.ml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/boot/fe/ast.ml b/src/boot/fe/ast.ml index 6962a9e08dd..7f5774272eb 100644 --- a/src/boot/fe/ast.ml +++ b/src/boot/fe/ast.ml @@ -1180,6 +1180,13 @@ and fmt_stmt_body (ff:Format.formatter) (s:stmt) : unit = | STMT_slice _ -> fmt ff "?stmt_slice?" end +and fmt_decl_param (ff:Format.formatter) (param:ty_param) : unit = + let (ident, (i, e)) = param in + fmt_effect ff e; + if e <> PURE then fmt ff " "; + fmt_ident ff ident; + fmt ff "=" i + and fmt_decl_params (ff:Format.formatter) (params:ty_param array) : unit = if Array.length params = 0 then () @@ -1190,11 +1197,7 @@ and fmt_decl_params (ff:Format.formatter) (params:ty_param array) : unit = do if i <> 0 then fmt ff ", "; - let (ident, (i, e)) = params.(i) in - fmt_effect ff e; - if e <> PURE then fmt ff " "; - fmt_ident ff ident; - fmt ff "=" i + fmt_decl_param ff params.(i) done; fmt ff "]" end; @@ -1347,6 +1350,7 @@ let sprintf_tag = sprintf_fmt fmt_tag;; let sprintf_carg = sprintf_fmt fmt_carg;; let sprintf_constr = sprintf_fmt fmt_constr;; let sprintf_mod_items = sprintf_fmt fmt_mod_items;; +let sprintf_decl_param = sprintf_fmt fmt_decl_param;; let sprintf_decl_params = sprintf_fmt fmt_decl_params;; let sprintf_app_args = sprintf_fmt fmt_app_args;;