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 generic const items #113521

Open
1 of 7 tasks
fmease opened this issue Jul 10, 2023 · 1 comment
Open
1 of 7 tasks

Tracking issue for generic const items #113521

fmease opened this issue Jul 10, 2023 · 1 comment
Assignees
Labels
B-experimental Blocker: In-tree experiment; RFC pending 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

@fmease
Copy link
Member

fmease commented Jul 10, 2023

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.

  1. Do we want to require “where Self: 'a” bounds on GACs like we do on GATs (GATs: Decide whether to have defaults for where Self: 'a #87479)?
    Unresolved, not implemented.
  2. Should #![feature(trivial_bounds)] const _UNUSED: () = () where String: Copy; successfully compile?
    Ideally yes, not implemented.
  3. Should we forbid underscore identifiers for const items with generic parameters (e.g., const _<T>: () = ();)?
    Unresolved, not implemented.
  4. Should we imply some outlives-bounds? E.g., should the presence of &'a &'b () in const K<'a, 'b>: &'a &'b () = &&(); imply the bound 'b: 'a (similarly, const K<'a, T>: &'a T = loop {}; and T: 'a)?
    Probably yes, not implemented.

Implementation history

Footnotes

  1. Generic associated constants, i.e., associated constants with generics and/or a where clause.

@rustbot 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 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>
@rustbot rustbot added the F-generic_const_items `#![feature(generic_const_items)]` label Jul 29, 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://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.
    [#&#8203;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.
    [#&#8203;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.
    [#&#8203;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 ([#&#8203;299](https://togithub.com/dtolnay/semver/issues/299), thanks [`@&#8203;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 ([#&#8203;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 ([#&#8203;1069](https://togithub.com/serde-rs/json/issues/1069), thanks [`@&#8203;chanced](https://togithub.com/chanced))`
-   Add `Number::as_str` accessor under "arbitrary_precision" feature ([#&#8203;1067](https://togithub.com/serde-rs/json/issues/1067), thanks [`@&#8203;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 ([#&#8203;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 ([#&#8203;1510](https://togithub.com/dtolnay/syn/issues/1510), [#&#8203;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 ([#&#8203;1496](https://togithub.com/dtolnay/syn/issues/1496), thanks [`@&#8203;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 ([#&#8203;255](https://togithub.com/dtolnay/thiserror/issues/255), thanks [`@&#8203;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 ([#&#8203;251](https://togithub.com/dtolnay/thiserror/issues/251), thanks [`@&#8203;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

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](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.
    [#&#8203;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.
    [#&#8203;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.
    [#&#8203;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 ([#&#8203;299](https://togithub.com/dtolnay/semver/issues/299), thanks [`@&#8203;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 ([#&#8203;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 ([#&#8203;1069](https://togithub.com/serde-rs/json/issues/1069), thanks [`@&#8203;chanced](https://togithub.com/chanced))`
-   Add `Number::as_str` accessor under "arbitrary_precision" feature ([#&#8203;1067](https://togithub.com/serde-rs/json/issues/1067), thanks [`@&#8203;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 ([#&#8203;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 ([#&#8203;1510](https://togithub.com/dtolnay/syn/issues/1510), [#&#8203;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 ([#&#8203;1496](https://togithub.com/dtolnay/syn/issues/1496), thanks [`@&#8203;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 ([#&#8203;255](https://togithub.com/dtolnay/thiserror/issues/255), thanks [`@&#8203;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 ([#&#8203;251](https://togithub.com/dtolnay/thiserror/issues/251), thanks [`@&#8203;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==-->
@fmease fmease self-assigned this Dec 28, 2023
@ytmimi
Copy link
Contributor

ytmimi commented Dec 29, 2023

Making a note that there's an issue in rustfmt related to #![feature(generic_const_items)] rust-lang/rustfmt#5995.

Edit: The issue should be resolved by rust-lang/rustfmt#5996

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 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.
Projects
None yet
Development

No branches or pull requests

3 participants