Rename "PatternVariable" names for clarity (#630)

Pretty much any names will be awkward, since these types represent cases where an `Expression` is not an expression, and a `Value` is not a value, but we can at least be more explicit about the fact that they represent bindings rather than variable usages.
This commit is contained in:
Geoff Romer
2021-07-09 10:11:01 -07:00
committed by GitHub
parent 4f1b2198ff
commit b3d4c56ef2
7 changed files with 44 additions and 46 deletions
+8 -9
View File
@@ -22,9 +22,8 @@ auto Expression::GetIndexExpression() const -> const IndexExpression& {
return std::get<IndexExpression>(value);
}
auto Expression::GetPatternVariableExpression() const
-> const PatternVariableExpression& {
return std::get<PatternVariableExpression>(value);
auto Expression::GetBindingExpression() const -> const BindingExpression& {
return std::get<BindingExpression>(value);
}
auto Expression::GetIntLiteral() const -> int {
@@ -106,12 +105,12 @@ auto Expression::MakeIdentifierExpression(int line_num, std::string var)
return v;
}
auto Expression::MakePatternVariableExpression(int line_num, std::string var,
const Expression* type)
auto Expression::MakeBindingExpression(int line_num, std::string var,
const Expression* type)
-> const Expression* {
auto* v = new Expression();
v->line_num = line_num;
v->value = PatternVariableExpression({.name = std::move(var), .type = type});
v->value = BindingExpression({.name = std::move(var), .type = type});
return v;
}
@@ -281,10 +280,10 @@ void PrintExp(const Expression* e) {
case ExpressionKind::IdentifierExpression:
std::cout << e->GetIdentifierExpression().name;
break;
case ExpressionKind::PatternVariableExpression:
PrintExp(e->GetPatternVariableExpression().type);
case ExpressionKind::BindingExpression:
PrintExp(e->GetBindingExpression().type);
std::cout << ": ";
std::cout << e->GetPatternVariableExpression().name;
std::cout << e->GetBindingExpression().name;
break;
case ExpressionKind::CallExpression:
PrintExp(e->GetCallExpression().function);