()
| 400 | |
| 401 | #[test] |
| 402 | fn extends_generics_dependency() { |
| 403 | // Collection<int, Language> — Collection should come before the child. |
| 404 | let collection = make_class("Collection"); |
| 405 | let mut child = make_class("LanguageCollection"); |
| 406 | child.parent_class = Some(crate::atom::atom("Collection")); |
| 407 | child.extends_generics = vec![(crate::atom::atom("Collection"), vec![])]; |
| 408 | |
| 409 | let classes = vec![ |
| 410 | ("LanguageCollection".to_string(), &child), |
| 411 | ("Collection".to_string(), &collection), |
| 412 | ]; |
| 413 | |
| 414 | let sorted = toposort_classes(classes.into_iter()); |
| 415 | |
| 416 | let pos_col = sorted.iter().position(|s| s == "Collection").unwrap(); |
| 417 | let pos_child = sorted |
| 418 | .iter() |
| 419 | .position(|s| s == "LanguageCollection") |
| 420 | .unwrap(); |
| 421 | |
| 422 | assert!(pos_col < pos_child); |
| 423 | } |
| 424 | |
| 425 | #[test] |
| 426 | fn all_classes_appear_exactly_once() { |
nothing calls this directly
no test coverage detected