aboutsummaryrefslogtreecommitdiff
path: root/src/type/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/type/mod.rs')
-rw-r--r--src/type/mod.rs6
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()),
}
}