Skip to content

0.8.0

Compare
Choose a tag to compare
@EliotVU EliotVU released this 07 Jun 00:43
· 57 commits to develop since this release
1212ee3
  • Improvements made to type checking
    • The type checker will now calculate the lowest cost for each operator given the type of its operands, meaning the correct overloaded operator will be selected, if any. If multiple operators have an identical cost, then the types are reported as 'incompatible' just like the compiler. This however still needs further polishments in regards to 'Interface' types.
  • Improvements made to completion suggestions
    • Suggest class, struct, or state name when writing extends <qualified.identifier>
    • Suggest overridable state names when writing state <identifier>
    • Suggest all known class modifiers when writing a class declaration.
    • Suggest all ignorable functions when writing ignores <identifier, identifier>
    • General improvements to context filtering.
  • Improvements made to syntax highlighting
    • Added highlighting for missing UE1 keywords (localized, expand (in struct and state), always (replication if)).
  • Improvements made to parsing
    • Parsing now respects the configured generation setting, meaning it won't parse keywords or grammar rules if the set generation does not have that keyword or grammar rule.
  • Improvements made to semantic syntax highlighting.
  • Improvements made to diagnostics, including new diagnostics:
    • Report if a deprecated field is referenced.
    • Report if an operator cannot be found.
    • (check types) Report if the operator is found, but no overload can be matched.
    • Report if a class type cannot be cast or assigned to an unrelated class type, also report if the cast is redundant.
  • Quality of Life