Immutable is supposed to be a subtype of mutable-huh.
option::t<ast::mutability> {
if expected == actual { ret some(expected); }
if expected == ast::maybe_mut { ret some(actual); }
- if actual == ast::maybe_mut { ret some(expected); }
ret none;
}
tag fn_common_res {
import ptr::addr_of;
native "rust-intrinsic" mod rusti {
- fn vec_len<T>(&&v: [T]) -> uint;
+ fn vec_len<T>(&&v: [mutable? T]) -> uint;
}
native "rust" mod rustrt {
fn head<@T>(v: [mutable? T]) : is_not_empty(v) -> T { ret v[0]; }
/// Returns all but the first element of a vector
-fn tail<@T>(v: [mutable? T]) : is_not_empty(v) -> [mutable? T] {
+fn tail<@T>(v: [mutable? T]) : is_not_empty(v) -> [T] {
ret slice(v, 1u, len(v));
}