diff --git a/Userland/Libraries/LibIDL/IDLParser.cpp b/Userland/Libraries/LibIDL/IDLParser.cpp index 75b27a8afc..b616cc8dbf 100644 --- a/Userland/Libraries/LibIDL/IDLParser.cpp +++ b/Userland/Libraries/LibIDL/IDLParser.cpp @@ -818,8 +818,8 @@ void Parser::parse_non_interface_entities(bool allow_interface, Interface& inter static void resolve_typedef(Interface& interface, NonnullRefPtr& type, HashMap* extended_attributes = {}) { if (is(*type)) { - auto parameterized_type = static_ptr_cast(type); - auto& parameters = static_cast>&>(parameterized_type->parameters()); + auto& parameterized_type = type->as_parameterized(); + auto& parameters = static_cast>&>(parameterized_type.parameters()); for (auto& parameter : parameters) resolve_typedef(interface, parameter); return; @@ -848,8 +848,8 @@ static void resolve_typedef(Interface& interface, NonnullRefPtr& type, Has // UnionType(UnionType(A, B), UnionType(C, D)) // Note that flattening unions is handled separately as per the spec. if (is(*type)) { - auto union_type = static_ptr_cast(type); - auto& member_types = static_cast>&>(union_type->member_types()); + auto& union_type = type->as_union(); + auto& member_types = static_cast>&>(union_type.member_types()); for (auto& member_type : member_types) resolve_typedef(interface, member_type); }