This PR is a bit messy. It groups many features and fixes including, but not limited to:
a refactor to split the checker into a proper Midas typer and a Python typer
generic types, with type variables
grouping of properties and methods as "members", stored separately in the registry (previously operations)
function overloads with resolution
builtin type methods and properties defined in a Midas file (including lists)
add option to compile command to show type judgements
Some things are not fully implemented / need some tidying, but I want to merge this branch and make new smaller ones before this one gets any more out of hand
This PR is a bit messy. It groups many features and fixes including, but not limited to:
- a refactor to split the checker into a proper Midas typer and a Python typer
- generic types, with type variables
- grouping of properties and methods as "members", stored separately in the registry (previously operations)
- function overloads with resolution
- builtin type methods and properties defined in a Midas file (including lists)
- add option to `compile` command to show type judgements
Some things are not fully implemented / need some tidying, but I want to merge this branch and make new smaller ones before this one gets any more out of hand
restructure the type checker with a shared TypesRegistry used by MidasTyper and PythonTyper
this commit also relocates some methods in more appropriate places, such as is_subtype and apply_generic (now in TypesRegistry)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR is a bit messy. It groups many features and fixes including, but not limited to:
compilecommand to show type judgementsSome things are not fully implemented / need some tidying, but I want to merge this branch and make new smaller ones before this one gets any more out of hand