diff options
author | Mark Wielaard <mark@klomp.org> | 2021-08-31 21:05:18 +0200 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2021-08-31 22:17:31 +0200 |
commit | c998198c669c5a8e63b662c03806b0bd5398bd28 (patch) | |
tree | dbaef24c82ae59840b2d3803efa90b8368b812ee /gcc | |
parent | 34969c14bed456b8a4cd76d71319b75342825878 (diff) | |
download | gcc-c998198c669c5a8e63b662c03806b0bd5398bd28.zip gcc-c998198c669c5a8e63b662c03806b0bd5398bd28.tar.gz gcc-c998198c669c5a8e63b662c03806b0bd5398bd28.tar.bz2 |
StructExprUnit doesn't really exist
A StructExprUnit is parsed as an IdentifierExpr. An IdentifierExpr,
which is what we call a single segment PathInExpression.
After type checking, when generating gcc generic trees, if the
IdentifierExpr is a type reference (which must be a unit struct), then
a unit expression is generated.
Remove the AST and HIR StructExprUnit classes which are never used.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/ast/rust-ast-full-decls.h | 1 | ||||
-rw-r--r-- | gcc/rust/ast/rust-ast-full-test.cc | 6 | ||||
-rw-r--r-- | gcc/rust/ast/rust-ast-visitor.h | 1 | ||||
-rw-r--r-- | gcc/rust/ast/rust-expr.h | 30 | ||||
-rw-r--r-- | gcc/rust/backend/rust-compile-base.h | 1 | ||||
-rw-r--r-- | gcc/rust/expand/rust-macro-expand.cc | 17 | ||||
-rw-r--r-- | gcc/rust/hir/rust-ast-lower-base.h | 1 | ||||
-rw-r--r-- | gcc/rust/hir/tree/rust-hir-expr.h | 35 | ||||
-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 | 6 | ||||
-rw-r--r-- | gcc/rust/hir/tree/rust-hir-visitor.h | 1 | ||||
-rw-r--r-- | gcc/rust/lint/rust-lint-marklive-base.h | 1 | ||||
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-base.h | 1 | ||||
-rw-r--r-- | gcc/rust/typecheck/rust-hir-const-fold-base.h | 1 | ||||
-rw-r--r-- | gcc/rust/typecheck/rust-hir-type-check-base.h | 1 | ||||
-rw-r--r-- | gcc/rust/typecheck/rust-hir-type-check-util.h | 1 |
16 files changed, 0 insertions, 105 deletions
diff --git a/gcc/rust/ast/rust-ast-full-decls.h b/gcc/rust/ast/rust-ast-full-decls.h index 205da88..09f879c 100644 --- a/gcc/rust/ast/rust-ast-full-decls.h +++ b/gcc/rust/ast/rust-ast-full-decls.h @@ -109,7 +109,6 @@ class StructExprFieldIdentifierValue; class StructExprFieldIndexValue; class StructExprStructFields; class StructExprStructBase; -class StructExprUnit; class EnumVariantExpr; class EnumExprField; class EnumExprFieldIdentifier; diff --git a/gcc/rust/ast/rust-ast-full-test.cc b/gcc/rust/ast/rust-ast-full-test.cc index 1a447ae..8ffc1b2 100644 --- a/gcc/rust/ast/rust-ast-full-test.cc +++ b/gcc/rust/ast/rust-ast-full-test.cc @@ -5185,12 +5185,6 @@ StructExprStructBase::accept_vis (ASTVisitor &vis) } void -StructExprUnit::accept_vis (ASTVisitor &vis) -{ - vis.visit (*this); -} - -void EnumExprFieldIdentifier::accept_vis (ASTVisitor &vis) { vis.visit (*this); diff --git a/gcc/rust/ast/rust-ast-visitor.h b/gcc/rust/ast/rust-ast-visitor.h index 30e156f..ffd1d2d 100644 --- a/gcc/rust/ast/rust-ast-visitor.h +++ b/gcc/rust/ast/rust-ast-visitor.h @@ -93,7 +93,6 @@ public: virtual void visit (StructExprFieldIndexValue &field) = 0; virtual void visit (StructExprStructFields &expr) = 0; virtual void visit (StructExprStructBase &expr) = 0; - virtual void visit (StructExprUnit &expr) = 0; // virtual void visit(EnumExprField& field) = 0; virtual void visit (EnumExprFieldIdentifier &field) = 0; virtual void visit (EnumExprFieldIdentifierValue &field) = 0; diff --git a/gcc/rust/ast/rust-expr.h b/gcc/rust/ast/rust-expr.h index effdb23..a6882c7 100644 --- a/gcc/rust/ast/rust-expr.h +++ b/gcc/rust/ast/rust-expr.h @@ -1852,36 +1852,6 @@ protected: } }; -// AST node of a "unit" struct creator (no fields and no braces) -class StructExprUnit : public StructExpr -{ - Location locus; - -public: - std::string as_string () const override - { - return get_struct_name ().as_string (); - } - - StructExprUnit (PathInExpression struct_path, - std::vector<Attribute> outer_attribs, Location locus) - : StructExpr (std::move (struct_path), std::move (outer_attribs)), - locus (locus) - {} - - Location get_locus () const override final { return locus; } - - void accept_vis (ASTVisitor &vis) override; - -protected: - /* Use covariance to implement clone function as returning this object rather - * than base */ - StructExprUnit *clone_expr_without_block_impl () const override - { - return new StructExprUnit (*this); - } -}; - // aka EnumerationVariantExpr // Base AST node representing creation of an enum variant instance - abstract class EnumVariantExpr : public ExprWithoutBlock diff --git a/gcc/rust/backend/rust-compile-base.h b/gcc/rust/backend/rust-compile-base.h index d7cc009..2ce7369 100644 --- a/gcc/rust/backend/rust-compile-base.h +++ b/gcc/rust/backend/rust-compile-base.h @@ -72,7 +72,6 @@ public: virtual void visit (HIR::StructExprFieldIndexValue &field) {} virtual void visit (HIR::StructExprStructFields &expr) {} virtual void visit (HIR::StructExprStructBase &expr) {} - virtual void visit (HIR::StructExprUnit &expr) {} // virtual void visit(EnumExprField& field) {} virtual void visit (HIR::EnumExprFieldIdentifier &field) {} virtual void visit (HIR::EnumExprFieldIdentifierValue &field) {} diff --git a/gcc/rust/expand/rust-macro-expand.cc b/gcc/rust/expand/rust-macro-expand.cc index 060d41a..65b2ea0 100644 --- a/gcc/rust/expand/rust-macro-expand.cc +++ b/gcc/rust/expand/rust-macro-expand.cc @@ -939,23 +939,6 @@ public: "cannot strip expression in this position - outer " "attributes not allowed"); } - void visit (AST::StructExprUnit &expr) override - { - // initial strip test based on outer attrs - expander.expand_cfg_attrs (expr.get_outer_attrs ()); - if (expander.fails_cfg_with_expand (expr.get_outer_attrs ())) - { - expr.mark_for_strip (); - return; - } - - // strip sub-exprs of path - auto &struct_name = expr.get_struct_name (); - visit (struct_name); - if (struct_name.is_marked_for_strip ()) - rust_error_at (struct_name.get_locus (), - "cannot strip path in this position"); - } void visit (AST::EnumExprFieldIdentifier &) override { // as no attrs (at moment, at least), no stripping possible diff --git a/gcc/rust/hir/rust-ast-lower-base.h b/gcc/rust/hir/rust-ast-lower-base.h index e4303f2..8debf39 100644 --- a/gcc/rust/hir/rust-ast-lower-base.h +++ b/gcc/rust/hir/rust-ast-lower-base.h @@ -96,7 +96,6 @@ public: virtual void visit (AST::StructExprFieldIndexValue &field) {} virtual void visit (AST::StructExprStructFields &expr) {} virtual void visit (AST::StructExprStructBase &expr) {} - virtual void visit (AST::StructExprUnit &expr) {} // virtual void visit(EnumExprField& field) {} virtual void visit (AST::EnumExprFieldIdentifier &field) {} virtual void visit (AST::EnumExprFieldIdentifierValue &field) {} diff --git a/gcc/rust/hir/tree/rust-hir-expr.h b/gcc/rust/hir/tree/rust-hir-expr.h index d099455..b8cb754 100644 --- a/gcc/rust/hir/tree/rust-hir-expr.h +++ b/gcc/rust/hir/tree/rust-hir-expr.h @@ -1578,41 +1578,6 @@ protected: } }; -// HIR node of a "unit" struct creator (no fields and no braces) -class StructExprUnit : public StructExpr -{ - Location locus; - -public: - std::string as_string () const override { return struct_name.as_string (); } - - StructExprUnit (Analysis::NodeMapping mappings, PathInExpression struct_path, - AST::AttrVec outer_attribs, Location locus) - : StructExpr (std::move (mappings), std::move (struct_path), - std::move (outer_attribs)), - locus (locus) - {} - - Location get_locus () const override final { return locus; } - - void accept_vis (HIRVisitor &vis) override; - -protected: - /* Use covariance to implement clone function as returning this object rather - * than base */ - StructExprUnit *clone_expr_impl () const override - { - return new StructExprUnit (*this); - } - - /* Use covariance to implement clone function as returning this object rather - * than base */ - StructExprUnit *clone_expr_without_block_impl () const override - { - return new StructExprUnit (*this); - } -}; - // aka EnumerationVariantExpr // Base HIR node representing creation of an enum variant instance - abstract class EnumVariantExpr : public ExprWithoutBlock diff --git a/gcc/rust/hir/tree/rust-hir-full-decls.h b/gcc/rust/hir/tree/rust-hir-full-decls.h index 11b8226..b72678a 100644 --- a/gcc/rust/hir/tree/rust-hir-full-decls.h +++ b/gcc/rust/hir/tree/rust-hir-full-decls.h @@ -90,7 +90,6 @@ class StructExprFieldIdentifierValue; class StructExprFieldIndexValue; class StructExprStructFields; class StructExprStructBase; -class StructExprUnit; class EnumVariantExpr; class EnumExprField; class EnumExprFieldIdentifier; diff --git a/gcc/rust/hir/tree/rust-hir-full-test.cc b/gcc/rust/hir/tree/rust-hir-full-test.cc index 67a1935..eda5eaf 100644 --- a/gcc/rust/hir/tree/rust-hir-full-test.cc +++ b/gcc/rust/hir/tree/rust-hir-full-test.cc @@ -3931,12 +3931,6 @@ StructExprStructBase::accept_vis (HIRVisitor &vis) } void -StructExprUnit::accept_vis (HIRVisitor &vis) -{ - vis.visit (*this); -} - -void EnumExprFieldIdentifier::accept_vis (HIRVisitor &vis) { vis.visit (*this); diff --git a/gcc/rust/hir/tree/rust-hir-visitor.h b/gcc/rust/hir/tree/rust-hir-visitor.h index dffd0d5..be9bd37 100644 --- a/gcc/rust/hir/tree/rust-hir-visitor.h +++ b/gcc/rust/hir/tree/rust-hir-visitor.h @@ -60,7 +60,6 @@ public: virtual void visit (StructExprFieldIndexValue &field) = 0; virtual void visit (StructExprStructFields &expr) = 0; virtual void visit (StructExprStructBase &expr) = 0; - virtual void visit (StructExprUnit &expr) = 0; virtual void visit (EnumExprFieldIdentifier &field) = 0; virtual void visit (EnumExprFieldIdentifierValue &field) = 0; virtual void visit (EnumExprFieldIndexValue &field) = 0; diff --git a/gcc/rust/lint/rust-lint-marklive-base.h b/gcc/rust/lint/rust-lint-marklive-base.h index 0354ad2..86dab26 100644 --- a/gcc/rust/lint/rust-lint-marklive-base.h +++ b/gcc/rust/lint/rust-lint-marklive-base.h @@ -70,7 +70,6 @@ public: virtual void visit (HIR::StructExprFieldIndexValue &) override {} virtual void visit (HIR::StructExprStructFields &) override {} virtual void visit (HIR::StructExprStructBase &) override {} - virtual void visit (HIR::StructExprUnit &) override {} virtual void visit (HIR::EnumExprFieldIdentifier &) override {} virtual void visit (HIR::EnumExprFieldIdentifierValue &) override {} diff --git a/gcc/rust/resolve/rust-ast-resolve-base.h b/gcc/rust/resolve/rust-ast-resolve-base.h index 42c938d..a3aeaba 100644 --- a/gcc/rust/resolve/rust-ast-resolve-base.h +++ b/gcc/rust/resolve/rust-ast-resolve-base.h @@ -73,7 +73,6 @@ public: void visit (AST::StructExprFieldIndexValue &) {} void visit (AST::StructExprStructFields &) {} void visit (AST::StructExprStructBase &) {} - void visit (AST::StructExprUnit &) {} void visit (AST::EnumExprFieldIdentifier &) {} void visit (AST::EnumExprFieldIdentifierValue &) {} void visit (AST::EnumExprFieldIndexValue &) {} diff --git a/gcc/rust/typecheck/rust-hir-const-fold-base.h b/gcc/rust/typecheck/rust-hir-const-fold-base.h index 7a6d6c5..a8f2423 100644 --- a/gcc/rust/typecheck/rust-hir-const-fold-base.h +++ b/gcc/rust/typecheck/rust-hir-const-fold-base.h @@ -73,7 +73,6 @@ public: virtual void visit (HIR::StructExprFieldIndexValue &) override {} virtual void visit (HIR::StructExprStructFields &) override {} virtual void visit (HIR::StructExprStructBase &) override {} - virtual void visit (HIR::StructExprUnit &) override {} virtual void visit (HIR::EnumExprFieldIdentifier &) override {} virtual void visit (HIR::EnumExprFieldIdentifierValue &) override {} diff --git a/gcc/rust/typecheck/rust-hir-type-check-base.h b/gcc/rust/typecheck/rust-hir-type-check-base.h index 162df2d..178d78d 100644 --- a/gcc/rust/typecheck/rust-hir-type-check-base.h +++ b/gcc/rust/typecheck/rust-hir-type-check-base.h @@ -74,7 +74,6 @@ public: virtual void visit (HIR::StructExprFieldIndexValue &) override {} virtual void visit (HIR::StructExprStructFields &) override {} virtual void visit (HIR::StructExprStructBase &) override {} - virtual void visit (HIR::StructExprUnit &) override {} virtual void visit (HIR::EnumExprFieldIdentifier &) override {} virtual void visit (HIR::EnumExprFieldIdentifierValue &) override {} diff --git a/gcc/rust/typecheck/rust-hir-type-check-util.h b/gcc/rust/typecheck/rust-hir-type-check-util.h index a2f1a43..e9f2ff4 100644 --- a/gcc/rust/typecheck/rust-hir-type-check-util.h +++ b/gcc/rust/typecheck/rust-hir-type-check-util.h @@ -68,7 +68,6 @@ public: virtual void visit (HIR::StructExprFieldIndexValue &) override {} virtual void visit (HIR::StructExprStructFields &) override {} virtual void visit (HIR::StructExprStructBase &) override {} - virtual void visit (HIR::StructExprUnit &) override {} virtual void visit (HIR::EnumExprFieldIdentifier &) override {} virtual void visit (HIR::EnumExprFieldIdentifierValue &) override {} |