aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2021-08-31 21:05:18 +0200
committerMark Wielaard <mark@klomp.org>2021-08-31 22:17:31 +0200
commitc998198c669c5a8e63b662c03806b0bd5398bd28 (patch)
treedbaef24c82ae59840b2d3803efa90b8368b812ee /gcc
parent34969c14bed456b8a4cd76d71319b75342825878 (diff)
downloadgcc-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.h1
-rw-r--r--gcc/rust/ast/rust-ast-full-test.cc6
-rw-r--r--gcc/rust/ast/rust-ast-visitor.h1
-rw-r--r--gcc/rust/ast/rust-expr.h30
-rw-r--r--gcc/rust/backend/rust-compile-base.h1
-rw-r--r--gcc/rust/expand/rust-macro-expand.cc17
-rw-r--r--gcc/rust/hir/rust-ast-lower-base.h1
-rw-r--r--gcc/rust/hir/tree/rust-hir-expr.h35
-rw-r--r--gcc/rust/hir/tree/rust-hir-full-decls.h1
-rw-r--r--gcc/rust/hir/tree/rust-hir-full-test.cc6
-rw-r--r--gcc/rust/hir/tree/rust-hir-visitor.h1
-rw-r--r--gcc/rust/lint/rust-lint-marklive-base.h1
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-base.h1
-rw-r--r--gcc/rust/typecheck/rust-hir-const-fold-base.h1
-rw-r--r--gcc/rust/typecheck/rust-hir-type-check-base.h1
-rw-r--r--gcc/rust/typecheck/rust-hir-type-check-util.h1
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 {}