-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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 generic const items #113521
Labels
B-experimental
Blocker: In-tree experiment; RFC pending, not yet approved or unneeded (requires FCP to stablize).
B-unstable
Blocker: Implemented in the nightly compiler and unstable.
C-tracking-issue
Category: An issue tracking the progress of sth. like the implementation of an RFC
F-generic_const_items
`#![feature(generic_const_items)]`
S-tracking-needs-to-bake
Status: The implementation is "complete" but it needs time to bake.
T-lang
Relevant to the language team, which will review and decide on the PR/issue.
Comments
bors
added a commit
to rust-lang-ci/rust
that referenced
this issue
Jul 28, 2023
Implement generic const items This implements generic parameters and where-clauses on free and associated const items under the experimental feature gate `generic_const_items`. See rust-lang/lang-team#214. Tracking issue: rust-lang#113521. Fixes rust-lang#104400. This PR doesn't include rustfmt support as per [nightly style procedure](https://github.com/rust-lang/style-team/blob/master/nightly-style-procedure.md) and it doesn't add rustdoc JSON support (see [related Zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/Rustdoc.20JSON.3A.20Experimental.20rustc.20features)). CC `@scottmcm` `@compiler-errors` `@WalterSmuts` r? `@oli-obk` <details><summary>Resolved Questions</summary> * Q: Should `const ADD<const N: usize, const M: usize>: usize = N + M; ADD::<0, 1>` trigger the error *generic parameters may not be used in const operations* (which can be unlocked with `#![feature(generic_const_exprs)]`). Currently it doesn't. Or does this fall under [this paragraph](https://github.com/rust-lang/rust/blob/71f71a5397c42fec01f5c1045c638d961fa9f7ca/compiler/rustc_resolve/src/late.rs#L191)? * A: No, rust-lang#113522 (comment) * Q: Should `const UNUSED: () = () where String: Copy;` (with `#![feature(trivial_bounds)]` and with `UNUSED` unused) succeed compilation? Currently it doesn't: *evaluation of constant value failed // entering unreachable code* * A: Yes, but postponed until stabilization (latest), rust-lang#113522 (comment) </details>
This was referenced Sep 3, 2023
bors
referenced
this issue
in rust-lang/cargo
Oct 1, 2023
chore(deps): update compatible [](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [anstream](https://togithub.com/rust-cli/anstyle) | workspace.dependencies | patch | `0.6.3` -> `0.6.4` | | [base64](https://togithub.com/marshallpierce/rust-base64) | workspace.dependencies | patch | `0.21.3` -> `0.21.4` | | [color-print](https://gitlab.com/dajoha/color-print) | workspace.dependencies | patch | `0.3.4` -> `0.3.5` | | [git2](https://togithub.com/rust-lang/git2-rs) | workspace.dependencies | patch | `0.18.0` -> `0.18.1` | | [libloading](https://togithub.com/nagisa/rust_libloading) | workspace.dependencies | patch | `0.8.0` -> `0.8.1` | | [memchr](https://togithub.com/BurntSushi/memchr) | workspace.dependencies | patch | `2.6.2` -> `2.6.3` | | [proptest](https://proptest-rs.github.io/proptest/proptest/index.html) ([source](https://togithub.com/proptest-rs/proptest)) | workspace.dependencies | minor | `1.2.0` -> `1.3.0` | | [semver](https://togithub.com/dtolnay/semver) | workspace.dependencies | patch | `1.0.18` -> `1.0.19` | | [serde_json](https://togithub.com/serde-rs/json) | workspace.dependencies | patch | `1.0.105` -> `1.0.107` | | [sha1](https://togithub.com/RustCrypto/hashes) | workspace.dependencies | patch | `0.10.5` -> `0.10.6` | | [sha2](https://togithub.com/RustCrypto/hashes) | workspace.dependencies | patch | `0.10.7` -> `0.10.8` | | [syn](https://togithub.com/dtolnay/syn) | workspace.dependencies | patch | `2.0.29` -> `2.0.37` | | [thiserror](https://togithub.com/dtolnay/thiserror) | workspace.dependencies | patch | `1.0.47` -> `1.0.49` | | [unicode-width](https://togithub.com/unicode-rs/unicode-width) | workspace.dependencies | patch | `0.1.10` -> `0.1.11` | | [walkdir](https://togithub.com/BurntSushi/walkdir) | workspace.dependencies | minor | `2.3.3` -> `2.4.0` | --- ### Release Notes <details> <summary>rust-cli/anstyle (anstream)</summary> ### [`v0.6.4`](https://togithub.com/rust-cli/anstyle/compare/anstream-v0.6.3...anstream-v0.6.4) [Compare Source](https://togithub.com/rust-cli/anstyle/compare/anstream-v0.6.3...anstream-v0.6.4) </details> <details> <summary>marshallpierce/rust-base64 (base64)</summary> ### [`v0.21.4`](https://togithub.com/marshallpierce/rust-base64/blob/HEAD/RELEASE-NOTES.md#0214) [Compare Source](https://togithub.com/marshallpierce/rust-base64/compare/v0.21.3...v0.21.4) - Make `encoded_len` `const`, allowing the creation of arrays sized to encode compile-time-known data lengths </details> <details> <summary>rust-lang/git2-rs (git2)</summary> ### [`v0.18.1`](https://togithub.com/rust-lang/git2-rs/blob/HEAD/CHANGELOG.md#0181---2023-09-20) [Compare Source](https://togithub.com/rust-lang/git2-rs/compare/git2-0.18.0...git2-0.18.1) [0.18.0...0.18.1](https://togithub.com/rust-lang/git2-rs/compare/git2-0.18.0...git2-0.18.1) ##### Added - Added `FetchOptions::depth` to set the depth of a fetch or clone, adding support for shallow clones. [#​979](https://togithub.com/rust-lang/git2-rs/pull/979) ##### Fixed - Fixed an internal data type (`TreeWalkCbData`) to not assume it is a transparent type while casting. [#​989](https://togithub.com/rust-lang/git2-rs/pull/989) - Fixed so that `DiffPatchidOptions` and `StashSaveOptions` are publicly exported allowing the corresponding APIs to actually be used. [#​988](https://togithub.com/rust-lang/git2-rs/pull/988) </details> <details> <summary>nagisa/rust_libloading (libloading)</summary> ### [`v0.8.1`](https://togithub.com/nagisa/rust_libloading/compare/0.8.0...0.8.1) [Compare Source](https://togithub.com/nagisa/rust_libloading/compare/0.8.0...0.8.1) </details> <details> <summary>BurntSushi/memchr (memchr)</summary> ### [`v2.6.3`](https://togithub.com/BurntSushi/memchr/compare/2.6.2...2.6.3) [Compare Source](https://togithub.com/BurntSushi/memchr/compare/2.6.2...2.6.3) </details> <details> <summary>proptest-rs/proptest (proptest)</summary> ### [`v1.3.0`](https://togithub.com/proptest-rs/proptest/compare/v1.2.0...v1.3.0) [Compare Source](https://togithub.com/proptest-rs/proptest/compare/v1.2.0...v1.3.0) </details> <details> <summary>dtolnay/semver (semver)</summary> ### [`v1.0.19`](https://togithub.com/dtolnay/semver/releases/tag/1.0.19) [Compare Source](https://togithub.com/dtolnay/semver/compare/1.0.18...1.0.19) - Improve test coverage ([#​299](https://togithub.com/dtolnay/semver/issues/299), thanks [`@​CXWorks](https://togithub.com/CXWorks))` </details> <details> <summary>serde-rs/json (serde_json)</summary> ### [`v1.0.107`](https://togithub.com/serde-rs/json/releases/tag/v1.0.107) [Compare Source](https://togithub.com/serde-rs/json/compare/v1.0.106...v1.0.107) - impl IntoDeserializer for \&RawValue ([#​1071](https://togithub.com/serde-rs/json/issues/1071)) ### [`v1.0.106`](https://togithub.com/serde-rs/json/releases/tag/v1.0.106) [Compare Source](https://togithub.com/serde-rs/json/compare/v1.0.105...v1.0.106) - Add `Value::as_number` accessor ([#​1069](https://togithub.com/serde-rs/json/issues/1069), thanks [`@​chanced](https://togithub.com/chanced))` - Add `Number::as_str` accessor under "arbitrary_precision" feature ([#​1067](https://togithub.com/serde-rs/json/issues/1067), thanks [`@​chanced](https://togithub.com/chanced))` </details> <details> <summary>RustCrypto/hashes (sha1)</summary> ### [`v0.10.6`](https://togithub.com/RustCrypto/hashes/compare/sha1-v0.10.5...sha1-v0.10.6) [Compare Source](https://togithub.com/RustCrypto/hashes/compare/sha1-v0.10.5...sha1-v0.10.6) </details> <details> <summary>dtolnay/syn (syn)</summary> ### [`v2.0.37`](https://togithub.com/dtolnay/syn/releases/tag/2.0.37) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.36...2.0.37) - Work around incorrect future compatibility warning in rustc 1.74.0-nightly ### [`v2.0.36`](https://togithub.com/dtolnay/syn/releases/tag/2.0.36) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.35...2.0.36) - Restore compatibility with `--generate-link-to-definition` documentation builds ([#​1514](https://togithub.com/dtolnay/syn/issues/1514)) ### [`v2.0.35`](https://togithub.com/dtolnay/syn/releases/tag/2.0.35) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.34...2.0.35) - Make rust-analyzer produce preferred brackets for invocations of `Token!` macro ([#​1510](https://togithub.com/dtolnay/syn/issues/1510), [#​1512](https://togithub.com/dtolnay/syn/issues/1512)) ### [`v2.0.34`](https://togithub.com/dtolnay/syn/releases/tag/2.0.34) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.33...2.0.34) - Documentation improvements ### [`v2.0.33`](https://togithub.com/dtolnay/syn/releases/tag/2.0.33) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.32...2.0.33) - Special handling for the `(/*ERROR*/)` placeholder that rustc uses for macros that fail to expand ### [`v2.0.32`](https://togithub.com/dtolnay/syn/releases/tag/2.0.32) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.31...2.0.32) - Add `Path::require_ident` accessor ([#​1496](https://togithub.com/dtolnay/syn/issues/1496), thanks [`@​Fancyflame](https://togithub.com/Fancyflame))` ### [`v2.0.31`](https://togithub.com/dtolnay/syn/releases/tag/2.0.31) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.30...2.0.31) - Parse generics and where-clause on const items ([https://github.com/rust-lang/rust/issues/113521](https://togithub.com/rust-lang/rust/issues/113521)) ### [`v2.0.30`](https://togithub.com/dtolnay/syn/releases/tag/2.0.30) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.29...2.0.30) - Parse unnamed struct/union type syntax ([https://github.com/rust-lang/rust/issues/49804](https://togithub.com/rust-lang/rust/issues/49804)) </details> <details> <summary>dtolnay/thiserror (thiserror)</summary> ### [`v1.0.49`](https://togithub.com/dtolnay/thiserror/releases/tag/1.0.49) [Compare Source](https://togithub.com/dtolnay/thiserror/compare/1.0.48...1.0.49) - Access libcore types through `::core` in generated code ([#​255](https://togithub.com/dtolnay/thiserror/issues/255), thanks [`@​mina86](https://togithub.com/mina86))` ### [`v1.0.48`](https://togithub.com/dtolnay/thiserror/releases/tag/1.0.48) [Compare Source](https://togithub.com/dtolnay/thiserror/compare/1.0.47...1.0.48) - Improve implementation of displaying Path values in a generated Display impl ([#​251](https://togithub.com/dtolnay/thiserror/issues/251), thanks [`@​mina86](https://togithub.com/mina86))` </details> <details> <summary>unicode-rs/unicode-width (unicode-width)</summary> ### [`v0.1.11`](https://togithub.com/unicode-rs/unicode-width/compare/v0.1.10...v0.1.11) [Compare Source](https://togithub.com/unicode-rs/unicode-width/compare/v0.1.10...v0.1.11) </details> <details> <summary>BurntSushi/walkdir (walkdir)</summary> ### [`v2.4.0`](https://togithub.com/BurntSushi/walkdir/compare/2.3.3...2.4.0) [Compare Source](https://togithub.com/BurntSushi/walkdir/compare/2.3.3...2.4.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 5am on the first day of the month" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/rust-lang/cargo). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjMiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIifQ==-->
bors
referenced
this issue
in rust-lang/cargo
Oct 1, 2023
chore(deps): update compatible [](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [anstream](https://togithub.com/rust-cli/anstyle) | workspace.dependencies | patch | `0.6.3` -> `0.6.4` | | [base64](https://togithub.com/marshallpierce/rust-base64) | workspace.dependencies | patch | `0.21.3` -> `0.21.4` | | [color-print](https://gitlab.com/dajoha/color-print) | workspace.dependencies | patch | `0.3.4` -> `0.3.5` | | [git2](https://togithub.com/rust-lang/git2-rs) | workspace.dependencies | patch | `0.18.0` -> `0.18.1` | | [libloading](https://togithub.com/nagisa/rust_libloading) | workspace.dependencies | patch | `0.8.0` -> `0.8.1` | | [memchr](https://togithub.com/BurntSushi/memchr) | workspace.dependencies | patch | `2.6.2` -> `2.6.4` | | [proptest](https://proptest-rs.github.io/proptest/proptest/index.html) ([source](https://togithub.com/proptest-rs/proptest)) | workspace.dependencies | minor | `1.2.0` -> `1.3.1` | | [semver](https://togithub.com/dtolnay/semver) | workspace.dependencies | patch | `1.0.18` -> `1.0.19` | | [serde_json](https://togithub.com/serde-rs/json) | workspace.dependencies | patch | `1.0.105` -> `1.0.107` | | [sha1](https://togithub.com/RustCrypto/hashes) | workspace.dependencies | patch | `0.10.5` -> `0.10.6` | | [sha2](https://togithub.com/RustCrypto/hashes) | workspace.dependencies | patch | `0.10.7` -> `0.10.8` | | [syn](https://togithub.com/dtolnay/syn) | workspace.dependencies | patch | `2.0.29` -> `2.0.37` | | [thiserror](https://togithub.com/dtolnay/thiserror) | workspace.dependencies | patch | `1.0.47` -> `1.0.49` | | [unicode-width](https://togithub.com/unicode-rs/unicode-width) | workspace.dependencies | patch | `0.1.10` -> `0.1.11` | | [walkdir](https://togithub.com/BurntSushi/walkdir) | workspace.dependencies | minor | `2.3.3` -> `2.4.0` | --- ### Release Notes <details> <summary>rust-cli/anstyle (anstream)</summary> ### [`v0.6.4`](https://togithub.com/rust-cli/anstyle/compare/anstream-v0.6.3...anstream-v0.6.4) [Compare Source](https://togithub.com/rust-cli/anstyle/compare/anstream-v0.6.3...anstream-v0.6.4) </details> <details> <summary>marshallpierce/rust-base64 (base64)</summary> ### [`v0.21.4`](https://togithub.com/marshallpierce/rust-base64/blob/HEAD/RELEASE-NOTES.md#0214) [Compare Source](https://togithub.com/marshallpierce/rust-base64/compare/v0.21.3...v0.21.4) - Make `encoded_len` `const`, allowing the creation of arrays sized to encode compile-time-known data lengths </details> <details> <summary>rust-lang/git2-rs (git2)</summary> ### [`v0.18.1`](https://togithub.com/rust-lang/git2-rs/blob/HEAD/CHANGELOG.md#0181---2023-09-20) [Compare Source](https://togithub.com/rust-lang/git2-rs/compare/git2-0.18.0...git2-0.18.1) [0.18.0...0.18.1](https://togithub.com/rust-lang/git2-rs/compare/git2-0.18.0...git2-0.18.1) ##### Added - Added `FetchOptions::depth` to set the depth of a fetch or clone, adding support for shallow clones. [#​979](https://togithub.com/rust-lang/git2-rs/pull/979) ##### Fixed - Fixed an internal data type (`TreeWalkCbData`) to not assume it is a transparent type while casting. [#​989](https://togithub.com/rust-lang/git2-rs/pull/989) - Fixed so that `DiffPatchidOptions` and `StashSaveOptions` are publicly exported allowing the corresponding APIs to actually be used. [#​988](https://togithub.com/rust-lang/git2-rs/pull/988) </details> <details> <summary>nagisa/rust_libloading (libloading)</summary> ### [`v0.8.1`](https://togithub.com/nagisa/rust_libloading/compare/0.8.0...0.8.1) [Compare Source](https://togithub.com/nagisa/rust_libloading/compare/0.8.0...0.8.1) </details> <details> <summary>BurntSushi/memchr (memchr)</summary> ### [`v2.6.4`](https://togithub.com/BurntSushi/memchr/compare/2.6.3...2.6.4) [Compare Source](https://togithub.com/BurntSushi/memchr/compare/2.6.3...2.6.4) ### [`v2.6.3`](https://togithub.com/BurntSushi/memchr/compare/2.6.2...2.6.3) [Compare Source](https://togithub.com/BurntSushi/memchr/compare/2.6.2...2.6.3) </details> <details> <summary>proptest-rs/proptest (proptest)</summary> ### [`v1.3.1`](https://togithub.com/proptest-rs/proptest/compare/v1.3.0...v1.3.1) [Compare Source](https://togithub.com/proptest-rs/proptest/compare/v1.3.0...v1.3.1) ### [`v1.3.0`](https://togithub.com/proptest-rs/proptest/compare/v1.2.0...v1.3.0) [Compare Source](https://togithub.com/proptest-rs/proptest/compare/v1.2.0...v1.3.0) </details> <details> <summary>dtolnay/semver (semver)</summary> ### [`v1.0.19`](https://togithub.com/dtolnay/semver/releases/tag/1.0.19) [Compare Source](https://togithub.com/dtolnay/semver/compare/1.0.18...1.0.19) - Improve test coverage ([#​299](https://togithub.com/dtolnay/semver/issues/299), thanks [`@​CXWorks](https://togithub.com/CXWorks))` </details> <details> <summary>serde-rs/json (serde_json)</summary> ### [`v1.0.107`](https://togithub.com/serde-rs/json/releases/tag/v1.0.107) [Compare Source](https://togithub.com/serde-rs/json/compare/v1.0.106...v1.0.107) - impl IntoDeserializer for \&RawValue ([#​1071](https://togithub.com/serde-rs/json/issues/1071)) ### [`v1.0.106`](https://togithub.com/serde-rs/json/releases/tag/v1.0.106) [Compare Source](https://togithub.com/serde-rs/json/compare/v1.0.105...v1.0.106) - Add `Value::as_number` accessor ([#​1069](https://togithub.com/serde-rs/json/issues/1069), thanks [`@​chanced](https://togithub.com/chanced))` - Add `Number::as_str` accessor under "arbitrary_precision" feature ([#​1067](https://togithub.com/serde-rs/json/issues/1067), thanks [`@​chanced](https://togithub.com/chanced))` </details> <details> <summary>RustCrypto/hashes (sha1)</summary> ### [`v0.10.6`](https://togithub.com/RustCrypto/hashes/compare/sha2-v0.10.5...sha2-v0.10.6) [Compare Source](https://togithub.com/RustCrypto/hashes/compare/sha1-v0.10.5...sha1-v0.10.6) </details> <details> <summary>dtolnay/syn (syn)</summary> ### [`v2.0.37`](https://togithub.com/dtolnay/syn/releases/tag/2.0.37) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.36...2.0.37) - Work around incorrect future compatibility warning in rustc 1.74.0-nightly ### [`v2.0.36`](https://togithub.com/dtolnay/syn/releases/tag/2.0.36) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.35...2.0.36) - Restore compatibility with `--generate-link-to-definition` documentation builds ([#​1514](https://togithub.com/dtolnay/syn/issues/1514)) ### [`v2.0.35`](https://togithub.com/dtolnay/syn/releases/tag/2.0.35) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.34...2.0.35) - Make rust-analyzer produce preferred brackets for invocations of `Token!` macro ([#​1510](https://togithub.com/dtolnay/syn/issues/1510), [#​1512](https://togithub.com/dtolnay/syn/issues/1512)) ### [`v2.0.34`](https://togithub.com/dtolnay/syn/releases/tag/2.0.34) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.33...2.0.34) - Documentation improvements ### [`v2.0.33`](https://togithub.com/dtolnay/syn/releases/tag/2.0.33) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.32...2.0.33) - Special handling for the `(/*ERROR*/)` placeholder that rustc uses for macros that fail to expand ### [`v2.0.32`](https://togithub.com/dtolnay/syn/releases/tag/2.0.32) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.31...2.0.32) - Add `Path::require_ident` accessor ([#​1496](https://togithub.com/dtolnay/syn/issues/1496), thanks [`@​Fancyflame](https://togithub.com/Fancyflame))` ### [`v2.0.31`](https://togithub.com/dtolnay/syn/releases/tag/2.0.31) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.30...2.0.31) - Parse generics and where-clause on const items ([https://github.com/rust-lang/rust/issues/113521](https://togithub.com/rust-lang/rust/issues/113521)) ### [`v2.0.30`](https://togithub.com/dtolnay/syn/releases/tag/2.0.30) [Compare Source](https://togithub.com/dtolnay/syn/compare/2.0.29...2.0.30) - Parse unnamed struct/union type syntax ([https://github.com/rust-lang/rust/issues/49804](https://togithub.com/rust-lang/rust/issues/49804)) </details> <details> <summary>dtolnay/thiserror (thiserror)</summary> ### [`v1.0.49`](https://togithub.com/dtolnay/thiserror/releases/tag/1.0.49) [Compare Source](https://togithub.com/dtolnay/thiserror/compare/1.0.48...1.0.49) - Access libcore types through `::core` in generated code ([#​255](https://togithub.com/dtolnay/thiserror/issues/255), thanks [`@​mina86](https://togithub.com/mina86))` ### [`v1.0.48`](https://togithub.com/dtolnay/thiserror/releases/tag/1.0.48) [Compare Source](https://togithub.com/dtolnay/thiserror/compare/1.0.47...1.0.48) - Improve implementation of displaying Path values in a generated Display impl ([#​251](https://togithub.com/dtolnay/thiserror/issues/251), thanks [`@​mina86](https://togithub.com/mina86))` </details> <details> <summary>unicode-rs/unicode-width (unicode-width)</summary> ### [`v0.1.11`](https://togithub.com/unicode-rs/unicode-width/compare/v0.1.10...v0.1.11) [Compare Source](https://togithub.com/unicode-rs/unicode-width/compare/v0.1.10...v0.1.11) </details> <details> <summary>BurntSushi/walkdir (walkdir)</summary> ### [`v2.4.0`](https://togithub.com/BurntSushi/walkdir/compare/2.3.3...2.4.0) [Compare Source](https://togithub.com/BurntSushi/walkdir/compare/2.3.3...2.4.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 5am on the first day of the month" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/rust-lang/cargo). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjMiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIifQ==-->
Making a note that there's an issue in rustfmt related to Edit: The issue should be resolved by rust-lang/rustfmt#5996 |
3 tasks
bors
added a commit
to rust-lang-ci/rust
that referenced
this issue
Feb 2, 2025
GCI: At their def site, actually wfcheck the where-clause & always eval free lifetime-generic constants 1st commit: Partially addresses rust-lang#136204 by turning const eval errors from post to pre-mono for free lifetime-generic constants. Re. 2nd commit: Oof, that's embarrassing! How could I miss that in the initial impl? This doesn't fully address rust-lang#136204 because I still haven't figured out how & where to properly & best suppress const eval of free constants whose predicates don't hold at the def site. The motivating example is `#![feature(trivial_bounds)] const _UNUSED: () = () where String: Copy;` which can also be found over at the tracking issue rust-lang#113521. r? compiler-errors or reassign
bors
added a commit
to rust-lang-ci/rust
that referenced
this issue
Feb 3, 2025
GCI: At their def site, actually wfcheck the where-clause & always eval free lifetime-generic constants 1st commit: Partially addresses rust-lang#136204 by turning const eval errors from post to pre-mono for free lifetime-generic constants. Re. 2nd commit: Oof, yeah, I missed that in the initial impl! This doesn't fully address rust-lang#136204 because I still haven't figured out how & where to properly & best suppress const eval of free constants whose predicates don't hold at the def site. The motivating example is `#![feature(trivial_bounds)] const _UNUSED: () = () where String: Copy;` which can also be found over at the tracking issue rust-lang#113521. r? compiler-errors or reassign
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 (requires FCP to stablize).
B-unstable
Blocker: Implemented in the nightly compiler and unstable.
C-tracking-issue
Category: An issue tracking the progress of sth. like the implementation of an RFC
F-generic_const_items
`#![feature(generic_const_items)]`
S-tracking-needs-to-bake
Status: The implementation is "complete" but it needs time to bake.
T-lang
Relevant to the language team, which will review and decide on the PR/issue.
This is a tracking issue for the experimental feature generic const items (RFC pending).
The feature gate for the issue is
#![feature(generic_const_items)]
.It enables generic parameters and where-clauses on free and associated const items.
See also rust-lang/lang-team#214.
About experimental features
An experimental feature is one that has not yet had an RFC. The idea is to allow implementation work to proceed to better inform an upcoming RFC. Experimental features cannot be stabilized without first having an RFC. The existence of an experimental feature does not indicate lang team consensus that the feature is desirable, only that there is a problem that is worthy of being solved and that the idea has enough merit to consider exploring. See the lang team process page for more details.
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
Experimental results
Part of the goal of the experimental process is to identify benefits but also concerns that need to be addressed in the RFC. This section catalogues notable findings thus far.
where Self: 'a
” bounds on GACs like we do on GATs (GATs: Decide whether to have defaults forwhere Self: 'a
#87479)?Unresolved, not implemented.
#![feature(trivial_bounds)] const _UNUSED: () = () where String: Copy;
successfully compile?Ideally yes, not implemented.
const _<T>: () = ();
)?Unresolved, not implemented.
&'a &'b ()
inconst K<'a, 'b>: &'a &'b () = &&();
imply the bound'b: 'a
(similarly,const K<'a, T>: &'a T = loop {};
andT: 'a
)?Probably yes, not implemented.
Implementation history
const Trait
(always-const trait bounds) #119099Footnotes
Generic associated constants, i.e., associated constants with generics and/or a where clause. ↩
The text was updated successfully, but these errors were encountered: