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