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

Tracking issue for unsafe binder types #130516

Open
1 of 7 tasks
traviscross opened this issue Sep 18, 2024 · 2 comments
Open
1 of 7 tasks

Tracking issue for unsafe binder types #130516

traviscross opened this issue Sep 18, 2024 · 2 comments
Labels
B-experimental Blocker: In-tree experiment; RFC pending, not yet approved or unneeded. C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC T-lang Relevant to the language team, which will review and decide on the PR/issue.

Comments

@traviscross
Copy link
Contributor

traviscross commented Sep 18, 2024

This is a tracking issue for unsafe binder types. See https://hackmd.io/@compiler-errors/HkXwoBPaR for an initial design proposal.

The feature gate for the issue is #![feature(unsafe_binders)].

About tracking issues

Tracking issues are used to record the overall progress of implementation. They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions. A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature. Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.

Steps

Unresolved Questions

TODO.

Related

TODO.

cc @compiler-errors @rust-lang/lang

@traviscross traviscross added C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC I-lang-nominated Nominated for discussion during a lang team meeting. T-lang Relevant to the language team, which will review and decide on the PR/issue. labels Sep 18, 2024
@scottmcm
Copy link
Member

I'll second this. I think that having unsafe<'a> &'a T is a nice way to keep some of the properties we want from references without falling all the way down to pointers that lose various things.

I'll be curious to see what happens with things like what the validity invariants are and what LLVM attribute parameters it could still have, but that sounds like a great thing to experiment with.

@traviscross
Copy link
Contributor Author

We accepted this experiment in the 2024-09-18 lang triage meeting.

Thanks to @compiler-errors for pushing this forward.

@traviscross traviscross added the B-experimental Blocker: In-tree experiment; RFC pending, not yet approved or unneeded. label Sep 19, 2024
@traviscross traviscross removed the I-lang-nominated Nominated for discussion during a lang team meeting. label Sep 20, 2024
bors added a commit to rust-lang-ci/rust that referenced this issue Dec 24, 2024
…=oli-obk

Begin to implement type system layer of unsafe binders

Mostly TODOs, but there's a lot of match arms that are basically just noops so I wanted to split these out before I put up the MIR lowering/projection part of this logic.

r? oli-obk

Tracking:

- rust-lang#130516
flip1995 pushed a commit to flip1995/rust-clippy that referenced this issue Dec 26, 2024
Begin to implement type system layer of unsafe binders

Mostly TODOs, but there's a lot of match arms that are basically just noops so I wanted to split these out before I put up the MIR lowering/projection part of this logic.

r? oli-obk

Tracking:

- rust-lang/rust#130516
jhpratt added a commit to jhpratt/rust that referenced this issue Dec 31, 2024
…ders, r=camelid

Unsafe binder support in rustdoc

Adds rustdoc support for unsafe binder types: `unsafe<'a> Foo<'a>`. Doesn't add json support yet.

Tracking:
* rust-lang#130516
rust-timer added a commit to rust-lang-ci/rust that referenced this issue Dec 31, 2024
Rollup merge of rust-lang#134857 - compiler-errors:rustdoc-unsafe-binders, r=camelid

Unsafe binder support in rustdoc

Adds rustdoc support for unsafe binder types: `unsafe<'a> Foo<'a>`. Doesn't add json support yet.

Tracking:
* rust-lang#130516
remi-delmas-3000 pushed a commit to remi-delmas-3000/kani that referenced this issue Jan 6, 2025
Rustc has started implementing `UnsafeBinder`:
- rust-lang/rust#134625
- rust-lang/rust#130516
Only the enums variants have been added for now, semantics is TBD.
lnicola pushed a commit to lnicola/rust-analyzer that referenced this issue Jan 7, 2025
Begin to implement type system layer of unsafe binders

Mostly TODOs, but there's a lot of match arms that are basically just noops so I wanted to split these out before I put up the MIR lowering/projection part of this logic.

r? oli-obk

Tracking:

- rust-lang/rust#130516
remi-delmas-3000 pushed a commit to remi-delmas-3000/kani that referenced this issue Jan 7, 2025
Rustc has started implementing `UnsafeBinder`:
- rust-lang/rust#134625
- rust-lang/rust#130516
Only the enums variants have been added for now, semantics is TBD.
remi-delmas-3000 pushed a commit to remi-delmas-3000/kani that referenced this issue Jan 7, 2025
Rustc has started implementing `UnsafeBinder`:
- rust-lang/rust#134625
- rust-lang/rust#130516
Only the enums variants have been added for now, semantics is TBD.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B-experimental Blocker: In-tree experiment; RFC pending, not yet approved or unneeded. C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC T-lang Relevant to the language team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

2 participants