aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2021-08-31 20:48:22 +0200
committerMark Wielaard <mark@klomp.org>2021-08-31 21:51:14 +0200
commit34969c14bed456b8a4cd76d71319b75342825878 (patch)
treebd9bb28d9425588446cb74885aa43c164ce5a262 /gcc
parent82e1061579796adaa39ab34da77b6c8c6ea82539 (diff)
downloadgcc-34969c14bed456b8a4cd76d71319b75342825878.zip
gcc-34969c14bed456b8a4cd76d71319b75342825878.tar.gz
gcc-34969c14bed456b8a4cd76d71319b75342825878.tar.bz2
StructExprTuple doesn't really exist
A StructExprTuple is parsed as a CallExpr. Both (can) start with a PathInExpression followed by zero or more Expressions between brackets. Only, after type checking, when actually generating gcc generic trees is a distinction made between a function call or tuple constructor. Remove the AST and HIR StructExprTuple 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.cc44
-rw-r--r--gcc/rust/ast/rust-ast-visitor.h1
-rw-r--r--gcc/rust/ast/rust-expr.h69
-rw-r--r--gcc/rust/backend/rust-compile-base.h1
-rw-r--r--gcc/rust/expand/rust-macro-expand.cc30
-rw-r--r--gcc/rust/hir/rust-ast-lower-base.h1
-rw-r--r--gcc/rust/hir/tree/rust-hir-expr.h74
-rw-r--r--gcc/rust/hir/tree/rust-hir-full-decls.h1
-rw-r--r--gcc/rust/hir/tree/rust-hir-full-test.cc59
-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, 287 deletions
diff --git a/gcc/rust/ast/rust-ast-full-decls.h b/gcc/rust/ast/rust-ast-full-decls.h
index 7644dfe..205da88 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 StructExprTuple;
class StructExprUnit;
class EnumVariantExpr;
class EnumExprField;
diff --git a/gcc/rust/ast/rust-ast-full-test.cc b/gcc/rust/ast/rust-ast-full-test.cc
index c18d4c4..1a447ae 100644
--- a/gcc/rust/ast/rust-ast-full-test.cc
+++ b/gcc/rust/ast/rust-ast-full-test.cc
@@ -3240,44 +3240,6 @@ StructExpr::as_string () const
}
std::string
-StructExprTuple::as_string () const
-{
- std::string str = StructExpr::as_string ();
-
- if (exprs.empty ())
- {
- str += "()";
- }
- else
- {
- auto i = exprs.begin ();
- auto e = exprs.end ();
-
- // debug - null pointer check
- if (*i == nullptr)
- return "ERROR_MARK_STRING - nullptr struct expr tuple field";
-
- str += '(';
- for (; i != e; i++)
- {
- str += (*i)->as_string ();
- if (e != i + 1)
- str += ", ";
- }
- str += ')';
- }
-
- indent_spaces (enter);
- indent_spaces (enter);
- // inner attributes
- str += append_attributes (inner_attrs, INNER);
- indent_spaces (out);
- indent_spaces (out);
-
- return str;
-}
-
-std::string
StructExprStruct::as_string () const
{
// TODO: doesn't this require data from StructExpr?
@@ -5223,12 +5185,6 @@ StructExprStructBase::accept_vis (ASTVisitor &vis)
}
void
-StructExprTuple::accept_vis (ASTVisitor &vis)
-{
- vis.visit (*this);
-}
-
-void
StructExprUnit::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 e0de54d..30e156f 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 (StructExprTuple &expr) = 0;
virtual void visit (StructExprUnit &expr) = 0;
// virtual void visit(EnumExprField& field) = 0;
virtual void visit (EnumExprFieldIdentifier &field) = 0;
diff --git a/gcc/rust/ast/rust-expr.h b/gcc/rust/ast/rust-expr.h
index 88e45fe..effdb23 100644
--- a/gcc/rust/ast/rust-expr.h
+++ b/gcc/rust/ast/rust-expr.h
@@ -1852,75 +1852,6 @@ protected:
}
};
-// AST node of a tuple struct creator
-class StructExprTuple : public StructExpr
-{
- std::vector<Attribute> inner_attrs;
- std::vector<std::unique_ptr<Expr> > exprs;
-
- Location locus;
-
-public:
- std::string as_string () const override;
-
- const std::vector<Attribute> &get_inner_attrs () const { return inner_attrs; }
- std::vector<Attribute> &get_inner_attrs () { return inner_attrs; }
-
- StructExprTuple (PathInExpression struct_path,
- std::vector<std::unique_ptr<Expr> > tuple_exprs,
- std::vector<Attribute> inner_attribs,
- std::vector<Attribute> outer_attribs, Location locus)
- : StructExpr (std::move (struct_path), std::move (outer_attribs)),
- inner_attrs (std::move (inner_attribs)), exprs (std::move (tuple_exprs)),
- locus (locus)
- {}
-
- // copy constructor with vector clone
- StructExprTuple (StructExprTuple const &other)
- : StructExpr (other), inner_attrs (other.inner_attrs), locus (other.locus)
- {
- exprs.reserve (other.exprs.size ());
- for (const auto &e : other.exprs)
- exprs.push_back (e->clone_expr ());
- }
-
- // overloaded assignment operator with vector clone
- StructExprTuple &operator= (StructExprTuple const &other)
- {
- StructExpr::operator= (other);
- inner_attrs = other.inner_attrs;
- locus = other.locus;
-
- exprs.reserve (other.exprs.size ());
- for (const auto &e : other.exprs)
- exprs.push_back (e->clone_expr ());
-
- return *this;
- }
-
- // move constructors
- StructExprTuple (StructExprTuple &&other) = default;
- StructExprTuple &operator= (StructExprTuple &&other) = default;
-
- Location get_locus () const override final { return locus; }
-
- void accept_vis (ASTVisitor &vis) override;
-
- const std::vector<std::unique_ptr<Expr> > &get_elems () const
- {
- return exprs;
- }
- std::vector<std::unique_ptr<Expr> > &get_elems () { return exprs; }
-
-protected:
- /* Use covariance to implement clone function as returning this object rather
- * than base */
- StructExprTuple *clone_expr_without_block_impl () const override
- {
- return new StructExprTuple (*this);
- }
-};
-
// AST node of a "unit" struct creator (no fields and no braces)
class StructExprUnit : public StructExpr
{
diff --git a/gcc/rust/backend/rust-compile-base.h b/gcc/rust/backend/rust-compile-base.h
index 3daad5f..d7cc009 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::StructExprTuple &expr) {}
virtual void visit (HIR::StructExprUnit &expr) {}
// virtual void visit(EnumExprField& field) {}
virtual void visit (HIR::EnumExprFieldIdentifier &field) {}
diff --git a/gcc/rust/expand/rust-macro-expand.cc b/gcc/rust/expand/rust-macro-expand.cc
index e4855e0..060d41a 100644
--- a/gcc/rust/expand/rust-macro-expand.cc
+++ b/gcc/rust/expand/rust-macro-expand.cc
@@ -939,36 +939,6 @@ public:
"cannot strip expression in this position - outer "
"attributes not allowed");
}
- void visit (AST::StructExprTuple &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 test based on inner attrs - spec says these are inner
- * attributes, not outer attributes of inner expr */
- expander.expand_cfg_attrs (expr.get_inner_attrs ());
- if (expander.fails_cfg_with_expand (expr.get_inner_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");
-
- /* spec says outer attributes are specifically allowed for elements
- * of tuple-style struct expressions, so full stripping possible */
- expand_pointer_allow_strip (expr.get_elems ());
- }
void visit (AST::StructExprUnit &expr) override
{
// initial strip test based on outer attrs
diff --git a/gcc/rust/hir/rust-ast-lower-base.h b/gcc/rust/hir/rust-ast-lower-base.h
index 07489f8..e4303f2 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::StructExprTuple &expr) {}
virtual void visit (AST::StructExprUnit &expr) {}
// virtual void visit(EnumExprField& field) {}
virtual void visit (AST::EnumExprFieldIdentifier &field) {}
diff --git a/gcc/rust/hir/tree/rust-hir-expr.h b/gcc/rust/hir/tree/rust-hir-expr.h
index bb15d4f..d099455 100644
--- a/gcc/rust/hir/tree/rust-hir-expr.h
+++ b/gcc/rust/hir/tree/rust-hir-expr.h
@@ -1578,80 +1578,6 @@ protected:
}
};
-// HIR node of a tuple struct creator
-class StructExprTuple : public StructExpr
-{
- AST::AttrVec inner_attrs;
- std::vector<std::unique_ptr<Expr> > exprs;
-
- Location locus;
-
-public:
- std::string as_string () const override;
-
- const AST::AttrVec &get_inner_attrs () const { return inner_attrs; }
-
- /*inline std::vector<std::unique_ptr<Expr>> get_exprs() const {
- return exprs;
- }*/
-
- StructExprTuple (Analysis::NodeMapping mappings, PathInExpression struct_path,
- std::vector<std::unique_ptr<Expr> > tuple_exprs,
- AST::AttrVec inner_attribs, AST::AttrVec outer_attribs,
- Location locus)
- : StructExpr (std::move (mappings), std::move (struct_path),
- std::move (outer_attribs)),
- inner_attrs (std::move (inner_attribs)), exprs (std::move (tuple_exprs)),
- locus (locus)
- {}
-
- // copy constructor with vector clone
- StructExprTuple (StructExprTuple const &other)
- : StructExpr (other), inner_attrs (other.inner_attrs), locus (other.locus)
- {
- exprs.reserve (other.exprs.size ());
- for (const auto &e : other.exprs)
- exprs.push_back (e->clone_expr ());
- }
-
- // overloaded assignment operator with vector clone
- StructExprTuple &operator= (StructExprTuple const &other)
- {
- StructExpr::operator= (other);
- inner_attrs = other.inner_attrs;
- locus = other.locus;
-
- exprs.reserve (other.exprs.size ());
- for (const auto &e : other.exprs)
- exprs.push_back (e->clone_expr ());
-
- return *this;
- }
-
- // move constructors
- StructExprTuple (StructExprTuple &&other) = default;
- StructExprTuple &operator= (StructExprTuple &&other) = default;
-
- 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 */
- StructExprTuple *clone_expr_impl () const override
- {
- return new StructExprTuple (*this);
- }
-
- /* Use covariance to implement clone function as returning this object rather
- * than base */
- StructExprTuple *clone_expr_without_block_impl () const override
- {
- return new StructExprTuple (*this);
- }
-};
-
// HIR node of a "unit" struct creator (no fields and no braces)
class StructExprUnit : public StructExpr
{
diff --git a/gcc/rust/hir/tree/rust-hir-full-decls.h b/gcc/rust/hir/tree/rust-hir-full-decls.h
index 41ae398..11b8226 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 StructExprTuple;
class StructExprUnit;
class EnumVariantExpr;
class EnumExprField;
diff --git a/gcc/rust/hir/tree/rust-hir-full-test.cc b/gcc/rust/hir/tree/rust-hir-full-test.cc
index ecc282a..67a1935 100644
--- a/gcc/rust/hir/tree/rust-hir-full-test.cc
+++ b/gcc/rust/hir/tree/rust-hir-full-test.cc
@@ -2995,59 +2995,6 @@ StructExpr::as_string () const
}
std::string
-StructExprTuple::as_string () const
-{
- std::string str = StructExpr::as_string ();
-
- if (exprs.empty ())
- {
- str += "()";
- }
- else
- {
- auto i = exprs.begin ();
- auto e = exprs.end ();
-
- // debug - null pointer check
- if (*i == nullptr)
- {
- return "ERROR_MARK_STRING - nullptr struct expr tuple field";
- }
-
- str += '(';
- for (; i != e; i++)
- {
- str += (*i)->as_string ();
- if (e != i + 1)
- str += ", ";
- }
- str += ')';
- }
-
- indent_spaces (enter);
- indent_spaces (enter);
- // inner attributes
- str += "\n" + indent_spaces (stay) + "inner attributes:";
- if (inner_attrs.empty ())
- {
- str += "none";
- }
- else
- {
- /* note that this does not print them with "inner attribute" syntax -
- * just the body */
- for (const auto &attr : inner_attrs)
- {
- str += "\n" + indent_spaces (stay) + attr.as_string ();
- }
- }
- indent_spaces (out);
- indent_spaces (out);
-
- return str;
-}
-
-std::string
StructExprStruct::as_string () const
{
std::string str ("StructExprStruct (or subclass): ");
@@ -3984,12 +3931,6 @@ StructExprStructBase::accept_vis (HIRVisitor &vis)
}
void
-StructExprTuple::accept_vis (HIRVisitor &vis)
-{
- vis.visit (*this);
-}
-
-void
StructExprUnit::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 6372543..dffd0d5 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 (StructExprTuple &expr) = 0;
virtual void visit (StructExprUnit &expr) = 0;
virtual void visit (EnumExprFieldIdentifier &field) = 0;
virtual void visit (EnumExprFieldIdentifierValue &field) = 0;
diff --git a/gcc/rust/lint/rust-lint-marklive-base.h b/gcc/rust/lint/rust-lint-marklive-base.h
index 229643f..0354ad2 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::StructExprTuple &) override {}
virtual void visit (HIR::StructExprUnit &) override {}
virtual void visit (HIR::EnumExprFieldIdentifier &) override {}
diff --git a/gcc/rust/resolve/rust-ast-resolve-base.h b/gcc/rust/resolve/rust-ast-resolve-base.h
index 10e2b1b..42c938d 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::StructExprTuple &) {}
void visit (AST::StructExprUnit &) {}
void visit (AST::EnumExprFieldIdentifier &) {}
void visit (AST::EnumExprFieldIdentifierValue &) {}
diff --git a/gcc/rust/typecheck/rust-hir-const-fold-base.h b/gcc/rust/typecheck/rust-hir-const-fold-base.h
index 1829b85..7a6d6c5 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::StructExprTuple &) override {}
virtual void visit (HIR::StructExprUnit &) override {}
virtual void visit (HIR::EnumExprFieldIdentifier &) override {}
diff --git a/gcc/rust/typecheck/rust-hir-type-check-base.h b/gcc/rust/typecheck/rust-hir-type-check-base.h
index 3050814..162df2d 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::StructExprTuple &) override {}
virtual void visit (HIR::StructExprUnit &) override {}
virtual void visit (HIR::EnumExprFieldIdentifier &) override {}
diff --git a/gcc/rust/typecheck/rust-hir-type-check-util.h b/gcc/rust/typecheck/rust-hir-type-check-util.h
index 8146c6e..a2f1a43 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::StructExprTuple &) override {}
virtual void visit (HIR::StructExprUnit &) override {}
virtual void visit (HIR::EnumExprFieldIdentifier &) override {}