Skip to content

Commit

Permalink
Auto merge of rust-lang#15463 - ponyii:fix/start-hovering-default-val…
Browse files Browse the repository at this point in the history
…ues-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](rust-lang/rust-analyzer#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)
  • Loading branch information
bors committed Aug 15, 2023
2 parents 54c4125 + fec5ff9 commit b147709
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 1 deletion.
5 changes: 5 additions & 0 deletions crates/hir/src/display.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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()))?;
}
}
}
}
Expand Down
45 changes: 44 additions & 1 deletion crates/ide/src/hover/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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>
```
"#]],
);
Expand Down

0 comments on commit b147709

Please sign in to comment.