aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAnsh Tyagi <tyagiansh23@hotmail.com>2021-03-23 15:21:55 +0530
committerGitHub <noreply@github.com>2021-03-23 09:51:55 +0000
commitaca7b5d26b703c448a4495442774f4822dbd9cd9 (patch)
tree06052967a392ef33753de87b1d5eb1493ff47384 /gcc
parenteaeeb78a8b45e2a193bd396349e9354b55d57fd7 (diff)
downloadgcc-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.h70
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