Unnamed repository; edit this file 'description' to name the repository.
Merge #11595
11595: fix: lower string literals with actual value instead of default r=lnicola a=tysg Fixes #11582. Some questions below in the code review section. Co-authored-by: Tianyi Song <[email protected]>
bors[bot] 2022-03-05
parent a474535 · parent 89a19f5 · commit 908c17b
-rw-r--r--crates/hir_def/src/body/lower.rs5
-rw-r--r--crates/ide/src/hover/tests.rs21
2 files changed, 25 insertions, 1 deletions
diff --git a/crates/hir_def/src/body/lower.rs b/crates/hir_def/src/body/lower.rs
index 46b2ba8a25..a2b57cb5bd 100644
--- a/crates/hir_def/src/body/lower.rs
+++ b/crates/hir_def/src/body/lower.rs
@@ -957,7 +957,10 @@ impl From<ast::LiteralKind> for Literal {
let text = bs.value().map(Box::from).unwrap_or_else(Default::default);
Literal::ByteString(text)
}
- LiteralKind::String(_) => Literal::String(Default::default()),
+ LiteralKind::String(s) => {
+ let text = s.value().map(Box::from).unwrap_or_else(Default::default);
+ Literal::String(text)
+ }
LiteralKind::Byte => Literal::Uint(Default::default(), Some(BuiltinUint::U8)),
LiteralKind::Bool(val) => Literal::Bool(val),
LiteralKind::Char => Literal::Char(Default::default()),
diff --git a/crates/ide/src/hover/tests.rs b/crates/ide/src/hover/tests.rs
index ab10bc6ef5..9d516fdd6f 100644
--- a/crates/ide/src/hover/tests.rs
+++ b/crates/ide/src/hover/tests.rs
@@ -3511,6 +3511,27 @@ const FOO$0: usize = 1 << 100;
This is a doc
"#]],
);
+ check(
+ r#"
+/// This is a doc
+const FOO$0: &str = "bar";
+"#,
+ expect![[r#"
+ *FOO*
+
+ ```rust
+ test
+ ```
+
+ ```rust
+ const FOO: &str = "bar"
+ ```
+
+ ---
+
+ This is a doc
+ "#]],
+ );
}
#[test]