mirror of
https://gcc.gnu.org/git/gcc.git
synced 2026-02-22 20:01:22 -05:00
gccrs: Remove HIR::GroupedPattern
gcc/rust/ChangeLog: * backend/rust-compile-fnparam.h (CompileFnParam::visit): Remove HIR::GroupedPattern visitor. * backend/rust-compile-pattern.cc (CompilePatternCaseLabelExpr::visit): Remove HIR::GroupedPattern visitor. (CompilePatternBindings::visit): Remove HIR::GroupedPattern visitor. * backend/rust-compile-pattern.h (CompilePatternCaseLabelExpr::visit): Remove HIR::GroupedPattern visitor. (CompilePatternBindings::visit): Remove HIR::GroupedPattern visitor. (CompilePatternLet::visit): Remove HIR::GroupedPattern visitor. * backend/rust-compile-resolve-path.h (ResolvePathRef::visit): Remove HIR::GroupedPattern visitor. * backend/rust-compile-var-decl.h (CompileVarDecl::visit): Remove HIR::GroupedPattern visitor. * checks/errors/rust-const-checker.cc (ConstChecker::visit): Remove HIR::GroupedPattern visitor. * checks/errors/rust-const-checker.h (ConstChecker::visit): Remove HIR::GroupedPattern visitor. * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Remove HIR::GroupedPattern visitor. * checks/errors/rust-unsafe-checker.h (UnsafeChecker::visit): Remove HIR::GroupedPattern visitor. * hir/rust-hir-dump.cc (Dump::visit): Remove HIR::GroupedPattern visitor. * hir/rust-hir-dump.h (Dump::visit): Remove HIR::GroupedPattern visitor. * hir/tree/rust-hir-full-decls.h (class GroupedPattern): Remove class. * hir/tree/rust-hir-full-test.cc (GroupedPattern::accept_vis): Remove method. * hir/tree/rust-hir-pattern.h (class GroupedPattern): Remove class. * hir/tree/rust-hir-visitor.h (HIRFullVisitor::visit): Remove HIR::GroupedPattern visitor. (HIRFullVisitorBase::visit): Remove HIR::GroupedPattern visitor. (HIRPatternVisitor::visit): Remove HIR::GroupedPattern visitor. * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Remove HIR::GroupedPattern visitor. * typecheck/rust-hir-type-check-pattern.h (TypeCheckPattern::visit): Remove HIR::GroupedPattern visitor. Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
This commit is contained in:
@@ -39,7 +39,6 @@ public:
|
||||
void visit (HIR::TupleStructPattern &) override;
|
||||
|
||||
// Empty visit for unused Pattern HIR nodes.
|
||||
void visit (HIR::GroupedPattern &) override {}
|
||||
void visit (HIR::LiteralPattern &) override {}
|
||||
void visit (HIR::PathInExpression &) override {}
|
||||
void visit (HIR::QualifiedPathInExpression &) override {}
|
||||
|
||||
@@ -161,12 +161,6 @@ CompilePatternCaseLabelExpr::visit (HIR::RangePattern &pattern)
|
||||
case_label_expr = build_case_label (lower, upper, associated_case_label);
|
||||
}
|
||||
|
||||
void
|
||||
CompilePatternCaseLabelExpr::visit (HIR::GroupedPattern &pattern)
|
||||
{
|
||||
pattern.get_item ()->accept_vis (*this);
|
||||
}
|
||||
|
||||
// setup the bindings
|
||||
|
||||
void
|
||||
@@ -335,12 +329,6 @@ CompilePatternBindings::visit (HIR::StructPattern &pattern)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
CompilePatternBindings::visit (HIR::GroupedPattern &pattern)
|
||||
{
|
||||
pattern.get_item ()->accept_vis (*this);
|
||||
}
|
||||
|
||||
void
|
||||
CompilePatternLet::visit (HIR::IdentifierPattern &pattern)
|
||||
{
|
||||
|
||||
@@ -38,7 +38,6 @@ public:
|
||||
void visit (HIR::TupleStructPattern &pattern) override;
|
||||
void visit (HIR::WildcardPattern &pattern) override;
|
||||
void visit (HIR::RangePattern &pattern) override;
|
||||
void visit (HIR::GroupedPattern &pattern) override;
|
||||
|
||||
// Empty visit for unused Pattern HIR nodes.
|
||||
void visit (HIR::IdentifierPattern &) override {}
|
||||
@@ -70,7 +69,6 @@ public:
|
||||
|
||||
void visit (HIR::StructPattern &pattern) override;
|
||||
void visit (HIR::TupleStructPattern &pattern) override;
|
||||
void visit (HIR::GroupedPattern &) override;
|
||||
|
||||
// Empty visit for unused Pattern HIR nodes.
|
||||
void visit (HIR::IdentifierPattern &) override {}
|
||||
@@ -105,12 +103,6 @@ public:
|
||||
void visit (HIR::WildcardPattern &) override;
|
||||
|
||||
// check for unimplemented Pattern HIR nodes.
|
||||
void visit (HIR::GroupedPattern &pattern) override
|
||||
{
|
||||
rust_sorry_at (pattern.get_locus (),
|
||||
"grouped pattern let statements not supported");
|
||||
}
|
||||
|
||||
void visit (HIR::LiteralPattern &pattern) override
|
||||
{
|
||||
rust_sorry_at (pattern.get_locus (),
|
||||
|
||||
@@ -45,7 +45,6 @@ public:
|
||||
void visit (HIR::QualifiedPathInExpression &expr) override;
|
||||
|
||||
// Empty visit for unused Pattern HIR nodes.
|
||||
void visit (HIR::GroupedPattern &) override {}
|
||||
void visit (HIR::IdentifierPattern &) override {}
|
||||
void visit (HIR::LiteralPattern &) override {}
|
||||
void visit (HIR::RangePattern &) override {}
|
||||
|
||||
@@ -69,7 +69,6 @@ public:
|
||||
}
|
||||
|
||||
// Empty visit for unused Pattern HIR nodes.
|
||||
void visit (HIR::GroupedPattern &) override {}
|
||||
void visit (HIR::LiteralPattern &) override {}
|
||||
void visit (HIR::PathInExpression &) override {}
|
||||
void visit (HIR::QualifiedPathInExpression &) override {}
|
||||
|
||||
@@ -834,10 +834,6 @@ void
|
||||
ConstChecker::visit (TuplePattern &)
|
||||
{}
|
||||
|
||||
void
|
||||
ConstChecker::visit (GroupedPattern &)
|
||||
{}
|
||||
|
||||
void
|
||||
ConstChecker::visit (SlicePattern &)
|
||||
{}
|
||||
|
||||
@@ -186,7 +186,6 @@ private:
|
||||
virtual void visit (TuplePatternItemsMultiple &tuple_items) override;
|
||||
virtual void visit (TuplePatternItemsRanged &tuple_items) override;
|
||||
virtual void visit (TuplePattern &pattern) override;
|
||||
virtual void visit (GroupedPattern &pattern) override;
|
||||
virtual void visit (SlicePattern &pattern) override;
|
||||
virtual void visit (EmptyStmt &stmt) override;
|
||||
virtual void visit (LetStmt &stmt) override;
|
||||
|
||||
@@ -901,10 +901,6 @@ void
|
||||
UnsafeChecker::visit (TuplePattern &)
|
||||
{}
|
||||
|
||||
void
|
||||
UnsafeChecker::visit (GroupedPattern &)
|
||||
{}
|
||||
|
||||
void
|
||||
UnsafeChecker::visit (SlicePattern &)
|
||||
{}
|
||||
|
||||
@@ -168,7 +168,6 @@ private:
|
||||
virtual void visit (TuplePatternItemsMultiple &tuple_items) override;
|
||||
virtual void visit (TuplePatternItemsRanged &tuple_items) override;
|
||||
virtual void visit (TuplePattern &pattern) override;
|
||||
virtual void visit (GroupedPattern &pattern) override;
|
||||
virtual void visit (SlicePattern &pattern) override;
|
||||
virtual void visit (EmptyStmt &stmt) override;
|
||||
virtual void visit (LetStmt &stmt) override;
|
||||
|
||||
@@ -457,9 +457,6 @@ void
|
||||
Dump::visit (TuplePattern &)
|
||||
{}
|
||||
void
|
||||
Dump::visit (GroupedPattern &)
|
||||
{}
|
||||
void
|
||||
Dump::visit (SlicePattern &)
|
||||
{}
|
||||
|
||||
|
||||
@@ -163,7 +163,6 @@ private:
|
||||
virtual void visit (TuplePatternItemsMultiple &) override;
|
||||
virtual void visit (TuplePatternItemsRanged &) override;
|
||||
virtual void visit (TuplePattern &) override;
|
||||
virtual void visit (GroupedPattern &) override;
|
||||
virtual void visit (SlicePattern &) override;
|
||||
|
||||
virtual void visit (EmptyStmt &) override;
|
||||
|
||||
@@ -206,7 +206,6 @@ class TuplePatternItems;
|
||||
class TuplePatternItemsMultiple;
|
||||
class TuplePatternItemsRanged;
|
||||
class TuplePattern;
|
||||
class GroupedPattern;
|
||||
class SlicePattern;
|
||||
|
||||
// rust-type.h
|
||||
|
||||
@@ -4476,12 +4476,6 @@ TuplePattern::accept_vis (HIRFullVisitor &vis)
|
||||
vis.visit (*this);
|
||||
}
|
||||
|
||||
void
|
||||
GroupedPattern::accept_vis (HIRFullVisitor &vis)
|
||||
{
|
||||
vis.visit (*this);
|
||||
}
|
||||
|
||||
void
|
||||
SlicePattern::accept_vis (HIRFullVisitor &vis)
|
||||
{
|
||||
@@ -4608,12 +4602,6 @@ EmptyStmt::accept_vis (HIRStmtVisitor &vis)
|
||||
vis.visit (*this);
|
||||
}
|
||||
|
||||
void
|
||||
GroupedPattern::accept_vis (HIRPatternVisitor &vis)
|
||||
{
|
||||
vis.visit (*this);
|
||||
}
|
||||
|
||||
void
|
||||
WildcardPattern::accept_vis (HIRPatternVisitor &vis)
|
||||
{
|
||||
|
||||
@@ -1215,75 +1215,6 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
// HIR node representing a pattern in parentheses, used to control precedence
|
||||
class GroupedPattern : public Pattern
|
||||
{
|
||||
std::unique_ptr<Pattern> pattern_in_parens;
|
||||
Location locus;
|
||||
Analysis::NodeMapping mappings;
|
||||
|
||||
public:
|
||||
std::string as_string () const override
|
||||
{
|
||||
return "(" + pattern_in_parens->as_string () + ")";
|
||||
}
|
||||
|
||||
GroupedPattern (Analysis::NodeMapping mappings,
|
||||
std::unique_ptr<Pattern> pattern_in_parens, Location locus)
|
||||
: pattern_in_parens (std::move (pattern_in_parens)), locus (locus),
|
||||
mappings (mappings)
|
||||
{}
|
||||
|
||||
// Copy constructor uses clone
|
||||
GroupedPattern (GroupedPattern const &other)
|
||||
: pattern_in_parens (other.pattern_in_parens->clone_pattern ()),
|
||||
locus (other.locus), mappings (other.mappings)
|
||||
{}
|
||||
|
||||
// Overload assignment operator to clone
|
||||
GroupedPattern &operator= (GroupedPattern const &other)
|
||||
{
|
||||
pattern_in_parens = other.pattern_in_parens->clone_pattern ();
|
||||
locus = other.locus;
|
||||
mappings = other.mappings;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
// default move semantics
|
||||
GroupedPattern (GroupedPattern &&other) = default;
|
||||
GroupedPattern &operator= (GroupedPattern &&other) = default;
|
||||
|
||||
Location get_locus () const override { return locus; }
|
||||
|
||||
void accept_vis (HIRFullVisitor &vis) override;
|
||||
void accept_vis (HIRPatternVisitor &vis) override;
|
||||
|
||||
Analysis::NodeMapping get_pattern_mappings () const override final
|
||||
{
|
||||
return mappings;
|
||||
}
|
||||
|
||||
PatternType get_pattern_type () const override final
|
||||
{
|
||||
return PatternType::GROUPED;
|
||||
}
|
||||
|
||||
std::unique_ptr<Pattern> &get_item () { return pattern_in_parens; }
|
||||
const std::unique_ptr<Pattern> &get_item () const
|
||||
{
|
||||
return pattern_in_parens;
|
||||
}
|
||||
|
||||
protected:
|
||||
/* Use covariance to implement clone function as returning this object rather
|
||||
* than base */
|
||||
GroupedPattern *clone_pattern_impl () const override
|
||||
{
|
||||
return new GroupedPattern (*this);
|
||||
}
|
||||
};
|
||||
|
||||
// HIR node representing patterns that can match slices and arrays
|
||||
class SlicePattern : public Pattern
|
||||
{
|
||||
|
||||
@@ -138,7 +138,6 @@ public:
|
||||
virtual void visit (TuplePatternItemsMultiple &tuple_items) = 0;
|
||||
virtual void visit (TuplePatternItemsRanged &tuple_items) = 0;
|
||||
virtual void visit (TuplePattern &pattern) = 0;
|
||||
virtual void visit (GroupedPattern &pattern) = 0;
|
||||
virtual void visit (SlicePattern &pattern) = 0;
|
||||
virtual void visit (EmptyStmt &stmt) = 0;
|
||||
virtual void visit (LetStmt &stmt) = 0;
|
||||
@@ -290,7 +289,6 @@ public:
|
||||
virtual void visit (TuplePatternItemsMultiple &) override {}
|
||||
virtual void visit (TuplePatternItemsRanged &) override {}
|
||||
virtual void visit (TuplePattern &) override {}
|
||||
virtual void visit (GroupedPattern &) override {}
|
||||
virtual void visit (SlicePattern &) override {}
|
||||
|
||||
virtual void visit (EmptyStmt &) override {}
|
||||
@@ -470,7 +468,6 @@ public:
|
||||
class HIRPatternVisitor
|
||||
{
|
||||
public:
|
||||
virtual void visit (GroupedPattern &) = 0;
|
||||
virtual void visit (IdentifierPattern &) = 0;
|
||||
virtual void visit (LiteralPattern &) = 0;
|
||||
virtual void visit (PathInExpression &) = 0;
|
||||
|
||||
@@ -386,15 +386,6 @@ TypeCheckPattern::visit (HIR::IdentifierPattern &)
|
||||
infered = parent;
|
||||
}
|
||||
|
||||
void
|
||||
TypeCheckPattern::visit (HIR::GroupedPattern &pattern)
|
||||
{
|
||||
TyTy::BaseType *inner_ty
|
||||
= TypeCheckPattern::Resolve (pattern.get_item ().get (), parent);
|
||||
infered = inner_ty->clone ();
|
||||
infered->set_ref (pattern.get_pattern_mappings ().get_hirid ());
|
||||
}
|
||||
|
||||
void
|
||||
TypeCheckPattern::visit (HIR::QualifiedPathInExpression &)
|
||||
{
|
||||
|
||||
@@ -39,7 +39,6 @@ public:
|
||||
void visit (HIR::LiteralPattern &pattern) override;
|
||||
void visit (HIR::RangePattern &pattern) override;
|
||||
void visit (HIR::IdentifierPattern &pattern) override;
|
||||
void visit (HIR::GroupedPattern &pattern) override;
|
||||
void visit (HIR::QualifiedPathInExpression &pattern) override;
|
||||
void visit (HIR::ReferencePattern &pattern) override;
|
||||
void visit (HIR::SlicePattern &pattern) override;
|
||||
|
||||
Reference in New Issue
Block a user