From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1643) id 3329B385840A; Tue, 7 Feb 2023 17:53:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3329B385840A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1675792434; bh=qQTY0/2fG4a8LEQJjdKXqERu40WRR3q9gm5FJIyyxwM=; h=From:To:Subject:Date:From; b=d0KKeTM8mZfMhss1MyJy+oX31iO8clpsZy8mwnCAhVnaB1Si6SnyiP5f3O2CTvOF6 yEGsmNj6tU/0JCqY6XkyV24YWktZ1B2x7Uki1NKkDLL6Mwgvw5S1+yU7UHdnPYq0HM sK9gKd0ypJJXKJD4lNTzb6LvEAYVcmeisOf64L+o= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Thomas Schwinge To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/rust/master] Remove HIR::GroupedPattern X-Act-Checkin: gcc X-Git-Author: Owen Avery X-Git-Refname: refs/heads/devel/rust/master X-Git-Oldrev: a26b897b44732a5ec024008e05a6cc0a06bfabdd X-Git-Newrev: 8437757f77c8a13ddd7e47e11a8d33a1dccc1ccd Message-Id: <20230207175354.3329B385840A@sourceware.org> Date: Tue, 7 Feb 2023 17:53:54 +0000 (GMT) List-Id: https://gcc.gnu.org/g:8437757f77c8a13ddd7e47e11a8d33a1dccc1ccd commit 8437757f77c8a13ddd7e47e11a8d33a1dccc1ccd Author: Owen Avery Date: Mon Jan 30 20:14:34 2023 -0500 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 Diff: --- gcc/rust/backend/rust-compile-fnparam.h | 1 - gcc/rust/backend/rust-compile-pattern.cc | 12 ---- gcc/rust/backend/rust-compile-pattern.h | 8 --- gcc/rust/backend/rust-compile-resolve-path.h | 1 - gcc/rust/backend/rust-compile-var-decl.h | 1 - gcc/rust/checks/errors/rust-const-checker.cc | 4 -- gcc/rust/checks/errors/rust-const-checker.h | 1 - gcc/rust/checks/errors/rust-unsafe-checker.cc | 4 -- gcc/rust/checks/errors/rust-unsafe-checker.h | 1 - gcc/rust/hir/rust-hir-dump.cc | 3 - gcc/rust/hir/rust-hir-dump.h | 1 - gcc/rust/hir/tree/rust-hir-full-decls.h | 1 - gcc/rust/hir/tree/rust-hir-full-test.cc | 12 ---- gcc/rust/hir/tree/rust-hir-pattern.h | 69 ----------------------- gcc/rust/hir/tree/rust-hir-visitor.h | 3 - gcc/rust/typecheck/rust-hir-type-check-pattern.cc | 9 --- gcc/rust/typecheck/rust-hir-type-check-pattern.h | 1 - 17 files changed, 132 deletions(-) diff --git a/gcc/rust/backend/rust-compile-fnparam.h b/gcc/rust/backend/rust-compile-fnparam.h index 0dbbd99ef08..ac4366973dd 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 ba8374a17c5..4c45a5377c0 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 @@ -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) { diff --git a/gcc/rust/backend/rust-compile-pattern.h b/gcc/rust/backend/rust-compile-pattern.h index 5272137662b..fdaa51994f5 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 f0360bdc739..578934cf437 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 a1dee2d770b..131748b2394 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 5f20437b7fc..2e07c91cad6 100644 --- a/gcc/rust/checks/errors/rust-const-checker.cc +++ b/gcc/rust/checks/errors/rust-const-checker.cc @@ -834,10 +834,6 @@ void 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 f0175df940d..8dadeb268f4 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 f68243020b1..44c6090eb3d 100644 --- a/gcc/rust/checks/errors/rust-unsafe-checker.cc +++ b/gcc/rust/checks/errors/rust-unsafe-checker.cc @@ -901,10 +901,6 @@ void 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 540e5c33f6d..2acb16a6a25 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-hir-dump.cc b/gcc/rust/hir/rust-hir-dump.cc index 01d7132ce7e..99e1ebb3e42 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 1953efeffd6..15b0c8e425b 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 761526b4fc9..8f4bcfbc037 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 a36e0f3d68a..d02188a66eb 100644 --- a/gcc/rust/hir/tree/rust-hir-full-test.cc +++ b/gcc/rust/hir/tree/rust-hir-full-test.cc @@ -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) { diff --git a/gcc/rust/hir/tree/rust-hir-pattern.h b/gcc/rust/hir/tree/rust-hir-pattern.h index d994e37c2a2..069d0cb1096 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_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_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 &get_item () { return pattern_in_parens; } - const std::unique_ptr &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 a92279210fd..1055f4dd15b 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 2a033ba5191..6b591c66f5e 100644 --- a/gcc/rust/typecheck/rust-hir-type-check-pattern.cc +++ b/gcc/rust/typecheck/rust-hir-type-check-pattern.cc @@ -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 &) { diff --git a/gcc/rust/typecheck/rust-hir-type-check-pattern.h b/gcc/rust/typecheck/rust-hir-type-check-pattern.h index 8af106033b7..ac4f0783066 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;