diff --git a/src/Binder/Binder.cpp b/src/Binder/Binder.cpp index 04ebb4f..ddfe1f5 100644 --- a/src/Binder/Binder.cpp +++ b/src/Binder/Binder.cpp @@ -56,6 +56,7 @@ namespace Porygon::Binder { case ParsedStatementKind::Bad: return new BoundBadStatement(); } + throw "unreachable"; } BoundStatement *Binder::BindBlockStatement(const ParsedStatement *statement) { @@ -355,6 +356,7 @@ namespace Porygon::Binder { case ParsedExpressionKind::Bad: return new BoundBadExpression(expression->GetStartPosition(), expression->GetLength()); } + throw; } BoundExpression *Binder::BindVariableExpression(const VariableExpression *expression) { diff --git a/src/Evaluator/Evaluator.cpp b/src/Evaluator/Evaluator.cpp index 761d064..bdb68b1 100644 --- a/src/Evaluator/Evaluator.cpp +++ b/src/Evaluator/Evaluator.cpp @@ -266,11 +266,7 @@ namespace Porygon::Evaluation { case BoundExpressionKind::PeriodIndex: return dynamic_pointer_cast(this->EvaluatePeriodIndexExpression(expression)); - case BoundExpressionKind::LiteralString: - case BoundExpressionKind::LiteralBool: - case BoundExpressionKind::Bad: - case BoundExpressionKind::NumericalTable: - case BoundExpressionKind::Table: + default: throw; } } @@ -293,12 +289,7 @@ namespace Porygon::Evaluation { case BoundExpressionKind::PeriodIndex: return dynamic_pointer_cast(this->EvaluatePeriodIndexExpression(expression)); - case BoundExpressionKind::Bad: - case BoundExpressionKind::LiteralInteger: - case BoundExpressionKind::LiteralFloat: - case BoundExpressionKind::LiteralString: - case BoundExpressionKind::NumericalTable: - case BoundExpressionKind::Table: + default: throw; } @@ -319,13 +310,7 @@ namespace Porygon::Evaluation { case BoundExpressionKind::PeriodIndex: return dynamic_pointer_cast(this->EvaluatePeriodIndexExpression(expression)); - case BoundExpressionKind::Bad: - case BoundExpressionKind::LiteralInteger: - case BoundExpressionKind::LiteralFloat: - case BoundExpressionKind::LiteralBool: - case BoundExpressionKind::Unary: - case BoundExpressionKind::NumericalTable: - case BoundExpressionKind::Table: + default: throw; } diff --git a/src/Evaluator/UnaryEvaluation.cpp b/src/Evaluator/UnaryEvaluation.cpp index f362a8f..577f80a 100644 --- a/src/Evaluator/UnaryEvaluation.cpp +++ b/src/Evaluator/UnaryEvaluation.cpp @@ -17,7 +17,7 @@ namespace Porygon::Evaluation { return make_shared(-l); } } - case BoundUnaryOperation::LogicalNegation: + default: throw; } } @@ -29,7 +29,7 @@ namespace Porygon::Evaluation { bool b = val->EvaluateBool(); return make_shared(!b); } - case BoundUnaryOperation::Negation: + default: throw; } }