summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ir/ty.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/ir/ty.rs b/src/ir/ty.rs
index 5903430c..f1e43983 100644
--- a/src/ir/ty.rs
+++ b/src/ir/ty.rs
@@ -392,6 +392,51 @@ impl Type {
}
}
}
+#[test]
+fn is_invalid_named_type_valid() {
+ let ty = Type::new(Some("foo".into()), None, TypeKind::Named, false);
+ assert!(!ty.is_invalid_named_type())
+}
+
+#[test]
+fn is_invalid_named_type_valid_underscore_and_numbers() {
+ let ty =
+ Type::new(Some("_foo123456789_".into()), None, TypeKind::Named, false);
+ assert!(!ty.is_invalid_named_type())
+}
+
+#[test]
+fn is_invalid_named_type_valid_unnamed_kind() {
+ let ty = Type::new(Some("foo".into()), None, TypeKind::Void, false);
+ assert!(!ty.is_invalid_named_type())
+}
+
+#[test]
+fn is_invalid_named_type_invalid_start() {
+ let ty = Type::new(Some("1foo".into()), None, TypeKind::Named, false);
+ assert!(ty.is_invalid_named_type())
+}
+
+#[test]
+fn is_invalid_named_type_invalid_remaing() {
+ let ty = Type::new(Some("foo-".into()), None, TypeKind::Named, false);
+ assert!(ty.is_invalid_named_type())
+}
+
+#[test]
+#[should_panic]
+fn is_invalid_named_type_unnamed() {
+ let ty = Type::new(None, None, TypeKind::Named, false);
+ assert!(ty.is_invalid_named_type())
+}
+
+#[test]
+#[should_panic]
+fn is_invalid_named_type_empty_name() {
+ let ty = Type::new(Some("".into()), None, TypeKind::Named, false);
+ assert!(ty.is_invalid_named_type())
+}
+
impl CanDeriveDebug for Type {
type Extra = ();