//! returns: 0 //! Basic standalone method test. record Point { x: i32, y: i32, } fn (p: *Point) sum() -> i32 { return p.x + p.y; } fn (p: *mut Point) translate(dx: i32, dy: i32) { set p.x = p.x + dx; set p.y = p.y + dy; } @default fn main() -> i32 { let mut pt = Point { x: 3, y: 4 }; // Call immutable method. assert pt.sum() == 7; // Call mutable method. pt.translate(10, 20); assert pt.x == 13; assert pt.y == 24; // Call via pointer. let ptr = &pt; assert ptr.sum() == 37; return 0; }