aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Faust <david.faust@oracle.com>2022-05-10 11:19:40 -0700
committerDavid Faust <david.faust@oracle.com>2022-05-11 09:29:55 -0700
commit502c8a859750064103bb71f4d559cef7b1c1b8af (patch)
treea200b18cd14d2bc8db86415662d6498476e9776a /gcc
parentc1ff79996acfba45a50f181f9d3be1625cdef8f6 (diff)
downloadgcc-502c8a859750064103bb71f4d559cef7b1c1b8af.zip
gcc-502c8a859750064103bb71f4d559cef7b1c1b8af.tar.gz
gcc-502c8a859750064103bb71f4d559cef7b1c1b8af.tar.bz2
typecheck: add is_primitive_type_kind helper
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/typecheck/rust-tyty.cc20
-rw-r--r--gcc/rust/typecheck/rust-tyty.h3
2 files changed, 23 insertions, 0 deletions
diff --git a/gcc/rust/typecheck/rust-tyty.cc b/gcc/rust/typecheck/rust-tyty.cc
index 6b034ea..d0e8b76 100644
--- a/gcc/rust/typecheck/rust-tyty.cc
+++ b/gcc/rust/typecheck/rust-tyty.cc
@@ -114,6 +114,26 @@ TypeKindFormat::to_string (TypeKind kind)
}
bool
+is_primitive_type_kind (TypeKind kind)
+{
+ switch (kind)
+ {
+ case TypeKind::BOOL:
+ case TypeKind::CHAR:
+ case TypeKind::INT:
+ case TypeKind::UINT:
+ case TypeKind::ISIZE:
+ case TypeKind::USIZE:
+ case TypeKind::FLOAT:
+ case TypeKind::NEVER:
+ case TypeKind::STR:
+ return true;
+ default:
+ return false;
+ }
+}
+
+bool
BaseType::satisfies_bound (const TypeBoundPredicate &predicate) const
{
const Resolver::TraitReference *query = predicate.get ();
diff --git a/gcc/rust/typecheck/rust-tyty.h b/gcc/rust/typecheck/rust-tyty.h
index 5f35c32..a2950e9 100644
--- a/gcc/rust/typecheck/rust-tyty.h
+++ b/gcc/rust/typecheck/rust-tyty.h
@@ -67,6 +67,9 @@ enum TypeKind
ERROR
};
+extern bool
+is_primitive_type_kind (TypeKind kind);
+
class TypeKindFormat
{
public: