diff options
author | Philip Herron <philip.herron@embecosm.com> | 2021-06-25 12:21:34 +0100 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2021-06-25 12:21:34 +0100 |
commit | 13fd4d31da76676e7de4ee4978093353f8d0fbc5 (patch) | |
tree | cfdc13b8971bcc929deb99ae59e36e7e713904ff | |
parent | 08e3ae7fce360db23bceb45c1b16718ee21deb91 (diff) | |
download | gcc-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.
-rw-r--r-- | gcc/rust/typecheck/rust-tyty.h | 133 |
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 |