浏览代码

fix(macros): strip `r#` from command arguments, closes #4654 (#4657)

Lucas Fernandes Nogueira 3 年之前
父节点
当前提交
ac72800fb6
共有 2 个文件被更改,包括 7 次插入1 次删除
  1. 5 0
      .changes/unraw-command-key.md
  2. 2 1
      core/tauri-macros/src/command/wrapper.rs

+ 5 - 0
.changes/unraw-command-key.md

@@ -0,0 +1,5 @@
+---
+"tauri-macros": patch
+---
+
+Remove raw identifier (`r#`) prefix from command arguments.

+ 2 - 1
core/tauri-macros/src/command/wrapper.rs

@@ -6,6 +6,7 @@ use proc_macro::TokenStream;
 use proc_macro2::TokenStream as TokenStream2;
 use quote::{format_ident, quote};
 use syn::{
+  ext::IdentExt,
   parse::{Parse, ParseBuffer},
   parse_macro_input,
   spanned::Spanned,
@@ -164,7 +165,7 @@ fn parse_arg(command: &Ident, arg: &FnArg, message: &Ident) -> syn::Result<Token
 
   // we only support patterns that allow us to extract some sort of keyed identifier
   let mut key = match &mut arg {
-    Pat::Ident(arg) => arg.ident.to_string(),
+    Pat::Ident(arg) => arg.ident.unraw().to_string(),
     Pat::Wild(_) => "".into(), // we always convert to camelCase, so "_" will end up empty anyways
     Pat::Struct(s) => super::path_to_command(&mut s.path).ident.to_string(),
     Pat::TupleStruct(s) => super::path_to_command(&mut s.path).ident.to_string(),