Skip to content

Commit

Permalink
Fix "higher kinded" -> "higher ranked" in RFC 3498
Browse files Browse the repository at this point in the history
In RFC 3498 "Lifetime Capture Rules 2024" we specify that lifetime
parameters from `for<..>` binders are captured under the rules.

Currently opaque types in Rust do not support capturing these.  In
early drafts of the document, we had called the missing feature
"higher ranked lifetime bounds on nested opaque types".  However, we
had then noticed that the relevant error message in `rustc` called
these "higher kinded" instead:

> error: higher kinded lifetime bounds on nested opaque types are not
> supported yet

We changed later drafts to follow that language.  But that language
was wrong.  These are definitely "higher ranked" lifetime bounds, not
"higher kinded" ones, whatever that might mean.  We've now fixed the
error message emitted by `rustc` in:

- rust-lang/rust#122100

Correspondingly, let's now fix this error in the RFC.
  • Loading branch information
traviscross committed Mar 19, 2024
1 parent 43e8e96 commit e413085
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions text/3498-lifetime-capture-rules-2024.md
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ impl<T> Foo<T> {

### Capturing lifetimes from `for<..>` binders

Once higher kinded lifetime bounds on nested opaque types are supported in Rust (see [#104288][]), the following code will become legal:
Once higher ranked lifetime bounds on nested opaque types are supported in Rust (see [#104288][]), the following code will become legal:

```rust
trait Trait<'a> {
Expand All @@ -309,7 +309,7 @@ fn foo() -> impl for<'a> Trait<'a, Assoc = impl Sized> {

That is, the `'a` lifetime parameter from the higher ranked trait bounds (HRTBs) `for<..>` binder is in scope for the `impl Sized` opaque type, so it is captured under the rules of this RFC.

Note that support for higher kinded lifetime bounds is not required by this RFC and is not a blocker to stabilizing the rules specified in this RFC.
Note that support for higher ranked lifetime bounds is not required by this RFC and is not a blocker to stabilizing the rules specified in this RFC.

[#104288]: https://github.com/rust-lang/rust/issues/104288

Expand Down

0 comments on commit e413085

Please sign in to comment.