diff --git a/common/code_gen_utils.rs b/common/code_gen_utils.rs index 91c35edf7..5fa2cb952 100644 --- a/common/code_gen_utils.rs +++ b/common/code_gen_utils.rs @@ -378,12 +378,16 @@ impl NamespaceQualifier { /// Returns `foo::bar::baz::` (reporting errors for C++ keywords). pub fn format_for_cc(&self) -> Result { - let namespace_cc_idents = self.cc_idents()?; - Ok(quote! { #(#namespace_cc_idents::)* }) - } - - pub fn cc_idents(&self) -> Result> { - self.parts().map(|ns| format_cc_ident(ns)).collect() + let mut path = quote! {}; + for namespace in &self.namespaces { + let namespace = format_cc_ident(namespace)?; + path.extend(quote! { #namespace :: }); + } + for (_rs_name, cc_name) in &self.nested_records { + let cc_name = format_cc_type_name(cc_name)?; + path.extend(quote! { #cc_name ::}); + } + Ok(path) } } diff --git a/rs_bindings_from_cc/generate_bindings/cpp_type_name.rs b/rs_bindings_from_cc/generate_bindings/cpp_type_name.rs index b296ae7a6..f58207705 100644 --- a/rs_bindings_from_cc/generate_bindings/cpp_type_name.rs +++ b/rs_bindings_from_cc/generate_bindings/cpp_type_name.rs @@ -137,25 +137,6 @@ pub fn format_cpp_type_inner( /// For example, for `namespace x { struct Y { using X = int; }; }`, the name /// for `X` is `x::Y::X`. pub fn tagless_cpp_type_name_for_item(item: &ir::Item, ir: &IR) -> Result { - /// Returns the namespace / class qualifiers necessary to access the item. - /// - /// For example, for `namespace x { struct Y { using X = int; }; }`, the prefix - /// for `X` is `x::Y::`. - fn cpp_qualified_path_prefix(item: &ir::Item, ir: &ir::IR) -> Result { - let Some(parent) = item.enclosing_item_id() else { - return Ok(quote! {}); - }; - let parent: &ir::Item = ir.find_decl(parent)?; - match parent { - ir::Item::Namespace(_) => Ok(ir.namespace_qualifier(item).format_for_cc()?), - ir::Item::Record(r) => { - let name = cpp_tagless_type_name_for_record(r, ir)?; - Ok(quote! {#name ::}) - } - _ => bail!("Unexpected enclosing item: {item:?}"), - } - } - match item { Item::IncompleteRecord(incomplete_record) => { let ident = expect_format_cc_type_name(incomplete_record.cc_name.identifier.as_ref()); @@ -165,12 +146,12 @@ pub fn tagless_cpp_type_name_for_item(item: &ir::Item, ir: &IR) -> Result cpp_tagless_type_name_for_record(record, ir), Item::Enum(enum_) => { let ident = expect_format_cc_type_name(&enum_.rs_name.identifier); - let namespace_qualifier = cpp_qualified_path_prefix(item, ir)?; + let namespace_qualifier = ir.namespace_qualifier(item).format_for_cc()?; Ok(quote! { #namespace_qualifier #ident }) } Item::TypeAlias(type_alias) => { let ident = expect_format_cc_type_name(&type_alias.cc_name.identifier); - let namespace_qualifier = cpp_qualified_path_prefix(item, ir)?; + let namespace_qualifier = ir.namespace_qualifier(item).format_for_cc()?; Ok(quote! { #namespace_qualifier #ident }) } Item::ExistingRustType(existing_rust_type) => existing_rust_type diff --git a/rs_bindings_from_cc/generate_bindings/generate_function_thunk.rs b/rs_bindings_from_cc/generate_bindings/generate_function_thunk.rs index 70a04ed59..f97e78cd9 100644 --- a/rs_bindings_from_cc/generate_bindings/generate_function_thunk.rs +++ b/rs_bindings_from_cc/generate_bindings/generate_function_thunk.rs @@ -260,44 +260,32 @@ fn generate_function_assertation_for_identifier( let ir = db.ir(); let fn_ident = expect_format_cc_ident(&id.identifier); + let path_to_func = ir.namespace_qualifier(func).format_for_cc()?; + let implementation_function = quote! { :: #path_to_func #fn_ident }; let method_qualification; - let implementation_function; let member_function_prefix; let func_params; - if let Some(meta) = func.member_func_metadata.as_ref() { - let record: &Rc = ir.find_decl(meta.record_id)?; - let record_ident = expect_format_cc_type_name(record.cc_name.identifier.as_ref()); - let namespace_qualifier = ir.namespace_qualifier(record).format_for_cc()?; - if let Some(instance_method_metadata) = meta.instance_method_metadata.as_ref() { - let const_qualifier = if instance_method_metadata.is_const { - quote! {const} - } else { - quote! {} - }; - - method_qualification = match instance_method_metadata.reference { - ir::ReferenceQualification::Unqualified => const_qualifier, - ir::ReferenceQualification::LValue => { - quote! { #const_qualifier & } - } - ir::ReferenceQualification::RValue => { - quote! { #const_qualifier && } - } - }; - implementation_function = quote! { #namespace_qualifier #record_ident :: #fn_ident }; - member_function_prefix = quote! { :: #namespace_qualifier #record_ident :: }; - // The first parameter of instance methods is `this`. - func_params = &func.params[1..]; + if let Some(instance_method_metadata) = func.instance_method_metadata() { + let const_qualifier = if instance_method_metadata.is_const { + quote! {const} } else { - method_qualification = quote! {}; - implementation_function = quote! { #namespace_qualifier #record_ident :: #fn_ident }; - member_function_prefix = quote! {}; - func_params = &func.params[..]; - } + quote! {} + }; + + method_qualification = match instance_method_metadata.reference { + ir::ReferenceQualification::Unqualified => const_qualifier, + ir::ReferenceQualification::LValue => { + quote! { #const_qualifier & } + } + ir::ReferenceQualification::RValue => { + quote! { #const_qualifier && } + } + }; + member_function_prefix = path_to_func; + // The first parameter of instance methods is `this`. + func_params = &func.params[1..]; } else { - let namespace_qualifier = ir.namespace_qualifier(func).format_for_cc()?; method_qualification = quote! {}; - implementation_function = quote! { #namespace_qualifier #fn_ident }; member_function_prefix = quote! {}; func_params = &func.params[..]; } @@ -394,22 +382,11 @@ pub fn generate_function_thunk_impl( } UnqualifiedIdentifier::Identifier(id) => { let fn_ident = expect_format_cc_ident(&id.identifier); - match func.member_func_metadata.as_ref() { - Some(meta) => { - if meta.instance_method_metadata.is_some() { - quote! { #fn_ident } - } else { - let record: &Rc = ir.find_decl(meta.record_id)?; - let record_name = - expect_format_cc_type_name(record.cc_name.identifier.as_ref()); - let namespace_qualifier = ir.namespace_qualifier(record).format_for_cc()?; - quote! { #namespace_qualifier #record_name :: #fn_ident } - } - } - None => { - let namespace_qualifier = ir.namespace_qualifier(func).format_for_cc()?; - quote! { #namespace_qualifier #fn_ident } - } + let namespace_qualifier = ir.namespace_qualifier(func).format_for_cc()?; + if func.instance_method_metadata().is_some() { + quote! {#fn_ident} + } else { + quote! { #namespace_qualifier #fn_ident } } } // Use `destroy_at` to avoid needing to spell out the class name. Destructor identiifers diff --git a/rs_bindings_from_cc/ir.rs b/rs_bindings_from_cc/ir.rs index 0706b2ad0..c3157f071 100644 --- a/rs_bindings_from_cc/ir.rs +++ b/rs_bindings_from_cc/ir.rs @@ -909,11 +909,16 @@ impl GenericItem for Func { } impl Func { + pub fn instance_method_metadata(&self) -> Option<&InstanceMethodMetadata> { + if let Some(meta) = &self.member_func_metadata { + if let Some(instance_method_metadata) = &meta.instance_method_metadata { + return Some(instance_method_metadata); + } + } + None + } pub fn is_instance_method(&self) -> bool { - self.member_func_metadata - .as_ref() - .filter(|meta| meta.instance_method_metadata.is_some()) - .is_some() + self.instance_method_metadata().is_some() } } diff --git a/rs_bindings_from_cc/test/annotations/do_not_bind_api_impl.cc b/rs_bindings_from_cc/test/annotations/do_not_bind_api_impl.cc index 223315faa..9576d53ba 100644 --- a/rs_bindings_from_cc/test/annotations/do_not_bind_api_impl.cc +++ b/rs_bindings_from_cc/test/annotations/do_not_bind_api_impl.cc @@ -41,8 +41,8 @@ __rust_thunk___ZN6crubit4test11DoNotBindFnENS0_23ArgumentToBoundOverloadE( crubit::test::DoNotBindFn(std::move(*__param_0)); } -static_assert((void (*)( - struct crubit::test::ArgumentToBoundOverload))&crubit::test::DoNotBindFn); +static_assert((void (*)(struct crubit::test::ArgumentToBoundOverload)) & + ::crubit::test::DoNotBindFn); static_assert(sizeof(struct crubit::test::StructWithDoNotBindConstructor) == 1); static_assert(alignof(struct crubit::test::StructWithDoNotBindConstructor) == @@ -70,8 +70,8 @@ __rust_thunk___ZN6crubit4test25StructWithDoNotBindMethod15DoNotBindMethodENS0_23 __this->DoNotBindMethod(std::move(*__param_0)); } -static_assert((void (::crubit::test::StructWithDoNotBindMethod::*)( - struct crubit::test::ArgumentToBoundOverload))&crubit::test:: - StructWithDoNotBindMethod::DoNotBindMethod); +static_assert((void (crubit::test::StructWithDoNotBindMethod::*)( + struct crubit::test::ArgumentToBoundOverload)) & + ::crubit::test::StructWithDoNotBindMethod::DoNotBindMethod); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/annotations/owned_ptr_api_impl.cc b/rs_bindings_from_cc/test/annotations/owned_ptr_api_impl.cc index b63522087..bc4b6387c 100644 --- a/rs_bindings_from_cc/test/annotations/owned_ptr_api_impl.cc +++ b/rs_bindings_from_cc/test/annotations/owned_ptr_api_impl.cc @@ -32,6 +32,6 @@ extern "C" void __rust_thunk___ZN5Thing5CloseEv(struct Thing* __this) { __this->Close(); } -static_assert((void (::Thing::*)())&Thing::Close); +static_assert((void (Thing::*)()) & ::Thing::Close); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/annotations/owned_ptr_user_api_impl.cc b/rs_bindings_from_cc/test/annotations/owned_ptr_user_api_impl.cc index 51eeffb78..5bb44e11c 100644 --- a/rs_bindings_from_cc/test/annotations/owned_ptr_user_api_impl.cc +++ b/rs_bindings_from_cc/test/annotations/owned_ptr_user_api_impl.cc @@ -19,12 +19,12 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wthread-safety-analysis" -static_assert((struct Thing * (*)(int)) & MakeOwnedThing); +static_assert((struct Thing * (*)(int)) & ::MakeOwnedThing); -static_assert((struct Thing * (*)(int)) & MakeThing); +static_assert((struct Thing * (*)(int)) & ::MakeThing); -static_assert((int (*)(struct Thing*))&ThingToValue); +static_assert((int (*)(struct Thing*)) & ::ThingToValue); -static_assert((int (*)(struct Thing*))&GetThingValue); +static_assert((int (*)(struct Thing*)) & ::GetThingValue); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/annotations/rust_name_api_impl.cc b/rs_bindings_from_cc/test/annotations/rust_name_api_impl.cc index e3792bf34..2049c7f7f 100644 --- a/rs_bindings_from_cc/test/annotations/rust_name_api_impl.cc +++ b/rs_bindings_from_cc/test/annotations/rust_name_api_impl.cc @@ -23,7 +23,7 @@ extern "C" void __rust_thunk___ZN6crubit4test13FreeFnOldNameEv() { crubit::test::FreeFnOldName(); } -static_assert((void (*)())&crubit::test::FreeFnOldName); +static_assert((void (*)()) & ::crubit::test::FreeFnOldName); static_assert(sizeof(struct crubit::test::StructOldName) == 1); static_assert(alignof(struct crubit::test::StructOldName) == 1); @@ -53,7 +53,7 @@ extern "C" void __rust_thunk___ZNK6crubit4test10SomeStruct13MethodOldNameEv( __this->MethodOldName(); } -static_assert((void (::crubit::test::SomeStruct::*)() const) & - crubit::test::SomeStruct::MethodOldName); +static_assert((void (crubit::test::SomeStruct::*)() const) & + ::crubit::test::SomeStruct::MethodOldName); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/function/inline/inline_api_impl.cc b/rs_bindings_from_cc/test/function/inline/inline_api_impl.cc index e5f4d0967..664804f27 100644 --- a/rs_bindings_from_cc/test/function/inline/inline_api_impl.cc +++ b/rs_bindings_from_cc/test/function/inline/inline_api_impl.cc @@ -23,7 +23,7 @@ extern "C" int __rust_thunk___Z18hello_world_inlinev() { return hello_world_inline(); } -static_assert((int (*)())&hello_world_inline); +static_assert((int (*)()) & ::hello_world_inline); static_assert(CRUBIT_SIZEOF(struct SomeStruct) == 4); static_assert(alignof(struct SomeStruct) == 4); @@ -38,19 +38,19 @@ extern "C" int __rust_thunk___Z24take_struct_by_const_ptrPK10SomeStruct( return take_struct_by_const_ptr(s); } -static_assert((int (*)(struct SomeStruct const*))&take_struct_by_const_ptr); +static_assert((int (*)(struct SomeStruct const*)) & ::take_struct_by_const_ptr); extern "C" unsigned int __rust_thunk___Z19double_unsigned_intj(unsigned int i) { return double_unsigned_int(i); } -static_assert((unsigned int (*)(unsigned int))&double_unsigned_int); +static_assert((unsigned int (*)(unsigned int)) & ::double_unsigned_int); extern "C" int __rust_thunk___ZN10namespaced24forward_declared_doublerEi( int x) { return namespaced::forward_declared_doubler(x); } -static_assert((int (*)(int))&namespaced::forward_declared_doubler); +static_assert((int (*)(int)) & ::namespaced::forward_declared_doubler); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/function/simple/simple_api_impl.cc b/rs_bindings_from_cc/test/function/simple/simple_api_impl.cc index d3fe178cf..14ba0c24c 100644 --- a/rs_bindings_from_cc/test/function/simple/simple_api_impl.cc +++ b/rs_bindings_from_cc/test/function/simple/simple_api_impl.cc @@ -19,35 +19,36 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wthread-safety-analysis" -static_assert((int (*)())&return_value); +static_assert((int (*)()) & ::return_value); -static_assert((int* (*)())&return_pointer); +static_assert((int* (*)()) & ::return_pointer); -static_assert((int& (*)())&return_reference); +static_assert((int& (*)()) & ::return_reference); -static_assert((void (*)(int*))&take_pointer); +static_assert((void (*)(int*)) & ::take_pointer); -static_assert((void (*)(int&))&take_reference); +static_assert((void (*)(int&)) & ::take_reference); -static_assert((int const* (*)(int const*)) & forward_pointer); +static_assert((int const* (*)(int const*)) & ::forward_pointer); -static_assert((int const& (*)(int const&)) & forward_reference); +static_assert((int const& (*)(int const&)) & ::forward_reference); -static_assert((int (*)(int, int))&multiply); +static_assert((int (*)(int, int)) & ::multiply); -static_assert((int (*)(int, int))&multiply_with_unnamed_parameters); +static_assert((int (*)(int, int)) & ::multiply_with_unnamed_parameters); -static_assert((int (*)(int, int, int))&multiply_with_keyword_named_parameters); +static_assert((int (*)(int, int, int)) & + ::multiply_with_keyword_named_parameters); -static_assert((int (*)())&llvm_no_mangle_marker); +static_assert((int (*)()) & ::llvm_no_mangle_marker); -static_assert((int (*)())&asm_name_with_dollar_sign); +static_assert((int (*)()) & ::asm_name_with_dollar_sign); static_assert((crubit::type_identity_t * (*)()) & - get_pointer_to_multiply_function); + ::get_pointer_to_multiply_function); static_assert((crubit::type_identity_t & (*)()) & - get_reference_to_multiply_function); + ::get_reference_to_multiply_function); extern "C" crubit::type_identity_t* __rust_thunk___Z39inline_get_pointer_to_multiply_functionv() { @@ -55,14 +56,14 @@ __rust_thunk___Z39inline_get_pointer_to_multiply_functionv() { } static_assert((crubit::type_identity_t * (*)()) & - inline_get_pointer_to_multiply_function); + ::inline_get_pointer_to_multiply_function); extern "C" int __rust_thunk___Z15apply_binary_opiiPFiiiE( int x, int y, crubit::type_identity_t* op) { return apply_binary_op(x, y, op); } -static_assert((int (*)( - int, int, crubit::type_identity_t*))&apply_binary_op); +static_assert((int (*)(int, int, crubit::type_identity_t*)) & + ::apply_binary_op); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/bridge_type_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/bridge_type_rs_api_impl.cc index 22727599c..cda4bbb8b 100644 --- a/rs_bindings_from_cc/test/golden/bridge_type_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/bridge_type_rs_api_impl.cc @@ -25,7 +25,7 @@ extern "C" void __rust_thunk___Z15ReturnCppStructv(void* __return) { cpp_to_rust_converter(&__original_cpp_struct, __return); } -static_assert((struct CppStruct (*)())&ReturnCppStruct); +static_assert((struct CppStruct (*)()) & ::ReturnCppStruct); extern "C" void rust_to_cpp_converter(void* rust_struct, void* cpp_struct); extern "C" void __rust_thunk___Z13TakeCppStruct9CppStruct(void* __param_0) { @@ -34,6 +34,6 @@ extern "C" void __rust_thunk___Z13TakeCppStruct9CppStruct(void* __param_0) { TakeCppStruct(std::move(*&(__converted___param_0.val))); } -static_assert((void (*)(struct CppStruct))&TakeCppStruct); +static_assert((void (*)(struct CppStruct)) & ::TakeCppStruct); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/c_abi_compatible_type_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/c_abi_compatible_type_rs_api_impl.cc index 11f0c28f6..cccb1a333 100644 --- a/rs_bindings_from_cc/test/golden/c_abi_compatible_type_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/c_abi_compatible_type_rs_api_impl.cc @@ -30,12 +30,12 @@ extern "C" MyI8 __rust_thunk___Z3ffi4MyI81X(MyI8 a, struct X* b) { return ffi(std::move(a), std::move(*b)); } -static_assert((MyI8 (*)(MyI8, struct X))&ffi); +static_assert((MyI8 (*)(MyI8, struct X)) & ::ffi); extern "C" void __rust_thunk___Z1fiPvi(MyTypedefDecl a, void* b, int c) { f(a, b, c); } -static_assert((void (*)(MyTypedefDecl, void*, int))&f); +static_assert((void (*)(MyTypedefDecl, void*, int)) & ::f); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/callables_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/callables_rs_api_impl.cc index 4108b5d9d..466ad2809 100644 --- a/rs_bindings_from_cc/test/golden/callables_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/callables_rs_api_impl.cc @@ -31,6 +31,6 @@ extern "C" int __rust_thunk___ZNK17NotCABICompatible3getEv( return __this->get(); } -static_assert((int (::NotCABICompatible::*)() const) & NotCABICompatible::get); +static_assert((int (NotCABICompatible::*)() const) & ::NotCABICompatible::get); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/comment_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/comment_rs_api_impl.cc index 445131745..e79232da8 100644 --- a/rs_bindings_from_cc/test/golden/comment_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/comment_rs_api_impl.cc @@ -29,7 +29,7 @@ extern "C" void __rust_thunk___ZN3FooC1Ev(struct Foo* __this) { extern "C" void __rust_thunk___Z3foov() { foo(); } -static_assert((void (*)())&foo); +static_assert((void (*)()) & ::foo); static_assert(CRUBIT_SIZEOF(struct Bar) == 4); static_assert(alignof(struct Bar) == 4); diff --git a/rs_bindings_from_cc/test/golden/composable_bridging_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/composable_bridging_rs_api_impl.cc index 407bf2f1d..cbdaf66e5 100644 --- a/rs_bindings_from_cc/test/golden/composable_bridging_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/composable_bridging_rs_api_impl.cc @@ -25,7 +25,7 @@ extern "C" void __rust_thunk___Z15ReturnCppStructv( ::crubit::CppStructAbi(), __return_abi_buffer, ReturnCppStruct()); } -static_assert((struct CppStruct (*)())&ReturnCppStruct); +static_assert((struct CppStruct (*)()) & ::ReturnCppStruct); extern "C" void __rust_thunk___Z13TakeCppStruct9CppStruct( const unsigned char* __param_0) { @@ -33,7 +33,7 @@ extern "C" void __rust_thunk___Z13TakeCppStruct9CppStruct( ::crubit::CppStructAbi(), __param_0)); } -static_assert((void (*)(struct CppStruct))&TakeCppStruct); +static_assert((void (*)(struct CppStruct)) & ::TakeCppStruct); static_assert(CRUBIT_SIZEOF(struct Vec3) == 12); static_assert(alignof(struct Vec3) == 4); @@ -55,8 +55,8 @@ extern "C" void __rust_thunk___Z16MakeOptionalVec3fffb( __return_abi_buffer, MakeOptionalVec3(x, y, z, is_present)); } -static_assert((struct MyOption (*)(float, float, float, - bool))&MakeOptionalVec3); +static_assert((struct MyOption (*)(float, float, float, bool)) & + ::MakeOptionalVec3); extern "C" void __rust_thunk___Z11MapMultiply8MyOptionI4Vec3Ef( unsigned char* __return_abi_buffer, const unsigned char* v, float factor) { @@ -73,8 +73,8 @@ extern "C" void __rust_thunk___Z11MapMultiply8MyOptionI4Vec3Ef( factor)); } -static_assert((struct MyOption (*)(struct MyOption, - float))&MapMultiply); +static_assert((struct MyOption (*)(struct MyOption, float)) & + ::MapMultiply); extern "C" void __rust_thunk___Z14MakeMyI8Structv( unsigned char* __return_abi_buffer) { @@ -85,11 +85,12 @@ extern "C" void __rust_thunk___Z14MakeMyI8Structv( __return_abi_buffer, MakeMyI8Struct()); } -static_assert((struct MyOption (*)())&MakeMyI8Struct); +static_assert((struct MyOption (*)()) & ::MakeMyI8Struct); static_assert( - (void (*)(::rs_std::SliceRef>>))&InspectStringViews); + (void (*)(::rs_std::SliceRef< + class std::basic_string_view>>)) & + ::InspectStringViews); extern "C" void __rust_thunk___Z12MaybeVoidPtrv( unsigned char* __return_abi_buffer) { @@ -100,7 +101,7 @@ extern "C" void __rust_thunk___Z12MaybeVoidPtrv( __return_abi_buffer, MaybeVoidPtr()); } -static_assert((struct MyOption (*)())&MaybeVoidPtr); +static_assert((struct MyOption (*)()) & ::MaybeVoidPtr); extern "C" void __rust_thunk___Z40AcceptsSliceAndReturnsStatusErrorIfEmptyN6rs_std8SliceRefIKiEE( @@ -114,7 +115,8 @@ __rust_thunk___Z40AcceptsSliceAndReturnsStatusErrorIfEmptyN6rs_std8SliceRefIKiEE } static_assert((struct MyOption> (*)( - ::rs_std::SliceRef))&AcceptsSliceAndReturnsStatusErrorIfEmpty); + ::rs_std::SliceRef)) & + ::AcceptsSliceAndReturnsStatusErrorIfEmpty); extern "C" void __rust_thunk___Z16ReturnsCStrArrayv( unsigned char* __return_abi_buffer) { @@ -125,7 +127,7 @@ extern "C" void __rust_thunk___Z16ReturnsCStrArrayv( __return_abi_buffer, ReturnsCStrArray()); } -static_assert((struct MyOption (*)())&ReturnsCStrArray); +static_assert((struct MyOption (*)()) & ::ReturnsCStrArray); static_assert( CRUBIT_SIZEOF( 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 deb5ca497..6c068703f 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 @@ -324,8 +324,9 @@ pub type MyTypeAlias = crate::DocCommentSlashes; // Class templates are not supported yet // Error while generating bindings for type alias 'ConcreteNestedStruct': -// Can't generate bindings for NestedStruct, because of missing required features (crubit.rs-features): -// //rs_bindings_from_cc/test/golden:doc_comment_cc needs [//features:wrapper] for NestedStruct (incomplete type) +// Can't generate bindings for ConcreteNestedStruct, because of missing required features (crubit.rs-features): +// //rs_bindings_from_cc/test/golden:doc_comment_cc needs [//features:wrapper] for ConcreteNestedStruct (error: Can't generate bindings for NestedStruct, because of missing required features (crubit.rs-features): +// //rs_bindings_from_cc/test/golden:doc_comment_cc needs [//features:wrapper] for NestedStruct (incomplete type)) // Error while generating bindings for struct 'MyTemplate': // Can't generate bindings for MyTemplate, because of missing required features (crubit.rs-features): diff --git a/rs_bindings_from_cc/test/golden/doc_comment_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/doc_comment_rs_api_impl.cc index 80156f6b8..ffe3bfd3f 100644 --- a/rs_bindings_from_cc/test/golden/doc_comment_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/doc_comment_rs_api_impl.cc @@ -22,13 +22,13 @@ static_assert(CRUBIT_SIZEOF(struct DocCommentSlashes) == 4); static_assert(alignof(struct DocCommentSlashes) == 4); static_assert(CRUBIT_OFFSET_OF(i, struct DocCommentSlashes) == 0); -static_assert((int (::DocCommentSlashes::*)() const) & - DocCommentSlashes::get_field_value); +static_assert((int (DocCommentSlashes::*)() const) & + ::DocCommentSlashes::get_field_value); -static_assert( - (void (::DocCommentSlashes::*)(int))&DocCommentSlashes::set_field_value); +static_assert((void (DocCommentSlashes::*)(int)) & + ::DocCommentSlashes::set_field_value); -static_assert((int (*)())&DocCommentSlashes::static_method); +static_assert((int (*)()) & ::DocCommentSlashes::static_method); static_assert(CRUBIT_SIZEOF(struct DocCommentBang) == 4); static_assert(alignof(struct DocCommentBang) == 4); @@ -67,6 +67,6 @@ extern "C" void __rust_thunk___ZN16MultilineOneStarC1Ev( extern "C" int __rust_thunk___Z3foov() { return foo(); } -static_assert((int (*)())&foo); +static_assert((int (*)()) & ::foo); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/escaping_keywords_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/escaping_keywords_rs_api_impl.cc index f9b48db99..c81590ff7 100644 --- a/rs_bindings_from_cc/test/golden/escaping_keywords_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/escaping_keywords_rs_api_impl.cc @@ -26,6 +26,6 @@ extern "C" void __rust_thunk___ZN4typeC1Ev(struct type* __this) { crubit::construct_at(__this); } -static_assert((void (*)(int))&impl); +static_assert((void (*)(int)) & ::impl); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/inheritance_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/inheritance_rs_api_impl.cc index c6287bac0..f496ffb0c 100644 --- a/rs_bindings_from_cc/test/golden/inheritance_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/inheritance_rs_api_impl.cc @@ -81,14 +81,14 @@ extern "C" void __rust_thunk___ZN11MethodBase1C1Ev(class MethodBase1* __this) { crubit::construct_at(__this); } -static_assert((void (::MethodBase1::*)())&MethodBase1::Public); +static_assert((void (MethodBase1::*)()) & ::MethodBase1::Public); -static_assert( - (void (::MethodBase1::*)(class MethodBase1 const*))&MethodBase1::Equals); +static_assert((void (MethodBase1::*)(class MethodBase1 const*)) & + ::MethodBase1::Equals); -static_assert((void (::MethodBase1::*)())&MethodBase1::Colliding1); +static_assert((void (MethodBase1::*)()) & ::MethodBase1::Colliding1); -static_assert((void (::MethodBase1::*)())&MethodBase1::Colliding2); +static_assert((void (MethodBase1::*)()) & ::MethodBase1::Colliding2); static_assert(sizeof(class MethodBase2) == 1); static_assert(alignof(class MethodBase2) == 1); @@ -97,9 +97,9 @@ extern "C" void __rust_thunk___ZN11MethodBase2C1Ev(class MethodBase2* __this) { crubit::construct_at(__this); } -static_assert((void (::MethodBase2::*)())&MethodBase2::Colliding1); +static_assert((void (MethodBase2::*)()) & ::MethodBase2::Colliding1); -static_assert((void (::MethodBase2::*)())&MethodBase2::Colliding2); +static_assert((void (MethodBase2::*)()) & ::MethodBase2::Colliding2); static_assert(sizeof(class MethodDerived) == 1); static_assert(alignof(class MethodDerived) == 1); diff --git a/rs_bindings_from_cc/test/golden/item_order_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/item_order_rs_api_impl.cc index 114b0910b..a223c8161 100644 --- a/rs_bindings_from_cc/test/golden/item_order_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/item_order_rs_api_impl.cc @@ -28,7 +28,7 @@ extern "C" void __rust_thunk___ZN11FirstStructC1Ev(struct FirstStruct* __this) { extern "C" int __rust_thunk___Z10first_funcv() { return first_func(); } -static_assert((int (*)())&first_func); +static_assert((int (*)()) & ::first_func); static_assert(CRUBIT_SIZEOF(struct SecondStruct) == 4); static_assert(alignof(struct SecondStruct) == 4); @@ -41,6 +41,6 @@ extern "C" void __rust_thunk___ZN12SecondStructC1Ev( extern "C" int __rust_thunk___Z11second_funcv() { return second_func(); } -static_assert((int (*)())&second_func); +static_assert((int (*)()) & ::second_func); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/lifetimes_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/lifetimes_rs_api_impl.cc index ad6e258a4..f122eb3d7 100644 --- a/rs_bindings_from_cc/test/golden/lifetimes_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/lifetimes_rs_api_impl.cc @@ -16,17 +16,18 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wthread-safety-analysis" -static_assert((void (*)(crubit::type_identity_t*))&AddHook); +static_assert((void (*)(crubit::type_identity_t*)) & ::AddHook); -static_assert((void (*)(crubit::type_identity_t*))&AddHookWithTypedef); +static_assert((void (*)(crubit::type_identity_t*)) & + ::AddHookWithTypedef); -static_assert((void (*)(crubit::type_identity_t&))&AddAnotherHook); +static_assert((void (*)(crubit::type_identity_t&)) & ::AddAnotherHook); -static_assert( - (void (*)(crubit::type_identity_t&))&AddAnotherHookWithTypedef); +static_assert((void (*)(crubit::type_identity_t&)) & + ::AddAnotherHookWithTypedef); -static_assert((void (*)(int*))&ConsumeArray); +static_assert((void (*)(int*)) & ::ConsumeArray); -static_assert((void (*)(int*))&ConsumeArrayWithTypedef); +static_assert((void (*)(int*)) & ::ConsumeArrayWithTypedef); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/method_qualifiers_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/method_qualifiers_rs_api_impl.cc index da44429ed..7ba444238 100644 --- a/rs_bindings_from_cc/test/golden/method_qualifiers_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/method_qualifiers_rs_api_impl.cc @@ -25,15 +25,15 @@ extern "C" void __rust_thunk___ZN9NoninlineC1Ev(struct Noninline* __this) { crubit::construct_at(__this); } -static_assert((void (::Noninline::*)())&Noninline::UnqualifiedMethod); +static_assert((void (Noninline::*)()) & ::Noninline::UnqualifiedMethod); -static_assert((void (::Noninline::*)() &)&Noninline::LvalueMethod); +static_assert((void (Noninline::*)() &)&::Noninline::LvalueMethod); -static_assert((void (::Noninline::*)() const&)&Noninline::LvalueMethodConst); +static_assert((void (Noninline::*)() const&)&::Noninline::LvalueMethodConst); -static_assert((void (::Noninline::*)() &&)&Noninline::RvalueMethod); +static_assert((void (Noninline::*)() &&)&::Noninline::RvalueMethod); -static_assert((void (::Noninline::*)() const&&)&Noninline::RvalueMethodConst); +static_assert((void (Noninline::*)() const&&)&::Noninline::RvalueMethodConst); static_assert(sizeof(struct Inline) == 1); static_assert(alignof(struct Inline) == 1); @@ -47,34 +47,34 @@ extern "C" void __rust_thunk___ZN6Inline17UnqualifiedMethodEv( __this->UnqualifiedMethod(); } -static_assert((void (::Inline::*)())&Inline::UnqualifiedMethod); +static_assert((void (Inline::*)()) & ::Inline::UnqualifiedMethod); extern "C" void __rust_thunk___ZNR6Inline12LvalueMethodEv( struct Inline* __this) { __this->LvalueMethod(); } -static_assert((void (::Inline::*)() &)&Inline::LvalueMethod); +static_assert((void (Inline::*)() &)&::Inline::LvalueMethod); extern "C" void __rust_thunk___ZNKR6Inline17LvalueMethodConstEv( struct Inline const* __this) { __this->LvalueMethodConst(); } -static_assert((void (::Inline::*)() const&)&Inline::LvalueMethodConst); +static_assert((void (Inline::*)() const&)&::Inline::LvalueMethodConst); extern "C" void __rust_thunk___ZNO6Inline12RvalueMethodEv( struct Inline* __this) { std::move(*__this).RvalueMethod(); } -static_assert((void (::Inline::*)() &&)&Inline::RvalueMethod); +static_assert((void (Inline::*)() &&)&::Inline::RvalueMethod); extern "C" void __rust_thunk___ZNKO6Inline17RvalueMethodConstEv( struct Inline const* __this) { std::move(*__this).RvalueMethodConst(); } -static_assert((void (::Inline::*)() const&&)&Inline::RvalueMethodConst); +static_assert((void (Inline::*)() const&&)&::Inline::RvalueMethodConst); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/namespace_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/namespace_rs_api_impl.cc index 16ab11975..9db5ae23e 100644 --- a/rs_bindings_from_cc/test/golden/namespace_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/namespace_rs_api_impl.cc @@ -32,17 +32,17 @@ extern "C" int __rust_thunk___ZN23test_namespace_bindings1fENS_1SE( return test_namespace_bindings::f(std::move(*s)); } -static_assert( - (int (*)(struct test_namespace_bindings::S))&test_namespace_bindings::f); +static_assert((int (*)(struct test_namespace_bindings::S)) & + ::test_namespace_bindings::f); extern "C" void __rust_thunk___ZN23test_namespace_bindings15inline_functionEv() { test_namespace_bindings::inline_function(); } -static_assert((void (*)())&test_namespace_bindings::inline_function); +static_assert((void (*)()) & ::test_namespace_bindings::inline_function); -static_assert((void (*)())&test_namespace_bindings::inner::i); +static_assert((void (*)()) & ::test_namespace_bindings::inner::i); extern "C" void __rust_thunk___Z8identityN23test_namespace_bindings1SE( struct test_namespace_bindings::S* __return, @@ -50,10 +50,11 @@ extern "C" void __rust_thunk___Z8identityN23test_namespace_bindings1SE( new (__return) auto(identity(std::move(*s))); } -static_assert((struct test_namespace_bindings::S (*)( - struct test_namespace_bindings::S))&identity); +static_assert( + (struct test_namespace_bindings::S (*)(struct test_namespace_bindings::S)) & + ::identity); -static_assert((void (*)())&test_namespace_bindings_reopened::x); +static_assert((void (*)()) & ::test_namespace_bindings_reopened::x); static_assert(sizeof(struct test_namespace_bindings_reopened::inner::S) == 1); static_assert(alignof(struct test_namespace_bindings_reopened::inner::S) == 1); @@ -63,7 +64,7 @@ extern "C" void __rust_thunk___ZN32test_namespace_bindings_reopened5inner1SC1Ev( crubit::construct_at(__this); } -static_assert((void (*)())&test_namespace_bindings_reopened::y); +static_assert((void (*)()) & ::test_namespace_bindings_reopened::y); extern "C" void __rust_thunk___ZN32test_namespace_bindings_reopened5inner1zENS0_1SE( @@ -71,8 +72,8 @@ __rust_thunk___ZN32test_namespace_bindings_reopened5inner1zENS0_1SE( test_namespace_bindings_reopened::inner::z(std::move(*s)); } -static_assert((void (*)(struct test_namespace_bindings_reopened::inner:: - S))&test_namespace_bindings_reopened::inner::z); +static_assert((void (*)(struct test_namespace_bindings_reopened::inner::S)) & + ::test_namespace_bindings_reopened::inner::z); static_assert(sizeof(struct test_namespace_bindings_inline::inner:: StructInInlineNamespace) == 1); @@ -92,9 +93,9 @@ __rust_thunk___Z43useStructInInlineNamespaceWithFullQualifierN30test_namespace_b useStructInInlineNamespaceWithFullQualifier(std::move(*s)); } -static_assert((void (*)( - struct test_namespace_bindings_inline::inner:: - StructInInlineNamespace))&useStructInInlineNamespaceWithFullQualifier); +static_assert((void (*)(struct test_namespace_bindings_inline::inner:: + StructInInlineNamespace)) & + ::useStructInInlineNamespaceWithFullQualifier); extern "C" void __rust_thunk___Z45useStructInInlineNamespaceSkipInlineQualifierN30test_namespace_bindings_inline5inner23StructInInlineNamespaceE( @@ -102,12 +103,12 @@ __rust_thunk___Z45useStructInInlineNamespaceSkipInlineQualifierN30test_namespace useStructInInlineNamespaceSkipInlineQualifier(std::move(*s)); } -static_assert((void (*)( - struct test_namespace_bindings_inline::inner:: - StructInInlineNamespace))&useStructInInlineNamespaceSkipInlineQualifier); +static_assert((void (*)(struct test_namespace_bindings_inline::inner:: + StructInInlineNamespace)) & + ::useStructInInlineNamespaceSkipInlineQualifier); extern "C" void __rust_thunk___ZN4impl3fooEv() { impl::foo(); } -static_assert((void (*)())&impl::foo); +static_assert((void (*)()) & ::impl::foo); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/no_elided_lifetimes_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/no_elided_lifetimes_rs_api_impl.cc index b192cd130..270d7e75f 100644 --- a/rs_bindings_from_cc/test/golden/no_elided_lifetimes_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/no_elided_lifetimes_rs_api_impl.cc @@ -18,7 +18,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wthread-safety-analysis" -static_assert((int& (*)(int&)) & free_function); +static_assert((int& (*)(int&)) & ::free_function); static_assert(sizeof(struct S) == 1); static_assert(alignof(struct S) == 1); @@ -27,9 +27,9 @@ extern "C" void __rust_thunk___ZN1SC1Ev(struct S* __this) { crubit::construct_at(__this); } -static_assert((int& (::S::*)(int&, int&) const) & S::const_method); +static_assert((int& (S::*)(int&, int&) const) & ::S::const_method); -static_assert((int& (::S::*)(int&, int&)) & S::method); +static_assert((int& (S::*)(int&, int&)) & ::S::method); static_assert(sizeof(struct TriviallyCopyableButNontriviallyDestructible) == 1); static_assert(alignof(struct TriviallyCopyableButNontriviallyDestructible) == @@ -49,7 +49,7 @@ __rust_thunk___ZN44TriviallyCopyableButNontriviallyDestructibleC1ERKS_( crubit::construct_at(__this, *__param_0); } -static_assert((void (*)(int*))&take_pointer); +static_assert((void (*)(int*)) & ::take_pointer); static_assert(CRUBIT_SIZEOF(class WrappedValue) == 4); static_assert(alignof(class WrappedValue) == 4); diff --git a/rs_bindings_from_cc/test/golden/no_unique_address_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/no_unique_address_rs_api_impl.cc index 45ef1275e..94ca14626 100644 --- a/rs_bindings_from_cc/test/golden/no_unique_address_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/no_unique_address_rs_api_impl.cc @@ -32,7 +32,7 @@ extern "C" void __rust_thunk___ZN6Struct4MakeEic(struct Struct* __return, new (__return) auto(Struct::Make(f1, f2)); } -static_assert((struct Struct (*)(int, char))&Struct::Make); +static_assert((struct Struct (*)(int, char)) & ::Struct::Make); static_assert(CRUBIT_SIZEOF(struct PaddingBetweenFields) == 8); static_assert(alignof(struct PaddingBetweenFields) == 4); @@ -49,8 +49,8 @@ extern "C" void __rust_thunk___ZN20PaddingBetweenFields4MakeEci( new (__return) auto(PaddingBetweenFields::Make(f1, f2)); } -static_assert( - (struct PaddingBetweenFields (*)(char, int))&PaddingBetweenFields::Make); +static_assert((struct PaddingBetweenFields (*)(char, int)) & + ::PaddingBetweenFields::Make); static_assert(CRUBIT_SIZEOF(struct FieldInTailPadding_InnerStruct) == 8); static_assert(alignof(struct FieldInTailPadding_InnerStruct) == 4); diff --git a/rs_bindings_from_cc/test/golden/noexcept_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/noexcept_rs_api_impl.cc index ddd8b3270..c9b9c0537 100644 --- a/rs_bindings_from_cc/test/golden/noexcept_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/noexcept_rs_api_impl.cc @@ -25,18 +25,18 @@ extern "C" void __rust_thunk___ZN9SomeClassC1Ev(class SomeClass* __this) { crubit::construct_at(__this); } -static_assert((void (*)(int, char))&SomeClass::create); +static_assert((void (*)(int, char)) & ::SomeClass::create); -static_assert((void (::SomeClass::*)())&SomeClass::no_except_member); +static_assert((void (SomeClass::*)()) & ::SomeClass::no_except_member); -static_assert((void (::SomeClass::*)())&SomeClass::no_except_true_member); +static_assert((void (SomeClass::*)()) & ::SomeClass::no_except_true_member); -static_assert((void (::SomeClass::*)())&SomeClass::no_except_false_member); +static_assert((void (SomeClass::*)()) & ::SomeClass::no_except_false_member); -static_assert((void (*)())&no_except); +static_assert((void (*)()) & ::no_except); -static_assert((void (*)())&no_except_true); +static_assert((void (*)()) & ::no_except_true); -static_assert((void (*)())&no_except_false); +static_assert((void (*)()) & ::no_except_false); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/nontrivial_type_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/nontrivial_type_rs_api_impl.cc index 67497b156..9f64d3b7b 100644 --- a/rs_bindings_from_cc/test/golden/nontrivial_type_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/nontrivial_type_rs_api_impl.cc @@ -28,14 +28,14 @@ extern "C" void __rust_thunk___ZN10NontrivialaSEf(struct Nontrivial* __return, new (__return) auto(__this->operator=(__param_0)); } -static_assert((void (::Nontrivial::*)())&Nontrivial::Unqualified); +static_assert((void (Nontrivial::*)()) & ::Nontrivial::Unqualified); -static_assert((void (::Nontrivial::*)() const) & Nontrivial::ConstQualified); +static_assert((void (Nontrivial::*)() const) & ::Nontrivial::ConstQualified); -static_assert((void (::Nontrivial::*)() &)&Nontrivial::LvalueRefQualified); +static_assert((void (Nontrivial::*)() &)&::Nontrivial::LvalueRefQualified); -static_assert((void (::Nontrivial::*)() - const&)&Nontrivial::ConstLvalueRefQualified); +static_assert((void (Nontrivial::*)() + const&)&::Nontrivial::ConstLvalueRefQualified); static_assert(CRUBIT_SIZEOF(struct NontrivialInline) == 4); static_assert(alignof(struct NontrivialInline) == 4); @@ -66,8 +66,8 @@ extern "C" void __rust_thunk___ZN16NontrivialInline14MemberFunctionEv( __this->MemberFunction(); } -static_assert( - (void (::NontrivialInline::*)())&NontrivialInline::MemberFunction); +static_assert((void (NontrivialInline::*)()) & + ::NontrivialInline::MemberFunction); static_assert(CRUBIT_SIZEOF(struct NontrivialMembers) == 4); static_assert(alignof(struct NontrivialMembers) == 4); @@ -88,30 +88,31 @@ static_assert(CRUBIT_SIZEOF(struct NontrivialUnpin) == 4); static_assert(alignof(struct NontrivialUnpin) == 4); static_assert(CRUBIT_OFFSET_OF(field, struct NontrivialUnpin) == 0); -static_assert((void (::NontrivialUnpin::*)())&NontrivialUnpin::MemberFunction); +static_assert((void (NontrivialUnpin::*)()) & + ::NontrivialUnpin::MemberFunction); extern "C" void __rust_thunk___Z12TakesByValue10Nontrivial( struct Nontrivial* __return, struct Nontrivial* nontrivial) { new (__return) auto(TakesByValue(std::move(*nontrivial))); } -static_assert((struct Nontrivial (*)(struct Nontrivial))&TakesByValue); +static_assert((struct Nontrivial (*)(struct Nontrivial)) & ::TakesByValue); extern "C" void __rust_thunk___Z18TakesByValueInline16NontrivialInline( struct NontrivialInline* __return, struct NontrivialInline* nontrivial) { new (__return) auto(TakesByValueInline(std::move(*nontrivial))); } -static_assert( - (struct NontrivialInline (*)(struct NontrivialInline))&TakesByValueInline); +static_assert((struct NontrivialInline (*)(struct NontrivialInline)) & + ::TakesByValueInline); extern "C" void __rust_thunk___Z17TakesByValueUnpin15NontrivialUnpin( struct NontrivialUnpin* __return, struct NontrivialUnpin* nontrivial) { new (__return) auto(TakesByValueUnpin(std::move(*nontrivial))); } -static_assert( - (struct NontrivialUnpin (*)(struct NontrivialUnpin))&TakesByValueUnpin); +static_assert((struct NontrivialUnpin (*)(struct NontrivialUnpin)) & + ::TakesByValueUnpin); static_assert(sizeof(struct NontrivialByValue) == 1); static_assert(alignof(struct NontrivialByValue) == 1); @@ -125,13 +126,13 @@ extern "C" void __rust_thunk___ZN17NontrivialByValueaSE10Nontrivial( static_assert(sizeof(struct Nonmovable) == 1); static_assert(alignof(struct Nonmovable) == 1); -static_assert((void (::Nonmovable::*)())&Nonmovable::MemberFunction); +static_assert((void (Nonmovable::*)()) & ::Nonmovable::MemberFunction); extern "C" void __rust_thunk___Z24ReturnsNonmovableByValuev( struct Nonmovable* __return) { new (__return) auto(ReturnsNonmovableByValue()); } -static_assert((struct Nonmovable (*)())&ReturnsNonmovableByValue); +static_assert((struct Nonmovable (*)()) & ::ReturnsNonmovableByValue); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/overloads_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/overloads_rs_api_impl.cc index 3254e5c84..7b39c048d 100644 --- a/rs_bindings_from_cc/test/golden/overloads_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/overloads_rs_api_impl.cc @@ -18,15 +18,15 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wthread-safety-analysis" -static_assert((void (*)())&Overload2); +static_assert((void (*)()) & ::Overload2); -static_assert((void (*)(int))&Overlaod2); +static_assert((void (*)(int)) & ::Overlaod2); extern "C" void __rust_thunk___Z20AlsoTemplateOverloadv() { AlsoTemplateOverload(); } -static_assert((void (*)())&AlsoTemplateOverload); +static_assert((void (*)()) & ::AlsoTemplateOverload); static_assert(sizeof(class Foo) == 1); static_assert(alignof(class Foo) == 1); @@ -35,6 +35,6 @@ extern "C" void __rust_thunk___ZN3FooC1Ev(class Foo* __this) { crubit::construct_at(__this); } -static_assert((void (::Foo::*)(int))&Foo::Bar); +static_assert((void (Foo::*)(int)) & ::Foo::Bar); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/overloads_unsupported_template_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/overloads_unsupported_template_rs_api_impl.cc index 5f9942b3e..f38b65efd 100644 --- a/rs_bindings_from_cc/test/golden/overloads_unsupported_template_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/overloads_unsupported_template_rs_api_impl.cc @@ -18,6 +18,6 @@ extern "C" void __rust_thunk___Z8Overloadv() { Overload(); } -static_assert((void (*)())&Overload); +static_assert((void (*)()) & ::Overload); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/polymorphic_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/polymorphic_rs_api_impl.cc index 2359586f4..baaada145 100644 --- a/rs_bindings_from_cc/test/golden/polymorphic_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/polymorphic_rs_api_impl.cc @@ -44,7 +44,7 @@ extern "C" void __rust_thunk___ZN16PolymorphicBase23FooEv( __this->Foo(); } -static_assert((void (::PolymorphicBase2::*)())&PolymorphicBase2::Foo); +static_assert((void (PolymorphicBase2::*)()) & ::PolymorphicBase2::Foo); extern "C" void __rust_thunk___ZN16PolymorphicBase2D1Ev( class PolymorphicBase2* __this) { diff --git a/rs_bindings_from_cc/test/golden/private_members_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/private_members_rs_api_impl.cc index 31e8863d2..3f18bbfe1 100644 --- a/rs_bindings_from_cc/test/golden/private_members_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/private_members_rs_api_impl.cc @@ -28,11 +28,10 @@ extern "C" void __rust_thunk___ZN23test_namespace_bindings9SomeClassC1Ev( crubit::construct_at(__this); } -static_assert( - (void (::test_namespace_bindings::SomeClass::*)())&test_namespace_bindings:: - SomeClass::public_method); +static_assert((void (test_namespace_bindings::SomeClass::*)()) & + ::test_namespace_bindings::SomeClass::public_method); -static_assert( - (void (*)())&test_namespace_bindings::SomeClass::public_static_method); +static_assert((void (*)()) & + ::test_namespace_bindings::SomeClass::public_static_method); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/static_methods_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/static_methods_rs_api_impl.cc index f086a08ad..d0644ab78 100644 --- a/rs_bindings_from_cc/test/golden/static_methods_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/static_methods_rs_api_impl.cc @@ -30,9 +30,9 @@ extern "C" void __rust_thunk___ZN9SomeClass21static_factory_methodEi( new (__return) auto(SomeClass::static_factory_method(initial_value_of_field)); } -static_assert((class SomeClass (*)(int))&SomeClass::static_factory_method); +static_assert((class SomeClass (*)(int)) & ::SomeClass::static_factory_method); -static_assert((int (*)(int, - int))&SomeClass::static_method_that_multiplies_its_args); +static_assert((int (*)(int, int)) & + ::SomeClass::static_method_that_multiplies_its_args); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/template_inst_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/template_inst_rs_api_impl.cc index f0ac87c69..6a5badf4c 100644 --- a/rs_bindings_from_cc/test/golden/template_inst_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/template_inst_rs_api_impl.cc @@ -23,7 +23,7 @@ extern "C" void __rust_thunk___Z13GetMyTemplatev( new (__return) auto(GetMyTemplate()); } -static_assert((struct MyTemplate (*)())&GetMyTemplate); +static_assert((struct MyTemplate (*)()) & ::GetMyTemplate); static_assert(CRUBIT_SIZEOF(struct MyTemplate) == 4); static_assert(alignof(struct MyTemplate) == 4); diff --git a/rs_bindings_from_cc/test/golden/trivial_type_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/trivial_type_rs_api_impl.cc index dfbeb2b6f..842944758 100644 --- a/rs_bindings_from_cc/test/golden/trivial_type_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/trivial_type_rs_api_impl.cc @@ -26,20 +26,21 @@ extern "C" void __rust_thunk___ZN2ns7TrivialC1Ev(struct ns::Trivial* __this) { crubit::construct_at(__this); } -static_assert((void (::ns::Trivial::*)())&ns::Trivial::Unqualified); +static_assert((void (ns::Trivial::*)()) & ::ns::Trivial::Unqualified); -static_assert((void (::ns::Trivial::*)() const) & ns::Trivial::ConstQualified); +static_assert((void (ns::Trivial::*)() const) & ::ns::Trivial::ConstQualified); -static_assert((void (::ns::Trivial::*)() &)&ns::Trivial::LvalueRefQualified); +static_assert((void (ns::Trivial::*)() &)&::ns::Trivial::LvalueRefQualified); -static_assert((void (::ns::Trivial::*)() - const&)&ns::Trivial::ConstLvalueRefQualified); +static_assert((void (ns::Trivial::*)() + const&)&::ns::Trivial::ConstLvalueRefQualified); extern "C" void __rust_thunk___ZN2ns12TakesByValueENS_7TrivialE( struct ns::Trivial* __return, struct ns::Trivial* trivial) { new (__return) auto(ns::TakesByValue(std::move(*trivial))); } -static_assert((struct ns::Trivial (*)(struct ns::Trivial))&ns::TakesByValue); +static_assert((struct ns::Trivial (*)(struct ns::Trivial)) & + ::ns::TakesByValue); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/typedefs_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/typedefs_rs_api_impl.cc index 717102779..48e2edc80 100644 --- a/rs_bindings_from_cc/test/golden/typedefs_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/typedefs_rs_api_impl.cc @@ -47,6 +47,6 @@ extern "C" void __rust_thunk___ZN14SomeOtherUnionC1Ev(SomeOtherUnion* __this) { crubit::construct_at(__this); } -static_assert((SomeStruct::nested_type (*)())&FunctionUsingNestedType); +static_assert((SomeStruct::nested_type (*)()) & ::FunctionUsingNestedType); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/types_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/types_rs_api_impl.cc index 71ebe11ce..972d96d9f 100644 --- a/rs_bindings_from_cc/test/golden/types_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/types_rs_api_impl.cc @@ -92,7 +92,7 @@ extern "C" void __rust_thunk___Z21VoidReturningFunctionv() { VoidReturningFunction(); } -static_assert((void (*)())&VoidReturningFunction); +static_assert((void (*)()) & ::VoidReturningFunction); extern "C" crubit::type_identity_t* __rust_thunk___Z32FunctionPointerReturningFunctionv() { @@ -100,13 +100,13 @@ __rust_thunk___Z32FunctionPointerReturningFunctionv() { } static_assert((crubit::type_identity_t * (*)()) & - FunctionPointerReturningFunction); + ::FunctionPointerReturningFunction); extern "C" void* __rust_thunk___Z24FunctionWithVoidPointersPvPKv( void* __param_0, void const* __param_1) { return FunctionWithVoidPointers(__param_0, __param_1); } -static_assert((void* (*)(void*, void const*)) & FunctionWithVoidPointers); +static_assert((void* (*)(void*, void const*)) & ::FunctionWithVoidPointers); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/unsafe_attrs_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/unsafe_attrs_rs_api_impl.cc index ef0effa6b..fdcf8c1d7 100644 --- a/rs_bindings_from_cc/test/golden/unsafe_attrs_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/unsafe_attrs_rs_api_impl.cc @@ -18,22 +18,22 @@ extern "C" bool __rust_thunk___ZL11ReturnsTruev() { return ReturnsTrue(); } -static_assert((bool (*)())&ReturnsTrue); +static_assert((bool (*)()) & ::ReturnsTrue); extern "C" bool __rust_thunk___ZL12ReturnsFalsev() { return ReturnsFalse(); } -static_assert((bool (*)())&ReturnsFalse); +static_assert((bool (*)()) & ::ReturnsFalse); -static_assert((void (*)())&TotallySafe); +static_assert((void (*)()) & ::TotallySafe); -static_assert((void (*)(void*))&TotallyUnsafe); +static_assert((void (*)(void*)) & ::TotallyUnsafe); -static_assert((void (*)())&SafeSignatureButAnnotatedUnsafe); +static_assert((void (*)()) & ::SafeSignatureButAnnotatedUnsafe); -static_assert((void (*)())&SafeSignatureButAnnotatedSafe); +static_assert((void (*)()) & ::SafeSignatureButAnnotatedSafe); -static_assert((void (*)(void*))&UnsafeSignatureButAnnotatedUnsafe); +static_assert((void (*)(void*)) & ::UnsafeSignatureButAnnotatedUnsafe); -static_assert((void (*)(void*))&UnsafeSignatureButAnnotatedSafe); +static_assert((void (*)(void*)) & ::UnsafeSignatureButAnnotatedSafe); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/unsafe_types_transitive_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/unsafe_types_transitive_rs_api_impl.cc index 1e10f45a5..b56faac0f 100644 --- a/rs_bindings_from_cc/test/golden/unsafe_types_transitive_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/unsafe_types_transitive_rs_api_impl.cc @@ -59,14 +59,14 @@ extern "C" void __rust_thunk___ZN5UnionC1Ev(union Union* __this) { crubit::construct_at(__this); } -static_assert((int (*)(int*))&DerefPointer); +static_assert((int (*)(int*)) & ::DerefPointer); extern "C" int __rust_thunk___Z18DerefPublicPointer13PublicPointer( struct PublicPointer* p) { return DerefPublicPointer(std::move(*p)); } -static_assert((int (*)(struct PublicPointer))&DerefPublicPointer); +static_assert((int (*)(struct PublicPointer)) & ::DerefPublicPointer); extern "C" int __rust_thunk___Z28DerefTransitivePublicPointer23TransitivePublicPointer( @@ -74,13 +74,13 @@ __rust_thunk___Z28DerefTransitivePublicPointer23TransitivePublicPointer( return DerefTransitivePublicPointer(std::move(*p)); } -static_assert( - (int (*)(struct TransitivePublicPointer))&DerefTransitivePublicPointer); +static_assert((int (*)(struct TransitivePublicPointer)) & + ::DerefTransitivePublicPointer); extern "C" int __rust_thunk___Z9ReadUnion5Union(union Union* u) { return ReadUnion(std::move(*u)); } -static_assert((int (*)(union Union))&ReadUnion); +static_assert((int (*)(union Union)) & ::ReadUnion); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/golden/user_of_imported_type_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/user_of_imported_type_rs_api_impl.cc index 9c971f5a5..a718d4bbe 100644 --- a/rs_bindings_from_cc/test/golden/user_of_imported_type_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/user_of_imported_type_rs_api_impl.cc @@ -23,7 +23,8 @@ extern "C" void __rust_thunk___Z16UsesImportedTypeN2ns7TrivialE( new (__return) auto(UsesImportedType(std::move(*t))); } -static_assert((struct ns::Trivial (*)(struct ns::Trivial))&UsesImportedType); +static_assert((struct ns::Trivial (*)(struct ns::Trivial)) & + ::UsesImportedType); static_assert(CRUBIT_SIZEOF(struct UserOfImportedType) == 8); static_assert(alignof(struct UserOfImportedType) == 8); diff --git a/rs_bindings_from_cc/test/golden/user_of_unsupported_rs_api_impl.cc b/rs_bindings_from_cc/test/golden/user_of_unsupported_rs_api_impl.cc index 81baec621..8c66ba38d 100644 --- a/rs_bindings_from_cc/test/golden/user_of_unsupported_rs_api_impl.cc +++ b/rs_bindings_from_cc/test/golden/user_of_unsupported_rs_api_impl.cc @@ -23,6 +23,7 @@ extern "C" void __rust_thunk___Z23UseNontrivialCustomType20NontrivialCustomType( UseNontrivialCustomType(std::move(*non_trivial_custom_type)); } -static_assert((void (*)(struct NontrivialCustomType))&UseNontrivialCustomType); +static_assert((void (*)(struct NontrivialCustomType)) & + ::UseNontrivialCustomType); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/namespace/inline/inline_api_impl.cc b/rs_bindings_from_cc/test/namespace/inline/inline_api_impl.cc index f017a6908..7e2420386 100644 --- a/rs_bindings_from_cc/test/namespace/inline/inline_api_impl.cc +++ b/rs_bindings_from_cc/test/namespace/inline/inline_api_impl.cc @@ -33,31 +33,31 @@ extern "C" int __rust_thunk___ZN3foo7inline115GetStructValue1EPKNS0_8MyStructE( return foo::inline1::GetStructValue1(s); } -static_assert((int (*)( - struct foo::inline1::MyStruct const*))&foo::inline1::GetStructValue1); +static_assert((int (*)(struct foo::inline1::MyStruct const*)) & + ::foo::inline1::GetStructValue1); extern "C" int __rust_thunk___ZN3foo7inline115GetStructValue2EPKNS0_8MyStructE( struct foo::inline1::MyStruct const* s) { return foo::inline1::GetStructValue2(s); } -static_assert((int (*)( - struct foo::inline1::MyStruct const*))&foo::inline1::GetStructValue2); +static_assert((int (*)(struct foo::inline1::MyStruct const*)) & + ::foo::inline1::GetStructValue2); extern "C" int __rust_thunk___ZN3foo7inline115GetStructValue3EPKNS0_8MyStructE( struct foo::inline1::MyStruct const* s) { return foo::inline1::GetStructValue3(s); } -static_assert((int (*)( - struct foo::inline1::MyStruct const*))&foo::inline1::GetStructValue3); +static_assert((int (*)(struct foo::inline1::MyStruct const*)) & + ::foo::inline1::GetStructValue3); extern "C" int __rust_thunk___ZN3foo7inline115GetStructValue4EPKNS0_8MyStructE( struct foo::inline1::MyStruct const* s) { return foo::inline1::GetStructValue4(s); } -static_assert((int (*)( - struct foo::inline1::MyStruct const*))&foo::inline1::GetStructValue4); +static_assert((int (*)(struct foo::inline1::MyStruct const*)) & + ::foo::inline1::GetStructValue4); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/struct/destructors/destructors_api_impl.cc b/rs_bindings_from_cc/test/struct/destructors/destructors_api_impl.cc index 54d661610..d6da29c76 100644 --- a/rs_bindings_from_cc/test/struct/destructors/destructors_api_impl.cc +++ b/rs_bindings_from_cc/test/struct/destructors/destructors_api_impl.cc @@ -45,11 +45,12 @@ extern "C" void __rust_thunk___ZN24DestructionOrderRecorderD1Ev( std::destroy_at(__this); } -static_assert((void (*)(int))&DestructionOrderRecorder::RecordDestruction); +static_assert((void (*)(int)) & ::DestructionOrderRecorder::RecordDestruction); -static_assert((int (*)())&DestructionOrderRecorder::GetDestructionRecord); +static_assert((int (*)()) & ::DestructionOrderRecorder::GetDestructionRecord); -static_assert((void (*)())&DestructionOrderRecorder::ClearDestructionRecord); +static_assert((void (*)()) & + ::DestructionOrderRecorder::ClearDestructionRecord); static_assert(CRUBIT_SIZEOF(class FieldDestructionOrderTester) == 12); static_assert(alignof(class FieldDestructionOrderTester) == 4); @@ -82,9 +83,11 @@ __rust_thunk___ZN27FieldDestructionOrderTester6CreateE24DestructionOrderRecorder std::move(*field1), std::move(*field2), std::move(*field3))); } -static_assert((class FieldDestructionOrderTester (*)( - class DestructionOrderRecorder, class DestructionOrderRecorder, - class DestructionOrderRecorder))&FieldDestructionOrderTester::Create); +static_assert( + (class FieldDestructionOrderTester (*)(class DestructionOrderRecorder, + class DestructionOrderRecorder, + class DestructionOrderRecorder)) & + ::FieldDestructionOrderTester::Create); extern "C" void __rust_thunk___ZN27FieldDestructionOrderTester15DestructFromCppEiii( @@ -92,7 +95,7 @@ __rust_thunk___ZN27FieldDestructionOrderTester15DestructFromCppEiii( FieldDestructionOrderTester::DestructFromCpp(field1, field2, field3); } -static_assert((void (*)(int, int, - int))&FieldDestructionOrderTester::DestructFromCpp); +static_assert((void (*)(int, int, int)) & + ::FieldDestructionOrderTester::DestructFromCpp); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers_api_impl.cc b/rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers_api_impl.cc index a5ab37e80..b4dc785fe 100644 --- a/rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers_api_impl.cc +++ b/rs_bindings_from_cc/test/struct/methods_qualifiers/methods_qualifiers_api_impl.cc @@ -29,31 +29,29 @@ extern "C" void __rust_thunk___ZN34UnpinStructWithRefQualifiedMethodsC1Ev( crubit::construct_at(__this); } -static_assert((void ( - ::UnpinStructWithRefQualifiedMethods::*)())&UnpinStructWithRefQualifiedMethods:: - increment_i); +static_assert((void (UnpinStructWithRefQualifiedMethods::*)()) & + ::UnpinStructWithRefQualifiedMethods::increment_i); -static_assert((int ( - ::UnpinStructWithRefQualifiedMethods::*)())&UnpinStructWithRefQualifiedMethods:: - unqualified_get_i); +static_assert((int (UnpinStructWithRefQualifiedMethods::*)()) & + ::UnpinStructWithRefQualifiedMethods::unqualified_get_i); -static_assert((int (::UnpinStructWithRefQualifiedMethods::*)() const) & - UnpinStructWithRefQualifiedMethods::const_qualified_get_i); +static_assert((int (UnpinStructWithRefQualifiedMethods::*)() const) & + ::UnpinStructWithRefQualifiedMethods::const_qualified_get_i); -static_assert((int ( - ::UnpinStructWithRefQualifiedMethods::*)() &)&UnpinStructWithRefQualifiedMethods:: - lvalue_ref_qualified_get_i); +static_assert( + (int (UnpinStructWithRefQualifiedMethods::*)() &)&:: + UnpinStructWithRefQualifiedMethods::lvalue_ref_qualified_get_i); -static_assert((int (::UnpinStructWithRefQualifiedMethods::*)() - const&)&UnpinStructWithRefQualifiedMethods:: +static_assert((int (UnpinStructWithRefQualifiedMethods::*)() + const&)&::UnpinStructWithRefQualifiedMethods:: const_lvalue_ref_qualified_get_i); -static_assert((int ( - ::UnpinStructWithRefQualifiedMethods::*)() &&)&UnpinStructWithRefQualifiedMethods:: - rvalue_ref_qualified_get_i); +static_assert( + (int (UnpinStructWithRefQualifiedMethods::*)() &&)&:: + UnpinStructWithRefQualifiedMethods::rvalue_ref_qualified_get_i); -static_assert((int (::UnpinStructWithRefQualifiedMethods::*)() - const&&)&UnpinStructWithRefQualifiedMethods:: +static_assert((int (UnpinStructWithRefQualifiedMethods::*)() + const&&)&::UnpinStructWithRefQualifiedMethods:: const_rvalue_ref_qualified_get_i); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/struct/operator_and/operator_and.golden.cc b/rs_bindings_from_cc/test/struct/operator_and/operator_and.golden.cc index 51eb04b3b..fa48cdb14 100644 --- a/rs_bindings_from_cc/test/struct/operator_and/operator_and.golden.cc +++ b/rs_bindings_from_cc/test/struct/operator_and/operator_and.golden.cc @@ -30,13 +30,13 @@ extern "C" class MyBadClass* __rust_thunk___ZN10MyBadClass7ReturnsEv() { return std::addressof(MyBadClass::Returns()); } -static_assert((class MyBadClass & (*)()) & MyBadClass::Returns); +static_assert((class MyBadClass & (*)()) & ::MyBadClass::Returns); extern "C" void __rust_thunk___ZN10MyBadClass7AcceptsERS_( class MyBadClass* __param_0) { MyBadClass::Accepts(*__param_0); } -static_assert((void (*)(class MyBadClass&))&MyBadClass::Accepts); +static_assert((void (*)(class MyBadClass&)) & ::MyBadClass::Accepts); #pragma clang diagnostic pop diff --git a/rs_bindings_from_cc/test/templates/type_alias/type_alias_api_impl.cc b/rs_bindings_from_cc/test/templates/type_alias/type_alias_api_impl.cc index e1d89a8a3..9947904a5 100644 --- a/rs_bindings_from_cc/test/templates/type_alias/type_alias_api_impl.cc +++ b/rs_bindings_from_cc/test/templates/type_alias/type_alias_api_impl.cc @@ -34,7 +34,7 @@ __rust_thunk___ZN10MyTemplateIiE6CreateEi__2f_2fthird_5fparty_2fcrubit_2frs_5fbi new (__return) auto(MyTemplate::Create(value)); } -static_assert((class MyTemplate (*)(int))&MyTemplate::Create); +static_assert((class MyTemplate (*)(int)) & ::MyTemplate::Create); extern "C" int const* __rust_thunk___ZNK10MyTemplateIiE5valueEv__2f_2fthird_5fparty_2fcrubit_2frs_5fbindings_5ffrom_5fcc_2ftest_2ftemplates_2ftype_5falias_3atype_5falias( @@ -42,7 +42,7 @@ __rust_thunk___ZNK10MyTemplateIiE5valueEv__2f_2fthird_5fparty_2fcrubit_2frs_5fbi return std::addressof(__this->value()); } -static_assert((int const& (::MyTemplate::*)() const) & - MyTemplate::value); +static_assert((int const& (MyTemplate::*)() const) & + ::MyTemplate::value); #pragma clang diagnostic pop