From: Arthur Cohen Date: Thu, 17 Aug 2023 12:06:50 +0000 (+0200) Subject: gccrs: rib: Add Namespace enum X-Git-Tag: basepoints/gcc-15~1608 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f7d8356a6ea2952574487596e66185a96a7f5d58;p=thirdparty%2Fgcc.git gccrs: rib: Add Namespace enum gcc/rust/ChangeLog: * resolve/rust-rib.h: Add Namespace enum. --- diff --git a/gcc/rust/resolve/rust-rib.h b/gcc/rust/resolve/rust-rib.h index 37bd90f1f75e..4ffd00a5d6c3 100644 --- a/gcc/rust/resolve/rust-rib.h +++ b/gcc/rust/resolve/rust-rib.h @@ -27,6 +27,31 @@ namespace Rust { namespace Resolver2_0 { +/** + +pub enum Namespace { + /// The type namespace includes `struct`s, `enum`s, `union`s, `trait`s, and +`mod`s + /// (and, by extension, crates). + /// + /// Note that the type namespace includes other items; this is not an + /// exhaustive list. + TypeNS, + /// The value namespace includes `fn`s, `const`s, `static`s, and local +variables (including function arguments). ValueNS, + /// The macro namespace includes `macro_rules!` macros, declarative `macro`s, + /// procedural macros, attribute macros, `derive` macros, and non-macro +attributes + /// like `#[inline]` and `#[rustfmt::skip]`. + MacroNS, +} + +*/ + +// FIXME: There's no `labels` namespace, not sure if we need one or how to keep +// one +// FIXME: And where are things like loop labels kept? + /** * All namespaces that Rust's name resolution needs to handle */