about summary refs log tree commit diff
path: root/compiler/rustc_pattern_analysis/src/rustc.rs
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-03-18 22:24:36 +0100
committerGitHub <noreply@github.com>2024-03-18 22:24:36 +0100
commit05f763344d396fa59563da6aafb85c9f5e6716f4 (patch)
tree3d5535c0e2ad77bfeb468fe0d1ff6d34b9437534 /compiler/rustc_pattern_analysis/src/rustc.rs
parentd31b6fb8c06b43536ac5be38462d2a55784e2199 (diff)
parent0b2fb8db6540b0548230cd335e7b2a845686f7ea (diff)
downloadrust-05f763344d396fa59563da6aafb85c9f5e6716f4.tar.gz
rust-05f763344d396fa59563da6aafb85c9f5e6716f4.zip
Rollup merge of #121258 - fmease:assoc-const-eq-reject-overly-generic-tys, r=compiler-errors
Reject overly generic assoc const binding types

Split off from #119385 to make #119385 easier to review.

---

In the *instantiated* type of assoc const bindings

1. reject **early-bound generic params**
   * Provide a rich error message instead of ICE'ing ([#108271](https://github.com/rust-lang/rust/issues/108271)).
   * This is a temporary and semi-artificial restriction until the arrival of *generic const generics*.
   * It's quite possible that rustc could already perfectly support this subset of generic const generics if we just removed some checks (some `.no_bound_vars().expect(…)`) but even if that was the case, I'd rather gate it behind a new feature flag. Reporting an error instead of ICE'ing is a good first step towards an eventual feature gate error.
2. reject **escaping late-bound generic params**
   * They lead to ICEs before & I'm pretty sure that they remain incorrect even in a world with *generic const generics*

---

Together with #118668 & #119385, this supersedes #118360.
Fixes #108271.
Diffstat (limited to 'compiler/rustc_pattern_analysis/src/rustc.rs')
0 files changed, 0 insertions, 0 deletions