fix ice for associated constant generics

This commit is contained in:
Takayuki Maeda 2022-06-28 18:29:07 +09:00
parent d40f24e956
commit 8c7d9f6092
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`.