diff options
author | Ansh Tyagi <tyagiansh23@hotmail.com> | 2021-03-23 15:21:55 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-23 09:51:55 +0000 |
commit | aca7b5d26b703c448a4495442774f4822dbd9cd9 (patch) | |
tree | 06052967a392ef33753de87b1d5eb1493ff47384 /gcc | |
parent | eaeeb78a8b45e2a193bd396349e9354b55d57fd7 (diff) | |
download | gcc-aca7b5d26b703c448a4495442774f4822dbd9cd9.zip gcc-aca7b5d26b703c448a4495442774f4822dbd9cd9.tar.gz gcc-aca7b5d26b703c448a4495442774f4822dbd9cd9.tar.bz2 |
added to_string() for TyTy::TypeKind
This is a building block to improve debugging of the TyTy module.
Fixes: #284
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/typecheck/rust-tyty.h | 70 |
1 files changed, 69 insertions, 1 deletions
diff --git a/gcc/rust/typecheck/rust-tyty.h b/gcc/rust/typecheck/rust-tyty.h index 27cfe46..76c11f6 100644 --- a/gcc/rust/typecheck/rust-tyty.h +++ b/gcc/rust/typecheck/rust-tyty.h @@ -1084,7 +1084,75 @@ public: BaseType *clone () final override; }; +class TypeKindFormat +{ +public: + static std::string to_string (TypeKind kind) + { + switch (kind) + { + case TypeKind::INFER: + return "Infer"; + break; + case TypeKind::ADT: + return "ADT"; + break; + case TypeKind::STR: + return "STR"; + break; + case TypeKind::REF: + return "REF"; + break; + case TypeKind::PARAM: + return "PARAM"; + break; + case TypeKind::ARRAY: + return "ARRAY"; + break; + case TypeKind::FNDEF: + return "FnDef"; + break; + case TypeKind::FNPTR: + return "FnPtr"; + break; + case TypeKind::TUPLE: + return "Tuple"; + break; + case TypeKind::BOOL: + return "Boolean"; + break; + case TypeKind::CHAR: + return "Character"; + break; + case TypeKind::INT: + return "Integer"; + break; + case TypeKind::UINT: + return "Unsigned Integer"; + break; + case TypeKind::FLOAT: + return "Float"; + break; + case TypeKind::UNIT: + return "Unit"; + break; + case TypeKind::USIZE: + return "Usize"; + break; + case TypeKind::ISIZE: + return "Isize"; + break; + case TypeKind::ERROR: + return "ERROR"; + break; + default: + return "None"; + break; + } + } +}; + } // namespace TyTy } // namespace Rust -#endif // RUST_TYTY +#endif // RUST_TYTY
\ No newline at end of file |