Add `allow(dead_code)` to Crubit-generated code Unfortunately due to bugs in Crubit, it sometimes generates code which is considered dead. Currently the `allow(dead_code)` flag is passed on the rustc command line in bzl files, which is not really the right place for it. Instead Crubit's code generation should be in control. PiperOrigin-RevId: 658809590 Change-Id: I828b6a809ffa7fe3296dfe6f5f37885f139c5a3f
diff --git a/bazel/llvm.bzl b/bazel/llvm.bzl index cc49d40..94ffb86 100644 --- a/bazel/llvm.bzl +++ b/bazel/llvm.bzl
@@ -53,7 +53,7 @@ executable = False, ) -LLVM_COMMIT_SHA = "8f33f1d829bfa8ab7af5fc60b413cba8994c33a1" +LLVM_COMMIT_SHA = "4e93b16f3fce467b2bbda4e5fd8b15fcad2bea93" def llvm_loader_repository_dependencies(): # This *declares* the dependency, but it won't actually be *downloaded* unless it's used.
diff --git a/examples/cpp/enum/example_generated.rs b/examples/cpp/enum/example_generated.rs index 7435ef0..71191cb 100644 --- a/examples/cpp/enum/example_generated.rs +++ b/examples/cpp/enum/example_generated.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[repr(transparent)]
diff --git a/examples/cpp/function/example_generated.rs b/examples/cpp/function/example_generated.rs index 7e2129d..858e06f 100644 --- a/examples/cpp/function/example_generated.rs +++ b/examples/cpp/function/example_generated.rs
@@ -12,6 +12,7 @@ #![no_std] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] // Crubit only supports extern C functions right now. As a consequence, the
diff --git a/examples/cpp/trivial_abi_struct/example_generated.rs b/examples/cpp/trivial_abi_struct/example_generated.rs index 9cb565e..3373e26 100644 --- a/examples/cpp/trivial_abi_struct/example_generated.rs +++ b/examples/cpp/trivial_abi_struct/example_generated.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] /// Because this class has a destructor, it will not receive Rust bindings
diff --git a/examples/cpp/trivial_struct/example_generated.rs b/examples/cpp/trivial_struct/example_generated.rs index 7ce5b40..7edaebb 100644 --- a/examples/cpp/trivial_struct/example_generated.rs +++ b/examples/cpp/trivial_struct/example_generated.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] /// Generated from: examples/cpp/trivial_struct/example.h;l=8
diff --git a/rs_bindings_from_cc/generate_bindings/lib.rs b/rs_bindings_from_cc/generate_bindings/lib.rs index 03fc4be..d03d556 100644 --- a/rs_bindings_from_cc/generate_bindings/lib.rs +++ b/rs_bindings_from_cc/generate_bindings/lib.rs
@@ -1042,6 +1042,10 @@ // C++ names don't follow Rust guidelines: #![allow(nonstandard_style)] __NEWLINE__ + // Parts of our generated code are sometimes considered dead + // (b/349776381). + #![allow(dead_code)] __NEWLINE__ + #![deny(warnings)] __NEWLINE__ __NEWLINE__ #( #items __NEWLINE__ __NEWLINE__ )*
diff --git a/rs_bindings_from_cc/test/golden/bitfields_rs_api.rs b/rs_bindings_from_cc/test/golden/bitfields_rs_api.rs index 1887550..3b7fe9b 100644 --- a/rs_bindings_from_cc/test/golden/bitfields_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/bitfields_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[derive(Clone, Copy)]
diff --git a/rs_bindings_from_cc/test/golden/clang_attrs_rs_api.rs b/rs_bindings_from_cc/test/golden/clang_attrs_rs_api.rs index 42c6a32..22e23d3 100644 --- a/rs_bindings_from_cc/test/golden/clang_attrs_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/clang_attrs_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[derive(Clone, Copy)]
diff --git a/rs_bindings_from_cc/test/golden/comment_rs_api.rs b/rs_bindings_from_cc/test/golden/comment_rs_api.rs index 69aa19f..b014519 100644 --- a/rs_bindings_from_cc/test/golden/comment_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/comment_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] // File comment
diff --git a/rs_bindings_from_cc/test/golden/crubit_internal_rust_type_rs_api.rs b/rs_bindings_from_cc/test/golden/crubit_internal_rust_type_rs_api.rs index 49fd5fb..2ae0b31 100644 --- a/rs_bindings_from_cc/test/golden/crubit_internal_rust_type_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/crubit_internal_rust_type_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] // Type bindings for struct MyI8Struct suppressed due to being mapped to an existing Rust type (i8)
diff --git a/rs_bindings_from_cc/test/golden/definition_of_forward_declaration_rs_api.rs b/rs_bindings_from_cc/test/golden/definition_of_forward_declaration_rs_api.rs index 48f6ee0..8f5674e 100644 --- a/rs_bindings_from_cc/test/golden/definition_of_forward_declaration_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/definition_of_forward_declaration_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[derive(Clone, Copy)]
diff --git a/rs_bindings_from_cc/test/golden/doc_comment_rs_api.rs b/rs_bindings_from_cc/test/golden/doc_comment_rs_api.rs index c6826e8..7e06f01 100644 --- a/rs_bindings_from_cc/test/golden/doc_comment_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/doc_comment_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] /// Doc comment
diff --git a/rs_bindings_from_cc/test/golden/enums_rs_api.rs b/rs_bindings_from_cc/test/golden/enums_rs_api.rs index 2cc92d7..7f3ca45 100644 --- a/rs_bindings_from_cc/test/golden/enums_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/enums_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[repr(transparent)]
diff --git a/rs_bindings_from_cc/test/golden/escaping_keywords_rs_api.rs b/rs_bindings_from_cc/test/golden/escaping_keywords_rs_api.rs index 9d3c0d9..581c8c4 100644 --- a/rs_bindings_from_cc/test/golden/escaping_keywords_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/escaping_keywords_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[derive(Clone, Copy)]
diff --git a/rs_bindings_from_cc/test/golden/forward_declaration_rs_api.rs b/rs_bindings_from_cc/test/golden/forward_declaration_rs_api.rs index 67e628b..c3b31e0 100644 --- a/rs_bindings_from_cc/test/golden/forward_declaration_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/forward_declaration_rs_api.rs
@@ -12,6 +12,7 @@ #![no_std] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] forward_declare::forward_declare!(pub ForwardDeclaredStruct = forward_declare::symbol!("ForwardDeclaredStruct"));
diff --git a/rs_bindings_from_cc/test/golden/friend_functions_rs_api.rs b/rs_bindings_from_cc/test/golden/friend_functions_rs_api.rs index 1186fd3..e55e63a 100644 --- a/rs_bindings_from_cc/test/golden/friend_functions_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/friend_functions_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[derive(Clone, Copy)]
diff --git a/rs_bindings_from_cc/test/golden/includes_rs_api.rs b/rs_bindings_from_cc/test/golden/includes_rs_api.rs index 05a45df..00d0332 100644 --- a/rs_bindings_from_cc/test/golden/includes_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/includes_rs_api.rs
@@ -12,4 +12,5 @@ #![no_std] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)]
diff --git a/rs_bindings_from_cc/test/golden/inheritance_rs_api.rs b/rs_bindings_from_cc/test/golden/inheritance_rs_api.rs index c333d90..7ef77a6 100644 --- a/rs_bindings_from_cc/test/golden/inheritance_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/inheritance_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] /// Using classes to force these to be non-POD.
diff --git a/rs_bindings_from_cc/test/golden/item_order_rs_api.rs b/rs_bindings_from_cc/test/golden/item_order_rs_api.rs index d111d9b..582d803 100644 --- a/rs_bindings_from_cc/test/golden/item_order_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/item_order_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[derive(Clone, Copy)]
diff --git a/rs_bindings_from_cc/test/golden/lifetimes_rs_api.rs b/rs_bindings_from_cc/test/golden/lifetimes_rs_api.rs index 2a65238..6198f91 100644 --- a/rs_bindings_from_cc/test/golden/lifetimes_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/lifetimes_rs_api.rs
@@ -12,6 +12,7 @@ #![no_std] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[inline(always)]
diff --git a/rs_bindings_from_cc/test/golden/method_qualifiers_rs_api.rs b/rs_bindings_from_cc/test/golden/method_qualifiers_rs_api.rs index 028248b..9d673b0 100644 --- a/rs_bindings_from_cc/test/golden/method_qualifiers_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/method_qualifiers_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[derive(Clone, Copy)]
diff --git a/rs_bindings_from_cc/test/golden/namespace_rs_api.rs b/rs_bindings_from_cc/test/golden/namespace_rs_api.rs index 99ef5ae..e6d5267 100644 --- a/rs_bindings_from_cc/test/golden/namespace_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/namespace_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] pub mod test_namespace_bindings {
diff --git a/rs_bindings_from_cc/test/golden/no_elided_lifetimes_rs_api.rs b/rs_bindings_from_cc/test/golden/no_elided_lifetimes_rs_api.rs index 16c118f..f9f91d7 100644 --- a/rs_bindings_from_cc/test/golden/no_elided_lifetimes_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/no_elided_lifetimes_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[inline(always)]
diff --git a/rs_bindings_from_cc/test/golden/no_unique_address_rs_api.rs b/rs_bindings_from_cc/test/golden/no_unique_address_rs_api.rs index 889bc80..880c867 100644 --- a/rs_bindings_from_cc/test/golden/no_unique_address_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/no_unique_address_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] /// The no_unique_address.h header is present both in
diff --git a/rs_bindings_from_cc/test/golden/nontrivial_type_rs_api.rs b/rs_bindings_from_cc/test/golden/nontrivial_type_rs_api.rs index ae72d40..369c6a9 100644 --- a/rs_bindings_from_cc/test/golden/nontrivial_type_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/nontrivial_type_rs_api.rs
@@ -19,6 +19,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] /// Nontrivial due to (declared, but not yet defined) user-specified constructor
diff --git a/rs_bindings_from_cc/test/golden/operators_rs_api.rs b/rs_bindings_from_cc/test/golden/operators_rs_api.rs index 61a442e..ca2bbec 100644 --- a/rs_bindings_from_cc/test/golden/operators_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/operators_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[derive(Clone, Copy)]
diff --git a/rs_bindings_from_cc/test/golden/overloads_rs_api.rs b/rs_bindings_from_cc/test/golden/overloads_rs_api.rs index 225d5e7..cdfc3f2 100644 --- a/rs_bindings_from_cc/test/golden/overloads_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/overloads_rs_api.rs
@@ -12,6 +12,7 @@ #![no_std] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] // Error while generating bindings for item 'Overload':
diff --git a/rs_bindings_from_cc/test/golden/polymorphic_rs_api.rs b/rs_bindings_from_cc/test/golden/polymorphic_rs_api.rs index 85165f8..5bb003c 100644 --- a/rs_bindings_from_cc/test/golden/polymorphic_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/polymorphic_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[::ctor::recursively_pinned(PinnedDrop)]
diff --git a/rs_bindings_from_cc/test/golden/private_members_rs_api.rs b/rs_bindings_from_cc/test/golden/private_members_rs_api.rs index 9b31bd8..808b05c 100644 --- a/rs_bindings_from_cc/test/golden/private_members_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/private_members_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] pub mod test_namespace_bindings {
diff --git a/rs_bindings_from_cc/test/golden/private_method_rs_api.rs b/rs_bindings_from_cc/test/golden/private_method_rs_api.rs index ae09bd1..55e2c20 100644 --- a/rs_bindings_from_cc/test/golden/private_method_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/private_method_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] // Error while generating bindings for item 'Ptr':
diff --git a/rs_bindings_from_cc/test/golden/static_methods_rs_api.rs b/rs_bindings_from_cc/test/golden/static_methods_rs_api.rs index ccb3330..348b74b 100644 --- a/rs_bindings_from_cc/test/golden/static_methods_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/static_methods_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[derive(Clone, Copy)]
diff --git a/rs_bindings_from_cc/test/golden/templates_rs_api.rs b/rs_bindings_from_cc/test/golden/templates_rs_api.rs index 02dbcdb..9e11722 100644 --- a/rs_bindings_from_cc/test/golden/templates_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/templates_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[derive(Clone, Copy)]
diff --git a/rs_bindings_from_cc/test/golden/templates_source_order_rs_api.rs b/rs_bindings_from_cc/test/golden/templates_source_order_rs_api.rs index 0c7eb39..b3fe3e3 100644 --- a/rs_bindings_from_cc/test/golden/templates_source_order_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/templates_source_order_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] // Error while generating bindings for item 'MyTemplate':
diff --git a/rs_bindings_from_cc/test/golden/trivial_type_rs_api.rs b/rs_bindings_from_cc/test/golden/trivial_type_rs_api.rs index 0e206cd..538a745 100644 --- a/rs_bindings_from_cc/test/golden/trivial_type_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/trivial_type_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] pub mod ns {
diff --git a/rs_bindings_from_cc/test/golden/typedefs_rs_api.rs b/rs_bindings_from_cc/test/golden/typedefs_rs_api.rs index 86f4d7a..619589c 100644 --- a/rs_bindings_from_cc/test/golden/typedefs_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/typedefs_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[derive(Clone, Copy)]
diff --git a/rs_bindings_from_cc/test/golden/types_rs_api.rs b/rs_bindings_from_cc/test/golden/types_rs_api.rs index f76c8ad..981d77e 100644 --- a/rs_bindings_from_cc/test/golden/types_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/types_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] // Error while generating bindings for item 'PtrDiff':
diff --git a/rs_bindings_from_cc/test/golden/unions_rs_api.rs b/rs_bindings_from_cc/test/golden/unions_rs_api.rs index 8c10cf1..7651363 100644 --- a/rs_bindings_from_cc/test/golden/unions_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/unions_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[derive(Clone, Copy)]
diff --git a/rs_bindings_from_cc/test/golden/unsupported_rs_api.rs b/rs_bindings_from_cc/test/golden/unsupported_rs_api.rs index 17b29c1..f5fd9a0 100644 --- a/rs_bindings_from_cc/test/golden/unsupported_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/unsupported_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[derive(Clone, Copy)]
diff --git a/rs_bindings_from_cc/test/golden/user_of_base_class_rs_api.rs b/rs_bindings_from_cc/test/golden/user_of_base_class_rs_api.rs index 7fd253a..bceb878 100644 --- a/rs_bindings_from_cc/test/golden/user_of_base_class_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/user_of_base_class_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] /// The same as Derived from inheritance.h, but in a different build target.
diff --git a/rs_bindings_from_cc/test/golden/user_of_imported_type_rs_api.rs b/rs_bindings_from_cc/test/golden/user_of_imported_type_rs_api.rs index 83358bd..673d56f 100644 --- a/rs_bindings_from_cc/test/golden/user_of_imported_type_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/user_of_imported_type_rs_api.rs
@@ -13,6 +13,7 @@ #![register_tool(__crubit)] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[inline(always)]
diff --git a/rs_bindings_from_cc/test/golden/user_of_unsupported_rs_api.rs b/rs_bindings_from_cc/test/golden/user_of_unsupported_rs_api.rs index 5d51627..b3c33b2 100644 --- a/rs_bindings_from_cc/test/golden/user_of_unsupported_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/user_of_unsupported_rs_api.rs
@@ -12,6 +12,7 @@ #![no_std] #![allow(improper_ctypes)] #![allow(nonstandard_style)] +#![allow(dead_code)] #![deny(warnings)] #[inline(always)]