-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Consider a program:
let add @int = fn(x @int, y @int){
return x + y;
};
let sub @int = fn(x @int, y @int){
return x - y;
};
let mul @int = fn(x @int, y @int){
return x * y;
};
let div @int = fn(x @int, y @int){
return x * y;
};
let mod @int = fn(x @int, y @int){
return x % y;
};
let greater @bool = fn(x @int, y @int){
return x > y;
};
let greater_or_eq @bool = fn(x @int, y @int){
return x >= y;
};
let less @bool = fn(x @int, y @int){
return x > y;
};
let less_or_eq @bool = fn(x @int, y @int){
return x <= y;
};
let or @bool = fn(x @int, y @int){
return x || y;
};
let and @bool = fn(x @int, y @int){
return x && y;
};
let max @int = fn(x @int, y @int){
if x > y {
return x;
};
return y;
};
@main fn(){
let x @int = 5;
let y @int = 7;
let name @string = \"Karis\";
let list1 [ @string ] = [ \"ka\", \"ris\" , \"karis\" ];
let list2 [ @int ] = [ 1, 2 , 3, 100, 1001 ];
let list3 [ @bool ] = [ true, false , false, true ];
let result0 @int = add(x,y);
let result1 @int = sub(x,y);
let result2 @int = mul(x,y);
let result3 @int = div(x,y);
let result4 @int = mod(x,y);
let result5 @int = greater(x,y);
let result6 @int = greater_or_eq(x,y);
let result7 @int = less(x,y);
let result8 @int = less_or_eq(x,y);
let result9 @int = or(x,y);
let result10 @int = and(x,y);
print(result0);
print(result1);
print(result2);
print(result3);
print(result4);
print(result5);
print(result6);
print(result7);
print(result8);
print(result9);
print(result10);
let result11 @int = max(x,y);
}@end;
The program crashes:
thread 'vm::vm_tests::should_execute_full_program' panicked at 'calledOption::unwrap()on aNone` value', compiler/src/vm_executor.rs:111:86
Metadata
Metadata
Assignees
Labels
No labels