Skip to content

Make it possible to create boxed iface instances without re-boxing #2299

Description

@marijnh

A boxed iface is a pair of a regular box holding the self value and a vtable pointer. When creating such a thing from a box, one currently has to do (*my_box) as my_iface. It would be great if we could somehow just bump the refcount of the box and slap a vtable on it.

Proposed solution: make cast-to-iface, when no impl is found, autoderef the left hand side. If it finds a match for the box' contents, it'll resolve to that impl, and the trans code will notice this and skip the boxing. So my_box as my_iface would be a very cheap operation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-type-systemArea: Type systemC-enhancementCategory: An issue proposing an enhancement or a PR with one.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions