mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-11-14 00:47:18 +00:00
Auto merge of #15463 - ponyii:fix/start-hovering-default-values-of-generic-const, r=HKalbasi
fix: start hovering default values of generic constants It's just a kind of a postscriptum for [my last PR](https://github.com/rust-lang/rust-analyzer/pull/15179) adding default values of const generics to `hir::ConstParamData`. Here I patch other pieces of code which used to ignore const default values and which I managed to find (you're welcome to show me more)
This commit is contained in:
commit
b14770934a
2 changed files with 49 additions and 1 deletions
|
@ -366,6 +366,11 @@ fn write_generic_params(
|
|||
delim(f)?;
|
||||
write!(f, "const {}: ", name.display(f.db.upcast()))?;
|
||||
c.ty.hir_fmt(f)?;
|
||||
|
||||
if let Some(default) = &c.default {
|
||||
f.write_str(" = ")?;
|
||||
write!(f, "{}", default.display(f.db.upcast()))?;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3335,7 +3335,50 @@ struct S$0T<const C: usize = 1, T = Foo>(T);
|
|||
```
|
||||
|
||||
```rust
|
||||
struct ST<const C: usize, T = Foo>
|
||||
struct ST<const C: usize = 1, T = Foo>
|
||||
```
|
||||
"#]],
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn const_generic_default_value() {
|
||||
check(
|
||||
r#"
|
||||
struct Foo;
|
||||
struct S$0T<const C: usize = {40 + 2}, T = Foo>(T);
|
||||
"#,
|
||||
expect![[r#"
|
||||
*ST*
|
||||
|
||||
```rust
|
||||
test
|
||||
```
|
||||
|
||||
```rust
|
||||
struct ST<const C: usize = {const}, T = Foo>
|
||||
```
|
||||
"#]],
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn const_generic_default_value_2() {
|
||||
check(
|
||||
r#"
|
||||
struct Foo;
|
||||
const VAL = 1;
|
||||
struct S$0T<const C: usize = VAL, T = Foo>(T);
|
||||
"#,
|
||||
expect![[r#"
|
||||
*ST*
|
||||
|
||||
```rust
|
||||
test
|
||||
```
|
||||
|
||||
```rust
|
||||
struct ST<const C: usize = VAL, T = Foo>
|
||||
```
|
||||
"#]],
|
||||
);
|
||||
|
|
Loading…
Reference in a new issue