Generialize showType
This commit is contained in:
parent
559fd7ffe7
commit
e8067daf09
|
@ -211,20 +211,21 @@ const Value * getPrimOp(const Value &v) {
|
||||||
return primOp;
|
return primOp;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string_view showType(ValueType type)
|
std::string_view showType(ValueType type, bool withArticle)
|
||||||
{
|
{
|
||||||
|
#define WA(a, w) withArticle ? a " " w : w
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case nInt: return "an integer";
|
case nInt: return WA("an", "integer");
|
||||||
case nBool: return "a Boolean";
|
case nBool: return WA("a", "Boolean");
|
||||||
case nString: return "a string";
|
case nString: return WA("a", "string");
|
||||||
case nPath: return "a path";
|
case nPath: return WA("a", "path");
|
||||||
case nNull: return "null";
|
case nNull: return "null";
|
||||||
case nAttrs: return "a set";
|
case nAttrs: return WA("a", "set");
|
||||||
case nList: return "a list";
|
case nList: return WA("a", "list");
|
||||||
case nFunction: return "a function";
|
case nFunction: return WA("a", "function");
|
||||||
case nExternal: return "an external value";
|
case nExternal: return WA("an", "external value");
|
||||||
case nFloat: return "a float";
|
case nFloat: return WA("a", "float");
|
||||||
case nThunk: return "a thunk";
|
case nThunk: return WA("a", "thunk");
|
||||||
}
|
}
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
|
@ -704,8 +704,11 @@ struct DebugTraceStacker {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return A string representing the type of the value `v`.
|
* @return A string representing the type of the value `v`.
|
||||||
|
*
|
||||||
|
* @param withArticle Whether to begin with an english article, e.g. "an
|
||||||
|
* integer" vs "integer".
|
||||||
*/
|
*/
|
||||||
std::string_view showType(ValueType type);
|
std::string_view showType(ValueType type, bool withArticle = true);
|
||||||
std::string showType(const Value & v);
|
std::string showType(const Value & v);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue