Fix type class constraint expressions not being correctly parsed

This commit is contained in:
Sam Vervaeck 2023-05-23 20:03:23 +02:00
parent b23dc84f72
commit acbfeb8975
Signed by: samvv
SSH key fingerprint: SHA256:dIg0ywU1OP+ZYifrYxy8c5esO72cIKB+4/9wkZj1VaY
2 changed files with 4 additions and 4 deletions

View file

@ -885,11 +885,11 @@ namespace bolt {
class TypeclassConstraintExpression : public ConstraintExpression {
public:
Identifier* Name;
IdentifierAlt* Name;
std::vector<VarTypeExpression*> TEs;
TypeclassConstraintExpression(
Identifier* Name,
IdentifierAlt* Name,
std::vector<VarTypeExpression*> TEs
): ConstraintExpression(NodeKind::TypeclassConstraintExpression),
Name(Name),

View file

@ -547,7 +547,7 @@ after_params:
return parseExpressionStatement();
}
}
#
ConstraintExpression* Parser::parseConstraintExpression() {
bool HasTilde = false;
for (std::size_t I = 0; ; I++) {
@ -572,7 +572,7 @@ after_seek:
auto Right = parseArrowTypeExpression();
return new EqualityConstraintExpression { Left, Tilde, Right };
}
auto Name = expectToken<Identifier>();
auto Name = expectToken<IdentifierAlt>();
std::vector<VarTypeExpression*> TEs;
for (;;) {
auto T1 = Tokens.peek();