-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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.
B-unstable
Blocker: Implemented in the nightly compiler and unstable.
C-tracking-issue
Category: A tracking issue for an RFC or an unstable feature.
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
rustbot
added
needs-triage
This issue may need triage. Remove it if it has been sufficiently triaged.
C-tracking-issue
Category: A tracking issue for an RFC or an unstable feature.
T-lang
Relevant to the language team, which will review and decide on the PR/issue.
and removed
needs-triage
This issue may need triage. Remove it if it has been sufficiently triaged.
labels
Jul 10, 2023
fmease
changed the title
Tracking issue for generic consts
Tracking issue for generic const items
Jul 10, 2023
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 [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [anstream](https://github.com/rust-cli/anstyle) | workspace.dependencies | patch | `0.6.3` -> `0.6.4` | | [base64](https://github.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://github.com/rust-lang/git2-rs) | workspace.dependencies | patch | `0.18.0` -> `0.18.1` | | [libloading](https://github.com/nagisa/rust_libloading) | workspace.dependencies | patch | `0.8.0` -> `0.8.1` | | [memchr](https://github.com/BurntSushi/memchr) | workspace.dependencies | patch | `2.6.2` -> `2.6.3` | | [proptest](https://proptest-rs.github.io/proptest/proptest/index.html) ([source](https://github.com/proptest-rs/proptest)) | workspace.dependencies | minor | `1.2.0` -> `1.3.0` | | [semver](https://github.com/dtolnay/semver) | workspace.dependencies | patch | `1.0.18` -> `1.0.19` | | [serde_json](https://github.com/serde-rs/json) | workspace.dependencies | patch | `1.0.105` -> `1.0.107` | | [sha1](https://github.com/RustCrypto/hashes) | workspace.dependencies | patch | `0.10.5` -> `0.10.6` | | [sha2](https://github.com/RustCrypto/hashes) | workspace.dependencies | patch | `0.10.7` -> `0.10.8` | | [syn](https://github.com/dtolnay/syn) | workspace.dependencies | patch | `2.0.29` -> `2.0.37` | | [thiserror](https://github.com/dtolnay/thiserror) | workspace.dependencies | patch | `1.0.47` -> `1.0.49` | | [unicode-width](https://github.com/unicode-rs/unicode-width) | workspace.dependencies | patch | `0.1.10` -> `0.1.11` | | [walkdir](https://github.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://github.com/rust-cli/anstyle/compare/anstream-v0.6.3...anstream-v0.6.4) [Compare Source](https://github.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://github.com/marshallpierce/rust-base64/blob/HEAD/RELEASE-NOTES.md#0214) [Compare Source](https://github.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://github.com/rust-lang/git2-rs/blob/HEAD/CHANGELOG.md#0181---2023-09-20) [Compare Source](https://github.com/rust-lang/git2-rs/compare/git2-0.18.0...git2-0.18.1) [0.18.0...0.18.1](https://github.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://github.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://github.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://github.com/rust-lang/git2-rs/pull/988) </details> <details> <summary>nagisa/rust_libloading (libloading)</summary> ### [`v0.8.1`](https://github.com/nagisa/rust_libloading/compare/0.8.0...0.8.1) [Compare Source](https://github.com/nagisa/rust_libloading/compare/0.8.0...0.8.1) </details> <details> <summary>BurntSushi/memchr (memchr)</summary> ### [`v2.6.3`](https://github.com/BurntSushi/memchr/compare/2.6.2...2.6.3) [Compare Source](https://github.com/BurntSushi/memchr/compare/2.6.2...2.6.3) </details> <details> <summary>proptest-rs/proptest (proptest)</summary> ### [`v1.3.0`](https://github.com/proptest-rs/proptest/compare/v1.2.0...v1.3.0) [Compare Source](https://github.com/proptest-rs/proptest/compare/v1.2.0...v1.3.0) </details> <details> <summary>dtolnay/semver (semver)</summary> ### [`v1.0.19`](https://github.com/dtolnay/semver/releases/tag/1.0.19) [Compare Source](https://github.com/dtolnay/semver/compare/1.0.18...1.0.19) - Improve test coverage ([#​299](https://github.com/dtolnay/semver/issues/299), thanks [`@​CXWorks](https://github.com/CXWorks))` </details> <details> <summary>serde-rs/json (serde_json)</summary> ### [`v1.0.107`](https://github.com/serde-rs/json/releases/tag/v1.0.107) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.106...v1.0.107) - impl IntoDeserializer for \&RawValue ([#​1071](https://github.com/serde-rs/json/issues/1071)) ### [`v1.0.106`](https://github.com/serde-rs/json/releases/tag/v1.0.106) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.105...v1.0.106) - Add `Value::as_number` accessor ([#​1069](https://github.com/serde-rs/json/issues/1069), thanks [`@​chanced](https://github.com/chanced))` - Add `Number::as_str` accessor under "arbitrary_precision" feature ([#​1067](https://github.com/serde-rs/json/issues/1067), thanks [`@​chanced](https://github.com/chanced))` </details> <details> <summary>RustCrypto/hashes (sha1)</summary> ### [`v0.10.6`](https://github.com/RustCrypto/hashes/compare/sha1-v0.10.5...sha1-v0.10.6) [Compare Source](https://github.com/RustCrypto/hashes/compare/sha1-v0.10.5...sha1-v0.10.6) </details> <details> <summary>dtolnay/syn (syn)</summary> ### [`v2.0.37`](https://github.com/dtolnay/syn/releases/tag/2.0.37) [Compare Source](https://github.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://github.com/dtolnay/syn/releases/tag/2.0.36) [Compare Source](https://github.com/dtolnay/syn/compare/2.0.35...2.0.36) - Restore compatibility with `--generate-link-to-definition` documentation builds ([#​1514](https://github.com/dtolnay/syn/issues/1514)) ### [`v2.0.35`](https://github.com/dtolnay/syn/releases/tag/2.0.35) [Compare Source](https://github.com/dtolnay/syn/compare/2.0.34...2.0.35) - Make rust-analyzer produce preferred brackets for invocations of `Token!` macro ([#​1510](https://github.com/dtolnay/syn/issues/1510), [#​1512](https://github.com/dtolnay/syn/issues/1512)) ### [`v2.0.34`](https://github.com/dtolnay/syn/releases/tag/2.0.34) [Compare Source](https://github.com/dtolnay/syn/compare/2.0.33...2.0.34) - Documentation improvements ### [`v2.0.33`](https://github.com/dtolnay/syn/releases/tag/2.0.33) [Compare Source](https://github.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://github.com/dtolnay/syn/releases/tag/2.0.32) [Compare Source](https://github.com/dtolnay/syn/compare/2.0.31...2.0.32) - Add `Path::require_ident` accessor ([#​1496](https://github.com/dtolnay/syn/issues/1496), thanks [`@​Fancyflame](https://github.com/Fancyflame))` ### [`v2.0.31`](https://github.com/dtolnay/syn/releases/tag/2.0.31) [Compare Source](https://github.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://github.com/rust-lang/rust/issues/113521)) ### [`v2.0.30`](https://github.com/dtolnay/syn/releases/tag/2.0.30) [Compare Source](https://github.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://github.com/rust-lang/rust/issues/49804)) </details> <details> <summary>dtolnay/thiserror (thiserror)</summary> ### [`v1.0.49`](https://github.com/dtolnay/thiserror/releases/tag/1.0.49) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.48...1.0.49) - Access libcore types through `::core` in generated code ([#​255](https://github.com/dtolnay/thiserror/issues/255), thanks [`@​mina86](https://github.com/mina86))` ### [`v1.0.48`](https://github.com/dtolnay/thiserror/releases/tag/1.0.48) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.47...1.0.48) - Improve implementation of displaying Path values in a generated Display impl ([#​251](https://github.com/dtolnay/thiserror/issues/251), thanks [`@​mina86](https://github.com/mina86))` </details> <details> <summary>unicode-rs/unicode-width (unicode-width)</summary> ### [`v0.1.11`](https://github.com/unicode-rs/unicode-width/compare/v0.1.10...v0.1.11) [Compare Source](https://github.com/unicode-rs/unicode-width/compare/v0.1.10...v0.1.11) </details> <details> <summary>BurntSushi/walkdir (walkdir)</summary> ### [`v2.4.0`](https://github.com/BurntSushi/walkdir/compare/2.3.3...2.4.0) [Compare Source](https://github.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://github.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 [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [anstream](https://github.com/rust-cli/anstyle) | workspace.dependencies | patch | `0.6.3` -> `0.6.4` | | [base64](https://github.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://github.com/rust-lang/git2-rs) | workspace.dependencies | patch | `0.18.0` -> `0.18.1` | | [libloading](https://github.com/nagisa/rust_libloading) | workspace.dependencies | patch | `0.8.0` -> `0.8.1` | | [memchr](https://github.com/BurntSushi/memchr) | workspace.dependencies | patch | `2.6.2` -> `2.6.4` | | [proptest](https://proptest-rs.github.io/proptest/proptest/index.html) ([source](https://github.com/proptest-rs/proptest)) | workspace.dependencies | minor | `1.2.0` -> `1.3.1` | | [semver](https://github.com/dtolnay/semver) | workspace.dependencies | patch | `1.0.18` -> `1.0.19` | | [serde_json](https://github.com/serde-rs/json) | workspace.dependencies | patch | `1.0.105` -> `1.0.107` | | [sha1](https://github.com/RustCrypto/hashes) | workspace.dependencies | patch | `0.10.5` -> `0.10.6` | | [sha2](https://github.com/RustCrypto/hashes) | workspace.dependencies | patch | `0.10.7` -> `0.10.8` | | [syn](https://github.com/dtolnay/syn) | workspace.dependencies | patch | `2.0.29` -> `2.0.37` | | [thiserror](https://github.com/dtolnay/thiserror) | workspace.dependencies | patch | `1.0.47` -> `1.0.49` | | [unicode-width](https://github.com/unicode-rs/unicode-width) | workspace.dependencies | patch | `0.1.10` -> `0.1.11` | | [walkdir](https://github.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://github.com/rust-cli/anstyle/compare/anstream-v0.6.3...anstream-v0.6.4) [Compare Source](https://github.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://github.com/marshallpierce/rust-base64/blob/HEAD/RELEASE-NOTES.md#0214) [Compare Source](https://github.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://github.com/rust-lang/git2-rs/blob/HEAD/CHANGELOG.md#0181---2023-09-20) [Compare Source](https://github.com/rust-lang/git2-rs/compare/git2-0.18.0...git2-0.18.1) [0.18.0...0.18.1](https://github.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://github.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://github.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://github.com/rust-lang/git2-rs/pull/988) </details> <details> <summary>nagisa/rust_libloading (libloading)</summary> ### [`v0.8.1`](https://github.com/nagisa/rust_libloading/compare/0.8.0...0.8.1) [Compare Source](https://github.com/nagisa/rust_libloading/compare/0.8.0...0.8.1) </details> <details> <summary>BurntSushi/memchr (memchr)</summary> ### [`v2.6.4`](https://github.com/BurntSushi/memchr/compare/2.6.3...2.6.4) [Compare Source](https://github.com/BurntSushi/memchr/compare/2.6.3...2.6.4) ### [`v2.6.3`](https://github.com/BurntSushi/memchr/compare/2.6.2...2.6.3) [Compare Source](https://github.com/BurntSushi/memchr/compare/2.6.2...2.6.3) </details> <details> <summary>proptest-rs/proptest (proptest)</summary> ### [`v1.3.1`](https://github.com/proptest-rs/proptest/compare/v1.3.0...v1.3.1) [Compare Source](https://github.com/proptest-rs/proptest/compare/v1.3.0...v1.3.1) ### [`v1.3.0`](https://github.com/proptest-rs/proptest/compare/v1.2.0...v1.3.0) [Compare Source](https://github.com/proptest-rs/proptest/compare/v1.2.0...v1.3.0) </details> <details> <summary>dtolnay/semver (semver)</summary> ### [`v1.0.19`](https://github.com/dtolnay/semver/releases/tag/1.0.19) [Compare Source](https://github.com/dtolnay/semver/compare/1.0.18...1.0.19) - Improve test coverage ([#​299](https://github.com/dtolnay/semver/issues/299), thanks [`@​CXWorks](https://github.com/CXWorks))` </details> <details> <summary>serde-rs/json (serde_json)</summary> ### [`v1.0.107`](https://github.com/serde-rs/json/releases/tag/v1.0.107) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.106...v1.0.107) - impl IntoDeserializer for \&RawValue ([#​1071](https://github.com/serde-rs/json/issues/1071)) ### [`v1.0.106`](https://github.com/serde-rs/json/releases/tag/v1.0.106) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.105...v1.0.106) - Add `Value::as_number` accessor ([#​1069](https://github.com/serde-rs/json/issues/1069), thanks [`@​chanced](https://github.com/chanced))` - Add `Number::as_str` accessor under "arbitrary_precision" feature ([#​1067](https://github.com/serde-rs/json/issues/1067), thanks [`@​chanced](https://github.com/chanced))` </details> <details> <summary>RustCrypto/hashes (sha1)</summary> ### [`v0.10.6`](https://github.com/RustCrypto/hashes/compare/sha2-v0.10.5...sha2-v0.10.6) [Compare Source](https://github.com/RustCrypto/hashes/compare/sha1-v0.10.5...sha1-v0.10.6) </details> <details> <summary>dtolnay/syn (syn)</summary> ### [`v2.0.37`](https://github.com/dtolnay/syn/releases/tag/2.0.37) [Compare Source](https://github.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://github.com/dtolnay/syn/releases/tag/2.0.36) [Compare Source](https://github.com/dtolnay/syn/compare/2.0.35...2.0.36) - Restore compatibility with `--generate-link-to-definition` documentation builds ([#​1514](https://github.com/dtolnay/syn/issues/1514)) ### [`v2.0.35`](https://github.com/dtolnay/syn/releases/tag/2.0.35) [Compare Source](https://github.com/dtolnay/syn/compare/2.0.34...2.0.35) - Make rust-analyzer produce preferred brackets for invocations of `Token!` macro ([#​1510](https://github.com/dtolnay/syn/issues/1510), [#​1512](https://github.com/dtolnay/syn/issues/1512)) ### [`v2.0.34`](https://github.com/dtolnay/syn/releases/tag/2.0.34) [Compare Source](https://github.com/dtolnay/syn/compare/2.0.33...2.0.34) - Documentation improvements ### [`v2.0.33`](https://github.com/dtolnay/syn/releases/tag/2.0.33) [Compare Source](https://github.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://github.com/dtolnay/syn/releases/tag/2.0.32) [Compare Source](https://github.com/dtolnay/syn/compare/2.0.31...2.0.32) - Add `Path::require_ident` accessor ([#​1496](https://github.com/dtolnay/syn/issues/1496), thanks [`@​Fancyflame](https://github.com/Fancyflame))` ### [`v2.0.31`](https://github.com/dtolnay/syn/releases/tag/2.0.31) [Compare Source](https://github.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://github.com/rust-lang/rust/issues/113521)) ### [`v2.0.30`](https://github.com/dtolnay/syn/releases/tag/2.0.30) [Compare Source](https://github.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://github.com/rust-lang/rust/issues/49804)) </details> <details> <summary>dtolnay/thiserror (thiserror)</summary> ### [`v1.0.49`](https://github.com/dtolnay/thiserror/releases/tag/1.0.49) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.48...1.0.49) - Access libcore types through `::core` in generated code ([#​255](https://github.com/dtolnay/thiserror/issues/255), thanks [`@​mina86](https://github.com/mina86))` ### [`v1.0.48`](https://github.com/dtolnay/thiserror/releases/tag/1.0.48) [Compare Source](https://github.com/dtolnay/thiserror/compare/1.0.47...1.0.48) - Improve implementation of displaying Path values in a generated Display impl ([#​251](https://github.com/dtolnay/thiserror/issues/251), thanks [`@​mina86](https://github.com/mina86))` </details> <details> <summary>unicode-rs/unicode-width (unicode-width)</summary> ### [`v0.1.11`](https://github.com/unicode-rs/unicode-width/compare/v0.1.10...v0.1.11) [Compare Source](https://github.com/unicode-rs/unicode-width/compare/v0.1.10...v0.1.11) </details> <details> <summary>BurntSushi/walkdir (walkdir)</summary> ### [`v2.4.0`](https://github.com/BurntSushi/walkdir/compare/2.3.3...2.4.0) [Compare Source](https://github.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://github.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 |
fmease
added
the
B-unstable
Blocker: Implemented in the nightly compiler and unstable.
label
Feb 21, 2024
fmease
added
the
B-experimental
Blocker: In-tree experiment; RFC pending, not yet approved or unneeded.
label
Feb 28, 2024
fmease
added
the
S-tracking-needs-to-bake
Status: The implementation is "complete" but it needs time to bake.
label
Apr 22, 2024
3 tasks
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.
B-unstable
Blocker: Implemented in the nightly compiler and unstable.
C-tracking-issue
Category: A tracking issue for an RFC or an unstable feature.
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: