From 6fa05b4b6f9f6adea253a12f030126bd531395dc Mon Sep 17 00:00:00 2001 From: Ethan Smith Date: Mon, 4 May 2026 16:12:08 -0700 Subject: [PATCH] Re-use unsupported def error message for must_bind. Previously we constructed an ad-hoc error message that didn't include the same metadata as our unsupported def message (notably source location was lacking). This recitifies that so we show the same error message everywhere. PiperOrigin-RevId: 910299068 --- .../generate_bindings_test.rs | 9 ++- cc_bindings_from_rs/generate_bindings/lib.rs | 61 ++++++++++++------- .../test/arrays/arrays_cc_api.h | 8 +-- cc_bindings_from_rs/test/enums/enums_cc_api.h | 25 ++++---- .../test/enums/option_cc_api.h | 15 ++--- .../function_pointers_cc_api.h | 16 ++--- .../test/functions/functions_cc_api.h | 2 +- .../test/golden/composable_bridging_cc_api.h | 6 +- .../test/known_traits/index/rs_index_cc_api.h | 6 +- .../test/modules/modules_cc_api.h | 4 +- .../pass_by_value_unmovable_cc_api.h | 2 +- cc_bindings_from_rs/test/str/str_cc_api.h | 2 +- .../test/structs/structs_cc_api.h | 11 ++-- .../unit_structs/unit_structs_cc_api.h | 3 +- .../test/traits/generic_traits_cc_api.h | 11 ++-- .../test/traits/stdlib/stdlib_cc_api.h | 4 +- .../test/traits/traits_cc_api.h | 3 +- .../test/tuples/tuples_cc_api.h | 7 ++- .../tests/type_identity/rust_api_cc_api.h | 3 +- 19 files changed, 114 insertions(+), 84 deletions(-) diff --git a/cc_bindings_from_rs/generate_bindings/generate_bindings_test.rs b/cc_bindings_from_rs/generate_bindings/generate_bindings_test.rs index a1457df6f..800705d4e 100644 --- a/cc_bindings_from_rs/generate_bindings/generate_bindings_test.rs +++ b/cc_bindings_from_rs/generate_bindings/generate_bindings_test.rs @@ -1328,7 +1328,8 @@ fn test_format_item_static_method_with_generic_type_parameters() { test_format_item(test_src, "SomeStruct", |result| { let result = result.unwrap().unwrap(); let main_api = &result.main_api; - let unsupported_msg = "Error generating bindings for `SomeStruct::generic_method` \ + let unsupported_msg = + "Error generating bindings for associated function `SomeStruct::generic_method` \ defined at ;l=12: \ No valid non-generic replacement for generic type param `T`"; assert_cc_matches!( @@ -1670,7 +1671,8 @@ fn test_format_item_method_taking_self_by_arc() { test_format_item(test_src, "SomeStruct", |result| { let result = result.unwrap().unwrap(); let main_api = &result.main_api; - let unsupported_msg = "Error generating bindings for `SomeStruct::get_f32` \ + let unsupported_msg = + "Error generating bindings for associated function `SomeStruct::get_f32` \ defined at ;l=7: \ Unsupported `self` type `std::sync::Arc`"; assert_cc_matches!( @@ -1706,7 +1708,8 @@ fn test_format_item_method_taking_self_by_pinned_mut_ref() { test_format_item(test_src, "SomeStruct", |result| { let result = result.unwrap().unwrap(); let main_api = &result.main_api; - let unsupported_msg = "Error generating bindings for `SomeStruct::set_f32` \ + let unsupported_msg = + "Error generating bindings for associated function `SomeStruct::set_f32` \ defined at ;l=7: \ Unsupported `self` type `std::pin::Pin<&'__anon1 mut SomeStruct>`"; assert_cc_matches!( diff --git a/cc_bindings_from_rs/generate_bindings/lib.rs b/cc_bindings_from_rs/generate_bindings/lib.rs index 445c44f80..f7a70fd66 100644 --- a/cc_bindings_from_rs/generate_bindings/lib.rs +++ b/cc_bindings_from_rs/generate_bindings/lib.rs @@ -1587,28 +1587,14 @@ pub(crate) fn report_must_bind_error<'tcx>( ) { let tcx = db.tcx(); let item_path = tcx.def_path_str(def_id); - let def_kind = tcx.def_kind(def_id); - let kind_str = match def_kind { - rustc_hir::def::DefKind::Struct => "struct", - rustc_hir::def::DefKind::Enum => "enum", - rustc_hir::def::DefKind::Union => "union", - rustc_hir::def::DefKind::Fn => "function", - rustc_hir::def::DefKind::TyAlias => "type alias", - rustc_hir::def::DefKind::Const { .. } => "constant", - rustc_hir::def::DefKind::Trait => "trait", - rustc_hir::def::DefKind::AssocFn => "function", - rustc_hir::def::DefKind::AssocConst { .. } => "constant", - rustc_hir::def::DefKind::AssocTy => "associated type", - _ => "item", - }; let error_details = format!(" {err:#}").replace('\n', "\n "); let bold = "\x1B[1m"; let reset = "\x1B[0m"; let red = "\x1B[31m"; let must_bind_message = format!( - "{bold}{red}error:{reset}{bold} {kind_str} `{item_path}` could not be bound{reset}\n\ - {error_details}\n\ - {bold}note:{reset} hard error because `#[crubit_annotate::must_bind]` was applied to `{item_path}`" + "{bold}{red}error:{reset}{bold}{}\n\ + {bold}note:{reset} hard error because `#[crubit_annotate::must_bind]` was applied to `{item_path}`", + unsupported_def_error_message(db, def_id, err, ErrorStyle::Terminal), ); db.fatal_errors().report(&must_bind_message); } @@ -1670,6 +1656,37 @@ fn generate_item_impl<'tcx>( } } +enum ErrorStyle { + // This message will be formatted as a comment. + Comment, + // This message will be printed to a terminal. + Terminal, +} + +pub(crate) fn unsupported_def_error_message( + db: &BindingsGenerator, + def_id: DefId, + err: &Error, + style: ErrorStyle, +) -> String { + let tcx = db.tcx(); + let source_loc = generate_source_location(db, def_id); + let name = tcx.def_path_str(def_id); + let def_kind = tcx.def_kind(def_id); + let kind_str = def_kind.descr(def_id); + let err_msg = if let ErrorStyle::Terminal = style { + format!("\n {err:#}").replace('\n', "\n ") + } else { + format!(" {err:#}") + }; + let bold = if let ErrorStyle::Terminal = style { "\x1B[1m" } else { "" }; + let reset = if let ErrorStyle::Terminal = style { "\x1B[0m" } else { "" }; + + // https://docs.rs/anyhow/latest/anyhow/struct.Error.html#display-representations + // says: To print causes as well [...], use the alternate selector “{:#}”. + format!("{bold}{kind_str} `{name}` defined at {source_loc}:{reset}{err_msg}") +} + /// Formats a C++ comment explaining why no bindings have been generated for /// `local_def_id`. pub(crate) fn generate_unsupported_def<'tcx>( @@ -1680,12 +1697,10 @@ pub(crate) fn generate_unsupported_def<'tcx>( let tcx = db.tcx(); db.errors().assert_in_item(item_name_for_error_report(db, def_id)); db.errors().report(&err); - let source_loc = generate_source_location(db, def_id); - let name = tcx.def_path_str(def_id); - - // https://docs.rs/anyhow/latest/anyhow/struct.Error.html#display-representations - // says: To print causes as well [...], use the alternate selector “{:#}”. - let msg = format!("Error generating bindings for `{name}` defined at {source_loc}: {err:#}"); + let msg = format!( + "Error generating bindings for {}", + unsupported_def_error_message(db, def_id, &err, ErrorStyle::Comment) + ); CcSnippet::new(quote! { __NEWLINE__ __NEWLINE__ __COMMENT__ #msg __NEWLINE__ }) } diff --git a/cc_bindings_from_rs/test/arrays/arrays_cc_api.h b/cc_bindings_from_rs/test/arrays/arrays_cc_api.h index 1c9873e9b..aa4ca3d30 100644 --- a/cc_bindings_from_rs/test/arrays/arrays_cc_api.h +++ b/cc_bindings_from_rs/test/arrays/arrays_cc_api.h @@ -208,20 +208,20 @@ ::std::array<::std::array<::arrays::HasDropAndDefault, 2>, 2> function_with_nested_drop_default_arrays( ::std::array<::std::array<::arrays::HasDropAndDefault, 2>, 2> array); -// Error generating bindings for +// Error generating bindings for function // `arrays_golden::function_with_nested_droponly_arrays` defined at // cc_bindings_from_rs/test/arrays/arrays.rs;l=98: // b/260128806 - nested array [arrays_golden::HasDrop; 2] is not supported // because it contains a type that implements Drop but not Default -// Error generating bindings for +// Error generating bindings for function // `arrays_golden::function_with_nested_nested_droponly_arrays` defined at // cc_bindings_from_rs/test/arrays/arrays.rs;l=104: // b/260128806 - nested array [[arrays_golden::HasDrop; 2]; 2] is not supported // because it contains a type that implements Drop but not Default -// Error generating bindings for `arrays_golden::function_with_tuple_array_id` -// defined at +// Error generating bindings for function +// `arrays_golden::function_with_tuple_array_id` defined at // cc_bindings_from_rs/test/arrays/arrays.rs;l=27: // Tuple types cannot be used inside of compound data types, because std::tuple // is not layout-compatible with a Rust tuple. diff --git a/cc_bindings_from_rs/test/enums/enums_cc_api.h b/cc_bindings_from_rs/test/enums/enums_cc_api.h index a9e67beaf..d844462a7 100644 --- a/cc_bindings_from_rs/test/enums/enums_cc_api.h +++ b/cc_bindings_from_rs/test/enums/enums_cc_api.h @@ -54,7 +54,8 @@ struct CRUBIT_INTERNAL_RUST_TYPE(":: enums_golden :: repr_c :: MyEnum") alignas( // cc_bindings_from_rs/test/enums/enums.rs;l=14 static MyEnum MakeF(); - // Error generating bindings for `enums_golden::repr_c::MyEnum::Z` defined at + // Error generating bindings for variant `enums_golden::repr_c::MyEnum::Z` + // defined at // cc_bindings_from_rs/test/enums/enums.rs;l=15: // Tuple types cannot be used inside of compound data types, because // std::tuple is not layout-compatible with a Rust tuple. @@ -63,12 +64,14 @@ struct CRUBIT_INTERNAL_RUST_TYPE(":: enums_golden :: repr_c :: MyEnum") alignas( // cc_bindings_from_rs/test/enums/enums.rs;l=16 static MyEnum MakeG(); - // Error generating bindings for `enums_golden::repr_c::MyEnum::B` defined at + // Error generating bindings for variant `enums_golden::repr_c::MyEnum::B` + // defined at // cc_bindings_from_rs/test/enums/enums.rs;l=17: // Constructing non-tuple, struct-like enum variants is not supported: // b/487357254 - // Error generating bindings for `enums_golden::repr_c::MyEnum::C` defined at + // Error generating bindings for variant `enums_golden::repr_c::MyEnum::C` + // defined at // cc_bindings_from_rs/test/enums/enums.rs;l=18: // Constructing non-tuple, struct-like enum variants is not supported: // b/487357254 @@ -254,7 +257,7 @@ struct CRUBIT_INTERNAL_RUST_TYPE( // Default::default CloneCount(); - // Error generating bindings for + // Error generating bindings for variant // `enums_golden::repr_c_clone_counter::CloneCount::A` defined at // cc_bindings_from_rs/test/enums/enums.rs;l=56: // Constructing non-tuple, struct-like enum variants is not supported: @@ -324,8 +327,8 @@ struct CRUBIT_INTERNAL_RUST_TYPE( // cc_bindings_from_rs/test/enums/enums.rs;l=34 static DropMe MakeQ(); - // Error generating bindings for `enums_golden::repr_c_drop::DropMe::C` - // defined at + // Error generating bindings for variant + // `enums_golden::repr_c_drop::DropMe::C` defined at // cc_bindings_from_rs/test/enums/enums.rs;l=35: // Constructing non-tuple, struct-like enum variants is not supported: // b/487357254 @@ -481,7 +484,7 @@ struct CRUBIT_INTERNAL_RUST_TYPE( static ::enums::repr_rust::RustReprEnum MakeTuplePayloadVariant( ::std::int32_t __param_0, ::std::int32_t __param_1); - // Error generating bindings for + // Error generating bindings for variant // `enums_golden::repr_rust::RustReprEnum::StructPayloadVariant` defined at // cc_bindings_from_rs/test/enums/enums.rs;l=122: // Constructing non-tuple, struct-like enum variants is not supported: @@ -537,19 +540,19 @@ struct CRUBIT_INTERNAL_RUST_TYPE( // doesn't implement the `Default` trait RustReprWithNamingConflictBetweenCtorsAndMethods() = delete; - // Error generating bindings for + // Error generating bindings for variant // `enums_golden::repr_rust::RustReprWithNamingConflictBetweenCtorsAndMethods::NoPayloadVariant` // defined at // cc_bindings_from_rs/test/enums/enums.rs;l=160: // Conflicting member function name: MakeNoPayloadVariant - // Error generating bindings for + // Error generating bindings for variant // `enums_golden::repr_rust::RustReprWithNamingConflictBetweenCtorsAndMethods::TuplePayloadVariant` // defined at // cc_bindings_from_rs/test/enums/enums.rs;l=161: // Conflicting member function name: MakeTuplePayloadVariant - // Error generating bindings for + // Error generating bindings for variant // `enums_golden::repr_rust::RustReprWithNamingConflictBetweenCtorsAndMethods::StructPayloadVariant` // defined at // cc_bindings_from_rs/test/enums/enums.rs;l=162: @@ -610,7 +613,7 @@ struct CRUBIT_INTERNAL_RUST_TYPE( static void __crubit_field_offset_assertions(); }; -// Error generating bindings for +// Error generating bindings for enum // `enums_golden::repr_rust::RustReprWithSingleNoPayloadVariant` defined at // cc_bindings_from_rs/test/enums/enums.rs;l=151: // Zero-sized types (ZSTs) are not supported (b/258259459) diff --git a/cc_bindings_from_rs/test/enums/option_cc_api.h b/cc_bindings_from_rs/test/enums/option_cc_api.h index ffb3662cc..6c8c3ee81 100644 --- a/cc_bindings_from_rs/test/enums/option_cc_api.h +++ b/cc_bindings_from_rs/test/enums/option_cc_api.h @@ -38,7 +38,7 @@ namespace option { struct HasOptions; -// Error generating bindings for `option_golden::BridgedType` defined at +// Error generating bindings for struct `option_golden::BridgedType` defined at // cc_bindings_from_rs/test/enums/option.rs;l=178: // Type bindings for option_golden::BridgedType suppressed due to being mapped // to an existing C++ type (int) @@ -230,8 +230,8 @@ struct CRUBIT_INTERNAL_RUST_TYPE(":: option_golden :: NonMaxU8") alignas(1) static void __crubit_field_offset_assertions(); }; -// Error generating bindings for `option_golden::OptUninhabited` defined at -// cc_bindings_from_rs/test/enums/option.rs;l=153: +// Error generating bindings for struct `option_golden::OptUninhabited` defined +// at cc_bindings_from_rs/test/enums/option.rs;l=153: // Zero-sized types (ZSTs) are not supported (b/258259459) // Generated from: @@ -298,15 +298,16 @@ OptionWithSizeTypes final { static void __crubit_field_offset_assertions(); }; -// Error generating bindings for `option_golden::UninhabitedEnum` defined at -// cc_bindings_from_rs/test/enums/option.rs;l=151: +// Error generating bindings for enum `option_golden::UninhabitedEnum` defined +// at cc_bindings_from_rs/test/enums/option.rs;l=151: // Zero-sized types (ZSTs) are not supported (b/258259459) -// Error generating bindings for `option_golden::Unit` defined at +// Error generating bindings for struct `option_golden::Unit` defined at // cc_bindings_from_rs/test/enums/option.rs;l=158: // Zero-sized types (ZSTs) are not supported (b/258259459) -// Error generating bindings for `option_golden::take_option_bridged` defined at +// Error generating bindings for function `option_golden::take_option_bridged` +// defined at // cc_bindings_from_rs/test/enums/option.rs;l=180: // Error handling parameter #0 of type // `std::option::Option`: Failed to format type for diff --git a/cc_bindings_from_rs/test/function_pointers/function_pointers_cc_api.h b/cc_bindings_from_rs/test/function_pointers/function_pointers_cc_api.h index 99ff30247..0c0110e9f 100644 --- a/cc_bindings_from_rs/test/function_pointers/function_pointers_cc_api.h +++ b/cc_bindings_from_rs/test/function_pointers/function_pointers_cc_api.h @@ -29,12 +29,12 @@ namespace function_pointers { -// Error generating bindings for +// Error generating bindings for constant // `function_pointers_golden::CONST_C_FN_PTR_ADD_TEN` defined at // cc_bindings_from_rs/test/function_pointers/function_pointers.rs;l=27: // Pointer values cannot be used as scalar constants. -// Error generating bindings for +// Error generating bindings for constant // `function_pointers_golden::CONST_RUST_FN_PTR_ADD_TEN` defined at // cc_bindings_from_rs/test/function_pointers/function_pointers.rs;l=26: // Function pointers can't have a thunk: Any calling convention other than @@ -125,19 +125,19 @@ void call_fn_ptr_no_args_or_return(crubit::type_identity_t& fn_ptr); ::std::int32_t call_fn_ptr_with_five( crubit::type_identity_t<::std::int32_t(::std::int32_t)>& fn_ptr); -// Error generating bindings for +// Error generating bindings for function // `function_pointers_golden::call_fn_ptr_with_five_reference` defined at // cc_bindings_from_rs/test/function_pointers/function_pointers.rs;l=45: // Error handling parameter #0 of type `for<'a> extern "C" fn(&'a i32) -> i32`: // Generic function pointers are not supported yet (b/259749023) -// Error generating bindings for +// Error generating bindings for function // `function_pointers_golden::call_fn_ptr_with_five_reference_hrtb` defined at // cc_bindings_from_rs/test/function_pointers/function_pointers.rs;l=50: // Error handling parameter #0 of type `for<'a> extern "C" fn(&'a i32) -> i32`: // Generic function pointers are not supported yet (b/259749023) -// Error generating bindings for +// Error generating bindings for function // `function_pointers_golden::call_fn_ptr_with_repr_c_struct` defined at // cc_bindings_from_rs/test/function_pointers/function_pointers.rs;l=69: // Error handling parameter #0 of type `extern "C" @@ -152,15 +152,15 @@ ::std::int32_t call_fn_ptr_with_repr_c_struct_ptr_containing_seven( crubit::type_identity_t< ::std::int32_t(::function_pointers::CStruct const*)>& fn_ptr); -// Error generating bindings for +// Error generating bindings for function // `function_pointers_golden::call_fn_ptr_with_repr_c_struct_ref` defined at // cc_bindings_from_rs/test/function_pointers/function_pointers.rs;l=74: // Error handling parameter #0 of type `for<'a> extern "C" fn(&'a // function_pointers_golden::CStruct) -> i32`: Generic function pointers are not // supported yet (b/259749023) -// Error generating bindings for `function_pointers_golden::call_rust_fn_ptr` -// defined at +// Error generating bindings for function +// `function_pointers_golden::call_rust_fn_ptr` defined at // cc_bindings_from_rs/test/function_pointers/function_pointers.rs;l=35: // Error handling parameter #0 of type `fn()`: Function pointers can't have a // thunk: Any calling convention other than `extern "C"` requires a thunk diff --git a/cc_bindings_from_rs/test/functions/functions_cc_api.h b/cc_bindings_from_rs/test/functions/functions_cc_api.h index 6fdf1244d..97e82bb93 100644 --- a/cc_bindings_from_rs/test/functions/functions_cc_api.h +++ b/cc_bindings_from_rs/test/functions/functions_cc_api.h @@ -258,7 +258,7 @@ ::std::int32_t return_type(); // cc_bindings_from_rs/test/functions/functions.rs;l=169 ::std::int32_t reused_generic_param(::std::int32_t x, ::std::int32_t y); -// Error generating bindings for +// Error generating bindings for function // `functions_golden::generic_fn_tests::into_trait_tests::unused_generic_param` // defined at // cc_bindings_from_rs/test/functions/functions.rs;l=204: diff --git a/cc_bindings_from_rs/test/golden/composable_bridging_cc_api.h b/cc_bindings_from_rs/test/golden/composable_bridging_cc_api.h index c8681d82d..df7b1e78d 100644 --- a/cc_bindings_from_rs/test/golden/composable_bridging_cc_api.h +++ b/cc_bindings_from_rs/test/golden/composable_bridging_cc_api.h @@ -27,13 +27,13 @@ namespace composable_bridging_rust { -// Error generating bindings for `composable_bridging_rust_golden::MyOptionRust` -// defined at +// Error generating bindings for struct +// `composable_bridging_rust_golden::MyOptionRust` defined at // cc_bindings_from_rs/test/golden/composable_bridging.rs;l=39: // Type bindings for composable_bridging_rust_golden::MyOptionRust suppressed // due to being mapped to an existing C++ type (std::optional) -// Error generating bindings for +// Error generating bindings for struct // `composable_bridging_rust_golden::MyOptionRustAbi` defined at // cc_bindings_from_rs/test/golden/composable_bridging.rs;l=50: // Generic types are not supported yet (b/259749095) diff --git a/cc_bindings_from_rs/test/known_traits/index/rs_index_cc_api.h b/cc_bindings_from_rs/test/known_traits/index/rs_index_cc_api.h index e463c3937..a99c5d867 100644 --- a/cc_bindings_from_rs/test/known_traits/index/rs_index_cc_api.h +++ b/cc_bindings_from_rs/test/known_traits/index/rs_index_cc_api.h @@ -134,7 +134,7 @@ struct CRUBIT_INTERNAL_RUST_TYPE(":: rs_index_golden :: IntPair") alignas(4) // cc_bindings_from_rs/test/known_traits/index/rs_index.rs;l=22 ::std::int32_t const& $(__anon1) operator[](::std::uintptr_t index) const&; - // Error generating bindings for `>` defined at // cc_bindings_from_rs/test/known_traits/index/rs_index.rs;l=44: // Index implementation for `u64` is not supported when `Index` is @@ -149,7 +149,7 @@ struct CRUBIT_INTERNAL_RUST_TYPE(":: rs_index_golden :: IntPair") alignas(4) // cc_bindings_from_rs/test/known_traits/index/rs_index.rs;l=34 ::std::int32_t& $(__anon1) operator[](::std::uintptr_t index) &; - // Error generating bindings for `>` defined at // cc_bindings_from_rs/test/known_traits/index/rs_index.rs;l=56: // Index implementation for `u64` is not supported when `Index` is @@ -211,7 +211,7 @@ struct CRUBIT_INTERNAL_RUST_TYPE(":: rs_index_golden :: Map") alignas(8) // cc_bindings_from_rs/test/known_traits/index/rs_index.rs;l=134 rs_std::StrRef operator[](::rs_index::Id const* crubit_nonnull index) const&; - // Error generating bindings for `>` defined at // cc_bindings_from_rs/test/known_traits/index/rs_index.rs;l=121: // Mutable references to `str` are not yet supported. diff --git a/cc_bindings_from_rs/test/modules/modules_cc_api.h b/cc_bindings_from_rs/test/modules/modules_cc_api.h index a2b90289b..102a21aa0 100644 --- a/cc_bindings_from_rs/test/modules/modules_cc_api.h +++ b/cc_bindings_from_rs/test/modules/modules_cc_api.h @@ -98,7 +98,7 @@ namespace modules::outer { namespace [[deprecated]] inner_deprecated { -// Error generating bindings for +// Error generating bindings for struct // `modules_golden::outer::inner_deprecated::SomeType` defined at // cc_bindings_from_rs/test/modules/modules.rs;l=26: // Zero-sized types (ZSTs) are not supported (b/258259459) @@ -111,7 +111,7 @@ namespace modules::outer::middle { namespace [[deprecated]] innermost_deprecated { -// Error generating bindings for +// Error generating bindings for struct // `modules_golden::outer::middle::innermost_deprecated::SomeType` defined at // cc_bindings_from_rs/test/modules/modules.rs;l=32: // Zero-sized types (ZSTs) are not supported (b/258259459) diff --git a/cc_bindings_from_rs/test/pass_by_value_unmovable/pass_by_value_unmovable_cc_api.h b/cc_bindings_from_rs/test/pass_by_value_unmovable/pass_by_value_unmovable_cc_api.h index bb88c7268..8349621b8 100644 --- a/cc_bindings_from_rs/test/pass_by_value_unmovable/pass_by_value_unmovable_cc_api.h +++ b/cc_bindings_from_rs/test/pass_by_value_unmovable/pass_by_value_unmovable_cc_api.h @@ -105,7 +105,7 @@ struct CRUBIT_INTERNAL_RUST_TYPE( // cc_bindings_from_rs/test/pass_by_value_unmovable/pass_by_value_unmovable.rs;l=14 void takes_val_movable(::pass_by_value_unmovable::CppMovable _val); -// Error generating bindings for +// Error generating bindings for function // `pass_by_value_unmovable_golden::takes_val_unmovable` defined at // cc_bindings_from_rs/test/pass_by_value_unmovable/pass_by_value_unmovable.rs;l=23: // Error handling parameter #0 of type diff --git a/cc_bindings_from_rs/test/str/str_cc_api.h b/cc_bindings_from_rs/test/str/str_cc_api.h index dca86fefc..59e020df3 100644 --- a/cc_bindings_from_rs/test/str/str_cc_api.h +++ b/cc_bindings_from_rs/test/str/str_cc_api.h @@ -29,7 +29,7 @@ namespace str { static constexpr rs_std::StrRef CONST_STR_FOO = rs_std::StrRef("foo"); -// Error generating bindings for `str_golden::STATIC_STR_FOO` defined at +// Error generating bindings for static `str_golden::STATIC_STR_FOO` defined at // cc_bindings_from_rs/test/str/str.rs;l=43: // Unsupported rustc_hir::hir::DefKind: Static { safety: Safe, mutability: Not, // nested: false } diff --git a/cc_bindings_from_rs/test/structs/structs_cc_api.h b/cc_bindings_from_rs/test/structs/structs_cc_api.h index a61942714..85e34fce9 100644 --- a/cc_bindings_from_rs/test/structs/structs_cc_api.h +++ b/cc_bindings_from_rs/test/structs/structs_cc_api.h @@ -270,7 +270,7 @@ ::std::int32_t get_x(::structs::default_repr::Point p); namespace structs::dynamically_sized_type { -// Error generating bindings for +// Error generating bindings for struct // `structs_golden::dynamically_sized_type::DynamicallySizedStruct` defined at // cc_bindings_from_rs/test/structs/structs.rs;l=309: // Bindings for dynamically sized types are not supported. @@ -699,15 +699,18 @@ struct CRUBIT_INTERNAL_RUST_TYPE( namespace structs::zst_fields { -// Error generating bindings for `structs_golden::zst_fields::Zst1` defined at +// Error generating bindings for struct `structs_golden::zst_fields::Zst1` +// defined at // cc_bindings_from_rs/test/structs/structs.rs;l=88: // Zero-sized types (ZSTs) are not supported (b/258259459) -// Error generating bindings for `structs_golden::zst_fields::Zst2` defined at +// Error generating bindings for struct `structs_golden::zst_fields::Zst2` +// defined at // cc_bindings_from_rs/test/structs/structs.rs;l=89: // Zero-sized types (ZSTs) are not supported (b/258259459) -// Error generating bindings for `structs_golden::zst_fields::Zst3` defined at +// Error generating bindings for struct `structs_golden::zst_fields::Zst3` +// defined at // cc_bindings_from_rs/test/structs/structs.rs;l=90: // Zero-sized types (ZSTs) are not supported (b/258259459) diff --git a/cc_bindings_from_rs/test/structs/unit_structs/unit_structs_cc_api.h b/cc_bindings_from_rs/test/structs/unit_structs/unit_structs_cc_api.h index ae10b59e0..c8f81bc77 100644 --- a/cc_bindings_from_rs/test/structs/unit_structs/unit_structs_cc_api.h +++ b/cc_bindings_from_rs/test/structs/unit_structs/unit_structs_cc_api.h @@ -18,7 +18,8 @@ namespace unit_structs { -// Error generating bindings for `unit_structs_golden::UnitStruct` defined at +// Error generating bindings for struct `unit_structs_golden::UnitStruct` +// defined at // cc_bindings_from_rs/test/structs/unit_structs/unit_structs.rs;l=8: // Zero-sized types (ZSTs) are not supported (b/258259459) diff --git a/cc_bindings_from_rs/test/traits/generic_traits_cc_api.h b/cc_bindings_from_rs/test/traits/generic_traits_cc_api.h index 3bda8b4ef..eda402659 100644 --- a/cc_bindings_from_rs/test/traits/generic_traits_cc_api.h +++ b/cc_bindings_from_rs/test/traits/generic_traits_cc_api.h @@ -96,13 +96,13 @@ struct CRUBIT_INTERNAL_RUST_TYPE( static void __crubit_field_offset_assertions(); }; -// Error generating bindings for `generic_traits_golden::StructWithAlias` +// Error generating bindings for struct `generic_traits_golden::StructWithAlias` // defined at // cc_bindings_from_rs/test/traits/generic_traits.rs;l=60: // Zero-sized types (ZSTs) are not supported (b/258259459) -// Error generating bindings for `generic_traits_golden::TraitWithConst` defined -// at +// Error generating bindings for trait `generic_traits_golden::TraitWithConst` +// defined at // cc_bindings_from_rs/test/traits/generic_traits.rs;l=49: // Trait is not yet supported @@ -126,7 +126,8 @@ struct CRUBIT_INTERNAL_RUST_TYPE( } // namespace generic_traits -// Error generating bindings for `>` defined at // cc_bindings_from_rs/test/traits/generic_traits.rs;l=42: // The following Rust type is not supported yet: U @@ -195,7 +196,7 @@ inline void StructGeneric::__crubit_field_offset_assertions() { static_assert(0 == offsetof(StructGeneric, x)); } -// Error generating bindings for `generic_traits_golden::TraitWithGeneric` +// Error generating bindings for trait `generic_traits_golden::TraitWithGeneric` // defined at // cc_bindings_from_rs/test/traits/generic_traits.rs;l=5: // Aliases to generic trait `generic_traits_golden::TraitWithGeneric` are not diff --git a/cc_bindings_from_rs/test/traits/stdlib/stdlib_cc_api.h b/cc_bindings_from_rs/test/traits/stdlib/stdlib_cc_api.h index 483b5c4f1..b0aa56656 100644 --- a/cc_bindings_from_rs/test/traits/stdlib/stdlib_cc_api.h +++ b/cc_bindings_from_rs/test/traits/stdlib/stdlib_cc_api.h @@ -80,8 +80,8 @@ struct rs_std::impl<::stdlib::MyStruct, ::rs::core::iter::Iterator> { "::Item") = ::std::int32_t; - // Error generating bindings for `::next` defined at + // Error generating bindings for associated function `::next` defined at // cc_bindings_from_rs/test/traits/stdlib/stdlib.rs;l=43: // Error formatting function return type // `std::option::Option<::CONST_STRUCT` defined at // cc_bindings_from_rs/test/traits/traits.rs;l=180: // Unsupported constant type: traits_golden::StructWithAssociatedConst diff --git a/cc_bindings_from_rs/test/tuples/tuples_cc_api.h b/cc_bindings_from_rs/test/tuples/tuples_cc_api.h index db6e139b1..0b413e691 100644 --- a/cc_bindings_from_rs/test/tuples/tuples_cc_api.h +++ b/cc_bindings_from_rs/test/tuples/tuples_cc_api.h @@ -136,7 +136,8 @@ struct CRUBIT_INTERNAL_RUST_TYPE(":: tuples_golden :: NontrivialDrop") alignas( static void __crubit_field_offset_assertions(); }; -// Error generating bindings for `tuples_golden::TUPLE_CONSTANT` defined at +// Error generating bindings for constant `tuples_golden::TUPLE_CONSTANT` +// defined at // cc_bindings_from_rs/test/tuples/tuples.rs;l=106: // Unsupported constant type: (i32,) @@ -160,7 +161,7 @@ struct CRUBIT_INTERNAL_RUST_TYPE(":: tuples_golden :: TupleStruct") alignas(4) ::std::memcpy(this, &value, sizeof(value)); } - // Error generating bindings for + // Error generating bindings for associated function // `tuples_golden::TupleStruct::tuple_not_by_value` defined at // cc_bindings_from_rs/test/tuples/tuples.rs;l=101: // Error formatting function return type `*const ()`: Failed to format the @@ -228,7 +229,7 @@ ::std::tuple<::std::int8_t> return_ffi_alias_in_tuple(); ::std::tuple<::std::tuple<::std::int32_t, ::std::int32_t>, ::std::int32_t> return_nested_tuples(); -// Error generating bindings for +// Error generating bindings for function // `tuples_golden::return_new_non_cpp_movable_in_tuple` defined at // cc_bindings_from_rs/test/tuples/tuples.rs;l=66: // Can't return a type by value inside a compound data type without a move diff --git a/support/ffi_11/tests/type_identity/rust_api_cc_api.h b/support/ffi_11/tests/type_identity/rust_api_cc_api.h index f70fbcd80..dc35ca8e9 100644 --- a/support/ffi_11/tests/type_identity/rust_api_cc_api.h +++ b/support/ffi_11/tests/type_identity/rust_api_cc_api.h @@ -89,7 +89,8 @@ unsigned long long c_ulonglong(); // support/ffi_11/tests/type_identity/rust_api.rs;l=18 ::std::uint16_t c_ushort(); -// Error generating bindings for `rust_api_golden::c_wchar_t` defined at +// Error generating bindings for function `rust_api_golden::c_wchar_t` defined +// at // support/ffi_11/tests/type_identity/rust_api.rs;l=52: // Error formatting function return type `ffi_11::wchar_type::c_wchar_t`: Failed // to format type for the definition of `ffi_11::wchar_type::c_wchar_t`: Error