Releases: degory/ghul
Releases · degory/ghul
v0.7.12
v0.7.11
v0.7.10
Fix error cascade when undefined type used as formal argument (#1076)
Bugs fixed:
- Formal arguments of undefined type can case a cascade of spurious errors (closes #1075)
Technical:
- Bump compiler tool to latest
- Bump integration test runner tool to latest
- Bump runtime library to latest
- Replace instances of deprecated
| .has(...)
with| .any(...)
v0.7.9
If expressions improvements (#1070)
Enhancements:
- Infer if expression type from context, where initializing an explicitly typed variable or being returned from a function
- Fewer redundant error messages when if statements and expressions are incomplete
- Support
throw
statement as a value in an if expression
Bugs fixed:
- No error reported when an if expression had no else branch
- Nested if expressions generated incorrect IL
Technical:
- Report elapsed time in bootstrap script
- Add a very simple mechanism for representing a block of IL instructions as an IL value
- Improve indentation of control flow IL assembly and add comments
See #1060
v0.7.8
Experimental support for if expressions (#1069)
Enhancements:
- Add experimental support for if expressions (see #1060)
- Semicolons are now a statement separator rather than a terminator (see #1060).
- Allow parentheses in type expressions, which can be used to remove ambiguity (for example
(int -> int) -> int
is different to (int -> (int -> int)
)
Bugs fixed:
- Fix issue with explicit return types for expression bodied generic functions and methods (closes #1067)
Technical:
- Remove some debug output
- Underlying support for statements having values
Notes:
- If expressions could generate IL that doesn't assemble, fails to load, or executes incorrectly: use at your own risk
- Semicolons continue to be accepted at the end of statement lists, but they're no longer required. Unnecessary semicolons are not an error
- Semicolons are still a terminator for global definitions and definitions within classes, structs and traits
v0.7.7
Warn on unchecked type constraints (#1066)
Bugs fixed:
- Give a warning when referencing generic types or functions that have constraints on their type arguments (closes #1065)
Notes:
- This does not prevent generation of potentially incorrect and unsafe IL. It simply issues a warning where types or functions with type constraints are referenced. See #115 for details.
v0.7.6
Fix type check issues (#1064)
Bugs fixed:
- Fix issue where null was wrongly treated as assignment compatible with value types (closes #1061)
- Fix issue where different generic type arguments were sometimes wrongly treated as assignment compatible with each other (closes #1062)
- Fix issue where null was wrongly treated as assignment compatible with generic type arguments (closes #1063)
Technical:
- Remove workarounds for recently fixed anonymous function argument type inference issue
- Add integration tests asserting generic type arguments are compatible with object
- Make error messages for failed type inference consistent with each other
v0.7.5
v0.7.4
Add runtime library compatibility tests (#1058)
Technical:
- Add integration tests to check compiler compatibility with the runtime library
- Remove the unused
none
keyword - Remove debug output when hiding ambiguous methods in reflected types
- Fix broken VSCode tasks for integration tests on Windows
- Update .gitattributes to strip \r on Windows
- Bump ghul-test tool to get updated runtime for integration tests