aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2023-02-02 18:29:46 +0000
committerGitHub <noreply@github.com>2023-02-02 18:29:46 +0000
commit776c4247de465dd93438a738fff48d5b2076ec11 (patch)
tree8469f6f2a66b4c06ac5767c3f1866d43b04c5ee0 /gcc
parenta9422b51c1355f1414a6418e6a5ae1abdd9b9f9b (diff)
parent8437757f77c8a13ddd7e47e11a8d33a1dccc1ccd (diff)
downloadgcc-776c4247de465dd93438a738fff48d5b2076ec11.zip
gcc-776c4247de465dd93438a738fff48d5b2076ec11.tar.gz
gcc-776c4247de465dd93438a738fff48d5b2076ec11.tar.bz2
Merge #1783
1783: Remove HIR::GroupedPattern r=philberty a=powerboat9 Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com> Removes HIR::GroupedPattern and lowers AST::GroupedPattern to its inner pattern directly. Addresses https://github.com/Rust-GCC/gccrs/pull/1771#pullrequestreview-1271272084 Co-authored-by: Owen Avery <powerboat9.gamer@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/backend/rust-compile-fnparam.h1
-rw-r--r--gcc/rust/backend/rust-compile-pattern.cc12
-rw-r--r--gcc/rust/backend/rust-compile-pattern.h8
-rw-r--r--gcc/rust/backend/rust-compile-resolve-path.h1
-rw-r--r--gcc/rust/backend/rust-compile-var-decl.h1
-rw-r--r--gcc/rust/checks/errors/rust-const-checker.cc4
-rw-r--r--gcc/rust/checks/errors/rust-const-checker.h1
-rw-r--r--gcc/rust/checks/errors/rust-unsafe-checker.cc4
-rw-r--r--gcc/rust/checks/errors/rust-unsafe-checker.h1
-rw-r--r--gcc/rust/hir/rust-ast-lower-pattern.cc12
-rw-r--r--gcc/rust/hir/rust-hir-dump.cc3
-rw-r--r--gcc/rust/hir/rust-hir-dump.h1
-rw-r--r--gcc/rust/hir/tree/rust-hir-full-decls.h1
-rw-r--r--gcc/rust/hir/tree/rust-hir-full-test.cc12
-rw-r--r--gcc/rust/hir/tree/rust-hir-pattern.h69
-rw-r--r--gcc/rust/hir/tree/rust-hir-visitor.h3
-rw-r--r--gcc/rust/typecheck/rust-hir-type-check-pattern.cc9
-rw-r--r--gcc/rust/typecheck/rust-hir-type-check-pattern.h1
18 files changed, 1 insertions, 143 deletions
diff --git a/gcc/rust/backend/rust-compile-fnparam.h b/gcc/rust/backend/rust-compile-fnparam.h
index 0dbbd99..ac43669 100644
--- a/gcc/rust/backend/rust-compile-fnparam.h
+++ b/gcc/rust/backend/rust-compile-fnparam.h
@@ -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 {}
diff --git a/gcc/rust/backend/rust-compile-pattern.cc b/gcc/rust/backend/rust-compile-pattern.cc
index ba8374a..4c45a53 100644
--- a/gcc/rust/backend/rust-compile-pattern.cc
+++ b/gcc/rust/backend/rust-compile-pattern.cc
@@ -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
@@ -336,12 +330,6 @@ CompilePatternBindings::visit (HIR::StructPattern &pattern)
}
void
-CompilePatternBindings::visit (HIR::GroupedPattern &pattern)
-{
- pattern.get_item ()->accept_vis (*this);
-}
-
-void
CompilePatternLet::visit (HIR::IdentifierPattern &pattern)
{
Bvariable *var = nullptr;
diff --git a/gcc/rust/backend/rust-compile-pattern.h b/gcc/rust/backend/rust-compile-pattern.h
index 5272137..fdaa519 100644
--- a/gcc/rust/backend/rust-compile-pattern.h
+++ b/gcc/rust/backend/rust-compile-pattern.h
@@ -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 (),
diff --git a/gcc/rust/backend/rust-compile-resolve-path.h b/gcc/rust/backend/rust-compile-resolve-path.h
index f0360bd..578934c 100644
--- a/gcc/rust/backend/rust-compile-resolve-path.h
+++ b/gcc/rust/backend/rust-compile-resolve-path.h
@@ -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 {}
diff --git a/gcc/rust/backend/rust-compile-var-decl.h b/gcc/rust/backend/rust-compile-var-decl.h
index a1dee2d..131748b 100644
--- a/gcc/rust/backend/rust-compile-var-decl.h
+++ b/gcc/rust/backend/rust-compile-var-decl.h
@@ -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 {}
diff --git a/gcc/rust/checks/errors/rust-const-checker.cc b/gcc/rust/checks/errors/rust-const-checker.cc
index 5f20437..2e07c91 100644
--- a/gcc/rust/checks/errors/rust-const-checker.cc
+++ b/gcc/rust/checks/errors/rust-const-checker.cc
@@ -835,10 +835,6 @@ ConstChecker::visit (TuplePattern &)
{}
void
-ConstChecker::visit (GroupedPattern &)
-{}
-
-void
ConstChecker::visit (SlicePattern &)
{}
diff --git a/gcc/rust/checks/errors/rust-const-checker.h b/gcc/rust/checks/errors/rust-const-checker.h
index f0175df..8dadeb2 100644
--- a/gcc/rust/checks/errors/rust-const-checker.h
+++ b/gcc/rust/checks/errors/rust-const-checker.h
@@ -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;
diff --git a/gcc/rust/checks/errors/rust-unsafe-checker.cc b/gcc/rust/checks/errors/rust-unsafe-checker.cc
index f682430..44c6090 100644
--- a/gcc/rust/checks/errors/rust-unsafe-checker.cc
+++ b/gcc/rust/checks/errors/rust-unsafe-checker.cc
@@ -902,10 +902,6 @@ UnsafeChecker::visit (TuplePattern &)
{}
void
-UnsafeChecker::visit (GroupedPattern &)
-{}
-
-void
UnsafeChecker::visit (SlicePattern &)
{}
diff --git a/gcc/rust/checks/errors/rust-unsafe-checker.h b/gcc/rust/checks/errors/rust-unsafe-checker.h
index 540e5c3..2acb16a 100644
--- a/gcc/rust/checks/errors/rust-unsafe-checker.h
+++ b/gcc/rust/checks/errors/rust-unsafe-checker.h
@@ -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;
diff --git a/gcc/rust/hir/rust-ast-lower-pattern.cc b/gcc/rust/hir/rust-ast-lower-pattern.cc
index d13af46..237fa2e 100644
--- a/gcc/rust/hir/rust-ast-lower-pattern.cc
+++ b/gcc/rust/hir/rust-ast-lower-pattern.cc
@@ -246,17 +246,7 @@ ASTLoweringPattern::visit (AST::RangePattern &pattern)
void
ASTLoweringPattern::visit (AST::GroupedPattern &pattern)
{
- auto crate_num = mappings->get_current_crate ();
- Analysis::NodeMapping mapping (crate_num, pattern.get_node_id (),
- mappings->get_next_hir_id (crate_num),
- UNKNOWN_LOCAL_DEFID);
-
- HIR::Pattern *inner
- = ASTLoweringPattern::translate (pattern.get_pattern_in_parens ().get ());
-
- translated
- = new HIR::GroupedPattern (mapping, std::unique_ptr<HIR::Pattern> (inner),
- pattern.get_locus ());
+ pattern.get_pattern_in_parens ()->accept_vis (*this);
}
} // namespace HIR
diff --git a/gcc/rust/hir/rust-hir-dump.cc b/gcc/rust/hir/rust-hir-dump.cc
index 01d7132..99e1ebb 100644
--- a/gcc/rust/hir/rust-hir-dump.cc
+++ b/gcc/rust/hir/rust-hir-dump.cc
@@ -457,9 +457,6 @@ void
Dump::visit (TuplePattern &)
{}
void
-Dump::visit (GroupedPattern &)
-{}
-void
Dump::visit (SlicePattern &)
{}
diff --git a/gcc/rust/hir/rust-hir-dump.h b/gcc/rust/hir/rust-hir-dump.h
index 1953efe..15b0c8e 100644
--- a/gcc/rust/hir/rust-hir-dump.h
+++ b/gcc/rust/hir/rust-hir-dump.h
@@ -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;
diff --git a/gcc/rust/hir/tree/rust-hir-full-decls.h b/gcc/rust/hir/tree/rust-hir-full-decls.h
index 761526b..8f4bcfb 100644
--- a/gcc/rust/hir/tree/rust-hir-full-decls.h
+++ b/gcc/rust/hir/tree/rust-hir-full-decls.h
@@ -206,7 +206,6 @@ class TuplePatternItems;
class TuplePatternItemsMultiple;
class TuplePatternItemsRanged;
class TuplePattern;
-class GroupedPattern;
class SlicePattern;
// rust-type.h
diff --git a/gcc/rust/hir/tree/rust-hir-full-test.cc b/gcc/rust/hir/tree/rust-hir-full-test.cc
index a36e0f3..d02188a 100644
--- a/gcc/rust/hir/tree/rust-hir-full-test.cc
+++ b/gcc/rust/hir/tree/rust-hir-full-test.cc
@@ -4477,12 +4477,6 @@ TuplePattern::accept_vis (HIRFullVisitor &vis)
}
void
-GroupedPattern::accept_vis (HIRFullVisitor &vis)
-{
- vis.visit (*this);
-}
-
-void
SlicePattern::accept_vis (HIRFullVisitor &vis)
{
vis.visit (*this);
@@ -4609,12 +4603,6 @@ EmptyStmt::accept_vis (HIRStmtVisitor &vis)
}
void
-GroupedPattern::accept_vis (HIRPatternVisitor &vis)
-{
- vis.visit (*this);
-}
-
-void
WildcardPattern::accept_vis (HIRPatternVisitor &vis)
{
vis.visit (*this);
diff --git a/gcc/rust/hir/tree/rust-hir-pattern.h b/gcc/rust/hir/tree/rust-hir-pattern.h
index d994e37..069d0cb 100644
--- a/gcc/rust/hir/tree/rust-hir-pattern.h
+++ b/gcc/rust/hir/tree/rust-hir-pattern.h
@@ -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
{
diff --git a/gcc/rust/hir/tree/rust-hir-visitor.h b/gcc/rust/hir/tree/rust-hir-visitor.h
index a922792..1055f4d 100644
--- a/gcc/rust/hir/tree/rust-hir-visitor.h
+++ b/gcc/rust/hir/tree/rust-hir-visitor.h
@@ -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;
diff --git a/gcc/rust/typecheck/rust-hir-type-check-pattern.cc b/gcc/rust/typecheck/rust-hir-type-check-pattern.cc
index 2a033ba..6b591c6 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-pattern.cc
+++ b/gcc/rust/typecheck/rust-hir-type-check-pattern.cc
@@ -387,15 +387,6 @@ TypeCheckPattern::visit (HIR::IdentifierPattern &)
}
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 &)
{
// TODO
diff --git a/gcc/rust/typecheck/rust-hir-type-check-pattern.h b/gcc/rust/typecheck/rust-hir-type-check-pattern.h
index 8af1060..ac4f078 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-pattern.h
+++ b/gcc/rust/typecheck/rust-hir-type-check-pattern.h
@@ -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;