Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Enhance interop of generics, roles, and classes, Raku or nqp #808

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

Kaiepi
Copy link
Contributor

@Kaiepi Kaiepi commented May 24, 2022

See rakudo/rakudo#4936. @lizmat may be interested in some TODOs now passing.

- In general, a generic on the RHS can accept anything on the LHS...
- ...but a non-generic type on the RHS cannot accept a generic on the
  LHS...
- ...buf if either carry a type signature, we should take advantage of it...
- ...mapping type capture to type capture until we find any non-generic
  type (or Mu).
- A return type must not exist on the LHS if one does not exist on the
  RHS, otherwise it should defer to ACCEPTS as with parameters.
Unlike before:

- Spare any unnecessary &EVAL nonsense.
- Ensure that generic doees, parents, and a complicated blend of the two
  can typecheck.
- Ensure we can access the doees list before composition (as
  typechecks may depend on it).
Because the cons of picking Array for type objects (need to decont for
`=:=`. not a normal array otherwise) outweigh the pros of mutability
here.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant