Line data Source code
1 : // Copyright (C) 2020-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-immutable-name-resolution-context.h"
20 :
21 : namespace Rust {
22 : namespace Resolver2_0 {
23 :
24 : static ImmutableNameResolutionContext *instance = nullptr;
25 :
26 : const ImmutableNameResolutionContext &
27 4301 : ImmutableNameResolutionContext::init (const NameResolutionContext &ctx)
28 : {
29 4301 : rust_assert (!instance);
30 :
31 4301 : instance = new ImmutableNameResolutionContext (ctx);
32 :
33 4301 : return *instance;
34 : }
35 :
36 : const ImmutableNameResolutionContext &
37 2599906 : ImmutableNameResolutionContext::get ()
38 : {
39 2599906 : rust_assert (instance);
40 :
41 2599906 : return *instance;
42 : }
43 :
44 : const NameResolutionContext &
45 2599906 : ImmutableNameResolutionContext::resolver () const
46 : {
47 2599906 : return ctx;
48 : }
49 :
50 4301 : ImmutableNameResolutionContext::ImmutableNameResolutionContext (
51 4301 : const NameResolutionContext &ctx)
52 4301 : : ctx (ctx)
53 4301 : {}
54 :
55 : } // namespace Resolver2_0
56 : } // namespace Rust
|