this post was submitted on 25 Apr 2024
42 points (100.0% liked)
Rust
6039 readers
17 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
This is a nice small feature. I'm curious about the commit description:
which is roughly desugared into
I would have expected it to desugar to something like:
But I can't seem an explanation why the struct with
impl
is used. I wonder if it has something to do with propagating generics.It's because it has to work in pattern contexts as well, which are not expressions.
Wait, in pattern context? How? Can you give an example?
But it looks like
inline_const_pat
is still unstable, onlyinline_const
in expression position is now stabilized.The code they were looking at was used for writing the table, but they were testing the one that read it (which is instead correct).
Yeah that's me :)The translation using an associated const also works when the
const
block uses generic parameters. For example:This can be written as:
However it cannot be written as:
Because
const FOO: ()
is an item, thus it is only lexically scoped (i.e. visible) insiderequire_zst
, but does not inherit its generics (thus it cannot useT
).