summaryrefslogtreecommitdiff
path: root/crates/typst-library/src
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2025-06-19 09:29:38 +0200
committerGitHub <noreply@github.com>2025-06-19 07:29:38 +0000
commit0bc68df2a9a87ca7e36e34dab56b07c666d64760 (patch)
treebf42ac0e1785465035d4611235bc0991ee3af27e /crates/typst-library/src
parentf32cd5b3e1e9b5c81f8fe72042212a7c7d3a43a7 (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.rs13
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));