summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/typst-library/src/foundations/content.rs7
-rw-r--r--tests/suite/foundations/label.typ4
2 files changed, 8 insertions, 3 deletions
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<Value, FieldAccessError> {
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 `<a>` is not attached to anything
<a>
+
+--- label-non-existent-error ---
+// Error: 5-10 sequence does not have field "label"
+#[].label