diff options
Diffstat (limited to 'src/type/mod.rs')
-rw-r--r-- | src/type/mod.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/type/mod.rs b/src/type/mod.rs index e29e069..01aed40 100644 --- a/src/type/mod.rs +++ b/src/type/mod.rs @@ -22,6 +22,8 @@ pub enum Type { List(Vec<Type>), + VecOf(Box<Type>), + /// Type for generics /// and also error messages /// with unknown types @@ -89,6 +91,9 @@ impl Type { /// .is_concrete(), /// Err("a".to_string()) /// ); + /// + /// assert_eq!(vecof(vt("a")).is_concrete(), Err("a".to_string())); + /// assert_eq!(vecof(Integer).is_concrete(), Ok(())); /// ``` pub fn is_concrete(&self) -> Result<(), String> { match self { @@ -103,6 +108,7 @@ impl Type { } res }, + VecOf(ty) => (*ty).is_concrete(), VarType(s) => Err(s.clone()), } } |