Skip to content

Control over Drop semantics #628

Open

Description

@tomassedovic
Metadata
Contact @JayanAXHF
Team(s) compiler (@oli-obk), lang (@Nadrieril), opsem (@CAD97), types
Goal document 2026/manually-drop-attr
Funding contact Funding team

Summary

Allow users to easily control the drop semantics of struct fields, letting them change drop order, and disable recursive destructors to make working with cross-language bindings easier.

  • Allow cross-language bindings to expose struct fields without compatibility hazards, and
  • Make all code that disables default destructor behavior more convenient to use in Rust.

This issue is intended for status updates only.

For general questions or comments, please contact a goal owner or post in the Zulip topic.

Activity

  1. added this to the 2026 milestone on May 5, 2026
  2. tomassedovic commented on May 5, 2026

    @tomassedovic
    ContributorAuthor

    This issue is intended for status updates only.

    For general questions or comments, please contact the owner(s) directly.

  3. locked and limited conversation to collaborators on May 5, 2026
  4. JayanAXHF commented on Jul 3, 2026

    @JayanAXHF
    Member

    Key developments: I have made a POC draft pull request with a rough implementation of the feature. Currently, we're finalising the semantics of something like this, how to structure the addition to the Destruct trait and whether the default implementation should be written straight to the function or if there should be a core intrinsic shim for for as Nadrieril suggested.

  5. JayanAXHF commented on Jul 28, 2026

    @JayanAXHF
    Member

    No major updates right now. Life has kept my hands full. Really sorry about the slow pace here.

  6. JayanAXHF commented on Sep 5, 2026

    @JayanAXHF
    Member

    Progress on the RFC draft thanks to Frances W.

  7. JayanAXHF commented on Oct 5, 2026

    @JayanAXHF
    Member

    No major implementation updates right now. Design discussion continue in the zulip channel.

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions