diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2023-02-02 18:29:46 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-02 18:29:46 +0000 |
commit | 776c4247de465dd93438a738fff48d5b2076ec11 (patch) | |
tree | 8469f6f2a66b4c06ac5767c3f1866d43b04c5ee0 /gcc | |
parent | a9422b51c1355f1414a6418e6a5ae1abdd9b9f9b (diff) | |
parent | 8437757f77c8a13ddd7e47e11a8d33a1dccc1ccd (diff) | |
download | gcc-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.h | 1 | ||||
-rw-r--r-- | gcc/rust/backend/rust-compile-pattern.cc | 12 | ||||
-rw-r--r-- | gcc/rust/backend/rust-compile-pattern.h | 8 | ||||
-rw-r--r-- | gcc/rust/backend/rust-compile-resolve-path.h | 1 | ||||
-rw-r--r-- | gcc/rust/backend/rust-compile-var-decl.h | 1 | ||||
-rw-r--r-- | gcc/rust/checks/errors/rust-const-checker.cc | 4 | ||||
-rw-r--r-- | gcc/rust/checks/errors/rust-const-checker.h | 1 | ||||
-rw-r--r-- | gcc/rust/checks/errors/rust-unsafe-checker.cc | 4 | ||||
-rw-r--r-- | gcc/rust/checks/errors/rust-unsafe-checker.h | 1 | ||||
-rw-r--r-- | gcc/rust/hir/rust-ast-lower-pattern.cc | 12 | ||||
-rw-r--r-- | gcc/rust/hir/rust-hir-dump.cc | 3 | ||||
-rw-r--r-- | gcc/rust/hir/rust-hir-dump.h | 1 | ||||
-rw-r--r-- | gcc/rust/hir/tree/rust-hir-full-decls.h | 1 | ||||
-rw-r--r-- | gcc/rust/hir/tree/rust-hir-full-test.cc | 12 | ||||
-rw-r--r-- | gcc/rust/hir/tree/rust-hir-pattern.h | 69 | ||||
-rw-r--r-- | gcc/rust/hir/tree/rust-hir-visitor.h | 3 | ||||
-rw-r--r-- | gcc/rust/typecheck/rust-hir-type-check-pattern.cc | 9 | ||||
-rw-r--r-- | gcc/rust/typecheck/rust-hir-type-check-pattern.h | 1 |
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; |