From ef039c5d671860f9815911a19a18e2492417c7e8 Mon Sep 17 00:00:00 2001 From: Joey de Waal <dewaaljoey@gmail.com> Date: Tue, 1 Oct 2024 19:16:32 +0200 Subject: [PATCH] recursively look for literal in test macro --- sqlx-macros-core/src/test_attr.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/sqlx-macros-core/src/test_attr.rs b/sqlx-macros-core/src/test_attr.rs index 09af02c4..db317a77 100644 --- a/sqlx-macros-core/src/test_attr.rs +++ b/sqlx-macros-core/src/test_attr.rs @@ -244,7 +244,19 @@ fn parse_args(attr_args: AttributeArgs) -> syn::Result<Args> { )); } - let Expr::Lit(syn::ExprLit { lit, .. }) = value.value else { + fn recurse_lit_lookup(expr: Expr) -> Option<Lit> { + match expr { + Expr::Lit(syn::ExprLit { lit, .. }) => { + return Some(lit); + } + Expr::Group(syn::ExprGroup { expr, .. }) => { + return recurse_lit_lookup(*expr); + } + _ => return None, + } + } + + let Some(lit) = recurse_lit_lookup(value.value) else { return Err(syn::Error::new_spanned(path, "expected string for `false`")); };