Miscellaneous tuple simplifications (#857)

- Drop unnecessary special-casing of 0-tuples.
- Drop unused constructor.
This commit is contained in:
Geoff Romer
2021-09-27 12:10:16 -07:00
committed by GitHub
parent 5aa958345b
commit 532948d9a5
3 changed files with 5 additions and 44 deletions
-10
View File
@@ -54,16 +54,6 @@ void Pattern::Print(llvm::raw_ostream& out) const {
}
}
TuplePattern::TuplePattern(Nonnull<Arena*> arena,
Nonnull<Expression*> tuple_literal)
: Pattern(Kind::TuplePattern, tuple_literal->SourceLoc()) {
const auto& tuple = cast<TupleLiteral>(*tuple_literal);
for (const FieldInitializer& init : tuple.Fields()) {
fields.push_back(
Field(init.name, arena->New<ExpressionPattern>(init.expression)));
}
}
auto PatternFromParenContents(Nonnull<Arena*> arena, SourceLocation loc,
const ParenContents<Pattern>& paren_contents)
-> Nonnull<Pattern*> {
-6
View File
@@ -109,12 +109,6 @@ class TuplePattern : public Pattern {
TuplePattern(SourceLocation loc, std::vector<Field> fields)
: Pattern(Kind::TuplePattern, loc), fields(std::move(fields)) {}
// Converts tuple_literal to a TuplePattern, by wrapping each field in an
// ExpressionPattern.
//
// REQUIRES: tuple_literal->Tag() == Expression::Kind::TupleLiteral
TuplePattern(Nonnull<Arena*> arena, Nonnull<Expression*> tuple_literal);
static auto classof(const Pattern* pattern) -> bool {
return pattern->Tag() == Kind::TuplePattern;
}