Add Dump methods to printable types. (#681)

This commit is contained in:
Geoff Romer
2021-07-29 14:17:35 -07:00
committed by GitHub
parent 61abc44aef
commit a8f56797b8
15 changed files with 43 additions and 3 deletions
+6
View File
@@ -20,6 +20,7 @@ cc_library(
"//common:ostream",
"//executable_semantics/interpreter:address",
"//executable_semantics/interpreter:containers",
"@llvm-project//llvm:Support",
],
)
@@ -31,6 +32,7 @@ cc_library(
"//common:indirect_value",
"//common:ostream",
"//executable_semantics/common:error",
"@llvm-project//llvm:Support",
],
)
@@ -41,6 +43,7 @@ cc_library(
deps = [
":expression",
":statement",
"@llvm-project//llvm:Support",
],
)
@@ -51,6 +54,7 @@ cc_library(
deps = [
":expression",
"//common:ostream",
"@llvm-project//llvm:Support",
],
)
@@ -62,6 +66,7 @@ cc_library(
":expression",
"//common:check",
"//common:ostream",
"@llvm-project//llvm:Support",
],
)
@@ -71,5 +76,6 @@ cc_library(
deps = [
":member",
"//common:ostream",
"@llvm-project//llvm:Support",
],
)
+2
View File
@@ -14,6 +14,7 @@
#include "executable_semantics/ast/struct_definition.h"
#include "executable_semantics/interpreter/address.h"
#include "executable_semantics/interpreter/dictionary.h"
#include "llvm/Support/Compiler.h"
namespace Carbon {
@@ -84,6 +85,7 @@ class Declaration {
auto GetVariableDeclaration() const -> const VariableDeclaration&;
void Print(llvm::raw_ostream& out) const;
LLVM_DUMP_METHOD void Dump() const { Print(llvm::errs()); }
inline auto tag() const -> DeclarationKind {
return std::visit([](const auto& t) { return t.Kind; }, value);
+1
View File
@@ -6,6 +6,7 @@
#include "executable_semantics/common/error.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/raw_ostream.h"
namespace Carbon {
+2
View File
@@ -11,6 +11,7 @@
#include <vector>
#include "common/ostream.h"
#include "llvm/Support/Compiler.h"
namespace Carbon {
@@ -179,6 +180,7 @@ struct Expression {
auto GetFunctionTypeLiteral() const -> const FunctionTypeLiteral&;
void Print(llvm::raw_ostream& out) const;
LLVM_DUMP_METHOD void Dump() const { Print(llvm::errs()); }
inline auto tag() const -> ExpressionKind {
return std::visit([](const auto& t) { return t.Kind; }, value);
@@ -8,6 +8,7 @@
#include "common/ostream.h"
#include "executable_semantics/ast/expression.h"
#include "executable_semantics/ast/statement.h"
#include "llvm/Support/Compiler.h"
namespace Carbon {
@@ -33,6 +34,7 @@ struct FunctionDefinition {
void Print(llvm::raw_ostream& out) const { PrintDepth(-1, out); }
void PrintDepth(int depth, llvm::raw_ostream& out) const;
LLVM_DUMP_METHOD void Dump() const { Print(llvm::errs()); }
int line_num;
std::string name;
+2
View File
@@ -9,6 +9,7 @@
#include "common/ostream.h"
#include "executable_semantics/ast/expression.h"
#include "llvm/Support/Compiler.h"
namespace Carbon {
@@ -27,6 +28,7 @@ struct Member {
auto GetFieldMember() const -> const FieldMember&;
void Print(llvm::raw_ostream& out) const;
LLVM_DUMP_METHOD void Dump() const { Print(llvm::errs()); }
inline auto tag() const -> MemberKind {
return std::visit([](const auto& t) { return t.Kind; }, value);
+3
View File
@@ -9,6 +9,7 @@
#include "common/ostream.h"
#include "executable_semantics/ast/expression.h"
#include "llvm/Support/Compiler.h"
namespace Carbon {
@@ -163,7 +164,9 @@ struct Statement {
auto GetRun() const -> const Run&;
auto GetAwait() const -> const Await&;
void Print(llvm::raw_ostream& out) const { PrintDepth(-1, out); }
void PrintDepth(int depth, llvm::raw_ostream& out) const;
LLVM_DUMP_METHOD void Dump() const { Print(llvm::errs()); }
inline auto tag() const -> StatementKind {
return std::visit([](const auto& t) { return t.Kind; }, value);