From: Mark Wielaard <mark@klomp.org>
To: gcc-rust@gcc.gnu.org
Cc: Mark Wielaard <mark@klomp.org>
Subject: [PATCHv2] Get rid of get_locus_slow
Date: Thu, 26 Aug 2021 21:25:49 +0200 [thread overview]
Message-ID: <20210826192549.123686-1-mark@klomp.org> (raw)
In-Reply-To: <YSfpUMQVLrT9SMzD@wildebeest.org>
In various places there was the following hack:
/* HACK: slow way of getting location from base expression through
virtual methods. */
virtual Location get_locus_slow () const { return Location (); }
The problem with get_locus_slow () is that if a subclass didn't
override it then there was no real location. get_locus_slow was
missing for Module, ExternCrate, UseDeclaration, Function, TypeAlias,
StructStruct, TupleStruct, Enum, Union, ConstantItem, StaticItem,
Trait, ImplBlock, ExternBlock, EmptyStmt, ExprStmtWithoutBlock and
ExprStmtWithBlock. All do have a get_locus () function.
Simply replace the get_locus_slow virtual method with a real virtual
Location get_locus () const = 0 method so we know if something
really doesn't have a location. This was only the case for
MacroRulesDefinition.
---
https://code.wildebeest.org/git/user/mjw/gccrs/commit/?h=no-get-locus-slow
Changes in v2:
- all replaced get_locus_slow -> get_locus methods are now marked
with final override
gcc/rust/ast/rust-ast.h | 35 +-
gcc/rust/ast/rust-expr.h | 109 +++----
gcc/rust/ast/rust-item.h | 42 +--
gcc/rust/ast/rust-macro.h | 5 +-
gcc/rust/ast/rust-path.h | 12 +-
gcc/rust/ast/rust-pattern.h | 26 +-
gcc/rust/ast/rust-stmt.h | 12 +-
gcc/rust/ast/rust-type.h | 43 +--
gcc/rust/backend/rust-compile-expr.h | 4 +-
gcc/rust/backend/rust-compile.cc | 4 +-
gcc/rust/expand/rust-macro-expand.cc | 299 +++++++++---------
gcc/rust/hir/rust-ast-lower-expr.h | 5 +-
gcc/rust/hir/rust-ast-lower-item.h | 2 +-
.../hir/rust-ast-lower-struct-field-expr.h | 3 +-
gcc/rust/hir/rust-ast-lower-type.h | 8 +-
gcc/rust/hir/rust-ast-lower.cc | 4 +-
gcc/rust/hir/tree/rust-hir-expr.h | 89 ++----
gcc/rust/hir/tree/rust-hir-item.h | 30 +-
gcc/rust/hir/tree/rust-hir-path.h | 6 +-
gcc/rust/hir/tree/rust-hir-stmt.h | 8 +-
gcc/rust/hir/tree/rust-hir-type.h | 4 +-
gcc/rust/hir/tree/rust-hir.h | 23 +-
gcc/rust/lint/rust-lint-marklive.cc | 4 +-
gcc/rust/parse/rust-parse-impl.h | 88 +++---
gcc/rust/resolve/rust-ast-resolve-item.h | 12 +-
gcc/rust/resolve/rust-ast-resolve-type.h | 8 +-
gcc/rust/resolve/rust-ast-verify-assignee.h | 2 +-
gcc/rust/typecheck/rust-hir-const-fold.h | 4 +-
gcc/rust/typecheck/rust-hir-type-check-expr.h | 19 +-
gcc/rust/typecheck/rust-hir-type-check-type.h | 2 +-
gcc/rust/typecheck/rust-hir-type-check.cc | 11 +-
gcc/rust/typecheck/rust-tyty.cc | 14 +-
gcc/rust/util/rust-hir-map.cc | 4 +-
33 files changed, 393 insertions(+), 548 deletions(-)
diff --git a/gcc/rust/ast/rust-ast.h b/gcc/rust/ast/rust-ast.h
index e376488de8c..2bfaeb1d364 100644
--- a/gcc/rust/ast/rust-ast.h
+++ b/gcc/rust/ast/rust-ast.h
@@ -816,9 +816,7 @@ public:
virtual void accept_vis (ASTVisitor &vis) = 0;
- /* HACK: slow way of getting location from base expression through virtual
- * methods. */
- virtual Location get_locus_slow () const { return Location (); }
+ virtual Location get_locus () const = 0;
virtual void mark_for_strip () = 0;
virtual bool is_marked_for_strip () const = 0;
@@ -885,9 +883,7 @@ public:
virtual ~Expr () {}
- /* HACK: slow way of getting location from base expression through virtual
- * methods. */
- virtual Location get_locus_slow () const { return Location (); }
+ virtual Location get_locus () const = 0;
// HACK: strictly not needed, but faster than full downcast clone
virtual bool is_expr_without_block () const = 0;
@@ -966,8 +962,7 @@ public:
std::string as_string () const override { return ident; }
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
Identifier get_ident () const { return ident; }
@@ -1026,9 +1021,7 @@ public:
virtual void mark_for_strip () {}
virtual bool is_marked_for_strip () const { return false; }
- /* HACK: slow way of getting location from base expression through virtual
- * methods. */
- virtual Location get_locus_slow () const = 0;
+ virtual Location get_locus () const = 0;
virtual NodeId get_node_id () const { return node_id; }
@@ -1071,7 +1064,7 @@ public:
virtual void mark_for_strip () {}
virtual bool is_marked_for_strip () const { return false; }
- virtual Location get_locus_slow () const = 0;
+ virtual Location get_locus () const = 0;
NodeId get_node_id () const { return node_id; }
@@ -1128,7 +1121,7 @@ public:
NodeId get_node_id () const { return node_id; }
- virtual Location get_locus_slow () const = 0;
+ virtual Location get_locus () const = 0;
protected:
// Clone function implementation as pure virtual method
@@ -1185,9 +1178,7 @@ public:
LifetimeType get_lifetime_type () { return lifetime_type; }
- Location get_locus () const { return locus; }
-
- Location get_locus_slow () const override final { return get_locus (); }
+ Location get_locus () const override final { return locus; }
std::string get_lifetime_name () const { return lifetime_name; }
@@ -1217,7 +1208,7 @@ public:
virtual void accept_vis (ASTVisitor &vis) = 0;
- virtual Location get_locus_slow () const = 0;
+ virtual Location get_locus () const = 0;
NodeId get_node_id () { return node_id; }
@@ -1270,9 +1261,7 @@ public:
void accept_vis (ASTVisitor &vis) override;
- Location get_locus () const { return locus; }
-
- Location get_locus_slow () const override final { return get_locus (); }
+ Location get_locus () const override final { return locus; }
protected:
/* Use covariance to implement clone function as returning this object rather
@@ -1342,7 +1331,7 @@ public:
virtual void mark_for_strip () = 0;
virtual bool is_marked_for_strip () const = 0;
- virtual Location get_locus_slow () const = 0;
+ virtual Location get_locus () const = 0;
};
// Abstract base class for items used in a trait impl
@@ -1517,9 +1506,7 @@ public:
const std::vector<Attribute> &get_outer_attrs () const { return outer_attrs; }
std::vector<Attribute> &get_outer_attrs () { return outer_attrs; }
- Location get_locus () const { return locus; }
-
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
protected:
MacroInvocationSemi *clone_macro_invocation_semi_impl () const
diff --git a/gcc/rust/ast/rust-expr.h b/gcc/rust/ast/rust-expr.h
index 4bb35570676..88e45fef330 100644
--- a/gcc/rust/ast/rust-expr.h
+++ b/gcc/rust/ast/rust-expr.h
@@ -65,8 +65,7 @@ public:
return std::unique_ptr<LiteralExpr> (clone_literal_expr_impl ());
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
Literal get_literal () const { return literal; }
@@ -243,8 +242,7 @@ protected:
OperatorExpr &operator= (OperatorExpr &&other) = default;
public:
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
// Invalid if expr is null, so base stripping on that.
void mark_for_strip () override { main_or_left_expr = nullptr; }
@@ -895,8 +893,7 @@ public:
GroupedExpr (GroupedExpr &&other) = default;
GroupedExpr &operator= (GroupedExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1139,8 +1136,7 @@ public:
ArrayExpr (ArrayExpr &&other) = default;
ArrayExpr &operator= (ArrayExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1223,8 +1219,7 @@ public:
ArrayIndexExpr (ArrayIndexExpr &&other) = default;
ArrayIndexExpr &operator= (ArrayIndexExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1337,8 +1332,7 @@ public:
/* Note: syntactically, can disambiguate single-element tuple from parens with
* comma, i.e. (0,) rather than (0) */
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1422,8 +1416,7 @@ public:
TupleIndexExpr (TupleIndexExpr &&other) = default;
TupleIndexExpr &operator= (TupleIndexExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1512,8 +1505,7 @@ public:
inner_attrs (std::move (inner_attribs)), locus (locus)
{}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1600,7 +1592,7 @@ public:
virtual void accept_vis (ASTVisitor &vis) = 0;
- virtual Location get_locus_slow () const = 0;
+ virtual Location get_locus () const = 0;
NodeId get_node_id () const { return node_id; }
@@ -1628,8 +1620,7 @@ public:
std::string as_string () const override { return field_name; }
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1703,8 +1694,7 @@ public:
std::string get_field_name () const { return field_name; }
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
protected:
/* Use covariance to implement clone function as returning this object rather
@@ -1734,8 +1724,7 @@ public:
TupleIndex get_index () const { return index; }
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
protected:
/* Use covariance to implement clone function as returning this object rather
@@ -1913,8 +1902,7 @@ public:
StructExprTuple (StructExprTuple &&other) = default;
StructExprTuple &operator= (StructExprTuple &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1950,8 +1938,7 @@ public:
locus (locus)
{}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -2022,7 +2009,7 @@ public:
virtual void accept_vis (ASTVisitor &vis) = 0;
- virtual Location get_locus_slow () const = 0;
+ virtual Location get_locus () const = 0;
protected:
// Clone function implementation as pure virtual method
@@ -2044,8 +2031,7 @@ public:
std::string as_string () const override { return field_name; }
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
protected:
/* Use covariance to implement clone function as returning this object rather
@@ -2113,8 +2099,7 @@ public:
void accept_vis (ASTVisitor &vis) override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
protected:
/* Use covariance to implement clone function as returning this object rather
@@ -2144,8 +2129,7 @@ public:
void accept_vis (ASTVisitor &vis) override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
protected:
/* Use covariance to implement clone function as returning this object rather
@@ -2199,8 +2183,7 @@ public:
EnumExprStruct (EnumExprStruct &&other) = default;
EnumExprStruct &operator= (EnumExprStruct &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -2263,8 +2246,7 @@ public:
EnumExprTuple (EnumExprTuple &&other) = default;
EnumExprTuple &operator= (EnumExprTuple &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -2302,8 +2284,7 @@ public:
locus (locus)
{}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -2381,8 +2362,7 @@ public:
// Returns whether function call has parameters.
bool has_params () const { return !params.empty (); }
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -2491,8 +2471,7 @@ public:
MethodCallExpr (MethodCallExpr &&other) = default;
MethodCallExpr &operator= (MethodCallExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -2594,8 +2573,7 @@ public:
FieldAccessExpr (FieldAccessExpr &&other) = default;
FieldAccessExpr &operator= (FieldAccessExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -2733,8 +2711,7 @@ protected:
public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
// TODO: this mutable getter seems really dodgy. Think up better way.
const std::vector<ClosureParam> &get_params () const { return params; }
@@ -2898,8 +2875,7 @@ public:
return std::unique_ptr<BlockExpr> (clone_block_expr_impl ());
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -3075,8 +3051,7 @@ public:
locus (locus)
{}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -3165,8 +3140,7 @@ public:
BreakExpr (BreakExpr &&other) = default;
BreakExpr &operator= (BreakExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -3210,8 +3184,7 @@ protected:
RangeExpr (Location locus) : locus (locus) {}
public:
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
// should never be called - error if called
void set_outer_attrs (std::vector<Attribute> /* new_attrs */) override
@@ -3657,8 +3630,7 @@ public:
ReturnExpr (ReturnExpr &&other) = default;
ReturnExpr &operator= (ReturnExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -3740,8 +3712,7 @@ public:
UnsafeBlockExpr (UnsafeBlockExpr &&other) = default;
UnsafeBlockExpr &operator= (UnsafeBlockExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -3862,8 +3833,7 @@ public:
LoopLabel &get_loop_label () { return loop_label; }
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
// Invalid if loop block is null, so base stripping on that.
void mark_for_strip () override { loop_block = nullptr; }
@@ -4187,8 +4157,7 @@ public:
* vector of else ifs - i.e. not like a switch statement. TODO - is this a
* better approach? or does it not parse correctly and have downsides? */
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -4430,8 +4399,7 @@ public:
return std::unique_ptr<IfLetExpr> (clone_if_let_expr_impl ());
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -5049,8 +5017,7 @@ public:
MatchExpr (MatchExpr &&other) = default;
MatchExpr &operator= (MatchExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -5136,8 +5103,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -5218,8 +5184,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
diff --git a/gcc/rust/ast/rust-item.h b/gcc/rust/ast/rust-item.h
index b996e173d6c..dcfc3d1d6b4 100644
--- a/gcc/rust/ast/rust-item.h
+++ b/gcc/rust/ast/rust-item.h
@@ -130,9 +130,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
-
- Location get_locus_slow () const override final { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -889,9 +887,7 @@ public:
NodeId get_node_id () const { return node_id; }
- Location get_locus () const { return locus; }
-
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
protected:
/* Use covariance to implement clone function as returning this object
@@ -1080,7 +1076,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
// Invalid if name is empty, so base stripping on that.
void mark_for_strip () override { module_name = ""; }
@@ -1127,7 +1123,7 @@ public:
as_clause_name (std::move (as_clause_name)), locus (locus)
{}
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1399,7 +1395,7 @@ public:
UseDeclaration (UseDeclaration &&other) = default;
UseDeclaration &operator= (UseDeclaration &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1536,9 +1532,7 @@ public:
Function (Function &&other) = default;
Function &operator= (Function &&other) = default;
- Location get_locus () const { return locus; }
-
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1687,7 +1681,7 @@ public:
TypeAlias (TypeAlias &&other) = default;
TypeAlias &operator= (TypeAlias &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1760,9 +1754,7 @@ public:
// Returns whether struct has a where clause.
bool has_where_clause () const { return !where_clause.is_empty (); }
- Location get_locus () const { return locus; }
-
- Location get_locus_slow () const final { return get_locus (); };
+ Location get_locus () const override final { return locus; }
// Invalid if name is empty, so base stripping on that.
void mark_for_strip () override { struct_name = ""; }
@@ -2378,7 +2370,7 @@ public:
Enum (Enum &&other) = default;
Enum &operator= (Enum &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -2482,7 +2474,7 @@ public:
Union (Union &&other) = default;
Union &operator= (Union &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -2592,9 +2584,7 @@ public:
* as identifier) constant. */
bool is_unnamed () const { return identifier == "_"; }
- Location get_locus () const { return locus; }
-
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -2706,7 +2696,7 @@ public:
StaticItem (StaticItem &&other) = default;
StaticItem &operator= (StaticItem &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -3497,7 +3487,7 @@ public:
Trait (Trait &&other) = default;
Trait &operator= (Trait &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -3585,7 +3575,7 @@ public:
// Returns whether impl has inner attributes.
bool has_inner_attrs () const { return !inner_attrs.empty (); }
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
// Invalid if trait type is null, so base stripping on that.
void mark_for_strip () override { trait_type = nullptr; }
@@ -3861,7 +3851,7 @@ public:
virtual std::string as_string () const;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
virtual void accept_vis (ASTVisitor &vis) = 0;
@@ -4350,7 +4340,7 @@ public:
ExternBlock (ExternBlock &&other) = default;
ExternBlock &operator= (ExternBlock &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
diff --git a/gcc/rust/ast/rust-macro.h b/gcc/rust/ast/rust-macro.h
index 51220e47003..0fb16d61fe2 100644
--- a/gcc/rust/ast/rust-macro.h
+++ b/gcc/rust/ast/rust-macro.h
@@ -345,6 +345,8 @@ public:
std::vector<MacroRule> &get_macro_rules () { return rules; }
const std::vector<MacroRule> &get_macro_rules () const { return rules; }
+ Location get_locus () const override final { return locus; }
+
protected:
/* Use covariance to implement clone function as returning this object rather
* than base */
@@ -373,8 +375,7 @@ public:
invoc_data (std::move (invoc_data)), locus (locus)
{}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
diff --git a/gcc/rust/ast/rust-path.h b/gcc/rust/ast/rust-path.h
index 74ea79528af..c042a8f1ff1 100644
--- a/gcc/rust/ast/rust-path.h
+++ b/gcc/rust/ast/rust-path.h
@@ -357,8 +357,7 @@ public:
return convert_to_simple_path (has_opening_scope_resolution);
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -740,8 +739,7 @@ public:
// Creates a trait bound with a clone of this type path as its only element.
TraitBound *to_trait_bound (bool in_parens) const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -885,8 +883,7 @@ public:
{}, Location ());
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1023,8 +1020,7 @@ public:
return segments;
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
};
} // namespace AST
} // namespace Rust
diff --git a/gcc/rust/ast/rust-pattern.h b/gcc/rust/ast/rust-pattern.h
index 049aaf00448..7fd1fa50aa4 100644
--- a/gcc/rust/ast/rust-pattern.h
+++ b/gcc/rust/ast/rust-pattern.h
@@ -51,8 +51,7 @@ public:
has_minus (has_minus), locus (locus)
{}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -134,8 +133,7 @@ public:
IdentifierPattern (IdentifierPattern &&other) = default;
IdentifierPattern &operator= (IdentifierPattern &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -170,8 +168,7 @@ public:
WildcardPattern (Location locus) : locus (locus) {}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -347,8 +344,7 @@ public:
RangePattern (RangePattern &&other) = default;
RangePattern &operator= (RangePattern &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -412,8 +408,7 @@ public:
ReferencePattern (ReferencePattern &&other) = default;
ReferencePattern &operator= (ReferencePattern &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -806,7 +801,6 @@ public:
bool has_struct_pattern_elems () const { return !elems.is_empty (); }
Location get_locus () const { return path.get_locus (); }
- Location get_locus_slow () const final override { return get_locus (); }
void accept_vis (ASTVisitor &vis) override;
@@ -1028,7 +1022,6 @@ public:
TupleStructPattern &operator= (TupleStructPattern &&other) = default;
Location get_locus () const { return path.get_locus (); }
- Location get_locus_slow () const final override { return get_locus (); }
void accept_vis (ASTVisitor &vis) override;
@@ -1280,8 +1273,7 @@ public:
return *this;
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1336,8 +1328,7 @@ public:
GroupedPattern (GroupedPattern &&other) = default;
GroupedPattern &operator= (GroupedPattern &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -1394,8 +1385,7 @@ public:
SlicePattern (SlicePattern &&other) = default;
SlicePattern &operator= (SlicePattern &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
diff --git a/gcc/rust/ast/rust-stmt.h b/gcc/rust/ast/rust-stmt.h
index 61854a07cef..4f7399ef6ab 100644
--- a/gcc/rust/ast/rust-stmt.h
+++ b/gcc/rust/ast/rust-stmt.h
@@ -38,9 +38,7 @@ public:
EmptyStmt (Location locus) : locus (locus) {}
- Location get_locus_slow () const final override { return get_locus (); }
-
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -137,9 +135,7 @@ public:
LetStmt (LetStmt &&other) = default;
LetStmt &operator= (LetStmt &&other) = default;
- Location get_locus_slow () const final override { return get_locus (); }
-
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -188,9 +184,7 @@ class ExprStmt : public Stmt
Location locus;
public:
- Location get_locus_slow () const final override { return get_locus (); }
-
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
protected:
ExprStmt (Location locus) : locus (locus) {}
diff --git a/gcc/rust/ast/rust-type.h b/gcc/rust/ast/rust-type.h
index b658a532b98..fd695649d7b 100644
--- a/gcc/rust/ast/rust-type.h
+++ b/gcc/rust/ast/rust-type.h
@@ -68,9 +68,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
-
- Location get_locus_slow () const override final { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -144,8 +142,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -214,8 +211,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -283,8 +279,7 @@ public:
return type_in_parens->to_trait_bound (true);
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -317,8 +312,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -363,8 +357,7 @@ public:
return new TraitBound (trait_bound);
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -419,8 +412,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -460,8 +452,7 @@ public:
std::string as_string () const override { return "! (never type)"; }
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
};
@@ -513,8 +504,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -581,8 +571,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -643,8 +632,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -704,8 +692,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
@@ -745,8 +732,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
};
@@ -923,8 +909,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const final override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (ASTVisitor &vis) override;
diff --git a/gcc/rust/backend/rust-compile-expr.h b/gcc/rust/backend/rust-compile-expr.h
index 80cdc5eaeb4..ac33ccd247d 100644
--- a/gcc/rust/backend/rust-compile-expr.h
+++ b/gcc/rust/backend/rust-compile-expr.h
@@ -611,7 +611,7 @@ public:
if (!ctx->get_tyctx ()->lookup_type (
expr.get_receiver_expr ()->get_mappings ().get_hirid (), &receiver))
{
- rust_error_at (expr.get_receiver_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_receiver_expr ()->get_locus (),
"unresolved type for receiver");
return;
}
@@ -772,7 +772,7 @@ public:
Bvariable *loop_result_holder = ctx->peek_loop_context ();
Bexpression *result_reference = ctx->get_backend ()->var_expression (
- loop_result_holder, expr.get_expr ()->get_locus_slow ());
+ loop_result_holder, expr.get_expr ()->get_locus ());
Bstatement *assignment = ctx->get_backend ()->assignment_statement (
fnctx.fndecl, result_reference, compiled_expr, expr.get_locus ());
diff --git a/gcc/rust/backend/rust-compile.cc b/gcc/rust/backend/rust-compile.cc
index baaccf06c10..0a65b155e1d 100644
--- a/gcc/rust/backend/rust-compile.cc
+++ b/gcc/rust/backend/rust-compile.cc
@@ -352,7 +352,7 @@ CompileBlock::visit (HIR::BlockExpr &expr)
{
Bexpression *result_reference
= ctx->get_backend ()->var_expression (
- result, expr.get_final_expr ()->get_locus_slow ());
+ result, expr.get_final_expr ()->get_locus ());
Bstatement *assignment
= ctx->get_backend ()->assignment_statement (fnctx.fndecl,
@@ -490,7 +490,7 @@ HIRCompileBase::compile_function_body (
auto ret = ctx->get_backend ()->return_statement (
fndecl, retstmts,
- function_body->get_final_expr ()->get_locus_slow ());
+ function_body->get_final_expr ()->get_locus ());
ctx->add_statement (ret);
}
else
diff --git a/gcc/rust/expand/rust-macro-expand.cc b/gcc/rust/expand/rust-macro-expand.cc
index 4998dc8441f..407992d828f 100644
--- a/gcc/rust/expand/rust-macro-expand.cc
+++ b/gcc/rust/expand/rust-macro-expand.cc
@@ -49,7 +49,7 @@ public:
auto &type = field.get_field_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
+ rust_error_at (type->get_locus (),
"cannot strip type in this position");
// if nothing else happens, increment
@@ -75,7 +75,7 @@ public:
auto &type = field.get_field_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
+ rust_error_at (type->get_locus (),
"cannot strip type in this position");
// if nothing else happens, increment
@@ -101,13 +101,13 @@ public:
auto &pattern = param.get_pattern ();
pattern->accept_vis (*this);
if (pattern->is_marked_for_strip ())
- rust_error_at (pattern->get_locus_slow (),
+ rust_error_at (pattern->get_locus (),
"cannot strip pattern in this position");
auto &type = param.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
+ rust_error_at (type->get_locus (),
"cannot strip type in this position");
// increment
@@ -124,7 +124,7 @@ public:
{
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
+ rust_error_at (type->get_locus (),
"cannot strip type in this position");
}
@@ -134,7 +134,7 @@ public:
auto &type = binding.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
+ rust_error_at (type->get_locus (),
"cannot strip type in this position");
}
}
@@ -144,8 +144,7 @@ public:
auto &type = path_type.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
- "cannot strip type in this position");
+ rust_error_at (type->get_locus (), "cannot strip type in this position");
if (path_type.has_as_clause ())
{
@@ -174,7 +173,7 @@ public:
auto &pattern = param.get_pattern ();
pattern->accept_vis (*this);
if (pattern->is_marked_for_strip ())
- rust_error_at (pattern->get_locus_slow (),
+ rust_error_at (pattern->get_locus (),
"cannot strip pattern in this position");
if (param.has_type_given ())
@@ -182,7 +181,7 @@ public:
auto &type = param.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
+ rust_error_at (type->get_locus (),
"cannot strip type in this position");
}
@@ -198,7 +197,7 @@ public:
auto &type = self_param.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
+ rust_error_at (type->get_locus (),
"cannot strip type in this position");
}
/* TODO: maybe check for invariants being violated - e.g. both type and
@@ -227,7 +226,7 @@ public:
auto &return_type = decl.get_return_type ();
return_type->accept_vis (*this);
if (return_type->is_marked_for_strip ())
- rust_error_at (return_type->get_locus_slow (),
+ rust_error_at (return_type->get_locus (),
"cannot strip type in this position");
}
@@ -255,7 +254,7 @@ public:
auto &return_type = decl.get_return_type ();
return_type->accept_vis (*this);
if (return_type->is_marked_for_strip ())
- rust_error_at (return_type->get_locus_slow (),
+ rust_error_at (return_type->get_locus (),
"cannot strip type in this position");
}
@@ -363,7 +362,7 @@ public:
{
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
+ rust_error_at (type->get_locus (),
"cannot strip type in this position");
}
@@ -372,7 +371,7 @@ public:
auto &return_type = type_path_function.get_return_type ();
return_type->accept_vis (*this);
if (return_type->is_marked_for_strip ())
- rust_error_at (return_type->get_locus_slow (),
+ rust_error_at (return_type->get_locus (),
"cannot strip type in this position");
}
}
@@ -447,7 +446,7 @@ public:
auto &borrowed_expr = expr.get_borrowed_expr ();
borrowed_expr->accept_vis (*this);
if (borrowed_expr->is_marked_for_strip ())
- rust_error_at (borrowed_expr->get_locus_slow (),
+ rust_error_at (borrowed_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -467,7 +466,7 @@ public:
auto &dereferenced_expr = expr.get_dereferenced_expr ();
dereferenced_expr->accept_vis (*this);
if (dereferenced_expr->is_marked_for_strip ())
- rust_error_at (dereferenced_expr->get_locus_slow (),
+ rust_error_at (dereferenced_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -487,7 +486,7 @@ public:
auto &propagating_expr = expr.get_propagating_expr ();
propagating_expr->accept_vis (*this);
if (propagating_expr->is_marked_for_strip ())
- rust_error_at (propagating_expr->get_locus_slow (),
+ rust_error_at (propagating_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -507,7 +506,7 @@ public:
auto &negated_expr = expr.get_negated_expr ();
negated_expr->accept_vis (*this);
if (negated_expr->is_marked_for_strip ())
- rust_error_at (negated_expr->get_locus_slow (),
+ rust_error_at (negated_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -525,12 +524,12 @@ public:
// ensure that they are not marked for strip
if (expr.get_left_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_left_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_left_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes are never allowed "
"before binary op exprs");
if (expr.get_right_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_right_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_right_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -548,12 +547,12 @@ public:
// ensure that they are not marked for strip
if (expr.get_left_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_left_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_left_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes are never allowed "
"before binary op exprs");
if (expr.get_right_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_right_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_right_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -571,12 +570,12 @@ public:
// ensure that they are not marked for strip
if (expr.get_left_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_left_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_left_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes are never allowed "
"before binary op exprs");
if (expr.get_right_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_right_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_right_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -592,7 +591,7 @@ public:
// ensure that they are not marked for strip
if (casted_expr->is_marked_for_strip ())
- rust_error_at (casted_expr->get_locus_slow (),
+ rust_error_at (casted_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes are never allowed before cast exprs");
@@ -600,8 +599,7 @@ public:
auto &type = expr.get_type_to_cast_to ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
- "cannot strip type in this position");
+ rust_error_at (type->get_locus (), "cannot strip type in this position");
}
void visit (AST::AssignmentExpr &expr) override
{
@@ -617,12 +615,12 @@ public:
// ensure that they are not marked for strip
if (expr.get_left_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_left_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_left_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes are never allowed "
"before binary op exprs");
if (expr.get_right_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_right_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_right_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -640,12 +638,12 @@ public:
// ensure that they are not marked for strip
if (expr.get_left_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_left_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_left_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes are never allowed "
"before binary op exprs");
if (expr.get_right_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_right_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_right_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -674,7 +672,7 @@ public:
auto &inner_expr = expr.get_expr_in_parens ();
inner_expr->accept_vis (*this);
if (inner_expr->is_marked_for_strip ())
- rust_error_at (inner_expr->get_locus_slow (),
+ rust_error_at (inner_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -695,14 +693,14 @@ public:
auto &copied_expr = elems.get_elem_to_copy ();
copied_expr->accept_vis (*this);
if (copied_expr->is_marked_for_strip ())
- rust_error_at (copied_expr->get_locus_slow (),
+ rust_error_at (copied_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
auto ©_count = elems.get_num_copies ();
copy_count->accept_vis (*this);
if (copy_count->is_marked_for_strip ())
- rust_error_at (copy_count->get_locus_slow (),
+ rust_error_at (copy_count->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -748,14 +746,14 @@ public:
auto &array_expr = expr.get_array_expr ();
array_expr->accept_vis (*this);
if (array_expr->is_marked_for_strip ())
- rust_error_at (array_expr->get_locus_slow (),
+ rust_error_at (array_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
auto &index_expr = expr.get_index_expr ();
index_expr->accept_vis (*this);
if (index_expr->is_marked_for_strip ())
- rust_error_at (index_expr->get_locus_slow (),
+ rust_error_at (index_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -801,7 +799,7 @@ public:
auto &tuple_expr = expr.get_tuple_expr ();
tuple_expr->accept_vis (*this);
if (tuple_expr->is_marked_for_strip ())
- rust_error_at (tuple_expr->get_locus_slow (),
+ rust_error_at (tuple_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -842,7 +840,7 @@ public:
auto &value = field.get_value ();
value->accept_vis (*this);
if (value->is_marked_for_strip ())
- rust_error_at (value->get_locus_slow (),
+ rust_error_at (value->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -853,7 +851,7 @@ public:
auto &value = field.get_value ();
value->accept_vis (*this);
if (value->is_marked_for_strip ())
- rust_error_at (value->get_locus_slow (),
+ rust_error_at (value->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -900,7 +898,7 @@ public:
auto &base_struct_expr = expr.get_struct_base ().get_base_struct ();
base_struct_expr->accept_vis (*this);
if (base_struct_expr->is_marked_for_strip ())
- rust_error_at (base_struct_expr->get_locus_slow (),
+ rust_error_at (base_struct_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -937,7 +935,7 @@ public:
auto &base_struct_expr = expr.get_struct_base ().get_base_struct ();
base_struct_expr->accept_vis (*this);
if (base_struct_expr->is_marked_for_strip ())
- rust_error_at (base_struct_expr->get_locus_slow (),
+ rust_error_at (base_struct_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -999,7 +997,7 @@ public:
auto &value = field.get_value ();
value->accept_vis (*this);
if (value->is_marked_for_strip ())
- rust_error_at (value->get_locus_slow (),
+ rust_error_at (value->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -1010,7 +1008,7 @@ public:
auto &value = field.get_value ();
value->accept_vis (*this);
if (value->is_marked_for_strip ())
- rust_error_at (value->get_locus_slow (),
+ rust_error_at (value->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -1093,7 +1091,7 @@ public:
auto &function = expr.get_function_expr ();
function->accept_vis (*this);
if (function->is_marked_for_strip ())
- rust_error_at (function->get_locus_slow (),
+ rust_error_at (function->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1117,7 +1115,7 @@ public:
auto &receiver = expr.get_receiver_expr ();
receiver->accept_vis (*this);
if (receiver->is_marked_for_strip ())
- rust_error_at (receiver->get_locus_slow (),
+ rust_error_at (receiver->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1145,7 +1143,7 @@ public:
auto &receiver = expr.get_receiver_expr ();
receiver->accept_vis (*this);
if (receiver->is_marked_for_strip ())
- rust_error_at (receiver->get_locus_slow (),
+ rust_error_at (receiver->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -1167,7 +1165,7 @@ public:
auto &definition_expr = expr.get_definition_expr ();
definition_expr->accept_vis (*this);
if (definition_expr->is_marked_for_strip ())
- rust_error_at (definition_expr->get_locus_slow (),
+ rust_error_at (definition_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -1222,14 +1220,13 @@ public:
auto &type = expr.get_return_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
- "cannot strip type in this position");
+ rust_error_at (type->get_locus (), "cannot strip type in this position");
// can't strip expression itself, but can strip sub-expressions
auto &definition_block = expr.get_definition_block ();
definition_block->accept_vis (*this);
if (definition_block->is_marked_for_strip ())
- rust_error_at (definition_block->get_locus_slow (),
+ rust_error_at (definition_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
}
@@ -1263,7 +1260,7 @@ public:
break_expr->accept_vis (*this);
if (break_expr->is_marked_for_strip ())
- rust_error_at (break_expr->get_locus_slow (),
+ rust_error_at (break_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -1282,12 +1279,12 @@ public:
// ensure that they are not marked for strip
if (expr.get_from_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_from_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_from_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes are never allowed "
"before range exprs");
if (expr.get_to_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_to_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_to_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -1303,7 +1300,7 @@ public:
from_expr->accept_vis (*this);
if (from_expr->is_marked_for_strip ())
- rust_error_at (from_expr->get_locus_slow (),
+ rust_error_at (from_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes are never allowed before range exprs");
}
@@ -1319,7 +1316,7 @@ public:
to_expr->accept_vis (*this);
if (to_expr->is_marked_for_strip ())
- rust_error_at (to_expr->get_locus_slow (),
+ rust_error_at (to_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -1341,12 +1338,12 @@ public:
// ensure that they are not marked for strip
if (expr.get_from_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_from_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_from_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes are never allowed "
"before range exprs");
if (expr.get_to_expr ()->is_marked_for_strip ())
- rust_error_at (expr.get_to_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_to_expr ()->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -1362,7 +1359,7 @@ public:
to_expr->accept_vis (*this);
if (to_expr->is_marked_for_strip ())
- rust_error_at (to_expr->get_locus_slow (),
+ rust_error_at (to_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -1386,7 +1383,7 @@ public:
returned_expr->accept_vis (*this);
if (returned_expr->is_marked_for_strip ())
- rust_error_at (returned_expr->get_locus_slow (),
+ rust_error_at (returned_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -1410,7 +1407,7 @@ public:
auto &block_expr = expr.get_block_expr ();
block_expr->accept_vis (*this);
if (block_expr->is_marked_for_strip ())
- rust_error_at (block_expr->get_locus_slow (),
+ rust_error_at (block_expr->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
}
@@ -1428,7 +1425,7 @@ public:
auto &loop_block = expr.get_loop_block ();
loop_block->accept_vis (*this);
if (loop_block->is_marked_for_strip ())
- rust_error_at (loop_block->get_locus_slow (),
+ rust_error_at (loop_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
}
@@ -1446,7 +1443,7 @@ public:
auto &predicate_expr = expr.get_predicate_expr ();
predicate_expr->accept_vis (*this);
if (predicate_expr->is_marked_for_strip ())
- rust_error_at (predicate_expr->get_locus_slow (),
+ rust_error_at (predicate_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1454,7 +1451,7 @@ public:
auto &loop_block = expr.get_loop_block ();
loop_block->accept_vis (*this);
if (loop_block->is_marked_for_strip ())
- rust_error_at (loop_block->get_locus_slow (),
+ rust_error_at (loop_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
}
@@ -1472,7 +1469,7 @@ public:
{
pattern->accept_vis (*this);
if (pattern->is_marked_for_strip ())
- rust_error_at (pattern->get_locus_slow (),
+ rust_error_at (pattern->get_locus (),
"cannot strip pattern in this position");
}
@@ -1480,7 +1477,7 @@ public:
auto &scrutinee_expr = expr.get_scrutinee_expr ();
scrutinee_expr->accept_vis (*this);
if (scrutinee_expr->is_marked_for_strip ())
- rust_error_at (scrutinee_expr->get_locus_slow (),
+ rust_error_at (scrutinee_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1488,7 +1485,7 @@ public:
auto &loop_block = expr.get_loop_block ();
loop_block->accept_vis (*this);
if (loop_block->is_marked_for_strip ())
- rust_error_at (loop_block->get_locus_slow (),
+ rust_error_at (loop_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
}
@@ -1506,14 +1503,14 @@ public:
auto &pattern = expr.get_pattern ();
pattern->accept_vis (*this);
if (pattern->is_marked_for_strip ())
- rust_error_at (pattern->get_locus_slow (),
+ rust_error_at (pattern->get_locus (),
"cannot strip pattern in this position");
// can't strip scrutinee expr itself, but can strip sub-expressions
auto &iterator_expr = expr.get_iterator_expr ();
iterator_expr->accept_vis (*this);
if (iterator_expr->is_marked_for_strip ())
- rust_error_at (iterator_expr->get_locus_slow (),
+ rust_error_at (iterator_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1521,7 +1518,7 @@ public:
auto &loop_block = expr.get_loop_block ();
loop_block->accept_vis (*this);
if (loop_block->is_marked_for_strip ())
- rust_error_at (loop_block->get_locus_slow (),
+ rust_error_at (loop_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
}
@@ -1542,7 +1539,7 @@ public:
auto &condition_expr = expr.get_condition_expr ();
condition_expr->accept_vis (*this);
if (condition_expr->is_marked_for_strip ())
- rust_error_at (condition_expr->get_locus_slow (),
+ rust_error_at (condition_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1550,7 +1547,7 @@ public:
auto &if_block = expr.get_if_block ();
if_block->accept_vis (*this);
if (if_block->is_marked_for_strip ())
- rust_error_at (if_block->get_locus_slow (),
+ rust_error_at (if_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
}
@@ -1568,7 +1565,7 @@ public:
auto &condition_expr = expr.get_condition_expr ();
condition_expr->accept_vis (*this);
if (condition_expr->is_marked_for_strip ())
- rust_error_at (condition_expr->get_locus_slow (),
+ rust_error_at (condition_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1576,7 +1573,7 @@ public:
auto &if_block = expr.get_if_block ();
if_block->accept_vis (*this);
if (if_block->is_marked_for_strip ())
- rust_error_at (if_block->get_locus_slow (),
+ rust_error_at (if_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
@@ -1584,7 +1581,7 @@ public:
auto &else_block = expr.get_else_block ();
else_block->accept_vis (*this);
if (else_block->is_marked_for_strip ())
- rust_error_at (else_block->get_locus_slow (),
+ rust_error_at (else_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
}
@@ -1602,7 +1599,7 @@ public:
auto &condition_expr = expr.get_condition_expr ();
condition_expr->accept_vis (*this);
if (condition_expr->is_marked_for_strip ())
- rust_error_at (condition_expr->get_locus_slow (),
+ rust_error_at (condition_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1610,7 +1607,7 @@ public:
auto &if_block = expr.get_if_block ();
if_block->accept_vis (*this);
if (if_block->is_marked_for_strip ())
- rust_error_at (if_block->get_locus_slow (),
+ rust_error_at (if_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
@@ -1618,7 +1615,7 @@ public:
auto &conseq_if_expr = expr.get_conseq_if_expr ();
conseq_if_expr->accept_vis (*this);
if (conseq_if_expr->is_marked_for_strip ())
- rust_error_at (conseq_if_expr->get_locus_slow (),
+ rust_error_at (conseq_if_expr->get_locus (),
"cannot strip consequent if expression in this "
"position - outer attributes not allowed");
}
@@ -1636,7 +1633,7 @@ public:
auto &condition_expr = expr.get_condition_expr ();
condition_expr->accept_vis (*this);
if (condition_expr->is_marked_for_strip ())
- rust_error_at (condition_expr->get_locus_slow (),
+ rust_error_at (condition_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1644,7 +1641,7 @@ public:
auto &if_block = expr.get_if_block ();
if_block->accept_vis (*this);
if (if_block->is_marked_for_strip ())
- rust_error_at (if_block->get_locus_slow (),
+ rust_error_at (if_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
@@ -1652,7 +1649,7 @@ public:
auto &conseq_if_let_expr = expr.get_conseq_if_let_expr ();
conseq_if_let_expr->accept_vis (*this);
if (conseq_if_let_expr->is_marked_for_strip ())
- rust_error_at (conseq_if_let_expr->get_locus_slow (),
+ rust_error_at (conseq_if_let_expr->get_locus (),
"cannot strip consequent if let expression in this "
"position - outer attributes not "
"allowed");
@@ -1671,7 +1668,7 @@ public:
{
pattern->accept_vis (*this);
if (pattern->is_marked_for_strip ())
- rust_error_at (pattern->get_locus_slow (),
+ rust_error_at (pattern->get_locus (),
"cannot strip pattern in this position");
}
@@ -1679,7 +1676,7 @@ public:
auto &value_expr = expr.get_value_expr ();
value_expr->accept_vis (*this);
if (value_expr->is_marked_for_strip ())
- rust_error_at (value_expr->get_locus_slow (),
+ rust_error_at (value_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1687,7 +1684,7 @@ public:
auto &if_block = expr.get_if_block ();
if_block->accept_vis (*this);
if (if_block->is_marked_for_strip ())
- rust_error_at (if_block->get_locus_slow (),
+ rust_error_at (if_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
}
@@ -1705,7 +1702,7 @@ public:
{
pattern->accept_vis (*this);
if (pattern->is_marked_for_strip ())
- rust_error_at (pattern->get_locus_slow (),
+ rust_error_at (pattern->get_locus (),
"cannot strip pattern in this position");
}
@@ -1713,7 +1710,7 @@ public:
auto &value_expr = expr.get_value_expr ();
value_expr->accept_vis (*this);
if (value_expr->is_marked_for_strip ())
- rust_error_at (value_expr->get_locus_slow (),
+ rust_error_at (value_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1721,7 +1718,7 @@ public:
auto &if_block = expr.get_if_block ();
if_block->accept_vis (*this);
if (if_block->is_marked_for_strip ())
- rust_error_at (if_block->get_locus_slow (),
+ rust_error_at (if_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
@@ -1729,7 +1726,7 @@ public:
auto &else_block = expr.get_else_block ();
else_block->accept_vis (*this);
if (else_block->is_marked_for_strip ())
- rust_error_at (else_block->get_locus_slow (),
+ rust_error_at (else_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
}
@@ -1747,7 +1744,7 @@ public:
{
pattern->accept_vis (*this);
if (pattern->is_marked_for_strip ())
- rust_error_at (pattern->get_locus_slow (),
+ rust_error_at (pattern->get_locus (),
"cannot strip pattern in this position");
}
@@ -1755,7 +1752,7 @@ public:
auto &value_expr = expr.get_value_expr ();
value_expr->accept_vis (*this);
if (value_expr->is_marked_for_strip ())
- rust_error_at (value_expr->get_locus_slow (),
+ rust_error_at (value_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1763,7 +1760,7 @@ public:
auto &if_block = expr.get_if_block ();
if_block->accept_vis (*this);
if (if_block->is_marked_for_strip ())
- rust_error_at (if_block->get_locus_slow (),
+ rust_error_at (if_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
@@ -1771,7 +1768,7 @@ public:
auto &conseq_if_expr = expr.get_conseq_if_expr ();
conseq_if_expr->accept_vis (*this);
if (conseq_if_expr->is_marked_for_strip ())
- rust_error_at (conseq_if_expr->get_locus_slow (),
+ rust_error_at (conseq_if_expr->get_locus (),
"cannot strip consequent if expression in this "
"position - outer attributes not allowed");
}
@@ -1789,7 +1786,7 @@ public:
{
pattern->accept_vis (*this);
if (pattern->is_marked_for_strip ())
- rust_error_at (pattern->get_locus_slow (),
+ rust_error_at (pattern->get_locus (),
"cannot strip pattern in this position");
}
@@ -1797,7 +1794,7 @@ public:
auto &value_expr = expr.get_value_expr ();
value_expr->accept_vis (*this);
if (value_expr->is_marked_for_strip ())
- rust_error_at (value_expr->get_locus_slow (),
+ rust_error_at (value_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1805,7 +1802,7 @@ public:
auto &if_block = expr.get_if_block ();
if_block->accept_vis (*this);
if (if_block->is_marked_for_strip ())
- rust_error_at (if_block->get_locus_slow (),
+ rust_error_at (if_block->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
@@ -1813,7 +1810,7 @@ public:
auto &conseq_if_let_expr = expr.get_conseq_if_let_expr ();
conseq_if_let_expr->accept_vis (*this);
if (conseq_if_let_expr->is_marked_for_strip ())
- rust_error_at (conseq_if_let_expr->get_locus_slow (),
+ rust_error_at (conseq_if_let_expr->get_locus (),
"cannot strip consequent if let expression in this "
"position - outer attributes not "
"allowed");
@@ -1840,7 +1837,7 @@ public:
auto &scrutinee_expr = expr.get_scrutinee_expr ();
scrutinee_expr->accept_vis (*this);
if (scrutinee_expr->is_marked_for_strip ())
- rust_error_at (scrutinee_expr->get_locus_slow (),
+ rust_error_at (scrutinee_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1864,7 +1861,7 @@ public:
{
pattern->accept_vis (*this);
if (pattern->is_marked_for_strip ())
- rust_error_at (pattern->get_locus_slow (),
+ rust_error_at (pattern->get_locus (),
"cannot strip pattern in this position");
}
@@ -1877,7 +1874,7 @@ public:
auto &guard_expr = match_arm.get_guard_expr ();
guard_expr->accept_vis (*this);
if (guard_expr->is_marked_for_strip ())
- rust_error_at (guard_expr->get_locus_slow (),
+ rust_error_at (guard_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -1886,7 +1883,7 @@ public:
auto &case_expr = match_case.get_expr ();
case_expr->accept_vis (*this);
if (case_expr->is_marked_for_strip ())
- rust_error_at (case_expr->get_locus_slow (),
+ rust_error_at (case_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
@@ -1909,7 +1906,7 @@ public:
auto &awaited_expr = expr.get_awaited_expr ();
awaited_expr->accept_vis (*this);
if (awaited_expr->is_marked_for_strip ())
- rust_error_at (awaited_expr->get_locus_slow (),
+ rust_error_at (awaited_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -1927,7 +1924,7 @@ public:
auto &block_expr = expr.get_block_expr ();
block_expr->accept_vis (*this);
if (block_expr->is_marked_for_strip ())
- rust_error_at (block_expr->get_locus_slow (),
+ rust_error_at (block_expr->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
}
@@ -1948,7 +1945,7 @@ public:
auto &type = param.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
+ rust_error_at (type->get_locus (),
"cannot strip type in this position");
}
}
@@ -1963,8 +1960,7 @@ public:
auto &type = item.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
- "cannot strip type in this position");
+ rust_error_at (type->get_locus (), "cannot strip type in this position");
// don't strip directly, only components of bounds
for (auto &bound : item.get_type_param_bounds ())
@@ -1998,7 +1994,7 @@ public:
auto &return_type = method.get_return_type ();
return_type->accept_vis (*this);
if (return_type->is_marked_for_strip ())
- rust_error_at (return_type->get_locus_slow (),
+ rust_error_at (return_type->get_locus (),
"cannot strip type in this position");
}
@@ -2011,7 +2007,7 @@ public:
auto &block_expr = method.get_definition ();
block_expr->accept_vis (*this);
if (block_expr->is_marked_for_strip ())
- rust_error_at (block_expr->get_locus_slow (),
+ rust_error_at (block_expr->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
}
@@ -2099,7 +2095,7 @@ public:
auto &return_type = function.get_return_type ();
return_type->accept_vis (*this);
if (return_type->is_marked_for_strip ())
- rust_error_at (return_type->get_locus_slow (),
+ rust_error_at (return_type->get_locus (),
"cannot strip type in this position");
}
@@ -2112,7 +2108,7 @@ public:
auto &block_expr = function.get_definition ();
block_expr->accept_vis (*this);
if (block_expr->is_marked_for_strip ())
- rust_error_at (block_expr->get_locus_slow (),
+ rust_error_at (block_expr->get_locus (),
"cannot strip block expression in this position - outer "
"attributes not allowed");
}
@@ -2136,8 +2132,7 @@ public:
auto &type = type_alias.get_type_aliased ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
- "cannot strip type in this position");
+ rust_error_at (type->get_locus (), "cannot strip type in this position");
}
void visit (AST::StructStruct &struct_item) override
{
@@ -2235,7 +2230,7 @@ public:
auto &expr = item.get_expr ();
expr->accept_vis (*this);
if (expr->is_marked_for_strip ())
- rust_error_at (expr->get_locus_slow (),
+ rust_error_at (expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -2295,8 +2290,7 @@ public:
auto &type = const_item.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
- "cannot strip type in this position");
+ rust_error_at (type->get_locus (), "cannot strip type in this position");
/* strip any internal sub-expressions - expression itself isn't
* allowed to have external attributes in this position so can't be
@@ -2304,7 +2298,7 @@ public:
auto &expr = const_item.get_expr ();
expr->accept_vis (*this);
if (expr->is_marked_for_strip ())
- rust_error_at (expr->get_locus_slow (),
+ rust_error_at (expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -2322,8 +2316,7 @@ public:
auto &type = static_item.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
- "cannot strip type in this position");
+ rust_error_at (type->get_locus (), "cannot strip type in this position");
/* strip any internal sub-expressions - expression itself isn't
* allowed to have external attributes in this position so can't be
@@ -2331,7 +2324,7 @@ public:
auto &expr = static_item.get_expr ();
expr->accept_vis (*this);
if (expr->is_marked_for_strip ())
- rust_error_at (expr->get_locus_slow (),
+ rust_error_at (expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -2355,7 +2348,7 @@ public:
auto &block = item.get_definition ();
block->accept_vis (*this);
if (block->is_marked_for_strip ())
- rust_error_at (block->get_locus_slow (),
+ rust_error_at (block->get_locus (),
"cannot strip block expression in this "
"position - outer attributes not allowed");
}
@@ -2380,7 +2373,7 @@ public:
auto &block = item.get_definition ();
block->accept_vis (*this);
if (block->is_marked_for_strip ())
- rust_error_at (block->get_locus_slow (),
+ rust_error_at (block->get_locus (),
"cannot strip block expression in this "
"position - outer attributes not allowed");
}
@@ -2399,8 +2392,7 @@ public:
auto &type = item.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
- "cannot strip type in this position");
+ rust_error_at (type->get_locus (), "cannot strip type in this position");
/* strip any internal sub-expressions - expression itself isn't
* allowed to have external attributes in this position so can't be
@@ -2410,7 +2402,7 @@ public:
auto &expr = item.get_expr ();
expr->accept_vis (*this);
if (expr->is_marked_for_strip ())
- rust_error_at (expr->get_locus_slow (),
+ rust_error_at (expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -2492,8 +2484,7 @@ public:
auto &type = impl.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
- "cannot strip type in this position");
+ rust_error_at (type->get_locus (), "cannot strip type in this position");
if (impl.has_where_clause ())
expand_where_clause (impl.get_where_clause ());
@@ -2526,8 +2517,7 @@ public:
auto &type = impl.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
- "cannot strip type in this position");
+ rust_error_at (type->get_locus (), "cannot strip type in this position");
auto &trait_path = impl.get_trait_path ();
visit (trait_path);
@@ -2554,8 +2544,7 @@ public:
auto &type = item.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
- "cannot strip type in this position");
+ rust_error_at (type->get_locus (), "cannot strip type in this position");
}
void visit (AST::ExternalFunctionItem &item) override
{
@@ -2589,7 +2578,7 @@ public:
auto &type = param.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
+ rust_error_at (type->get_locus (),
"cannot strip type in this position");
// increment if nothing else happens
@@ -2607,7 +2596,7 @@ public:
auto &return_type = item.get_return_type ();
return_type->accept_vis (*this);
if (return_type->is_marked_for_strip ())
- rust_error_at (return_type->get_locus_slow (),
+ rust_error_at (return_type->get_locus (),
"cannot strip type in this position");
}
@@ -2686,7 +2675,7 @@ public:
auto &sub_pattern = pattern.get_pattern_to_bind ();
sub_pattern->accept_vis (*this);
if (sub_pattern->is_marked_for_strip ())
- rust_error_at (sub_pattern->get_locus_slow (),
+ rust_error_at (sub_pattern->get_locus (),
"cannot strip pattern in this position");
}
void visit (AST::WildcardPattern &) override
@@ -2724,7 +2713,7 @@ public:
auto &sub_pattern = pattern.get_referenced_pattern ();
sub_pattern->accept_vis (*this);
if (sub_pattern->is_marked_for_strip ())
- rust_error_at (sub_pattern->get_locus_slow (),
+ rust_error_at (sub_pattern->get_locus (),
"cannot strip pattern in this position");
}
void visit (AST::StructPatternFieldTuplePat &field) override
@@ -2741,7 +2730,7 @@ public:
auto &sub_pattern = field.get_index_pattern ();
sub_pattern->accept_vis (*this);
if (sub_pattern->is_marked_for_strip ())
- rust_error_at (sub_pattern->get_locus_slow (),
+ rust_error_at (sub_pattern->get_locus (),
"cannot strip pattern in this position");
}
void visit (AST::StructPatternFieldIdentPat &field) override
@@ -2758,7 +2747,7 @@ public:
auto &sub_pattern = field.get_ident_pattern ();
sub_pattern->accept_vis (*this);
if (sub_pattern->is_marked_for_strip ())
- rust_error_at (sub_pattern->get_locus_slow (),
+ rust_error_at (sub_pattern->get_locus (),
"cannot strip pattern in this position");
}
void visit (AST::StructPatternFieldIdent &field) override
@@ -2805,7 +2794,7 @@ public:
pattern->accept_vis (*this);
if (pattern->is_marked_for_strip ())
- rust_error_at (pattern->get_locus_slow (),
+ rust_error_at (pattern->get_locus (),
"cannot strip pattern in this position");
// TODO: quit stripping now? or keep going?
}
@@ -2818,7 +2807,7 @@ public:
lower_pattern->accept_vis (*this);
if (lower_pattern->is_marked_for_strip ())
- rust_error_at (lower_pattern->get_locus_slow (),
+ rust_error_at (lower_pattern->get_locus (),
"cannot strip pattern in this position");
// TODO: quit stripping now? or keep going?
}
@@ -2827,7 +2816,7 @@ public:
upper_pattern->accept_vis (*this);
if (upper_pattern->is_marked_for_strip ())
- rust_error_at (upper_pattern->get_locus_slow (),
+ rust_error_at (upper_pattern->get_locus (),
"cannot strip pattern in this position");
// TODO: quit stripping now? or keep going?
}
@@ -2851,7 +2840,7 @@ public:
pattern->accept_vis (*this);
if (pattern->is_marked_for_strip ())
- rust_error_at (pattern->get_locus_slow (),
+ rust_error_at (pattern->get_locus (),
"cannot strip pattern in this position");
// TODO: quit stripping now? or keep going?
}
@@ -2864,7 +2853,7 @@ public:
lower_pattern->accept_vis (*this);
if (lower_pattern->is_marked_for_strip ())
- rust_error_at (lower_pattern->get_locus_slow (),
+ rust_error_at (lower_pattern->get_locus (),
"cannot strip pattern in this position");
// TODO: quit stripping now? or keep going?
}
@@ -2873,7 +2862,7 @@ public:
upper_pattern->accept_vis (*this);
if (upper_pattern->is_marked_for_strip ())
- rust_error_at (upper_pattern->get_locus_slow (),
+ rust_error_at (upper_pattern->get_locus (),
"cannot strip pattern in this position");
// TODO: quit stripping now? or keep going?
}
@@ -2891,7 +2880,7 @@ public:
pattern_in_parens->accept_vis (*this);
if (pattern_in_parens->is_marked_for_strip ())
- rust_error_at (pattern_in_parens->get_locus_slow (),
+ rust_error_at (pattern_in_parens->get_locus (),
"cannot strip pattern in this position");
}
void visit (AST::SlicePattern &pattern) override
@@ -2902,7 +2891,7 @@ public:
item->accept_vis (*this);
if (item->is_marked_for_strip ())
- rust_error_at (item->get_locus_slow (),
+ rust_error_at (item->get_locus (),
"cannot strip pattern in this position");
// TODO: quit stripping now? or keep going?
}
@@ -2926,7 +2915,7 @@ public:
auto &pattern = stmt.get_pattern ();
pattern->accept_vis (*this);
if (pattern->is_marked_for_strip ())
- rust_error_at (pattern->get_locus_slow (),
+ rust_error_at (pattern->get_locus (),
"cannot strip pattern in this position");
// similar for type
@@ -2935,7 +2924,7 @@ public:
auto &type = stmt.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
+ rust_error_at (type->get_locus (),
"cannot strip type in this position");
}
@@ -2947,7 +2936,7 @@ public:
auto &init_expr = stmt.get_init_expr ();
init_expr->accept_vis (*this);
if (init_expr->is_marked_for_strip ())
- rust_error_at (init_expr->get_locus_slow (),
+ rust_error_at (init_expr->get_locus (),
"cannot strip expression in this position - outer "
"attributes not allowed");
}
@@ -3016,7 +3005,7 @@ public:
auto &inner_type = type.get_type_in_parens ();
inner_type->accept_vis (*this);
if (inner_type->is_marked_for_strip ())
- rust_error_at (inner_type->get_locus_slow (),
+ rust_error_at (inner_type->get_locus (),
"cannot strip type in this position");
}
void visit (AST::ImplTraitTypeOneBound &type) override
@@ -3037,7 +3026,7 @@ public:
{
elem_type->accept_vis (*this);
if (elem_type->is_marked_for_strip ())
- rust_error_at (elem_type->get_locus_slow (),
+ rust_error_at (elem_type->get_locus (),
"cannot strip type in this position");
}
}
@@ -3051,7 +3040,7 @@ public:
auto &pointed_type = type.get_type_pointed_to ();
pointed_type->accept_vis (*this);
if (pointed_type->is_marked_for_strip ())
- rust_error_at (pointed_type->get_locus_slow (),
+ rust_error_at (pointed_type->get_locus (),
"cannot strip type in this position");
}
void visit (AST::ReferenceType &type) override
@@ -3060,7 +3049,7 @@ public:
auto &referenced_type = type.get_type_referenced ();
referenced_type->accept_vis (*this);
if (referenced_type->is_marked_for_strip ())
- rust_error_at (referenced_type->get_locus_slow (),
+ rust_error_at (referenced_type->get_locus (),
"cannot strip type in this position");
}
void visit (AST::ArrayType &type) override
@@ -3069,14 +3058,14 @@ public:
auto &base_type = type.get_elem_type ();
base_type->accept_vis (*this);
if (base_type->is_marked_for_strip ())
- rust_error_at (base_type->get_locus_slow (),
+ rust_error_at (base_type->get_locus (),
"cannot strip type in this position");
// same for expression
auto &size_expr = type.get_size_expr ();
size_expr->accept_vis (*this);
if (size_expr->is_marked_for_strip ())
- rust_error_at (size_expr->get_locus_slow (),
+ rust_error_at (size_expr->get_locus (),
"cannot strip expression in this position");
}
void visit (AST::SliceType &type) override
@@ -3085,7 +3074,7 @@ public:
auto &elem_type = type.get_elem_type ();
elem_type->accept_vis (*this);
if (elem_type->is_marked_for_strip ())
- rust_error_at (elem_type->get_locus_slow (),
+ rust_error_at (elem_type->get_locus (),
"cannot strip type in this position");
}
void visit (AST::InferredType &) override
@@ -3113,7 +3102,7 @@ public:
auto &type = param.get_type ();
type->accept_vis (*this);
if (type->is_marked_for_strip ())
- rust_error_at (type->get_locus_slow (),
+ rust_error_at (type->get_locus (),
"cannot strip type in this position");
// increment if nothing else happens
@@ -3128,7 +3117,7 @@ public:
auto &return_type = type.get_return_type ();
return_type->accept_vis (*this);
if (return_type->is_marked_for_strip ())
- rust_error_at (return_type->get_locus_slow (),
+ rust_error_at (return_type->get_locus (),
"cannot strip type in this position");
}
diff --git a/gcc/rust/hir/rust-ast-lower-expr.h b/gcc/rust/hir/rust-ast-lower-expr.h
index 3415567c86b..ff4c181d0e2 100644
--- a/gcc/rust/hir/rust-ast-lower-expr.h
+++ b/gcc/rust/hir/rust-ast-lower-expr.h
@@ -81,7 +81,7 @@ public:
expr->accept_vis (resolver);
if (resolver.translated == nullptr)
{
- rust_fatal_error (expr->get_locus_slow (), "Failed to lower expr: [%s]",
+ rust_fatal_error (expr->get_locus (), "Failed to lower expr: [%s]",
expr->as_string ().c_str ());
return nullptr;
}
@@ -91,8 +91,7 @@ public:
resolver.translated->get_mappings ().get_hirid (), resolver.translated);
resolver.mappings->insert_location (
resolver.translated->get_mappings ().get_crate_num (),
- resolver.translated->get_mappings ().get_hirid (),
- expr->get_locus_slow ());
+ resolver.translated->get_mappings ().get_hirid (), expr->get_locus ());
if (terminated != nullptr)
*terminated = resolver.terminated;
diff --git a/gcc/rust/hir/rust-ast-lower-item.h b/gcc/rust/hir/rust-ast-lower-item.h
index c7f874d1dc9..7efcffaf05b 100644
--- a/gcc/rust/hir/rust-ast-lower-item.h
+++ b/gcc/rust/hir/rust-ast-lower-item.h
@@ -47,7 +47,7 @@ public:
// this is useful for debugging
// if (resolver.translated == nullptr)
// {
- // rust_fatal_error (item->get_locus_slow (), "failed to lower: %s",
+ // rust_fatal_error (item->get_locus (), "failed to lower: %s",
// item->as_string ().c_str ());
// return nullptr;
// }
diff --git a/gcc/rust/hir/rust-ast-lower-struct-field-expr.h b/gcc/rust/hir/rust-ast-lower-struct-field-expr.h
index 3b313a78476..e6322dbb514 100644
--- a/gcc/rust/hir/rust-ast-lower-struct-field-expr.h
+++ b/gcc/rust/hir/rust-ast-lower-struct-field-expr.h
@@ -41,8 +41,7 @@ public:
compiler.translated->get_mappings ().get_hirid (), compiler.translated);
compiler.mappings->insert_location (
compiler.translated->get_mappings ().get_crate_num (),
- compiler.translated->get_mappings ().get_hirid (),
- field->get_locus_slow ());
+ compiler.translated->get_mappings ().get_hirid (), field->get_locus ());
return compiler.translated;
}
diff --git a/gcc/rust/hir/rust-ast-lower-type.h b/gcc/rust/hir/rust-ast-lower-type.h
index 9b5ec0a4df7..c16025d137b 100644
--- a/gcc/rust/hir/rust-ast-lower-type.h
+++ b/gcc/rust/hir/rust-ast-lower-type.h
@@ -106,8 +106,7 @@ public:
rust_assert (resolver.translated != nullptr);
resolver.mappings->insert_location (
resolver.translated->get_mappings ().get_crate_num (),
- resolver.translated->get_mappings ().get_hirid (),
- type->get_locus_slow ());
+ resolver.translated->get_mappings ().get_hirid (), type->get_locus ());
return resolver.translated;
}
@@ -282,8 +281,7 @@ public:
rust_assert (resolver.translated != nullptr);
resolver.mappings->insert_location (
resolver.translated->get_mappings ().get_crate_num (),
- resolver.translated->get_mappings ().get_hirid (),
- param->get_locus_slow ());
+ resolver.translated->get_mappings ().get_hirid (), param->get_locus ());
resolver.mappings->insert_hir_generic_param (
resolver.translated->get_mappings ().get_crate_num (),
resolver.translated->get_mappings ().get_hirid (), resolver.translated);
@@ -356,7 +354,7 @@ public:
resolver.mappings->insert_location (
resolver.translated->get_mappings ().get_crate_num (),
resolver.translated->get_mappings ().get_hirid (),
- resolver.translated->get_locus_slow ());
+ resolver.translated->get_locus ());
return resolver.translated;
}
diff --git a/gcc/rust/hir/rust-ast-lower.cc b/gcc/rust/hir/rust-ast-lower.cc
index e693799d4b5..d5138fd64ac 100644
--- a/gcc/rust/hir/rust-ast-lower.cc
+++ b/gcc/rust/hir/rust-ast-lower.cc
@@ -66,7 +66,7 @@ ASTLoweringBlock::visit (AST::BlockExpr &expr)
bool block_did_terminate = false;
expr.iterate_stmts ([&] (AST::Stmt *s) mutable -> bool {
if (block_did_terminate)
- rust_warning_at (s->get_locus_slow (), 0, "unreachable statement");
+ rust_warning_at (s->get_locus (), 0, "unreachable statement");
bool terminated = false;
auto translated_stmt = ASTLoweringStmt::translate (s, &terminated);
@@ -78,7 +78,7 @@ ASTLoweringBlock::visit (AST::BlockExpr &expr)
if (expr.has_tail_expr () && block_did_terminate)
{
// warning unreachable tail expressions
- rust_warning_at (expr.get_tail_expr ()->get_locus_slow (), 0,
+ rust_warning_at (expr.get_tail_expr ()->get_locus (), 0,
"unreachable expression");
}
diff --git a/gcc/rust/hir/tree/rust-hir-expr.h b/gcc/rust/hir/tree/rust-hir-expr.h
index 8d815c5adc6..bb15d4f9901 100644
--- a/gcc/rust/hir/tree/rust-hir-expr.h
+++ b/gcc/rust/hir/tree/rust-hir-expr.h
@@ -90,8 +90,7 @@ public:
return std::unique_ptr<LiteralExpr> (clone_literal_expr_impl ());
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -163,8 +162,7 @@ protected:
OperatorExpr &operator= (OperatorExpr &&other) = default;
public:
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
std::unique_ptr<Expr> &get_expr () { return main_or_left_expr; }
};
@@ -710,8 +708,7 @@ public:
GroupedExpr (GroupedExpr &&other) = default;
GroupedExpr &operator= (GroupedExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -915,8 +912,7 @@ public:
ArrayExpr (ArrayExpr &&other) = default;
ArrayExpr &operator= (ArrayExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -981,8 +977,7 @@ public:
ArrayIndexExpr (ArrayIndexExpr &&other) = default;
ArrayIndexExpr &operator= (ArrayIndexExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -1060,8 +1055,7 @@ public:
/* Note: syntactically, can disambiguate single-element tuple from parens with
* comma, i.e. (0,) rather than (0) */
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -1144,8 +1138,7 @@ public:
TupleIndexExpr (TupleIndexExpr &&other) = default;
TupleIndexExpr &operator= (TupleIndexExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -1211,8 +1204,7 @@ public:
inner_attrs (std::move (inner_attribs)), locus (locus)
{}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -1640,8 +1632,7 @@ public:
StructExprTuple (StructExprTuple &&other) = default;
StructExprTuple &operator= (StructExprTuple &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -1676,8 +1667,7 @@ public:
locus (locus)
{}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -1894,8 +1884,7 @@ public:
EnumExprStruct (EnumExprStruct &&other) = default;
EnumExprStruct &operator= (EnumExprStruct &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -1964,8 +1953,7 @@ public:
EnumExprTuple (EnumExprTuple &&other) = default;
EnumExprTuple &operator= (EnumExprTuple &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -2005,8 +1993,7 @@ public:
locus (locus)
{}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -2082,8 +2069,7 @@ public:
// Returns whether function call has parameters.
bool has_params () const { return !params.empty (); }
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -2172,8 +2158,7 @@ public:
MethodCallExpr (MethodCallExpr &&other) = default;
MethodCallExpr &operator= (MethodCallExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -2257,8 +2242,7 @@ public:
FieldAccessExpr (FieldAccessExpr &&other) = default;
FieldAccessExpr &operator= (FieldAccessExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -2361,8 +2345,7 @@ protected:
public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
};
// Represents a non-type-specified closure expression HIR node
@@ -2497,8 +2480,7 @@ public:
return std::unique_ptr<BlockExpr> (clone_block_expr_impl ());
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -2518,7 +2500,7 @@ public:
if (statements.size () == 0)
return get_locus ();
- return statements[statements.size () - 1]->get_locus_slow ();
+ return statements[statements.size () - 1]->get_locus ();
}
std::unique_ptr<Expr> &get_final_expr () { return expr; }
@@ -2632,8 +2614,7 @@ public:
label (std::move (label)), locus (locus)
{}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -2712,8 +2693,7 @@ public:
BreakExpr (BreakExpr &&other) = default;
BreakExpr &operator= (BreakExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -2746,8 +2726,7 @@ protected:
{}
public:
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
};
// Range from (inclusive) and to (exclusive) expression HIR node object
@@ -3089,8 +3068,7 @@ public:
ReturnExpr (ReturnExpr &&other) = default;
ReturnExpr &operator= (ReturnExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -3151,8 +3129,7 @@ public:
UnsafeBlockExpr (UnsafeBlockExpr &&other) = default;
UnsafeBlockExpr &operator= (UnsafeBlockExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -3250,8 +3227,7 @@ protected:
public:
bool has_loop_label () const { return !loop_label.is_error (); }
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
std::unique_ptr<HIR::BlockExpr> &get_loop_block () { return loop_block; };
@@ -3540,8 +3516,7 @@ public:
* vector of else ifs - i.e. not like a switch statement. TODO - is this a
* better approach? or does it not parse correctly and have downsides? */
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -3765,8 +3740,7 @@ public:
return std::unique_ptr<IfLetExpr> (clone_if_let_expr_impl ());
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -4341,8 +4315,7 @@ public:
MatchExpr (MatchExpr &&other) = default;
MatchExpr &operator= (MatchExpr &&other) = default;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -4396,8 +4369,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -4450,8 +4422,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
diff --git a/gcc/rust/hir/tree/rust-hir-item.h b/gcc/rust/hir/tree/rust-hir-item.h
index 7a05f02067b..99fc91de117 100644
--- a/gcc/rust/hir/tree/rust-hir-item.h
+++ b/gcc/rust/hir/tree/rust-hir-item.h
@@ -104,9 +104,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
-
- Location get_locus_slow () const override final { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -704,7 +702,7 @@ public:
* the module. */
void add_crate_name (std::vector<std::string> &names) const override;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
protected:
/* Use covariance to implement clone function as returning this object
@@ -754,7 +752,7 @@ public:
as_clause_name (std::move (as_clause_name)), locus (locus)
{}
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -1019,7 +1017,7 @@ public:
UseDeclaration (UseDeclaration &&other) = default;
UseDeclaration &operator= (UseDeclaration &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -1126,7 +1124,7 @@ public:
Function (Function &&other) = default;
Function &operator= (Function &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
Location get_impl_locus () const final { return get_locus (); }
@@ -1268,7 +1266,7 @@ public:
TypeAlias (TypeAlias &&other) = default;
TypeAlias &operator= (TypeAlias &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
Location get_impl_locus () const final { return get_locus (); }
@@ -1340,7 +1338,7 @@ public:
// Returns whether struct has a where clause.
bool has_where_clause () const { return !where_clause.is_empty (); }
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
std::vector<std::unique_ptr<GenericParam> > &get_generic_params ()
{
@@ -1863,7 +1861,7 @@ public:
Enum (Enum &&other) = default;
Enum &operator= (Enum &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -1953,7 +1951,7 @@ public:
Identifier get_identifier () const { return union_name; }
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -2017,7 +2015,7 @@ public:
// as identifier) constant.
bool is_unnamed () const { return identifier == std::string ("_"); }
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
Location get_impl_locus () const final { return get_locus (); }
@@ -2095,7 +2093,7 @@ public:
StaticItem (StaticItem &&other) = default;
StaticItem &operator= (StaticItem &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -2534,7 +2532,7 @@ public:
Trait (Trait &&other) = default;
Trait &operator= (Trait &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -2642,7 +2640,7 @@ public:
// Returns whether impl has inner attributes.
bool has_inner_attrs () const { return !inner_attrs.empty (); }
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
std::unique_ptr<Type> &get_type () { return impl_type; };
@@ -2998,7 +2996,7 @@ public:
ExternBlock (ExternBlock &&other) = default;
ExternBlock &operator= (ExternBlock &&other) = default;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
diff --git a/gcc/rust/hir/tree/rust-hir-path.h b/gcc/rust/hir/tree/rust-hir-path.h
index a8bbbb62ef6..0e3c430edb7 100644
--- a/gcc/rust/hir/tree/rust-hir-path.h
+++ b/gcc/rust/hir/tree/rust-hir-path.h
@@ -315,8 +315,7 @@ public:
return convert_to_simple_path (has_opening_scope_resolution);
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -791,8 +790,7 @@ public:
path_type (std::move (qual_path_type)), locus (locus)
{}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
diff --git a/gcc/rust/hir/tree/rust-hir-stmt.h b/gcc/rust/hir/tree/rust-hir-stmt.h
index 584b0e358cd..b049ea9bd8d 100644
--- a/gcc/rust/hir/tree/rust-hir-stmt.h
+++ b/gcc/rust/hir/tree/rust-hir-stmt.h
@@ -37,7 +37,7 @@ public:
: Stmt (std::move (mappings)), locus (locus)
{}
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -109,9 +109,7 @@ public:
LetStmt (LetStmt &&other) = default;
LetStmt &operator= (LetStmt &&other) = default;
- Location get_locus_slow () const override { return get_locus (); }
-
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -136,7 +134,7 @@ class ExprStmt : public Stmt
Location locus;
public:
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
protected:
ExprStmt (Analysis::NodeMapping mappings, Location locus)
diff --git a/gcc/rust/hir/tree/rust-hir-type.h b/gcc/rust/hir/tree/rust-hir-type.h
index 8d75d0285d3..cf33b9dfaee 100644
--- a/gcc/rust/hir/tree/rust-hir-type.h
+++ b/gcc/rust/hir/tree/rust-hir-type.h
@@ -54,7 +54,7 @@ public:
std::string as_string () const override;
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -63,8 +63,6 @@ public:
return mappings;
}
- Location get_locus_slow () const override final { return get_locus (); }
-
BoundType get_bound_type () const final override { return TRAITBOUND; }
TypePath &get_path () { return type_path; }
diff --git a/gcc/rust/hir/tree/rust-hir.h b/gcc/rust/hir/tree/rust-hir.h
index b8acf1a6e40..b994d063452 100644
--- a/gcc/rust/hir/tree/rust-hir.h
+++ b/gcc/rust/hir/tree/rust-hir.h
@@ -100,9 +100,7 @@ public:
virtual void accept_vis (HIRVisitor &vis) = 0;
- /* HACK: slow way of getting location from base expression through virtual
- * methods. */
- virtual Location get_locus_slow () const { return Location (); }
+ virtual Location get_locus () const = 0;
virtual bool is_unit_check_needed () const { return false; }
@@ -194,9 +192,7 @@ public:
virtual ~Expr () {}
- /* HACK: slow way of getting location from base expression through virtual
- * methods. */
- virtual Location get_locus_slow () const { return Location (); }
+ virtual Location get_locus () const = 0;
// HACK: strictly not needed, but faster than full downcast clone
virtual bool is_expr_without_block () const = 0;
@@ -284,8 +280,7 @@ public:
return "( " + ident + " (" + get_mappings ().as_string () + "))";
}
- Location get_locus () const { return locus; }
- Location get_locus_slow () const override { return get_locus (); }
+ Location get_locus () const override final { return locus; }
void accept_vis (HIRVisitor &vis) override;
@@ -426,7 +421,7 @@ public:
virtual Analysis::NodeMapping get_mappings () const = 0;
- virtual Location get_locus_slow () const = 0;
+ virtual Location get_locus () const = 0;
virtual BoundType get_bound_type () const = 0;
@@ -476,15 +471,13 @@ public:
return lifetime_type;
}
- Location get_locus () const { return locus; }
+ Location get_locus () const override final { return locus; }
Analysis::NodeMapping get_mappings () const override final
{
return mappings;
}
- Location get_locus_slow () const override final { return get_locus (); }
-
BoundType get_bound_type () const final override { return LIFETIME; }
protected:
@@ -522,7 +515,7 @@ public:
virtual void accept_vis (HIRVisitor &vis) = 0;
- virtual Location get_locus_slow () const = 0;
+ virtual Location get_locus () const = 0;
Analysis::NodeMapping get_mappings () const { return mappings; }
@@ -609,9 +602,7 @@ public:
void accept_vis (HIRVisitor &vis) override;
- Location get_locus () const { return locus; }
-
- Location get_locus_slow () const override final { return get_locus (); }
+ Location get_locus () const override final { return locus; }
protected:
/* Use covariance to implement clone function as returning this object rather
diff --git a/gcc/rust/lint/rust-lint-marklive.cc b/gcc/rust/lint/rust-lint-marklive.cc
index 87fa3ef2f3e..f383d48377e 100644
--- a/gcc/rust/lint/rust-lint-marklive.cc
+++ b/gcc/rust/lint/rust-lint-marklive.cc
@@ -211,7 +211,7 @@ MarkLive::visit (HIR::FieldAccessExpr &expr)
if (!tyctx->lookup_type (
expr.get_receiver_expr ()->get_mappings ().get_hirid (), &receiver))
{
- rust_error_at (expr.get_receiver_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_receiver_expr ()->get_locus (),
"unresolved type for receiver");
}
bool ok = receiver->get_kind () == TyTy::TypeKind::ADT;
@@ -223,7 +223,7 @@ MarkLive::visit (HIR::FieldAccessExpr &expr)
adt->get_field (expr.get_field_name (), &index);
if (index >= adt->num_fields ())
{
- rust_error_at (expr.get_receiver_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_receiver_expr ()->get_locus (),
"cannot access struct %s by index: %ld",
adt->get_name ().c_str (), index);
return;
diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h
index fa6d409c6dc..8ee9e42f944 100644
--- a/gcc/rust/parse/rust-parse-impl.h
+++ b/gcc/rust/parse/rust-parse-impl.h
@@ -11431,7 +11431,7 @@ Parser<ManagedTokenSource>::parse_stmt_or_expr_with_block (
return ExprOrStmt (std::move (expr));
// internal block expr must either have semicolons followed, or evaluate to ()
- auto locus = expr->get_locus_slow ();
+ auto locus = expr->get_locus ();
std::unique_ptr<AST::ExprStmtWithBlock> stmt (
new AST::ExprStmtWithBlock (std::move (expr), locus,
tok->get_id () == SEMICOLON));
@@ -12823,7 +12823,7 @@ Parser<ManagedTokenSource>::left_denotation (const_TokenPtr tok,
{
// FIXME: allow for outer attributes to be applied
case QUESTION_MARK: {
- Location left_locus = left->get_locus_slow ();
+ Location left_locus = left->get_locus ();
// error propagation expression - unary postfix
return std::unique_ptr<AST::ErrorPropagationExpr> (
new AST::ErrorPropagationExpr (std::move (left),
@@ -13185,7 +13185,7 @@ Parser<ManagedTokenSource>::parse_arithmetic_or_logical_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ArithmeticOrLogicalExpr> (
new AST::ArithmeticOrLogicalExpr (std::move (left), std::move (right),
@@ -13206,7 +13206,7 @@ Parser<ManagedTokenSource>::parse_binary_plus_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ArithmeticOrLogicalExpr> (
new AST::ArithmeticOrLogicalExpr (std::move (left), std::move (right),
@@ -13227,7 +13227,7 @@ Parser<ManagedTokenSource>::parse_binary_minus_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ArithmeticOrLogicalExpr> (
new AST::ArithmeticOrLogicalExpr (std::move (left), std::move (right),
@@ -13249,7 +13249,7 @@ Parser<ManagedTokenSource>::parse_binary_mult_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ArithmeticOrLogicalExpr> (
new AST::ArithmeticOrLogicalExpr (std::move (left), std::move (right),
@@ -13271,7 +13271,7 @@ Parser<ManagedTokenSource>::parse_binary_div_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ArithmeticOrLogicalExpr> (
new AST::ArithmeticOrLogicalExpr (std::move (left), std::move (right),
@@ -13293,7 +13293,7 @@ Parser<ManagedTokenSource>::parse_binary_mod_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ArithmeticOrLogicalExpr> (
new AST::ArithmeticOrLogicalExpr (std::move (left), std::move (right),
@@ -13316,7 +13316,7 @@ Parser<ManagedTokenSource>::parse_bitwise_and_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ArithmeticOrLogicalExpr> (
new AST::ArithmeticOrLogicalExpr (std::move (left), std::move (right),
@@ -13339,7 +13339,7 @@ Parser<ManagedTokenSource>::parse_bitwise_or_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ArithmeticOrLogicalExpr> (
new AST::ArithmeticOrLogicalExpr (std::move (left), std::move (right),
@@ -13362,7 +13362,7 @@ Parser<ManagedTokenSource>::parse_bitwise_xor_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ArithmeticOrLogicalExpr> (
new AST::ArithmeticOrLogicalExpr (std::move (left), std::move (right),
@@ -13384,7 +13384,7 @@ Parser<ManagedTokenSource>::parse_left_shift_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ArithmeticOrLogicalExpr> (
new AST::ArithmeticOrLogicalExpr (std::move (left), std::move (right),
@@ -13406,7 +13406,7 @@ Parser<ManagedTokenSource>::parse_right_shift_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ArithmeticOrLogicalExpr> (
new AST::ArithmeticOrLogicalExpr (std::move (left), std::move (right),
@@ -13458,7 +13458,7 @@ Parser<ManagedTokenSource>::parse_comparison_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ComparisonExpr> (
new AST::ComparisonExpr (std::move (left), std::move (right), expr_type,
@@ -13479,7 +13479,7 @@ Parser<ManagedTokenSource>::parse_binary_equal_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ComparisonExpr> (
new AST::ComparisonExpr (std::move (left), std::move (right),
@@ -13500,7 +13500,7 @@ Parser<ManagedTokenSource>::parse_binary_not_equal_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ComparisonExpr> (
new AST::ComparisonExpr (std::move (left), std::move (right),
@@ -13521,7 +13521,7 @@ Parser<ManagedTokenSource>::parse_binary_greater_than_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ComparisonExpr> (
new AST::ComparisonExpr (std::move (left), std::move (right),
@@ -13542,7 +13542,7 @@ Parser<ManagedTokenSource>::parse_binary_less_than_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ComparisonExpr> (
new AST::ComparisonExpr (std::move (left), std::move (right),
@@ -13563,7 +13563,7 @@ Parser<ManagedTokenSource>::parse_binary_greater_equal_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ComparisonExpr> (
new AST::ComparisonExpr (std::move (left), std::move (right),
@@ -13584,7 +13584,7 @@ Parser<ManagedTokenSource>::parse_binary_less_equal_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::ComparisonExpr> (
new AST::ComparisonExpr (std::move (left), std::move (right),
@@ -13605,7 +13605,7 @@ Parser<ManagedTokenSource>::parse_lazy_or_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::LazyBooleanExpr> (
new AST::LazyBooleanExpr (std::move (left), std::move (right),
@@ -13626,7 +13626,7 @@ Parser<ManagedTokenSource>::parse_lazy_and_expr (
return nullptr;
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::LazyBooleanExpr> (
new AST::LazyBooleanExpr (std::move (left), std::move (right),
@@ -13648,7 +13648,7 @@ Parser<ManagedTokenSource>::parse_type_cast_expr (
// FIXME: how do I get precedence put in here?
// TODO: check types. actually, do so during semantic analysis
- Location locus = expr_to_cast->get_locus_slow ();
+ Location locus = expr_to_cast->get_locus ();
return std::unique_ptr<AST::TypeCastExpr> (
new AST::TypeCastExpr (std::move (expr_to_cast), std::move (type), locus));
@@ -13669,7 +13669,7 @@ Parser<ManagedTokenSource>::parse_assig_expr (
// FIXME: ensure right-associativity for this - 'LBP - 1' may do this?
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::AssignmentExpr> (
new AST::AssignmentExpr (std::move (left), std::move (right), locus));
@@ -13728,7 +13728,7 @@ Parser<ManagedTokenSource>::parse_compound_assignment_expr (
// FIXME: ensure right-associativity for this - 'LBP - 1' may do this?
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::CompoundAssignmentExpr> (
new AST::CompoundAssignmentExpr (std::move (left), std::move (right),
@@ -13750,7 +13750,7 @@ Parser<ManagedTokenSource>::parse_plus_assig_expr (
// FIXME: ensure right-associativity for this - 'LBP - 1' may do this?
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::CompoundAssignmentExpr> (
new AST::CompoundAssignmentExpr (std::move (left), std::move (right),
@@ -13772,7 +13772,7 @@ Parser<ManagedTokenSource>::parse_minus_assig_expr (
// FIXME: ensure right-associativity for this - 'LBP - 1' may do this?
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::CompoundAssignmentExpr> (
new AST::CompoundAssignmentExpr (std::move (left), std::move (right),
@@ -13795,7 +13795,7 @@ Parser<ManagedTokenSource>::parse_mult_assig_expr (
// FIXME: ensure right-associativity for this - 'LBP - 1' may do this?
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::CompoundAssignmentExpr> (
new AST::CompoundAssignmentExpr (std::move (left), std::move (right),
@@ -13818,7 +13818,7 @@ Parser<ManagedTokenSource>::parse_div_assig_expr (
// FIXME: ensure right-associativity for this - 'LBP - 1' may do this?
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::CompoundAssignmentExpr> (
new AST::CompoundAssignmentExpr (std::move (left), std::move (right),
@@ -13841,7 +13841,7 @@ Parser<ManagedTokenSource>::parse_mod_assig_expr (
// FIXME: ensure right-associativity for this - 'LBP - 1' may do this?
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::CompoundAssignmentExpr> (
new AST::CompoundAssignmentExpr (std::move (left), std::move (right),
@@ -13864,7 +13864,7 @@ Parser<ManagedTokenSource>::parse_and_assig_expr (
// FIXME: ensure right-associativity for this - 'LBP - 1' may do this?
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::CompoundAssignmentExpr> (
new AST::CompoundAssignmentExpr (std::move (left), std::move (right),
@@ -13887,7 +13887,7 @@ Parser<ManagedTokenSource>::parse_or_assig_expr (
// FIXME: ensure right-associativity for this - 'LBP - 1' may do this?
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::CompoundAssignmentExpr> (
new AST::CompoundAssignmentExpr (std::move (left), std::move (right),
@@ -13910,7 +13910,7 @@ Parser<ManagedTokenSource>::parse_xor_assig_expr (
// FIXME: ensure right-associativity for this - 'LBP - 1' may do this?
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::CompoundAssignmentExpr> (
new AST::CompoundAssignmentExpr (std::move (left), std::move (right),
@@ -13933,7 +13933,7 @@ Parser<ManagedTokenSource>::parse_left_shift_assig_expr (
// FIXME: ensure right-associativity for this - 'LBP - 1' may do this?
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::CompoundAssignmentExpr> (
new AST::CompoundAssignmentExpr (std::move (left), std::move (right),
@@ -13956,7 +13956,7 @@ Parser<ManagedTokenSource>::parse_right_shift_assig_expr (
// FIXME: ensure right-associativity for this - 'LBP - 1' may do this?
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::CompoundAssignmentExpr> (
new AST::CompoundAssignmentExpr (std::move (left), std::move (right),
@@ -13985,7 +13985,7 @@ Parser<ManagedTokenSource>::parse_await_expr (
}
// TODO: check inside async block in semantic analysis
- Location locus = expr_to_await->get_locus_slow ();
+ Location locus = expr_to_await->get_locus ();
return std::unique_ptr<AST::AwaitExpr> (
new AST::AwaitExpr (std::move (expr_to_await), std::move (outer_attrs),
@@ -14008,7 +14008,7 @@ Parser<ManagedTokenSource>::parse_led_range_exclusive_expr (
std::unique_ptr<AST::Expr> right
= parse_expr (LBP_DOT_DOT, AST::AttrVec (), restrictions);
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
if (right == nullptr)
{
@@ -14066,7 +14066,7 @@ Parser<ManagedTokenSource>::parse_range_inclusive_expr (
// FIXME: make non-associative
// TODO: check types. actually, do so during semantic analysis
- Location locus = left->get_locus_slow ();
+ Location locus = left->get_locus ();
return std::unique_ptr<AST::RangeFromToInclExpr> (
new AST::RangeFromToInclExpr (std::move (left), std::move (right), locus));
@@ -14114,7 +14114,7 @@ Parser<ManagedTokenSource>::parse_tuple_index_expr (
}
int index_int = atoi (index.c_str ());
- Location locus = tuple_expr->get_locus_slow ();
+ Location locus = tuple_expr->get_locus ();
return std::unique_ptr<AST::TupleIndexExpr> (
new AST::TupleIndexExpr (std::move (tuple_expr), index_int,
@@ -14145,7 +14145,7 @@ Parser<ManagedTokenSource>::parse_index_expr (
}
// TODO: check types. actually, do so during semantic analysis
- Location locus = array_expr->get_locus_slow ();
+ Location locus = array_expr->get_locus ();
return std::unique_ptr<AST::ArrayIndexExpr> (
new AST::ArrayIndexExpr (std::move (array_expr), std::move (index_expr),
@@ -14167,7 +14167,7 @@ Parser<ManagedTokenSource>::parse_field_access_expr (
Identifier ident = ident_tok->get_str ();
- Location locus = struct_expr->get_locus_slow ();
+ Location locus = struct_expr->get_locus ();
// TODO: check types. actually, do so during semantic analysis
return std::unique_ptr<AST::FieldAccessExpr> (
@@ -14230,7 +14230,7 @@ Parser<ManagedTokenSource>::parse_method_call_expr (
}
// TODO: check types. actually do so in semantic analysis pass.
- Location locus = receiver_expr->get_locus_slow ();
+ Location locus = receiver_expr->get_locus ();
return std::unique_ptr<AST::MethodCallExpr> (
new AST::MethodCallExpr (std::move (receiver_expr), std::move (segment),
@@ -14277,7 +14277,7 @@ Parser<ManagedTokenSource>::parse_function_call_expr (
}
// TODO: check types. actually, do so during semantic analysis
- Location locus = function_expr->get_locus_slow ();
+ Location locus = function_expr->get_locus ();
return std::unique_ptr<AST::CallExpr> (
new AST::CallExpr (std::move (function_expr), std::move (params),
@@ -14772,7 +14772,7 @@ Parser<ManagedTokenSource>::parse_tuple_index_expr_float (
// get int from string
int index = atoi (index_str.c_str ());
- Location locus = tuple_expr->get_locus_slow ();
+ Location locus = tuple_expr->get_locus ();
return std::unique_ptr<AST::TupleIndexExpr> (
new AST::TupleIndexExpr (std::move (tuple_expr), index,
diff --git a/gcc/rust/resolve/rust-ast-resolve-item.h b/gcc/rust/resolve/rust-ast-resolve-item.h
index bc05e93069c..d3c053b609f 100644
--- a/gcc/rust/resolve/rust-ast-resolve-item.h
+++ b/gcc/rust/resolve/rust-ast-resolve-item.h
@@ -400,9 +400,9 @@ public:
auto Self
= CanonicalPath::get_big_self (impl_block.get_type ()->get_node_id ());
- resolver->get_type_scope ().insert (
- Self, impl_block.get_type ()->get_node_id (),
- impl_block.get_type ()->get_locus_slow ());
+ resolver->get_type_scope ().insert (Self,
+ impl_block.get_type ()->get_node_id (),
+ impl_block.get_type ()->get_locus ());
for (auto &impl_item : impl_block.get_impl_items ())
{
@@ -519,9 +519,9 @@ public:
auto Self
= CanonicalPath::get_big_self (impl_block.get_type ()->get_node_id ());
- resolver->get_type_scope ().insert (
- Self, impl_block.get_type ()->get_node_id (),
- impl_block.get_type ()->get_locus_slow ());
+ resolver->get_type_scope ().insert (Self,
+ impl_block.get_type ()->get_node_id (),
+ impl_block.get_type ()->get_locus ());
for (auto &impl_item : impl_block.get_impl_items ())
{
diff --git a/gcc/rust/resolve/rust-ast-resolve-type.h b/gcc/rust/resolve/rust-ast-resolve-type.h
index b8affe68c41..97c031199b3 100644
--- a/gcc/rust/resolve/rust-ast-resolve-type.h
+++ b/gcc/rust/resolve/rust-ast-resolve-type.h
@@ -211,7 +211,7 @@ public:
// https://github.com/rust-lang/rust/blob/1f94abcda6884893d4723304102089198caa0839/compiler/rustc_resolve/src/lib.rs#L1722
if (!resolver->get_type_scope ().lookup (canonical_path, &resolved_node))
{
- rust_error_at (path.get_locus_slow (), "failed to resolve TypePath: %s",
+ rust_error_at (path.get_locus (), "failed to resolve TypePath: %s",
canonical_path.get ().c_str ());
return UNKNOWN_NODEID;
}
@@ -231,7 +231,7 @@ public:
ResolveType resolver (parent, canonicalize_type_with_generics);
type->accept_vis (resolver);
if (!resolver.ok)
- rust_error_at (type->get_locus_slow (), "unresolved type");
+ rust_error_at (type->get_locus (), "unresolved type");
return resolver.resolved_node;
};
@@ -311,7 +311,7 @@ public:
ResolveTypeBound resolver (parent, canonicalize_type_with_generics);
type->accept_vis (resolver);
if (!resolver.ok)
- rust_error_at (type->get_locus_slow (), "unresolved type bound");
+ rust_error_at (type->get_locus (), "unresolved type bound");
return resolver.resolved_node;
};
@@ -346,7 +346,7 @@ public:
ResolveGenericParam resolver (parent);
param->accept_vis (resolver);
if (!resolver.ok)
- rust_error_at (param->get_locus_slow (), "unresolved generic parameter");
+ rust_error_at (param->get_locus (), "unresolved generic parameter");
return resolver.resolved_node;
};
diff --git a/gcc/rust/resolve/rust-ast-verify-assignee.h b/gcc/rust/resolve/rust-ast-verify-assignee.h
index aed01196f81..9da3883220d 100644
--- a/gcc/rust/resolve/rust-ast-verify-assignee.h
+++ b/gcc/rust/resolve/rust-ast-verify-assignee.h
@@ -35,7 +35,7 @@ public:
VerifyAsignee checker (parent);
assignee->accept_vis (checker);
if (!checker.ok)
- rust_error_at (assignee->get_locus_slow (),
+ rust_error_at (assignee->get_locus (),
"invalid left-hand side of assignment");
return checker.ok;
}
diff --git a/gcc/rust/typecheck/rust-hir-const-fold.h b/gcc/rust/typecheck/rust-hir-const-fold.h
index 9e0450e8882..1bff7ef13b7 100644
--- a/gcc/rust/typecheck/rust-hir-const-fold.h
+++ b/gcc/rust/typecheck/rust-hir-const-fold.h
@@ -211,7 +211,7 @@ public:
item.accept_vis (folder);
if (folder.ctx->get_backend ()->is_error_expression (folder.folded))
{
- rust_error_at (item.get_locus_slow (), "non const value");
+ rust_error_at (item.get_locus (), "non const value");
return nullptr;
}
@@ -240,7 +240,7 @@ public:
expr->accept_vis (folder);
if (folder.ctx->get_backend ()->is_error_expression (folder.folded))
{
- rust_error_at (expr->get_locus_slow (), "non const value");
+ rust_error_at (expr->get_locus (), "non const value");
return nullptr;
}
diff --git a/gcc/rust/typecheck/rust-hir-type-check-expr.h b/gcc/rust/typecheck/rust-hir-type-check-expr.h
index a95a4e91c78..274451606cb 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-expr.h
+++ b/gcc/rust/typecheck/rust-hir-type-check-expr.h
@@ -49,8 +49,7 @@ public:
if (resolver.infered == nullptr)
{
- rust_error_at (expr->get_locus_slow (),
- "failed to type resolve expression");
+ rust_error_at (expr->get_locus (), "failed to type resolve expression");
return new TyTy::ErrorType (expr->get_mappings ().get_hirid ());
}
@@ -67,7 +66,7 @@ public:
= TypeCheckExpr::Resolve (expr.get_tuple_expr ().get (), inside_loop);
if (resolved == nullptr)
{
- rust_error_at (expr.get_tuple_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_tuple_expr ()->get_locus (),
"failed to resolve TupleIndexExpr receiver");
return;
}
@@ -76,7 +75,7 @@ public:
|| resolved->get_kind () == TyTy::TypeKind::TUPLE;
if (!is_valid_type)
{
- rust_error_at (expr.get_tuple_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_tuple_expr ()->get_locus (),
"Expected Tuple or ADT got: %s",
resolved->as_string ().c_str ());
return;
@@ -203,7 +202,7 @@ public:
= TypeCheckExpr::Resolve (expr.get_receiver ().get (), false);
if (receiver_tyty == nullptr)
{
- rust_error_at (expr.get_receiver ()->get_locus_slow (),
+ rust_error_at (expr.get_receiver ()->get_locus (),
"failed to resolve receiver in MethodCallExpr");
return;
}
@@ -771,7 +770,7 @@ public:
= size_ty->unify (TypeCheckExpr::Resolve (expr.get_index_expr (), false));
if (resolved_index_expr == nullptr)
{
- rust_error_at (expr.get_index_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_index_expr ()->get_locus (),
"Type Resolver failure in Index for ArrayIndexExpr");
return;
}
@@ -782,13 +781,13 @@ public:
expr.get_array_expr ()->accept_vis (*this);
if (infered == nullptr)
{
- rust_error_at (expr.get_index_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_index_expr ()->get_locus (),
"failed to resolve array reference expression");
return;
}
else if (infered->get_kind () != TyTy::TypeKind::ARRAY)
{
- rust_error_at (expr.get_index_expr ()->get_locus_slow (),
+ rust_error_at (expr.get_index_expr ()->get_locus (),
"expected an ArrayType got [%s]",
infered->as_string ().c_str ());
infered = nullptr;
@@ -936,7 +935,7 @@ public:
= TypeCheckExpr::Resolve (expr.get_loop_block ().get (), true);
if (!block_expr->is_unit ())
{
- rust_error_at (expr.get_loop_block ()->get_locus_slow (),
+ rust_error_at (expr.get_loop_block ()->get_locus (),
"expected %<()%> got %s",
block_expr->as_string ().c_str ());
return;
@@ -965,7 +964,7 @@ public:
if (!block_expr->is_unit ())
{
- rust_error_at (expr.get_loop_block ()->get_locus_slow (),
+ rust_error_at (expr.get_loop_block ()->get_locus (),
"expected %<()%> got %s",
block_expr->as_string ().c_str ());
return;
diff --git a/gcc/rust/typecheck/rust-hir-type-check-type.h b/gcc/rust/typecheck/rust-hir-type-check-type.h
index fff86beaa27..0cc1cfb3d40 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-type.h
+++ b/gcc/rust/typecheck/rust-hir-type-check-type.h
@@ -257,7 +257,7 @@ public:
if (resolver.resolved == nullptr)
{
- rust_error_at (param->get_locus_slow (),
+ rust_error_at (param->get_locus (),
"failed to setup generic parameter");
return nullptr;
}
diff --git a/gcc/rust/typecheck/rust-hir-type-check.cc b/gcc/rust/typecheck/rust-hir-type-check.cc
index 4b66fdbd6e6..7f0e0ffdb30 100644
--- a/gcc/rust/typecheck/rust-hir-type-check.cc
+++ b/gcc/rust/typecheck/rust-hir-type-check.cc
@@ -97,7 +97,7 @@ TypeCheckExpr::visit (HIR::BlockExpr &expr)
auto resolved = TypeCheckStmt::Resolve (s, inside_loop);
if (resolved == nullptr)
{
- rust_error_at (s->get_locus_slow (), "failure to resolve type");
+ rust_error_at (s->get_locus (), "failure to resolve type");
return false;
}
@@ -145,9 +145,8 @@ TypeCheckStructExpr::visit (HIR::StructExprStructFields &struct_expr)
= (TyTy::ADTType *) struct_path_resolved->unify (base_resolved);
if (struct_def == nullptr)
{
- rust_fatal_error (
- struct_expr.struct_base->base_struct->get_locus_slow (),
- "incompatible types for base struct reference");
+ rust_fatal_error (struct_expr.struct_base->base_struct->get_locus (),
+ "incompatible types for base struct reference");
return;
}
}
@@ -229,11 +228,11 @@ TypeCheckStructExpr::visit (HIR::StructExprStructFields &struct_expr)
HIR::Expr *field_value = new HIR::FieldAccessExpr (
mapping, std::unique_ptr<HIR::Expr> (receiver), missing,
std::move (outer_attribs),
- struct_expr.struct_base->base_struct->get_locus_slow ());
+ struct_expr.struct_base->base_struct->get_locus ());
implicit_field = new HIR::StructExprFieldIdentifierValue (
mapping, missing, std::unique_ptr<HIR::Expr> (field_value),
- struct_expr.struct_base->base_struct->get_locus_slow ());
+ struct_expr.struct_base->base_struct->get_locus ());
size_t field_index;
bool ok = struct_path_resolved->get_field (missing, &field_index);
diff --git a/gcc/rust/typecheck/rust-tyty.cc b/gcc/rust/typecheck/rust-tyty.cc
index 56fdafd7919..e449b55f41e 100644
--- a/gcc/rust/typecheck/rust-tyty.cc
+++ b/gcc/rust/typecheck/rust-tyty.cc
@@ -2207,7 +2207,7 @@ TypeCheckCallExpr::visit (ADTType &type)
BaseType *arg = Resolver::TypeCheckExpr::Resolve (p, false);
if (arg == nullptr)
{
- rust_error_at (p->get_locus_slow (), "failed to resolve argument type");
+ rust_error_at (p->get_locus (), "failed to resolve argument type");
return false;
}
@@ -2262,7 +2262,7 @@ TypeCheckCallExpr::visit (FnType &type)
auto argument_expr_tyty = Resolver::TypeCheckExpr::Resolve (param, false);
if (argument_expr_tyty == nullptr)
{
- rust_error_at (param->get_locus_slow (),
+ rust_error_at (param->get_locus (),
"failed to resolve type for argument expr in CallExpr");
return false;
}
@@ -2276,7 +2276,7 @@ TypeCheckCallExpr::visit (FnType &type)
resolved_argument_type = fnparam.second->unify (argument_expr_tyty);
if (resolved_argument_type == nullptr)
{
- rust_error_at (param->get_locus_slow (),
+ rust_error_at (param->get_locus (),
"Type Resolution failure on parameter");
return false;
}
@@ -2327,7 +2327,7 @@ TypeCheckCallExpr::visit (FnPtr &type)
auto argument_expr_tyty = Resolver::TypeCheckExpr::Resolve (param, false);
if (argument_expr_tyty == nullptr)
{
- rust_error_at (param->get_locus_slow (),
+ rust_error_at (param->get_locus (),
"failed to resolve type for argument expr in CallExpr");
return false;
}
@@ -2335,7 +2335,7 @@ TypeCheckCallExpr::visit (FnPtr &type)
auto resolved_argument_type = fnparam->unify (argument_expr_tyty);
if (resolved_argument_type == nullptr)
{
- rust_error_at (param->get_locus_slow (),
+ rust_error_at (param->get_locus (),
"Type Resolution failure on parameter");
return false;
}
@@ -2378,7 +2378,7 @@ TypeCheckMethodCallExpr::visit (FnType &type)
auto argument_expr_tyty = Resolver::TypeCheckExpr::Resolve (param, false);
if (argument_expr_tyty == nullptr)
{
- rust_error_at (param->get_locus_slow (),
+ rust_error_at (param->get_locus (),
"failed to resolve type for argument expr in CallExpr");
return false;
}
@@ -2386,7 +2386,7 @@ TypeCheckMethodCallExpr::visit (FnType &type)
auto resolved_argument_type = fnparam.second->unify (argument_expr_tyty);
if (resolved_argument_type == nullptr)
{
- rust_error_at (param->get_locus_slow (),
+ rust_error_at (param->get_locus (),
"Type Resolution failure on parameter");
return false;
}
diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc
index d544042b344..deade08db37 100644
--- a/gcc/rust/util/rust-hir-map.cc
+++ b/gcc/rust/util/rust-hir-map.cc
@@ -380,7 +380,7 @@ Mappings::insert_hir_expr (CrateNum crateNum, HirId id, HIR::Expr *expr)
{
hirExprMappings[crateNum][id] = expr;
nodeIdToHirMappings[crateNum][expr->get_mappings ().get_nodeid ()] = id;
- insert_location (crateNum, id, expr->get_locus_slow ());
+ insert_location (crateNum, id, expr->get_locus ());
}
HIR::Expr *
@@ -430,7 +430,7 @@ Mappings::insert_hir_generic_param (CrateNum crateNum, HirId id,
hirGenericParamMappings[crateNum][id] = param;
nodeIdToHirMappings[crateNum][param->get_mappings ().get_nodeid ()] = id;
- insert_location (crateNum, id, param->get_locus_slow ());
+ insert_location (crateNum, id, param->get_locus ());
}
HIR::GenericParam *
--
2.32.0
prev parent reply other threads:[~2021-08-26 19:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-26 0:09 [PATCH] " Mark Wielaard
2021-08-26 2:31 ` The Other
2021-08-26 19:19 ` Mark Wielaard
2021-08-26 19:25 ` Mark Wielaard [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210826192549.123686-1-mark@klomp.org \
--to=mark@klomp.org \
--cc=gcc-rust@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).