- Added support for implementations and method overriding
- Added override method header inference: if a method overrides or implements another method, and types are missing from the header, these will be inherited from the base method. This works with any kind of method (method, operator, getter, setter, caller)
- Added method return type inference, which is automatically inferred from the return value of the contents of the method. This functionality is not yet fully implemented, and will fail with certain expressions (most notably, member expressions and calls). The goal is to make this system work as long as there is no recursion. This works with methods, operators, getters, calls as well as fields and constants with initializers.
- Removed the any type. With return type inference its usefulness has become even more limited, and proper implementation of the any type is expected to be complicated, thus not worth the effort. (this may be revisited later on, as "any" remains a reserved keyword)
- Fixed compilation of throw as panic expressions in lambda function bodies
- Moved name from FunctionalMember to MethodMember, where it makes more sense
- Each method (or functional) is now also aware of the member that it overrides
- CodePosition now stores source file references rather than source file names, allowing easier matching
- Starting work on error recording and display
- Fixed compilation of modules with dependencies
- Added a couple improvements to code typing for matching brackets
- Fixed java source compilation of abstract classes and methods
- Removed some redundant types
- Moved scopes to CodeModel and removed Linker
- Added const members and expression support for them
- Added statement transformation (can be used by annotations)
- Refactored some formatting things to be reusable for source code translation targets
- Removed generic compare
- Rewrote the way builtins are handled and implemented nearly all operations for all supported basic / builtin types
- Added java source code compilation
- Added throw expression, allowing a throw to be formulated as expression (handy inside matches)
- Split token stream and parser (will be important for the IDE)
- Can now parse directly from a token stream (doesn't have to be a file)
- Changed the way libraries are stored in projects
- Tokens no longer contain their position (will be important for the IDE)
- Fixed validator acting up on type argument validation
- Moved enum constants to enum type, they are no longer type members
- Added override modifier
- Performed some minor fixes during compilation
- Fixed type member registration on optionals
- Expanded arrays with functional methods
-
- Added (key, value) iterator for associative arrays
- Added type bounds checking code
- Fixed definitions not being added to the respective packages
- Fixed various bugs with generics
- Added some things to stdlib and created collections library