mirror of
https://gcc.gnu.org/git/gcc.git
synced 2026-02-22 20:01:22 -05:00
gccrs: Add get_locus function for abstract class MetaItemInner.
This commit adds virtual function get_locus to base class MetaItemInner, which is helpful when we need to print diagnostics on some sub-classes of MetaItemInner. gcc/rust/ChangeLog: * ast/rust-ast.h: Add get_locus method. * ast/rust-expr.h: Likewise. * ast/rust-macro.h: Likewise. Signed-off-by: Xiao Ma <mxlol233@outlook.com>
This commit is contained in:
@@ -630,6 +630,8 @@ public:
|
||||
|
||||
virtual ~MetaItemInner ();
|
||||
|
||||
virtual Location get_locus () const = 0;
|
||||
|
||||
virtual std::string as_string () const = 0;
|
||||
|
||||
virtual void accept_vis (ASTVisitor &vis) = 0;
|
||||
|
||||
@@ -150,6 +150,8 @@ public:
|
||||
|
||||
std::string as_string () const override { return lit_expr.as_string (); }
|
||||
|
||||
Location get_locus () const override { return lit_expr.get_locus (); }
|
||||
|
||||
void accept_vis (ASTVisitor &vis) override;
|
||||
|
||||
bool check_cfg_predicate (const Session &session) const override;
|
||||
@@ -178,6 +180,12 @@ public:
|
||||
return path.as_string () + " = " + lit.as_string ();
|
||||
}
|
||||
|
||||
// There are two Locations in MetaItemPathLit (path and lit_expr),
|
||||
// we have no idea use which of them, just simply return UNKNOWN_LOCATION
|
||||
// now.
|
||||
// Maybe we will figure out when we really need the location in the future.
|
||||
Location get_locus () const override { return Location (UNKNOWN_LOCATION); }
|
||||
|
||||
void accept_vis (ASTVisitor &vis) override;
|
||||
|
||||
bool check_cfg_predicate (const Session &session) const override;
|
||||
|
||||
@@ -725,6 +725,8 @@ public:
|
||||
return path;
|
||||
}
|
||||
|
||||
Location get_locus () const override { return path.get_locus (); }
|
||||
|
||||
bool check_cfg_predicate (const Session &session) const override;
|
||||
|
||||
Attribute to_attribute () const override;
|
||||
@@ -778,6 +780,8 @@ public:
|
||||
|
||||
void accept_vis (ASTVisitor &vis) override;
|
||||
|
||||
Location get_locus () const override { return path.get_locus (); }
|
||||
|
||||
bool check_cfg_predicate (const Session &session) const override;
|
||||
|
||||
Attribute to_attribute () const override;
|
||||
@@ -805,6 +809,8 @@ public:
|
||||
|
||||
void accept_vis (ASTVisitor &vis) override;
|
||||
|
||||
Location get_locus () const override { return ident_locus; }
|
||||
|
||||
bool check_cfg_predicate (const Session &session) const override;
|
||||
|
||||
Attribute to_attribute () const override;
|
||||
@@ -847,6 +853,8 @@ public:
|
||||
return std::unique_ptr<MetaNameValueStr> (clone_meta_item_inner_impl ());
|
||||
}
|
||||
|
||||
Location get_locus () const override { return ident_locus; }
|
||||
|
||||
bool check_cfg_predicate (const Session &session) const override;
|
||||
|
||||
Attribute to_attribute () const override;
|
||||
@@ -885,6 +893,8 @@ public:
|
||||
|
||||
void accept_vis (ASTVisitor &vis) override;
|
||||
|
||||
Location get_locus () const override { return ident_locus; }
|
||||
|
||||
bool check_cfg_predicate (const Session &session) const override;
|
||||
|
||||
Attribute to_attribute () const override;
|
||||
@@ -919,6 +929,8 @@ public:
|
||||
|
||||
void accept_vis (ASTVisitor &vis) override;
|
||||
|
||||
Location get_locus () const override { return ident_locus; }
|
||||
|
||||
bool check_cfg_predicate (const Session &session) const override;
|
||||
|
||||
Attribute to_attribute () const override;
|
||||
|
||||
Reference in New Issue
Block a user