Skip to content

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

Draft
Kaiepi wants to merge 4 commits into
Raku:masterfrom
Kaiepi:generic-class-role
Draft

[WIP] Enhance interop of generics, roles, and classes, Raku or nqp#808
Kaiepi wants to merge 4 commits into
Raku:masterfrom
Kaiepi:generic-class-role

Conversation

@Kaiepi

@Kaiepi Kaiepi commented May 24, 2022

Copy link
Copy Markdown
Contributor

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

Kaiepi added 4 commits May 24, 2022 12:18
- 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