Something went wrong. Try again.
An experiment in static, refcounted, procedural language with ownership
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930fn extern "c" printf(fmt: ptr[u8], ..) i32type M()type Ref extern(a: &M, b: Ref2)type Ref2 extern(c: &M)type Mixed extern(a: Ref)type Point extern(x: int, y: int)fn main() unit = { let m = M() let m2 = m // let m3 = m // Error: use after move // let r3 = &m2 // Runtime error: Drop with refs let m3 = m2 let mixed = Mixed(Ref(&m3, Ref2(&m3))) let mixed2 = mixed.a let mixed2c = mixed.a.b.c print-point(Point(1, 2)) print-point(Point(x: 420, y: 69)) print-point(Point(5, y: 10))}fn print-point(p: Point) unit = { unsafe printf("Point(%d, %d)\n".ptr, p.x, p.y)}