aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/ast/rust-ast.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rust/ast/rust-ast.h')
-rw-r--r--gcc/rust/ast/rust-ast.h35
1 files changed, 11 insertions, 24 deletions
diff --git a/gcc/rust/ast/rust-ast.h b/gcc/rust/ast/rust-ast.h
index e376488..2bfaeb1 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