diff options
| author | Laurenz <laurmaedje@gmail.com> | 2025-06-19 09:29:38 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-19 07:29:38 +0000 |
| commit | 0bc68df2a9a87ca7e36e34dab56b07c666d64760 (patch) | |
| tree | bf42ac0e1785465035d4611235bc0991ee3af27e /crates/typst-library/src | |
| parent | f32cd5b3e1e9b5c81f8fe72042212a7c7d3a43a7 (diff) | |
Hint for label in both document and bibliography (#6457)
Diffstat (limited to 'crates/typst-library/src')
| -rw-r--r-- | crates/typst-library/src/model/reference.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/crates/typst-library/src/model/reference.rs b/crates/typst-library/src/model/reference.rs index 7d44cccc..f22d70b3 100644 --- a/crates/typst-library/src/model/reference.rs +++ b/crates/typst-library/src/model/reference.rs @@ -5,7 +5,7 @@ use crate::diag::{bail, At, Hint, SourceResult}; use crate::engine::Engine; use crate::foundations::{ cast, elem, Cast, Content, Context, Func, IntoValue, Label, NativeElement, Packed, - Show, Smart, StyleChain, Synthesize, + Repr, Show, Smart, StyleChain, Synthesize, }; use crate::introspection::{Counter, CounterKey, Locatable}; use crate::math::EquationElem; @@ -229,8 +229,15 @@ impl Show for Packed<RefElem> { // RefForm::Normal if BibliographyElem::has(engine, self.target) { - if elem.is_ok() { - bail!(span, "label occurs in the document and its bibliography"); + if let Ok(elem) = elem { + bail!( + span, + "label `{}` occurs both in the document and its bibliography", + self.target.repr(); + hint: "change either the {}'s label or the \ + bibliography key to resolve the ambiguity", + elem.func().name(), + ); } return Ok(to_citation(self, engine, styles)?.pack().spanned(span)); |
