From 5fdb860c8821bf7ec7db9a953352740b80e85551 Mon Sep 17 00:00:00 2001 From: fzyzcjy Date: Tue, 9 Apr 2024 18:36:19 +0800 Subject: [PATCH] refactor: rm intodart_type --- .../codec/dco/encoder/ty/boxed.rs | 3 -- .../codec/dco/encoder/ty/delegate.rs | 41 ------------------- .../codec/dco/encoder/ty/enumeration.rs | 7 ---- .../codec/dco/encoder/ty/general_list.rs | 10 +---- .../codec/dco/encoder/ty/mod.rs | 4 -- .../codec/dco/encoder/ty/optional.rs | 8 +--- .../codec/dco/encoder/ty/primitive.rs | 6 --- .../codec/dco/encoder/ty/record.rs | 12 +----- .../codec/dco/encoder/ty/rust_auto_opaque.rs | 11 ----- .../codec/dco/encoder/ty/structure.rs | 5 --- .../wire/rust/spec_generator/dump.rs | 3 -- 11 files changed, 3 insertions(+), 107 deletions(-) diff --git a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/boxed.rs b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/boxed.rs index 43c57353b4..ccfdd061f3 100644 --- a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/boxed.rs +++ b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/boxed.rs @@ -3,7 +3,4 @@ use crate::codegen::generator::wire::rust::spec_generator::codec::dco::encoder:: use crate::codegen::ir::pack::IrPack; impl<'a> WireRustCodecDcoGeneratorEncoderTrait for BoxedWireRustCodecDcoGenerator<'a> { - fn intodart_type(&self, ir_pack: &IrPack) -> String { - WireRustCodecDcoGenerator::new(self.ir.inner.clone(), self.context).intodart_type(ir_pack) - } } diff --git a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/delegate.rs b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/delegate.rs index e3967f10fe..2f31817a0e 100644 --- a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/delegate.rs +++ b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/delegate.rs @@ -14,47 +14,6 @@ use crate::codegen::ir::ty::{IrType, IrTypeTrait}; use itertools::Itertools; impl<'a> WireRustCodecDcoGeneratorEncoderTrait for DelegateWireRustCodecDcoGenerator<'a> { - fn intodart_type(&self, ir_pack: &crate::codegen::ir::pack::IrPack) -> String { - match &self.ir { - IrTypeDelegate::PrimitiveEnum(IrTypeDelegatePrimitiveEnum { ir, .. }) => { - let inner = WireRustCodecDcoGenerator::new(IrType::from(ir.clone()), self.context); - inner.intodart_type(ir_pack) - } - IrTypeDelegate::Set(IrTypeDelegateSet { inner }) => { - let inner = - WireRustCodecDcoGenerator::new(IrType::from(inner.clone()), self.context); - format!( - "std::collections::HashSet<{}>", - inner.intodart_type(ir_pack) - ) - } - IrTypeDelegate::Array(IrTypeDelegateArray { mode, length, .. }) => { - let inner = match mode { - crate::codegen::ir::ty::delegate::IrTypeDelegateArrayMode::General(inner) => { - WireRustCodecDcoGenerator::new(IrType::from(inner.clone()), self.context) - } - crate::codegen::ir::ty::delegate::IrTypeDelegateArrayMode::Primitive(inner) => { - WireRustCodecDcoGenerator::new(IrType::from(inner.clone()), self.context) - } - }; - format!("[{}; {}]", inner.intodart_type(ir_pack), length) - } - IrTypeDelegate::Map(IrTypeDelegateMap { key, value, .. }) => { - let key_inner = - WireRustCodecDcoGenerator::new(IrType::from(key.clone()), self.context); - let value_inner = - WireRustCodecDcoGenerator::new(IrType::from(value.clone()), self.context); - format!( - "std::collections::HashMap<{}, {}>", - key_inner.intodart_type(ir_pack), - value_inner.intodart_type(ir_pack) - ) - } - // default trait implementation - _ => self.ir.rust_api_type(), - } - } - // the function signature is not covered while the whole body is covered - looks like a bug in coverage tool // frb-coverage:ignore-start fn generate_impl_into_dart(&self) -> Option { diff --git a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/enumeration.rs b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/enumeration.rs index b00c522100..c783c4a2b7 100644 --- a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/enumeration.rs +++ b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/enumeration.rs @@ -13,13 +13,6 @@ use crate::codegen::ir::ty::IrTypeTrait; use itertools::Itertools; impl<'a> WireRustCodecDcoGeneratorEncoderTrait for EnumRefWireRustCodecDcoGenerator<'a> { - fn intodart_type(&self, ir_pack: &IrPack) -> String { - match &self.ir.get(ir_pack).wrapper_name { - Some(wrapper) => wrapper.clone(), - None => self.ir.rust_api_type(), - } - } - fn generate_impl_into_dart(&self) -> Option { let src = self.ir.get(self.context.ir_pack); let (name, _self_path) = diff --git a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/general_list.rs b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/general_list.rs index 28d160fb40..6969b8e432 100644 --- a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/general_list.rs +++ b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/general_list.rs @@ -2,12 +2,4 @@ use crate::codegen::generator::wire::rust::spec_generator::codec::dco::base::*; use crate::codegen::generator::wire::rust::spec_generator::codec::dco::encoder::ty::WireRustCodecDcoGeneratorEncoderTrait; use crate::codegen::ir::pack::IrPack; -impl<'a> WireRustCodecDcoGeneratorEncoderTrait for GeneralListWireRustCodecDcoGenerator<'a> { - fn intodart_type(&self, ir_pack: &IrPack) -> String { - format!( - "Vec<{}>", - WireRustCodecDcoGenerator::new(self.ir.inner.clone(), self.context) - .intodart_type(ir_pack) - ) - } -} +impl<'a> WireRustCodecDcoGeneratorEncoderTrait for GeneralListWireRustCodecDcoGenerator<'a> {} diff --git a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/mod.rs b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/mod.rs index 868b90d2bc..e419c0a199 100644 --- a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/mod.rs +++ b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/mod.rs @@ -22,10 +22,6 @@ use enum_dispatch::enum_dispatch; pub(crate) trait WireRustCodecDcoGeneratorEncoderTrait: WireRustCodecDcoGeneratorImplTrait { - fn intodart_type(&self, _ir_pack: &IrPack) -> String { - self.ir_type().rust_api_type() - } - fn generate_impl_into_dart(&self) -> Option { None } diff --git a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/optional.rs b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/optional.rs index 1d664cdb0c..0d48d5f38b 100644 --- a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/optional.rs +++ b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/optional.rs @@ -2,10 +2,4 @@ use crate::codegen::generator::wire::rust::spec_generator::codec::dco::base::*; use crate::codegen::generator::wire::rust::spec_generator::codec::dco::encoder::ty::WireRustCodecDcoGeneratorEncoderTrait; use crate::codegen::ir::ty::IrType; -impl<'a> WireRustCodecDcoGeneratorEncoderTrait for OptionalWireRustCodecDcoGenerator<'a> { - fn intodart_type(&self, ir_pack: &crate::codegen::ir::pack::IrPack) -> String { - let inner = - WireRustCodecDcoGenerator::new(IrType::from(self.ir.inner.clone()), self.context); - format!("Option<{}>", inner.intodart_type(ir_pack)) - } -} +impl<'a> WireRustCodecDcoGeneratorEncoderTrait for OptionalWireRustCodecDcoGenerator<'a> {} diff --git a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/primitive.rs b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/primitive.rs index db3d486de6..aff450ebcf 100644 --- a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/primitive.rs +++ b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/primitive.rs @@ -5,10 +5,4 @@ use crate::codegen::ir::ty::primitive::IrTypePrimitive; use crate::codegen::ir::ty::IrTypeTrait; impl<'a> WireRustCodecDcoGeneratorEncoderTrait for PrimitiveWireRustCodecDcoGenerator<'a> { - fn intodart_type(&self, _ir_pack: &IrPack) -> String { - match self.ir { - IrTypePrimitive::Unit => String::from("()"), - _ => self.ir.rust_api_type(), - } - } } diff --git a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/record.rs b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/record.rs index 6ffeffd57c..f8a63ca801 100644 --- a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/record.rs +++ b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/record.rs @@ -3,14 +3,4 @@ use crate::codegen::generator::wire::rust::spec_generator::codec::dco::encoder:: use crate::codegen::ir::pack::IrPack; use itertools::Itertools; -impl<'a> WireRustCodecDcoGeneratorEncoderTrait for RecordWireRustCodecDcoGenerator<'a> { - fn intodart_type(&self, ir_pack: &IrPack) -> String { - let values = self - .ir - .values - .iter() - .map(|e| WireRustCodecDcoGenerator::new(e.clone(), self.context).intodart_type(ir_pack)) - .join(","); - format!("({values},)") - } -} +impl<'a> WireRustCodecDcoGeneratorEncoderTrait for RecordWireRustCodecDcoGenerator<'a> {} diff --git a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/rust_auto_opaque.rs b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/rust_auto_opaque.rs index d7535f5a38..4e30d93263 100644 --- a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/rust_auto_opaque.rs +++ b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/rust_auto_opaque.rs @@ -29,17 +29,6 @@ impl<'a> WireRustCodecDcoGeneratorEncoderTrait for RustAutoOpaqueWireRustCodecDc None } } - - fn intodart_type(&self, _ir_pack: &IrPack) -> String { - if self.ir.ownership_mode == OwnershipMode::Owned { - rust_auto_opaque_local_struct_type(&self.ir) - } else { - // We do not generate IntoDart for this, so this should not be called - // frb-coverage:ignore-start - unreachable!() - // frb-coverage:ignore-end - } - } } // Similar to "mirror" diff --git a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/structure.rs b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/structure.rs index e2e8df122a..8593aa19ab 100644 --- a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/structure.rs +++ b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/codec/dco/encoder/ty/structure.rs @@ -9,11 +9,6 @@ use crate::codegen::ir::ty::IrTypeTrait; use itertools::Itertools; impl<'a> WireRustCodecDcoGeneratorEncoderTrait for StructRefWireRustCodecDcoGenerator<'a> { - fn intodart_type(&self, ir_pack: &IrPack) -> String { - let wrapper = &self.ir.get(ir_pack).wrapper_name; - wrapper.clone().unwrap_or(self.ir.rust_api_type()) - } - fn generate_impl_into_dart(&self) -> Option { let src = self.ir.get(self.context.ir_pack); diff --git a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/dump.rs b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/dump.rs index 4da46650d2..c0821d2be9 100644 --- a/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/dump.rs +++ b/frb_codegen/src/library/codegen/generator/wire/rust/spec_generator/dump.rs @@ -21,8 +21,6 @@ pub(crate) struct WireRustDumpInfoType { safe_ident: String, rust_wire_type: HashMap, rust_wire_modifier: HashMap, - // TODO - // intodart_type: String, wrapper_struct_name: Option, } @@ -48,7 +46,6 @@ pub(super) fn generate_dump_info( rust_wire_modifier: Target::iter() .map(|target| (target, cst_gen.rust_wire_modifier(target))) .collect(), - // intodart_type: gen.intodart_type(context.ir_pack), wrapper_struct_name: gen.wrapper_struct_name(), } })