This PR implements simple subtyping. It replaces type equality checks with subtype checks where appropriate.
Future improvements may include generating casting calls (e.g. float(value)) when a type is subsumed for one of its super-types
This PR also implements type checking attribute references and assignments
TODO:
[ ] Double check function subtyping (will be done later)
This PR implements simple subtyping. It replaces type equality checks with subtype checks where appropriate.
Future improvements may include generating casting calls (e.g. `float(value)`) when a type is subsumed for one of its super-types
This PR also implements type checking attribute references and assignments
TODO:
- ~[ ] Double check function subtyping~ (will be done later)
the logic for checking function subtypes is a WIP and has not been fully tested, there may be some errors and unhandled edge cases
Claude helped lay out and verify the overall steps
Co-authored-by: Claude <noreply@anthropic.com>
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 implements simple subtyping. It replaces type equality checks with subtype checks where appropriate.
Future improvements may include generating casting calls (e.g.
float(value)) when a type is subsumed for one of its super-typesThis PR also implements type checking attribute references and assignments
TODO:
[ ] Double check function subtyping(will be done later)