From: Arthur Cohen <arthur.cohen@embecosm.com>
gcc/rust/ChangeLog:
* util/rust-attribute-values.h: Add RUSTFMT value.
* util/rust-attributes.cc: Define the attribute.
* util/rust-attributes.h (enum CompilerPass): Add EXTERNAL variant.
* expand/rust-macro-builtins.cc: Fix formatting.
---
gcc/rust/expand/rust-macro-builtins.cc | 1 -
gcc/rust/util/rust-attribute-values.h | 2 ++
gcc/rust/util/rust-attributes.cc | 3 ++-
gcc/rust/util/rust-attributes.h | 5 ++++-
4 files changed, 8 insertions(+), 3 deletions(-)
@@ -83,7 +83,6 @@ const BiMap<std::string, BuiltinMacro> MacroBuiltin::builtins = {{
{"Ord", BuiltinMacro::Ord},
{"PartialOrd", BuiltinMacro::PartialOrd},
{"Hash", BuiltinMacro::Hash},
-
}};
AST::MacroTranscriberFunc
@@ -83,6 +83,8 @@ public:
static constexpr auto &FUNDAMENTAL = "fundamental";
static constexpr auto &NON_EXHAUSTIVE = "non_exhaustive";
+
+ static constexpr auto &RUSTFMT = "rustfmt";
};
} // namespace Values
} // namespace Rust
@@ -94,7 +94,8 @@ static const BuiltinAttrDefinition __definitions[]
{Attrs::RUSTC_ON_UNIMPLEMENTED, STATIC_ANALYSIS},
{Attrs::FUNDAMENTAL, TYPE_CHECK},
- {Attrs::NON_EXHAUSTIVE, TYPE_CHECK}};
+ {Attrs::NON_EXHAUSTIVE, TYPE_CHECK},
+ {Attrs::RUSTFMT, EXTERNAL}};
BuiltinAttributeMappings *
BuiltinAttributeMappings::get ()
@@ -40,7 +40,10 @@ enum CompilerPass
HIR_LOWERING,
TYPE_CHECK,
STATIC_ANALYSIS,
- CODE_GENERATION
+ CODE_GENERATION,
+
+ // External Rust tooling attributes, like #[rustfmt::skip]
+ EXTERNAL,
// Do we need to add something here for const fns?
};