feat: align M3 slices and strings with v0.1.7

This commit is contained in:
2026-08-16 18:23:30 +09:00
parent cba2c86fbc
commit 42abc0d7e7
32 changed files with 183 additions and 60 deletions
+6
View File
@@ -0,0 +1,6 @@
unit m3_bad_mut_let;
fn bad() -> void {
var raw: [2]u8 = [1, 2];
let s: []mut u8 = raw[..];
}
+5
View File
@@ -0,0 +1,5 @@
unit m3_bad_shared_write;
fn bad(s: []u8) -> void {
s[0] = 1;
}
+11
View File
@@ -0,0 +1,11 @@
unit m3_mutable;
fn takes_shared(s: []u8) -> u8 { return s[0]; }
fn main() -> i32 {
var raw: [3]u8 = [1, 2, 3];
var s: []mut u8 = raw[..];
s[1] = 9;
if takes_shared(s) == 1 and raw[1] == 9 { return 0; }
return 1;
}
+7
View File
@@ -0,0 +1,7 @@
unit m3_slice_bounds;
fn main() -> i32 {
let a: [2]i32 = [1, 2];
let s: []i32 = a[0..3];
return s.n as i32;
}