Rollup merge of #98609 - TaKO8Ki:fix-ice-for-associated-constant-generics, r=lcnr

Fix ICE for associated constant generics

Fixes #98432
This commit is contained in:
Matthias Krüger 2022-06-28 18:34:31 +02:00 committed by GitHub
commit a1b06388ce
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 1 deletions

View file

@ -956,7 +956,7 @@ impl SourceMap {
}
pub fn generate_fn_name_span(&self, span: Span) -> Option<Span> {
let prev_span = self.span_extend_to_prev_str(span, "fn", true, true).unwrap_or(span);
let prev_span = self.span_extend_to_prev_str(span, "fn", true, true)?;
if let Ok(snippet) = self.span_to_snippet(prev_span) {
debug!(
"generate_fn_name_span: span={:?}, prev_span={:?}, snippet={:?}",

View file

@ -0,0 +1,9 @@
struct Struct<T>(T);
impl<T> Struct<T> {
const CONST: fn() = || {
struct _Obligation where T:; //~ ERROR can't use generic parameters from outer function
};
}
fn main() {}

View file

@ -0,0 +1,14 @@
error[E0401]: can't use generic parameters from outer function
--> $DIR/issue-98432.rs:5:34
|
LL | impl<T> Struct<T> {
| - type parameter from outer function
LL | const CONST: fn() = || {
LL | struct _Obligation where T:;
| ^ use of generic parameter from outer function
|
= help: try using a local generic parameter instead
error: aborting due to previous error
For more information about this error, try `rustc --explain E0401`.