Release v0.2.1 #6
No reviewers
Labels
No labels
bug
dependencies
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
boranseckin/rocks!6
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
In this update, all binary and unary expressions are refactored. By overloading Rust's std::ops and std::cmp, all operations are delegated to their respected implementators. This way, I don't have to use a match statement with hundreds of branches to cover every single comparison between different types of objects.
Both EqualEqual and BangEqual are now able to compare every rocks object. This way we can check equality between types and against the null type. This is especially important for preventing uninitialized variables and functions with no return values.
Arithmetic operations and comparisons (other than equality) still require identical literals types on both sides but the error messages are much improved to show the differences.
To support this change, I also added many test cases that will hopefully catch the regression on binary and unary operations from now on.