chore: upgrade darling and syn (#1138)
This commit is contained in:
parent
07bcda2973
commit
f57d585168
3 changed files with 32 additions and 4 deletions
|
|
@ -16,11 +16,11 @@ documentation = "https://docs.rs/rmcp-macros"
|
|||
proc-macro = true
|
||||
|
||||
[dependencies]
|
||||
syn = {version = "2", features = ["full"]}
|
||||
syn = {version = "3", features = ["full"]}
|
||||
quote = "1"
|
||||
proc-macro2 = "1"
|
||||
serde_json = "1.0"
|
||||
darling = { version = "0.23" }
|
||||
darling = { version = "0.24" }
|
||||
|
||||
[features]
|
||||
local = []
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ pub fn prompt(attr: TokenStream, input: TokenStream) -> syn::Result<TokenStream>
|
|||
let new_output = syn::parse2::<ReturnType>({
|
||||
let mut lt = quote! { 'static };
|
||||
if let Some(receiver) = fn_item.sig.receiver()
|
||||
&& let Some((_, receiver_lt)) = receiver.reference.as_ref()
|
||||
&& let syn::ReceiverKind::Reference(_, receiver_lt, _) = &receiver.kind
|
||||
{
|
||||
if let Some(receiver_lt) = receiver_lt {
|
||||
lt = quote! { #receiver_lt };
|
||||
|
|
@ -259,6 +259,20 @@ mod test {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_async_prompt_preserves_receiver_lifetime() -> syn::Result<()> {
|
||||
let attr = quote! {};
|
||||
let input = quote! {
|
||||
async fn test_prompt_with_lifetime<'a>(&'a self) -> String {
|
||||
"ok".to_string()
|
||||
}
|
||||
};
|
||||
let result = prompt(attr, input)?;
|
||||
|
||||
assert!(result.to_string().contains("+ 'a"));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_async_prompt_local_omits_send() -> syn::Result<()> {
|
||||
let attr = quote! { local };
|
||||
|
|
|
|||
|
|
@ -284,7 +284,7 @@ pub fn tool(attr: TokenStream, input: TokenStream) -> syn::Result<TokenStream> {
|
|||
let new_output = syn::parse2::<ReturnType>({
|
||||
let mut lt = quote! { 'static };
|
||||
if let Some(receiver) = fn_item.sig.receiver()
|
||||
&& let Some((_, receiver_lt)) = receiver.reference.as_ref()
|
||||
&& let syn::ReceiverKind::Reference(_, receiver_lt, _) = &receiver.kind
|
||||
{
|
||||
if let Some(receiver_lt) = receiver_lt {
|
||||
lt = quote! { #receiver_lt };
|
||||
|
|
@ -342,6 +342,20 @@ mod test {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_async_tool_preserves_receiver_lifetime() -> syn::Result<()> {
|
||||
let attr = quote! {};
|
||||
let input = quote! {
|
||||
async fn test_tool_with_lifetime<'a>(&'a self) -> String {
|
||||
"ok".to_string()
|
||||
}
|
||||
};
|
||||
let result = tool(attr, input)?;
|
||||
|
||||
assert!(result.to_string().contains("+ 'a"));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_doc_comment_description() -> syn::Result<()> {
|
||||
let attr = quote! {}; // No explicit description
|
||||
|
|
|
|||
Loading…
Reference in a new issue