diff --git a/crates/gen/src/tables/type_def.rs b/crates/gen/src/tables/type_def.rs index 6812d20be1..1b068d1de9 100644 --- a/crates/gen/src/tables/type_def.rs +++ b/crates/gen/src/tables/type_def.rs @@ -192,18 +192,16 @@ impl TypeDef { } pub fn overridable_methods(&self) -> BTreeSet<&'static str> { - let mut methods = BTreeSet::new(); - - for interface in self - .interface_impls() + self.interface_impls() .filter(|interface| interface.is_overridable()) - { - for method in interface.interface().resolve().methods() { - methods.insert(method.name()); - } - } - - methods + .flat_map(|interface| { + interface + .interface() + .resolve() + .methods() + .map(|method| method.name()) + }) + .collect() } pub fn gen_name(&self, gen: &Gen) -> TokenStream {