diff --git a/crates/typst-library/src/foundations/content.rs b/crates/typst-library/src/foundations/content.rs index bfafbc48..ab2f68ac 100644 --- a/crates/typst-library/src/foundations/content.rs +++ b/crates/typst-library/src/foundations/content.rs @@ -211,9 +211,10 @@ impl Content { /// instead. pub fn get_by_name(&self, name: &str) -> Result { if name == "label" { - if let Some(label) = self.label() { - return Ok(label.into_value()); - } + return self + .label() + .map(|label| label.into_value()) + .ok_or(FieldAccessError::Unknown); } let id = self.elem().field_id(name).ok_or(FieldAccessError::Unknown)?; self.get(id, None) diff --git a/tests/suite/foundations/label.typ b/tests/suite/foundations/label.typ index af6d2380..3b84c2d7 100644 --- a/tests/suite/foundations/label.typ +++ b/tests/suite/foundations/label.typ @@ -88,3 +88,7 @@ _Visible_ #set heading(numbering: "1.") // Warning: 1-4 label `` is not attached to anything + +--- label-non-existent-error --- +// Error: 5-10 sequence does not have field "label" +#[].label