diff --git a/crates/query-group-macro/src/lib.rs b/crates/query-group-macro/src/lib.rs index 810f0c14d734..d0351ec3b417 100644 --- a/crates/query-group-macro/src/lib.rs +++ b/crates/query-group-macro/src/lib.rs @@ -292,8 +292,8 @@ pub(crate) fn query_group_impl( .push(TraitItem::Fn(make_trait_method(method.signature.clone()))); lookup_methods.push(method); } - // tracked function without *any* invoke. - (QueryKind::Tracked, None) => { + // tracked function. it might have an invoke, or might not. + (QueryKind::Tracked, invoke) => { let method = TrackedQuery { trait_name: trait_name_ident.clone(), generated_struct: Some(GeneratedInputStruct { @@ -302,30 +302,13 @@ pub(crate) fn query_group_impl( }), signature: signature.clone(), pat_and_tys: pat_and_tys.clone(), - invoke: None, + invoke, cycle, lru, }; trait_methods.push(Queries::TrackedQuery(method)); } - // tracked function with an invoke - (QueryKind::Tracked, Some(invoke)) => { - let method = TrackedQuery { - trait_name: trait_name_ident.clone(), - generated_struct: Some(GeneratedInputStruct { - input_struct_name: input_struct_name.clone(), - create_data_ident: create_data_ident.clone(), - }), - signature: signature.clone(), - pat_and_tys: pat_and_tys.clone(), - invoke: Some(invoke), - cycle, - lru, - }; - - trait_methods.push(Queries::TrackedQuery(method)) - } (QueryKind::TrackedWithSalsaStruct, Some(invoke)) => { let method = TrackedQuery { trait_name: trait_name_ident.clone(), @@ -339,20 +322,14 @@ pub(crate) fn query_group_impl( trait_methods.push(Queries::TrackedQuery(method)) } + // while it is possible to make this reachable, it's not really worthwhile for a migration aid. + // doing this would require attaching an attribute to the salsa struct parameter in the query. (QueryKind::TrackedWithSalsaStruct, None) => unreachable!(), - (QueryKind::Transparent, None) => { + (QueryKind::Transparent, invoke) => { let method = Transparent { signature: method.sig.clone(), pat_and_tys: pat_and_tys.clone(), - invoke: None, - }; - trait_methods.push(Queries::Transparent(method)); - } - (QueryKind::Transparent, Some(invoke)) => { - let method = Transparent { - signature: method.sig.clone(), - pat_and_tys: pat_and_tys.clone(), - invoke: Some(invoke), + invoke: invoke }; trait_methods.push(Queries::Transparent(method)); }