windjammer 0.48.0

A simple language inspired by Go, Ruby, and Elixir that transpiles to Rust - 80% of Rust's power with 20% of the complexity
Documentation
// Test: Auto-clone for simple variables

fn main() {
    test_vec_auto_clone()
    test_string_auto_clone()
    test_multiple_uses()
    println!("✓ All simple variable auto-clone tests passed!")
}

fn test_vec_auto_clone() {
    let data = vec![1, 2, 3, 4, 5]
    
    // Move data to function (should auto-clone)
    let sum = sum_vec(data)
    
    // data should still be usable
    assert!(data.len() == 5, "data should still have 5 elements")
    assert!(sum == 15, "sum should be 15")
    
    println!("✓ Vec auto-clone works")
}

fn test_string_auto_clone() {
    let message = "Hello, Windjammer!"    
    // Move message to function (should auto-clone)
    let upper = to_upper(message)
    
    // message should still be usable
    assert!(message.len() == 18, "message should still have 18 chars")
    assert!(upper == "HELLO, WINDJAMMER!", "uppercase should match")
    
    println!("✓ string auto-clone works")
}

fn test_multiple_uses() {
    let numbers = vec![10, 20, 30]
    
    // Use numbers multiple times (should auto-clone each time except last)
    let first_sum = sum_vec(numbers)
    let second_sum = sum_vec(numbers)
    let third_sum = sum_vec(numbers)
    
    assert!(first_sum == 60, "first sum should be 60")
    assert!(second_sum == 60, "second sum should be 60")
    assert!(third_sum == 60, "third sum should be 60")
    
    println!("✓ Multiple uses auto-clone works")
}

fn sum_vec(v: Vec<int>) -> int {
    v.sum()
}

fn to_upper(s: string) -> string {
    s.to_uppercase()
}

fn assert(condition: bool, message: string) {
    if !condition {
        panic!("{}", message)
    }
}