Line data Source code
1 : // Copyright (C) 2025-2026 Free Software Foundation, Inc.
2 :
3 : // This file is part of GCC.
4 :
5 : // GCC is free software; you can redistribute it and/or modify it under
6 : // the terms of the GNU General Public License as published by the Free
7 : // Software Foundation; either version 3, or (at your option) any later
8 : // version.
9 :
10 : // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
11 : // WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 : // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 : // for more details.
14 :
15 : // You should have received a copy of the GNU General Public License
16 : // along with GCC; see the file COPYING3. If not see
17 : // <http://www.gnu.org/licenses/>.
18 :
19 : #include "rust-ggc.h"
20 : #include "rust-ast.h"
21 : #include "stringpool.h"
22 :
23 : namespace Rust {
24 :
25 : namespace GGC {
26 :
27 293930 : Ident::Ident (const char *str) : inner (get_identifier (str)) {}
28 :
29 152336 : Ident::Ident (const std::string &str)
30 152336 : : inner (get_identifier_with_length (str.c_str (), str.length ()))
31 152336 : {}
32 :
33 1060 : Ident::Ident (const Rust::Identifier &ident) : Ident (ident.as_string ()) {}
34 :
35 : bool
36 0 : Ident::operator== (const std::string &other) const
37 : {
38 : // maybe_get_identifier_with_length doesn't seem to exist
39 0 : return maybe_get_identifier (other.c_str ()) == inner;
40 : }
41 :
42 : } // namespace GGC
43 :
44 : } // namespace Rust
|