From df00e2fd71ea7139ad8ab713b32a0f6792b6c094 Mon Sep 17 00:00:00 2001 From: Graham Esau Date: Sun, 28 Apr 2024 18:59:42 +0100 Subject: [PATCH] Add comment explaining why we double-parse an `Expr` --- schemars_derive/src/attr/validation.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/schemars_derive/src/attr/validation.rs b/schemars_derive/src/attr/validation.rs index b0af2c59..a511ab41 100644 --- a/schemars_derive/src/attr/validation.rs +++ b/schemars_derive/src/attr/validation.rs @@ -510,6 +510,7 @@ fn wrap_string_validation(v: Vec) -> Option { } fn str_or_num_to_expr(cx: &Ctxt, meta_item_name: &str, expr: Expr) -> Option { + // this odd double-parsing is to make `-10` parsed as an Lit instead of an Expr::Unary let lit: Lit = match syn::parse2(expr.to_token_stream()) { Ok(l) => l, Err(err) => {