All merged objects will no longer be removed. #308

This commit is contained in:
Sunli 2020-10-12 11:04:01 +08:00
parent c777150dcd
commit a1e57eb4a8
6 changed files with 15 additions and 15 deletions

View File

@ -67,8 +67,8 @@ pub fn generate(object_args: &args::InputObject) -> GeneratorResult<TokenStream>
#crate_name::static_assertions::assert_impl_one!(#ty: #crate_name::InputObjectType);
#ty::create_type_info(registry);
if let Some(#crate_name::registry::MetaType::InputObject{ input_fields, .. }) =
registry.types.remove(&*<#ty as #crate_name::Type>::type_name()) {
fields.extend(input_fields);
registry.types.get(&*<#ty as #crate_name::Type>::type_name()) {
fields.extend(input_fields.clone());
}
});

View File

@ -70,9 +70,9 @@ pub fn generate(object_args: &args::MergedObject) -> GeneratorResult<TokenStream
fields: obj_fields,
cache_control: obj_cache_control,
..
}) = registry.types.remove(&*#merged_type::type_name()) {
fields = obj_fields;
cache_control = obj_cache_control;
}) = registry.types.get(&*#merged_type::type_name()) {
fields = obj_fields.clone();
cache_control = *obj_cache_control;
}
#crate_name::registry::MetaType::Object {

View File

@ -59,8 +59,8 @@ pub fn generate(object_args: &args::MergedSubscription) -> GeneratorResult<Token
if let Some(#crate_name::registry::MetaType::Object {
fields: obj_fields,
..
}) = registry.types.remove(&*#merged_type::type_name()) {
fields = obj_fields;
}) = registry.types.get(&*#merged_type::type_name()) {
fields = obj_fields.clone();
}
#crate_name::registry::MetaType::Object {

View File

@ -100,8 +100,8 @@ pub fn generate(union_args: &args::Union) -> GeneratorResult<TokenStream> {
} else {
possible_types.push(quote! {
if let Some(#crate_name::registry::MetaType::Union { possible_types: possible_types2, .. }) =
registry.types.remove(&*<#p as #crate_name::Type>::type_name()) {
possible_types.extend(possible_types2);
registry.types.get(&*<#p as #crate_name::Type>::type_name()) {
possible_types.extend(possible_types2.clone());
}
});
}

View File

@ -52,9 +52,9 @@ where
registry.create_type::<Self, _>(|registry| {
E::create_type_info(registry);
let additional_fields = if let Some(registry::MetaType::Object { fields, .. }) =
registry.types.remove(E::type_name().as_ref())
registry.types.get(E::type_name().as_ref())
{
fields
fields.clone()
} else {
unreachable!()
};

View File

@ -26,9 +26,9 @@ impl<A: Type, B: Type> Type for MergedObject<A, B> {
fields: a_fields,
cache_control: a_cc,
..
}) = registry.types.remove(&*A::type_name())
}) = registry.types.get(&*A::type_name())
{
fields.extend(a_fields);
fields.extend(a_fields.clone());
cc = cc.merge(&a_cc);
}
@ -37,9 +37,9 @@ impl<A: Type, B: Type> Type for MergedObject<A, B> {
fields: b_fields,
cache_control: b_cc,
..
}) = registry.types.remove(&*B::type_name())
}) = registry.types.get(&*B::type_name())
{
fields.extend(b_fields);
fields.extend(b_fields.clone());
cc = cc.merge(&b_cc);
}