diff --git a/src/test/unification.rs b/src/test/unification.rs index dfff9d2..6480b13 100644 --- a/src/test/unification.rs +++ b/src/test/unification.rs @@ -251,6 +251,26 @@ fn test_trait_not_subtype() { ); } +#[test] +fn test_reprtree_list_subtype() { + let mut dict = BimapTypeDict::new(); + + dict.add_varname("Item".into()); + + assert_eq!( + subtype_unify( + &dict.parse("<List~Vec <Digit 10>~Char~ReprTree>").expect(""), + &dict.parse("<List~Vec Item~ReprTree>").expect("") + ), + Ok(( + TypeTerm::unit(), + vec![ + (dict.get_typeid(&"Item".into()).unwrap(), dict.parse("<Digit 10>~Char").unwrap()) + ].into_iter().collect() + )) + ); +} + #[test] pub fn test_subtype_delim() { let mut dict = BimapTypeDict::new();