Skip to content

Commit 4942fc6

Browse files
committed
fixes
1 parent 352dc74 commit 4942fc6

2 files changed

Lines changed: 29 additions & 43 deletions

File tree

rust/rubydex/src/model/declaration.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use std::sync::{Mutex, MutexGuard, RwLock};
1+
use std::sync::{Mutex, MutexGuard, RwLock, RwLockReadGuard};
22

33
use crate::model::{
44
identity_maps::{IdentityHashMap, IdentityHashSet},

rust/rubydex/src/resolution.rs

Lines changed: 28 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1244,48 +1244,38 @@ fn linearize_parent_class(graph: &Graph, definitions: &[&Definition], context: &
12441244
}
12451245

12461246
fn 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

12551253
fn 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

12641260
fn 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

12731267
fn 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

12821274
fn 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

12911281
fn mixins_of(definition: &Definition) -> Option<&[Mixin]> {
@@ -1298,21 +1288,17 @@ fn mixins_of(definition: &Definition) -> Option<&[Mixin]> {
12981288
}
12991289

13001290
fn 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

13091297
fn 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

Comments
 (0)