mirror of
https://github.com/typst/typst
synced 2025-06-20 12:22:53 +08:00
Hint for label in both document and bibliography (#6457)
This commit is contained in:
parent
f32cd5b3e1
commit
0bc68df2a9
@ -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));
|
||||
|
@ -51,7 +51,8 @@ $ A = 1 $ <eq2>
|
||||
// Test ambiguous reference.
|
||||
= Introduction <arrgh>
|
||||
|
||||
// Error: 1-7 label occurs in the document and its bibliography
|
||||
// Error: 1-7 label `<arrgh>` occurs both in the document and its bibliography
|
||||
// Hint: 1-7 change either the heading's label or the bibliography key to resolve the ambiguity
|
||||
@arrgh
|
||||
#bibliography("/assets/bib/works.bib")
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user