summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Gawley <16921823+joshuagawley@users.noreply.github.com>2024-12-18 16:52:37 +0000
committerGitHub <noreply@github.com>2024-12-18 16:52:37 +0000
commit21e608e6e9bfe7c7b1111152c0f5647cfe1e9e4e (patch)
tree93f637216c8616bbad6200f0cf6245604ab76636
parent257764181e52332a00079b9e3af03823fde1a15d (diff)
Change error when accessing non-existant label (#5571)
-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