diff --git a/crates/typst-library/src/foundations/func.rs b/crates/typst-library/src/foundations/func.rs index bf1c384b5..90c379f60 100644 --- a/crates/typst-library/src/foundations/func.rs +++ b/crates/typst-library/src/foundations/func.rs @@ -424,9 +424,13 @@ impl Debug for Func { impl repr::Repr for Func { fn repr(&self) -> EcoString { - match self.name() { - Some(name) => name.into(), - None => "(..) => ..".into(), + const DEFAULT: &str = "(..) => .."; + match &self.repr { + Repr::Native(native) => native.name.into(), + Repr::Element(elem) => elem.name().into(), + Repr::Closure(closure) => closure.name().unwrap_or(DEFAULT).into(), + Repr::Plugin(func) => func.name().clone(), + Repr::With(_) => DEFAULT.into(), } } } diff --git a/crates/typst-library/src/foundations/plugin.rs b/crates/typst-library/src/foundations/plugin.rs index 7908407b3..e59546233 100644 --- a/crates/typst-library/src/foundations/plugin.rs +++ b/crates/typst-library/src/foundations/plugin.rs @@ -212,7 +212,7 @@ pub struct PluginFunc { impl PluginFunc { /// The name of the plugin function. - pub fn name(&self) -> &str { + pub fn name(&self) -> &EcoString { &self.name } diff --git a/tests/suite/foundations/repr.typ b/tests/suite/foundations/repr.typ index 2f2c055ad..e7067d4bd 100644 --- a/tests/suite/foundations/repr.typ +++ b/tests/suite/foundations/repr.typ @@ -35,6 +35,7 @@ #t(f, `f`) #t(rect , `rect`) #t(() => none, `(..) => ..`) +#t(f.with(), `(..) => ..`) // Types. #t(int, `int`)