aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2021-06-25 12:21:34 +0100
committerPhilip Herron <philip.herron@embecosm.com>2021-06-25 12:21:34 +0100
commit13fd4d31da76676e7de4ee4978093353f8d0fbc5 (patch)
treecfdc13b8971bcc929deb99ae59e36e7e713904ff /gcc
parent08e3ae7fce360db23bceb45c1b16718ee21deb91 (diff)
downloadgcc-13fd4d31da76676e7de4ee4978093353f8d0fbc5.zip
gcc-13fd4d31da76676e7de4ee4978093353f8d0fbc5.tar.gz
gcc-13fd4d31da76676e7de4ee4978093353f8d0fbc5.tar.bz2
Add TypeKindString to tyty debug
Adding the to_string for type kind will improve the debug message for type wrappers.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/typecheck/rust-tyty.h133
1 files changed, 67 insertions, 66 deletions
diff --git a/gcc/rust/typecheck/rust-tyty.h b/gcc/rust/typecheck/rust-tyty.h
index fcf4d86..ac87960 100644
--- a/gcc/rust/typecheck/rust-tyty.h
+++ b/gcc/rust/typecheck/rust-tyty.h
@@ -52,6 +52,71 @@ enum TypeKind
ERROR
};
+class TypeKindFormat
+{
+public:
+ static std::string to_string (TypeKind kind)
+ {
+ switch (kind)
+ {
+ case TypeKind::INFER:
+ return "Infer";
+
+ case TypeKind::ADT:
+ return "ADT";
+
+ case TypeKind::STR:
+ return "STR";
+
+ case TypeKind::REF:
+ return "REF";
+
+ case TypeKind::PARAM:
+ return "PARAM";
+
+ case TypeKind::ARRAY:
+ return "ARRAY";
+
+ case TypeKind::FNDEF:
+ return "FnDef";
+
+ case TypeKind::FNPTR:
+ return "FnPtr";
+
+ case TypeKind::TUPLE:
+ return "Tuple";
+
+ case TypeKind::BOOL:
+ return "Bool";
+
+ case TypeKind::CHAR:
+ return "Char";
+
+ case TypeKind::INT:
+ return "Int";
+
+ case TypeKind::UINT:
+ return "Uint";
+
+ case TypeKind::FLOAT:
+ return "Float";
+
+ case TypeKind::USIZE:
+ return "Usize";
+
+ case TypeKind::ISIZE:
+ return "Isize";
+
+ case TypeKind::NEVER:
+ return "Never";
+
+ case TypeKind::ERROR:
+ return "ERROR";
+ }
+ gcc_unreachable ();
+ }
+};
+
class TyVisitor;
class BaseType
{
@@ -138,7 +203,8 @@ public:
std::string debug_str () const
{
- return as_string () + ":" + mappings_str ();
+ return TypeKindFormat::to_string (get_kind ()) + ":" + as_string () + ":"
+ + mappings_str ();
}
void debug () const
@@ -1407,71 +1473,6 @@ public:
bool is_unit () const override { return true; }
};
-class TypeKindFormat
-{
-public:
- static std::string to_string (TypeKind kind)
- {
- switch (kind)
- {
- case TypeKind::INFER:
- return "Infer";
-
- case TypeKind::ADT:
- return "ADT";
-
- case TypeKind::STR:
- return "STR";
-
- case TypeKind::REF:
- return "REF";
-
- case TypeKind::PARAM:
- return "PARAM";
-
- case TypeKind::ARRAY:
- return "ARRAY";
-
- case TypeKind::FNDEF:
- return "FnDef";
-
- case TypeKind::FNPTR:
- return "FnPtr";
-
- case TypeKind::TUPLE:
- return "Tuple";
-
- case TypeKind::BOOL:
- return "Bool";
-
- case TypeKind::CHAR:
- return "Char";
-
- case TypeKind::INT:
- return "Int";
-
- case TypeKind::UINT:
- return "Uint";
-
- case TypeKind::FLOAT:
- return "Float";
-
- case TypeKind::USIZE:
- return "Usize";
-
- case TypeKind::ISIZE:
- return "Isize";
-
- case TypeKind::NEVER:
- return "Never";
-
- case TypeKind::ERROR:
- return "ERROR";
- }
- gcc_unreachable ();
- }
-};
-
} // namespace TyTy
} // namespace Rust