@@ -1244,48 +1244,38 @@ fn linearize_parent_class(graph: &Graph, definitions: &[&Definition], context: &
12441244}
12451245
12461246fn add_descendant ( declaration : & Declaration , descendant_id : DeclarationId ) {
1247- match declaration {
1248- Declaration :: Class ( class) => class. add_descendant ( descendant_id) ,
1249- Declaration :: Module ( module) => module. add_descendant ( descendant_id) ,
1250- Declaration :: SingletonClass ( singleton) => singleton. add_descendant ( descendant_id) ,
1251- _ => panic ! ( "Tried to add descendant for a declaration that isn't a namespace" ) ,
1252- }
1247+ declaration
1248+ . as_namespace ( )
1249+ . expect ( "Tried to add descendant for a declaration that isn't a namespace" )
1250+ . add_descendant ( descendant_id) ;
12531251}
12541252
12551253fn clone_ancestors ( declaration : & Declaration ) -> Ancestors {
1256- match declaration {
1257- Declaration :: Class ( class) => class. clone_ancestors ( ) ,
1258- Declaration :: Module ( module) => module. clone_ancestors ( ) ,
1259- Declaration :: SingletonClass ( singleton) => singleton. clone_ancestors ( ) ,
1260- _ => panic ! ( "Tried to get ancestors for a declaration that isn't a namespace" ) ,
1261- }
1254+ declaration
1255+ . as_namespace ( )
1256+ . expect ( "Tried to get ancestors for a declaration that isn't a namespace" )
1257+ . clone_ancestors ( )
12621258}
12631259
12641260fn has_complete_ancestors ( declaration : & Declaration ) -> bool {
1265- match declaration {
1266- Declaration :: Class ( class) => class. has_complete_ancestors ( ) ,
1267- Declaration :: Module ( module) => module. has_complete_ancestors ( ) ,
1268- Declaration :: SingletonClass ( singleton) => singleton. has_complete_ancestors ( ) ,
1269- _ => panic ! ( "Tried to check complete ancestors for a declaration that isn't a namespace" ) ,
1270- }
1261+ declaration
1262+ . as_namespace ( )
1263+ . expect ( "Tried to check complete ancestors for a declaration that isn't a namespace" )
1264+ . has_complete_ancestors ( )
12711265}
12721266
12731267fn set_ancestors ( declaration : & Declaration , ancestors : Ancestors ) {
1274- match declaration {
1275- Declaration :: Class ( class) => class. set_ancestors ( ancestors) ,
1276- Declaration :: Module ( module) => module. set_ancestors ( ancestors) ,
1277- Declaration :: SingletonClass ( singleton) => singleton. set_ancestors ( ancestors) ,
1278- _ => panic ! ( "Tried to set ancestors for a declaration that isn't a namespace" ) ,
1279- }
1268+ declaration
1269+ . as_namespace ( )
1270+ . expect ( "Tried to set ancestors for a declaration that isn't a namespace" )
1271+ . set_ancestors ( ancestors) ;
12801272}
12811273
12821274fn get_member ( declaration : & Declaration , str_id : StringId ) -> Option < & DeclarationId > {
1283- match declaration {
1284- Declaration :: Class ( class) => class. get_member ( & str_id) ,
1285- Declaration :: Module ( module) => module. get_member ( & str_id) ,
1286- Declaration :: SingletonClass ( singleton) => singleton. get_member ( & str_id) ,
1287- _ => panic ! ( "Tried to get member for a declaration that isn't a namespace" ) ,
1288- }
1275+ declaration
1276+ . as_namespace ( )
1277+ . expect ( "Tried to get member for a declaration that isn't a namespace" )
1278+ . get_member ( & str_id)
12891279}
12901280
12911281fn mixins_of ( definition : & Definition ) -> Option < & [ Mixin ] > {
@@ -1298,21 +1288,17 @@ fn mixins_of(definition: &Definition) -> Option<&[Mixin]> {
12981288}
12991289
13001290fn singleton_class_id ( declaration : & Declaration ) -> Option < & DeclarationId > {
1301- match declaration {
1302- Declaration :: Class ( class) => class. singleton_class_id ( ) ,
1303- Declaration :: Module ( module) => module. singleton_class_id ( ) ,
1304- Declaration :: SingletonClass ( singleton) => singleton. singleton_class_id ( ) ,
1305- _ => panic ! ( "Tried to get singleton class ID for a declaration that isn't a namespace" ) ,
1306- }
1291+ declaration
1292+ . as_namespace ( )
1293+ . expect ( "Tried to get singleton class ID for a declaration that isn't a namespace" )
1294+ . singleton_class_id ( )
13071295}
13081296
13091297fn set_singleton_class_id ( declaration : & mut Declaration , id : DeclarationId ) {
1310- match declaration {
1311- Declaration :: Class ( class) => class. set_singleton_class_id ( id) ,
1312- Declaration :: Module ( module) => module. set_singleton_class_id ( id) ,
1313- Declaration :: SingletonClass ( singleton) => singleton. set_singleton_class_id ( id) ,
1314- _ => panic ! ( "Tried to set singleton class ID for a declaration that isn't a namespace" ) ,
1315- }
1298+ declaration
1299+ . as_namespace_mut ( )
1300+ . expect ( "Tried to set singleton class ID for a declaration that isn't a namespace" )
1301+ . set_singleton_class_id ( id) ;
13161302}
13171303
13181304#[ cfg( test) ]
0 commit comments