zed-industries/zed · error · syn::Error
unexpected path
Error message
unexpected path
What it means
Returned while parsing #[gpui::test] macro arguments when a Meta::Path variant appears — an argument given as a bare path with no `=` value or parenthesized list. Such an argument cannot be interpreted as any known test option, so parsing aborts with this error at that span.
Source
Thrown at crates/gpui_macros/src/test.rs:39
fn parse(input: ParseStream) -> Result<Self, syn::Error> {
let mut seeds = Vec::<u64>::new();
let mut max_retries = 0;
let mut max_iterations = 1;
let mut on_failure_fn_name = quote!(None);
let metas = Punctuated::<Meta, Token![,]>::parse_terminated(input)?;
for meta in metas {
let ident = {
let meta_path = match &meta {
Meta::NameValue(meta) => &meta.path,
Meta::List(list) => &list.path,
Meta::Path(path) => {
return Err(syn::Error::new(path.span(), "invalid path argument"));
}
};
let Some(ident) = meta_path.get_ident() else {
return Err(syn::Error::new(meta_path.span(), "unexpected path"));
};
ident.to_string()
};
match (&meta, ident.as_str()) {
(Meta::NameValue(meta), "retries") => {
max_retries = parse_usize_from_expr(&meta.value)?
}
(Meta::NameValue(meta), "iterations") => {
max_iterations = parse_usize_from_expr(&meta.value)?
}
(Meta::NameValue(meta), "on_failure") => {
let Expr::Lit(ExprLit {
lit: Lit::Str(name),
..
}) = &meta.value
else {
return Err(syn::Error::new(View on GitHub (pinned to f4178619ac)
Solutions
- Convert the argument to a name=value form (e.g. retries = 3)
- Remove the bare flag; the macro has no boolean flag options
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/gpui_macros/src/test.rs:39 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/23b91cb7a5053898.
Report an issue: GitHub.