Merge #6845
6845: Don't HirDisplay unknown types when displaying for source r=Veykril a=Veykril Was wondering why the add missing impl assist didn't do anything here:  Turns out me forgetting to set the Index::Idx type in the trait causes RA to panic due to it trying to to create an unparsable type in the `make` module. Now we get this instead which imo is definitely better to have.  Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
This commit is contained in:
commit
a15d19619e
@ -781,6 +781,31 @@ impl Test for () {
|
||||
${0:todo!()}
|
||||
}
|
||||
}
|
||||
"#,
|
||||
)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn missing_generic_type() {
|
||||
check_assist(
|
||||
add_missing_impl_members,
|
||||
r#"
|
||||
trait Foo<BAR> {
|
||||
fn foo(&self, bar: BAR);
|
||||
}
|
||||
impl Foo for () {
|
||||
<|>
|
||||
}
|
||||
"#,
|
||||
r#"
|
||||
trait Foo<BAR> {
|
||||
fn foo(&self, bar: BAR);
|
||||
}
|
||||
impl Foo for () {
|
||||
fn foo(&self, bar: BAR) {
|
||||
${0:todo!()}
|
||||
}
|
||||
}
|
||||
"#,
|
||||
)
|
||||
}
|
||||
|
@ -178,6 +178,7 @@ impl DisplayTarget {
|
||||
#[derive(Debug)]
|
||||
pub enum DisplaySourceCodeError {
|
||||
PathNotFound,
|
||||
UnknownType,
|
||||
}
|
||||
|
||||
pub enum HirDisplayError {
|
||||
@ -558,7 +559,14 @@ impl HirDisplay for Ty {
|
||||
}
|
||||
};
|
||||
}
|
||||
Ty::Unknown => write!(f, "{{unknown}}")?,
|
||||
Ty::Unknown => {
|
||||
if f.display_target.is_source_code() {
|
||||
return Err(HirDisplayError::DisplaySourceCodeError(
|
||||
DisplaySourceCodeError::UnknownType,
|
||||
));
|
||||
}
|
||||
write!(f, "{{unknown}}")?;
|
||||
}
|
||||
Ty::Infer(..) => write!(f, "_")?,
|
||||
}
|
||||
Ok(())
|
||||
|
Loading…
x
Reference in New Issue
Block a user