From 6b212f9ea81e2ab0453c6a619faea262d72bfe59 Mon Sep 17 00:00:00 2001 From: Devin Jeanpierre Date: Fri, 26 Dec 2025 17:41:11 -0800 Subject: [PATCH] Use fully qualified names for error messages. This, in turn, gives us a useful and distinct key to aggregate on with error reporting infra. Also, it disambiguates errors in the event that there's many things with the same name. ;) --- The reason this works is that record IDs are always recorded as the enclosing item ID. Indeed, the record_id field is completely redundant -- this CL shows that much, and I will delete it in a followup CL. PiperOrigin-RevId: 849309009 --- common/code_gen_utils.rs | 10 ++ rs_bindings_from_cc/ir.rs | 75 +++++++----- .../test/golden/clang_attrs_rs_api.rs | 6 +- .../test/golden/composable_bridging_rs_api.rs | 44 +++---- .../test/golden/doc_comment_rs_api.rs | 4 +- .../test/golden/namespace_rs_api.rs | 84 ++++++------- .../test/golden/nested_types_rs_api.rs | 16 +-- .../test/golden/private_members_rs_api.rs | 28 ++--- .../test/golden/templates_rs_api.rs | 110 +++++++++--------- .../golden/templates_source_order_rs_api.rs | 18 +-- .../test/golden/trivial_type_rs_api.rs | 78 ++++++------- .../regression_401857961/repro_rs_api.rs | 6 +- 12 files changed, 253 insertions(+), 226 deletions(-) diff --git a/common/code_gen_utils.rs b/common/code_gen_utils.rs index 5fa2cb952..af717b289 100644 --- a/common/code_gen_utils.rs +++ b/common/code_gen_utils.rs @@ -389,6 +389,16 @@ impl NamespaceQualifier { } Ok(path) } + + /// Returns `foo::bar::baz::` (never reporting errors). + pub fn format_for_cc_debug(&self) -> String { + let mut path = String::new(); + for part in self.parts() { + path.push_str(part); + path.push_str("::"); + } + path + } } /// `CcInclude` represents a single `#include ...` directive in C++. diff --git a/rs_bindings_from_cc/ir.rs b/rs_bindings_from_cc/ir.rs index 07d3497ce..b046f50fa 100644 --- a/rs_bindings_from_cc/ir.rs +++ b/rs_bindings_from_cc/ir.rs @@ -870,25 +870,35 @@ impl GenericItem for Func { Some(self.owning_target.clone()) } fn debug_name(&self, ir: &IR) -> Rc { - let record: Option> = ir.record_for_member_func(self).map(|r| r.debug_name(ir)); - let record: Option<&str> = record.as_deref(); + let mut name = ir.namespace_qualifier(self).format_for_cc_debug(); + let record_name = || -> Option> { + let record = ir.record_for_member_func(self)?; + if let Item::Record(r) = record { + Some(r.cc_name.identifier.clone()) + } else { + None + } + }; - let func_name = match &self.cc_name { - UnqualifiedIdentifier::Identifier(id) => id.identifier.to_string(), - UnqualifiedIdentifier::Operator(op) => op.cc_name(), + match &self.cc_name { + UnqualifiedIdentifier::Identifier(id) => { + name.push_str(&id.identifier); + } + UnqualifiedIdentifier::Operator(op) => { + name.push_str(&op.cc_name()); + } UnqualifiedIdentifier::Destructor => { - format!("~{}", record.expect("destructor must be associated with a record")) + name.push('~'); + name.push_str(&record_name().expect("destructor must be associated with a record")); } UnqualifiedIdentifier::Constructor => { - record.expect("constructor must be associated with a record").to_string() + name.push_str( + &record_name().expect("constructor must be associated with a record"), + ); } - }; - - if let Some(record_name) = record { - format!("{}::{}", record_name, func_name).into() - } else { - func_name.into() } + + name.into() } fn unsupported_kind(&self) -> UnsupportedItemKind { if self.cc_name == UnqualifiedIdentifier::Constructor { @@ -992,8 +1002,9 @@ impl GenericItem for IncompleteRecord { fn owning_target(&self) -> Option { Some(self.owning_target.clone()) } - fn debug_name(&self, _: &IR) -> Rc { - self.cc_name.identifier.clone() + fn debug_name(&self, ir: &IR) -> Rc { + format!("{}{}", ir.namespace_qualifier(self).format_for_cc_debug(), self.cc_name.identifier) + .into() } fn unsupported_kind(&self) -> UnsupportedItemKind { self.record_type.unsupported_item_kind() @@ -1181,8 +1192,9 @@ impl GenericItem for Record { fn owning_target(&self) -> Option { Some(self.owning_target.clone()) } - fn debug_name(&self, _: &IR) -> Rc { - self.cc_name.identifier.clone() + fn debug_name(&self, ir: &IR) -> Rc { + format!("{}{}", ir.namespace_qualifier(self).format_for_cc_debug(), self.cc_name.identifier) + .into() } fn unsupported_kind(&self) -> UnsupportedItemKind { self.record_type.unsupported_item_kind() @@ -1330,8 +1342,9 @@ impl GenericItem for GlobalVar { fn owning_target(&self) -> Option { Some(self.owning_target.clone()) } - fn debug_name(&self, _: &IR) -> Rc { - self.cc_name.identifier.clone() + fn debug_name(&self, ir: &IR) -> Rc { + format!("{}{}", ir.namespace_qualifier(self).format_for_cc_debug(), self.cc_name.identifier) + .into() } fn unsupported_kind(&self) -> UnsupportedItemKind { UnsupportedItemKind::GlobalVar @@ -1375,8 +1388,9 @@ impl GenericItem for Enum { fn owning_target(&self) -> Option { Some(self.owning_target.clone()) } - fn debug_name(&self, _: &IR) -> Rc { - self.cc_name.identifier.clone() + fn debug_name(&self, ir: &IR) -> Rc { + format!("{}{}", ir.namespace_qualifier(self).format_for_cc_debug(), self.cc_name.identifier) + .into() } fn unsupported_kind(&self) -> UnsupportedItemKind { UnsupportedItemKind::Enum @@ -1424,8 +1438,9 @@ impl GenericItem for TypeAlias { fn owning_target(&self) -> Option { Some(self.owning_target.clone()) } - fn debug_name(&self, _: &IR) -> Rc { - self.cc_name.identifier.clone() + fn debug_name(&self, ir: &IR) -> Rc { + format!("{}{}", ir.namespace_qualifier(self).format_for_cc_debug(), self.cc_name.identifier) + .into() } fn unsupported_kind(&self) -> UnsupportedItemKind { UnsupportedItemKind::TypeAlias @@ -1551,6 +1566,7 @@ impl GenericItem for UnsupportedItem { None } fn debug_name(&self, _: &IR) -> Rc { + // Note: name is supposed to be populated with the `debug_name()` of the unsupported item. self.name.clone() } fn unsupported_kind(&self) -> UnsupportedItemKind { @@ -1645,7 +1661,7 @@ impl GenericItem for Comment { None } fn debug_name(&self, _: &IR) -> Rc { - "comment".into() + "".into() } fn unsupported_kind(&self) -> UnsupportedItemKind { UnsupportedItemKind::Other @@ -1685,8 +1701,9 @@ impl GenericItem for Namespace { fn owning_target(&self) -> Option { Some(self.owning_target.clone()) } - fn debug_name(&self, _: &IR) -> Rc { - self.cc_name.to_string().into() + fn debug_name(&self, ir: &IR) -> Rc { + format!("{}{}", ir.namespace_qualifier(self).format_for_cc_debug(), self.cc_name.identifier) + .into() } fn unsupported_kind(&self) -> UnsupportedItemKind { UnsupportedItemKind::Namespace @@ -1719,7 +1736,7 @@ impl GenericItem for UseMod { None } fn debug_name(&self, _: &IR) -> Rc { - format!("[internal] use mod {}::* = {}", self.mod_name, self.path).into() + format!("<[internal] use mod {}::* = {}>", self.mod_name, self.path).into() } fn unsupported_kind(&self) -> UnsupportedItemKind { UnsupportedItemKind::Other @@ -1755,8 +1772,8 @@ impl GenericItem for ExistingRustType { fn owning_target(&self) -> Option { Some(self.owning_target.clone()) } - fn debug_name(&self, _: &IR) -> Rc { - self.cc_name.clone() + fn debug_name(&self, ir: &IR) -> Rc { + format!("{}{}", ir.namespace_qualifier(self).format_for_cc_debug(), self.cc_name).into() } fn unsupported_kind(&self) -> UnsupportedItemKind { UnsupportedItemKind::Other diff --git a/rs_bindings_from_cc/test/golden/clang_attrs_rs_api.rs b/rs_bindings_from_cc/test/golden/clang_attrs_rs_api.rs index bf75e0319..429d5e46f 100644 --- a/rs_bindings_from_cc/test/golden/clang_attrs_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/clang_attrs_rs_api.rs @@ -191,9 +191,9 @@ impl Default for HasCustomAlignmentWithGnuAttr { pub mod template_with_preferred_name { // Error while generating bindings for class 'template_with_preferred_name::SomeTemplate': // Class templates are not supported yet - // Error while generating bindings for type alias 'SpecializedTypeAlias': - // Can't generate bindings for SpecializedTypeAlias, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:clang_attrs_cc needs [//features:wrapper] for SpecializedTypeAlias (error: Can't generate bindings for template_with_preferred_name::SomeTemplate, because of missing required features (crubit.rs-features): + // Error while generating bindings for type alias 'template_with_preferred_name::SpecializedTypeAlias': + // Can't generate bindings for template_with_preferred_name::SpecializedTypeAlias, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:clang_attrs_cc needs [//features:wrapper] for template_with_preferred_name::SpecializedTypeAlias (error: Can't generate bindings for template_with_preferred_name::SomeTemplate, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:clang_attrs_cc needs [//features:wrapper] for template_with_preferred_name::SomeTemplate (crate::__CcTemplateInstN28template_with_preferred_name12SomeTemplateIiEE is a template instantiation) // //rs_bindings_from_cc/test/golden:clang_attrs_cc needs [//features:wrapper] for template_with_preferred_name::SomeTemplate (crate::__CcTemplateInstN28template_with_preferred_name12SomeTemplateIiEE is a template instantiation)) diff --git a/rs_bindings_from_cc/test/golden/composable_bridging_rs_api.rs b/rs_bindings_from_cc/test/golden/composable_bridging_rs_api.rs index 6b3385b7d..4be458766 100644 --- a/rs_bindings_from_cc/test/golden/composable_bridging_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/composable_bridging_rs_api.rs @@ -540,9 +540,9 @@ forward_declare::unsafe_define!( crate::__CcTemplateInstNSt3__u17basic_string_viewIwNS_11char_traitsIwEEEE ); -// Error while generating bindings for type alias 'traits_type': -// Can't generate bindings for traits_type, because of missing required features (crubit.rs-features): -// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for traits_type (error: Can't generate bindings for std::char_traits, because of missing required features (crubit.rs-features): +// Error while generating bindings for type alias 'std::basic_string_view>::traits_type': +// Can't generate bindings for std::basic_string_view>::traits_type, because of missing required features (crubit.rs-features): +// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::basic_string_view>::traits_type (error: Can't generate bindings for std::char_traits, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::char_traits (crate::__CcTemplateInstNSt3__u11char_traitsIwEE is a template instantiation)) // Error while generating bindings for type alias 'std::basic_string_view::value_type': @@ -566,22 +566,22 @@ forward_declare::unsafe_define!( // Error while generating bindings for type alias 'std::basic_string_view::iterator': // Unsupported type 'std::basic_string_view::const_iterator': Unsupported type 'const wchar_t': Unsupported type 'wchar_t': Unsupported builtin type -// Error while generating bindings for type alias 'const_reverse_iterator': -// Can't generate bindings for const_reverse_iterator, because of missing required features (crubit.rs-features): -// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for const_reverse_iterator (error: Can't generate bindings for std::reverse_iterator, because of missing required features (crubit.rs-features): +// Error while generating bindings for type alias 'std::basic_string_view>::const_reverse_iterator': +// Can't generate bindings for std::basic_string_view>::const_reverse_iterator, because of missing required features (crubit.rs-features): +// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::basic_string_view>::const_reverse_iterator (error: Can't generate bindings for std::reverse_iterator, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::reverse_iterator (crate::__CcTemplateInstNSt3__u16reverse_iteratorIPKwEE is a template instantiation)) -// Error while generating bindings for type alias 'reverse_iterator': -// Can't generate bindings for reverse_iterator, because of missing required features (crubit.rs-features): -// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for reverse_iterator (error: Can't generate bindings for const_reverse_iterator, because of missing required features (crubit.rs-features): -// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for const_reverse_iterator (error: Can't generate bindings for std::reverse_iterator, because of missing required features (crubit.rs-features): +// Error while generating bindings for type alias 'std::basic_string_view>::reverse_iterator': +// Can't generate bindings for std::basic_string_view>::reverse_iterator, because of missing required features (crubit.rs-features): +// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::basic_string_view>::reverse_iterator (error: Can't generate bindings for std::basic_string_view>::const_reverse_iterator, because of missing required features (crubit.rs-features): +// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::basic_string_view>::const_reverse_iterator (error: Can't generate bindings for std::reverse_iterator, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::reverse_iterator (crate::__CcTemplateInstNSt3__u16reverse_iteratorIPKwEE is a template instantiation))) -// Error while generating bindings for type alias 'size_type': -// Can't generate bindings for size_type, because it is unsupported: b/200067824: type definitions nested inside templated records are not yet supported +// Error while generating bindings for type alias 'std::basic_string_view>::size_type': +// Can't generate bindings for std::basic_string_view>::size_type, because it is unsupported: b/200067824: type definitions nested inside templated records are not yet supported -// Error while generating bindings for type alias 'difference_type': -// Can't generate bindings for difference_type, because it is unsupported: b/200067824: type definitions nested inside templated records are not yet supported +// Error while generating bindings for type alias 'std::basic_string_view>::difference_type': +// Can't generate bindings for std::basic_string_view>::difference_type, because it is unsupported: b/200067824: type definitions nested inside templated records are not yet supported // Error while generating bindings for global variable 'std::basic_string_view::npos': // static data members are not supported @@ -622,23 +622,23 @@ forward_declare::unsafe_define!( // Return type is not supported: Unsupported type 'std::basic_string_view::const_iterator': Unsupported type 'const wchar_t': Unsupported type 'wchar_t': Unsupported builtin type // Error while generating bindings for function 'std::basic_string_view>::rbegin': -// Cannot use an error type by value: Can't generate bindings for const_reverse_iterator, because of missing required features (crubit.rs-features): -// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for const_reverse_iterator (error: Can't generate bindings for std::reverse_iterator, because of missing required features (crubit.rs-features): +// Cannot use an error type by value: Can't generate bindings for std::basic_string_view>::const_reverse_iterator, because of missing required features (crubit.rs-features): +// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::basic_string_view>::const_reverse_iterator (error: Can't generate bindings for std::reverse_iterator, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::reverse_iterator (crate::__CcTemplateInstNSt3__u16reverse_iteratorIPKwEE is a template instantiation)) // Error while generating bindings for function 'std::basic_string_view>::rend': -// Cannot use an error type by value: Can't generate bindings for const_reverse_iterator, because of missing required features (crubit.rs-features): -// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for const_reverse_iterator (error: Can't generate bindings for std::reverse_iterator, because of missing required features (crubit.rs-features): +// Cannot use an error type by value: Can't generate bindings for std::basic_string_view>::const_reverse_iterator, because of missing required features (crubit.rs-features): +// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::basic_string_view>::const_reverse_iterator (error: Can't generate bindings for std::reverse_iterator, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::reverse_iterator (crate::__CcTemplateInstNSt3__u16reverse_iteratorIPKwEE is a template instantiation)) // Error while generating bindings for function 'std::basic_string_view>::crbegin': -// Cannot use an error type by value: Can't generate bindings for const_reverse_iterator, because of missing required features (crubit.rs-features): -// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for const_reverse_iterator (error: Can't generate bindings for std::reverse_iterator, because of missing required features (crubit.rs-features): +// Cannot use an error type by value: Can't generate bindings for std::basic_string_view>::const_reverse_iterator, because of missing required features (crubit.rs-features): +// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::basic_string_view>::const_reverse_iterator (error: Can't generate bindings for std::reverse_iterator, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::reverse_iterator (crate::__CcTemplateInstNSt3__u16reverse_iteratorIPKwEE is a template instantiation)) // Error while generating bindings for function 'std::basic_string_view>::crend': -// Cannot use an error type by value: Can't generate bindings for const_reverse_iterator, because of missing required features (crubit.rs-features): -// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for const_reverse_iterator (error: Can't generate bindings for std::reverse_iterator, because of missing required features (crubit.rs-features): +// Cannot use an error type by value: Can't generate bindings for std::basic_string_view>::const_reverse_iterator, because of missing required features (crubit.rs-features): +// //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::basic_string_view>::const_reverse_iterator (error: Can't generate bindings for std::reverse_iterator, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:composable_bridging_cc needs [//features:wrapper] for std::reverse_iterator (crate::__CcTemplateInstNSt3__u16reverse_iteratorIPKwEE is a template instantiation)) // Error while generating bindings for function 'std::basic_string_view::size': 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 6c068703f..c6339d6fc 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 @@ -325,8 +325,8 @@ pub type MyTypeAlias = crate::DocCommentSlashes; // Error while generating bindings for type alias 'ConcreteNestedStruct': // 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)) +// //rs_bindings_from_cc/test/golden:doc_comment_cc needs [//features:wrapper] for ConcreteNestedStruct (error: Can't generate bindings for OuterTemplate::NestedStruct, because of missing required features (crubit.rs-features): +// //rs_bindings_from_cc/test/golden:doc_comment_cc needs [//features:wrapper] for OuterTemplate::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/namespace_rs_api.rs b/rs_bindings_from_cc/test/golden/namespace_rs_api.rs index aa395e3e6..4f7c9e6c4 100644 --- a/rs_bindings_from_cc/test/golden/namespace_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/namespace_rs_api.rs @@ -41,23 +41,23 @@ pub mod test_namespace_bindings { } } - // Error while generating bindings for constructor 'S::S': - // Can't generate bindings for S::S, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for S::S (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'test_namespace_bindings::S::S': + // Can't generate bindings for test_namespace_bindings::S::S, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings::S::S (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for constructor 'S::S': - // Can't generate bindings for S::S, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for S::S (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'test_namespace_bindings::S::S': + // Can't generate bindings for test_namespace_bindings::S::S, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings::S::S (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'S::operator=': - // Can't generate bindings for S::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for S::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for S::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'test_namespace_bindings::S::operator=': + // Can't generate bindings for test_namespace_bindings::S::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings::S::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings::S::operator= (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'S::operator=': - // Can't generate bindings for S::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for S::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for S::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'test_namespace_bindings::S::operator=': + // Can't generate bindings for test_namespace_bindings::S::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings::S::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings::S::operator= (the type of __param_0 (parameter #1): references are not supported) /// Free comment inside namespace #[inline(always)] @@ -136,23 +136,23 @@ pub mod test_namespace_bindings_reopened { } } - // Error while generating bindings for constructor 'S::S': - // Can't generate bindings for S::S, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for S::S (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'test_namespace_bindings_reopened::inner::S::S': + // Can't generate bindings for test_namespace_bindings_reopened::inner::S::S, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings_reopened::inner::S::S (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for constructor 'S::S': - // Can't generate bindings for S::S, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for S::S (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'test_namespace_bindings_reopened::inner::S::S': + // Can't generate bindings for test_namespace_bindings_reopened::inner::S::S, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings_reopened::inner::S::S (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'S::operator=': - // Can't generate bindings for S::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for S::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for S::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'test_namespace_bindings_reopened::inner::S::operator=': + // Can't generate bindings for test_namespace_bindings_reopened::inner::S::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings_reopened::inner::S::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings_reopened::inner::S::operator= (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'S::operator=': - // Can't generate bindings for S::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for S::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for S::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'test_namespace_bindings_reopened::inner::S::operator=': + // Can't generate bindings for test_namespace_bindings_reopened::inner::S::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings_reopened::inner::S::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings_reopened::inner::S::operator= (the type of __param_0 (parameter #1): references are not supported) #[inline(always)] pub fn z(mut s: crate::test_namespace_bindings_reopened::inner::S) { @@ -197,23 +197,23 @@ pub mod test_namespace_bindings_inline { } } - // Error while generating bindings for constructor 'StructInInlineNamespace::StructInInlineNamespace': - // Can't generate bindings for StructInInlineNamespace::StructInInlineNamespace, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for StructInInlineNamespace::StructInInlineNamespace (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'test_namespace_bindings_inline::inner::StructInInlineNamespace::StructInInlineNamespace': + // Can't generate bindings for test_namespace_bindings_inline::inner::StructInInlineNamespace::StructInInlineNamespace, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings_inline::inner::StructInInlineNamespace::StructInInlineNamespace (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for constructor 'StructInInlineNamespace::StructInInlineNamespace': - // Can't generate bindings for StructInInlineNamespace::StructInInlineNamespace, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for StructInInlineNamespace::StructInInlineNamespace (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'test_namespace_bindings_inline::inner::StructInInlineNamespace::StructInInlineNamespace': + // Can't generate bindings for test_namespace_bindings_inline::inner::StructInInlineNamespace::StructInInlineNamespace, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings_inline::inner::StructInInlineNamespace::StructInInlineNamespace (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'StructInInlineNamespace::operator=': - // Can't generate bindings for StructInInlineNamespace::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for StructInInlineNamespace::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for StructInInlineNamespace::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'test_namespace_bindings_inline::inner::StructInInlineNamespace::operator=': + // Can't generate bindings for test_namespace_bindings_inline::inner::StructInInlineNamespace::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings_inline::inner::StructInInlineNamespace::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings_inline::inner::StructInInlineNamespace::operator= (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'StructInInlineNamespace::operator=': - // Can't generate bindings for StructInInlineNamespace::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for StructInInlineNamespace::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for StructInInlineNamespace::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'test_namespace_bindings_inline::inner::StructInInlineNamespace::operator=': + // Can't generate bindings for test_namespace_bindings_inline::inner::StructInInlineNamespace::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings_inline::inner::StructInInlineNamespace::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:namespace_cc needs [//features:experimental] for test_namespace_bindings_inline::inner::StructInInlineNamespace::operator= (the type of __param_0 (parameter #1): references are not supported) } #[allow(unused_imports)] pub use inner::*; diff --git a/rs_bindings_from_cc/test/golden/nested_types_rs_api.rs b/rs_bindings_from_cc/test/golden/nested_types_rs_api.rs index 7adc0dc04..7619ffd8d 100644 --- a/rs_bindings_from_cc/test/golden/nested_types_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/nested_types_rs_api.rs @@ -122,7 +122,7 @@ impl Default for already_snake_case { } } -// Error while generating bindings for struct 'Inner': +// Error while generating bindings for struct 'already_snake_case::Inner': // parent record has nested items, but the module to contain them could not be generated because another item named `already_snake_case` already exists #[derive(Clone, Copy, ::ctor::MoveAndAssignViaCopy)] @@ -151,7 +151,7 @@ impl Default for ConflictingSnakeCaseNames { } } -// Error while generating bindings for struct 'Inner': +// Error while generating bindings for struct 'ConflictingSnakeCaseNames::Inner': // records ["ConflictingSnakeCaseNames", "ConflictingSnakeCaseNames_"] all have nested items, but all map to the same nested module name: `conflicting_snake_case_names` #[derive(Clone, Copy, ::ctor::MoveAndAssignViaCopy)] @@ -182,7 +182,7 @@ impl Default for ConflictingSnakeCaseNames_ { } } -// Error while generating bindings for struct 'Inner': +// Error while generating bindings for struct 'ConflictingSnakeCaseNames_::Inner': // records ["ConflictingSnakeCaseNames", "ConflictingSnakeCaseNames_"] all have nested items, but all map to the same nested module name: `conflicting_snake_case_names` #[derive(Clone, Copy, ::ctor::MoveAndAssignViaCopy)] @@ -292,7 +292,7 @@ impl Default for SameNameAsNamespace { } } -// Error while generating bindings for struct 'Inner': +// Error while generating bindings for struct 'SameNameAsNamespace::Inner': // parent record has nested items, but the module to contain them could not be generated because another item named `same_name_as_namespace` already exists // namespace same_name_as_namespace @@ -382,7 +382,7 @@ pub mod no_longer_top_level { } } - // Error while generating bindings for struct 'Inner': + // Error while generating bindings for struct 'no_longer_top_level::already_snake_case::Inner': // parent record has nested items, but the module to contain them could not be generated because another item named `already_snake_case` already exists #[derive(Clone, Copy, ::ctor::MoveAndAssignViaCopy)] @@ -411,7 +411,7 @@ pub mod no_longer_top_level { } } - // Error while generating bindings for struct 'Inner': + // Error while generating bindings for struct 'no_longer_top_level::ConflictingSnakeCaseNames::Inner': // records ["ConflictingSnakeCaseNames", "ConflictingSnakeCaseNames_"] all have nested items, but all map to the same nested module name: `conflicting_snake_case_names` #[derive(Clone, Copy, ::ctor::MoveAndAssignViaCopy)] @@ -440,7 +440,7 @@ pub mod no_longer_top_level { } } - // Error while generating bindings for struct 'Inner': + // Error while generating bindings for struct 'no_longer_top_level::ConflictingSnakeCaseNames_::Inner': // records ["ConflictingSnakeCaseNames", "ConflictingSnakeCaseNames_"] all have nested items, but all map to the same nested module name: `conflicting_snake_case_names` #[derive(Clone, Copy, ::ctor::MoveAndAssignViaCopy)] @@ -554,7 +554,7 @@ pub mod no_longer_top_level { } } - // Error while generating bindings for struct 'Inner': + // Error while generating bindings for struct 'no_longer_top_level::SameNameAsNamespace::Inner': // parent record has nested items, but the module to contain them could not be generated because another item named `same_name_as_namespace` already exists // namespace same_name_as_namespace diff --git a/rs_bindings_from_cc/test/golden/private_members_rs_api.rs b/rs_bindings_from_cc/test/golden/private_members_rs_api.rs index 93e53a9be..3ff6d69be 100644 --- a/rs_bindings_from_cc/test/golden/private_members_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/private_members_rs_api.rs @@ -61,23 +61,23 @@ pub mod test_namespace_bindings { } } - // Error while generating bindings for constructor 'SomeClass::SomeClass': - // Can't generate bindings for SomeClass::SomeClass, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:private_members_cc needs [//features:experimental] for SomeClass::SomeClass (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'test_namespace_bindings::SomeClass::SomeClass': + // Can't generate bindings for test_namespace_bindings::SomeClass::SomeClass, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:private_members_cc needs [//features:experimental] for test_namespace_bindings::SomeClass::SomeClass (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for constructor 'SomeClass::SomeClass': - // Can't generate bindings for SomeClass::SomeClass, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:private_members_cc needs [//features:experimental] for SomeClass::SomeClass (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'test_namespace_bindings::SomeClass::SomeClass': + // Can't generate bindings for test_namespace_bindings::SomeClass::SomeClass, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:private_members_cc needs [//features:experimental] for test_namespace_bindings::SomeClass::SomeClass (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'SomeClass::operator=': - // Can't generate bindings for SomeClass::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:private_members_cc needs [//features:experimental] for SomeClass::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:private_members_cc needs [//features:experimental] for SomeClass::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'test_namespace_bindings::SomeClass::operator=': + // Can't generate bindings for test_namespace_bindings::SomeClass::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:private_members_cc needs [//features:experimental] for test_namespace_bindings::SomeClass::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:private_members_cc needs [//features:experimental] for test_namespace_bindings::SomeClass::operator= (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'SomeClass::operator=': - // Can't generate bindings for SomeClass::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:private_members_cc needs [//features:experimental] for SomeClass::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:private_members_cc needs [//features:experimental] for SomeClass::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'test_namespace_bindings::SomeClass::operator=': + // Can't generate bindings for test_namespace_bindings::SomeClass::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:private_members_cc needs [//features:experimental] for test_namespace_bindings::SomeClass::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:private_members_cc needs [//features:experimental] for test_namespace_bindings::SomeClass::operator= (the type of __param_0 (parameter #1): references are not supported) } // namespace test_namespace_bindings diff --git a/rs_bindings_from_cc/test/golden/templates_rs_api.rs b/rs_bindings_from_cc/test/golden/templates_rs_api.rs index 6fdd87b74..b21738ea4 100644 --- a/rs_bindings_from_cc/test/golden/templates_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/templates_rs_api.rs @@ -60,15 +60,15 @@ pub mod test_namespace_bindings { // Error while generating bindings for class 'test_namespace_bindings::MyTemplate': // Class templates are not supported yet - // Error while generating bindings for type alias 'MyTypeAlias': - // Can't generate bindings for MyTypeAlias, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for MyTypeAlias (error: Can't generate bindings for test_namespace_bindings::MyTemplate, because of missing required features (crubit.rs-features): + // Error while generating bindings for type alias 'test_namespace_bindings::MyTypeAlias': + // Can't generate bindings for test_namespace_bindings::MyTypeAlias, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::MyTypeAlias (error: Can't generate bindings for test_namespace_bindings::MyTemplate, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::MyTemplate (crate::__CcTemplateInstN23test_namespace_bindings10MyTemplateIiEE is a template instantiation) // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::MyTemplate (crate::__CcTemplateInstN23test_namespace_bindings10MyTemplateIiEE is a template instantiation)) - // Error while generating bindings for type alias 'OtherTypeAliasInSameTarget': - // Can't generate bindings for OtherTypeAliasInSameTarget, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for OtherTypeAliasInSameTarget (error: Can't generate bindings for test_namespace_bindings::MyTemplate, because of missing required features (crubit.rs-features): + // Error while generating bindings for type alias 'test_namespace_bindings::OtherTypeAliasInSameTarget': + // Can't generate bindings for test_namespace_bindings::OtherTypeAliasInSameTarget, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::OtherTypeAliasInSameTarget (error: Can't generate bindings for test_namespace_bindings::MyTemplate, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::MyTemplate (crate::__CcTemplateInstN23test_namespace_bindings10MyTemplateIiEE is a template instantiation) // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::MyTemplate (crate::__CcTemplateInstN23test_namespace_bindings10MyTemplateIiEE is a template instantiation)) @@ -98,48 +98,48 @@ pub mod test_namespace_bindings { } } - // Error while generating bindings for constructor 'TemplateParam::TemplateParam': - // Can't generate bindings for TemplateParam::TemplateParam, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for TemplateParam::TemplateParam (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'test_namespace_bindings::TemplateParam::TemplateParam': + // Can't generate bindings for test_namespace_bindings::TemplateParam::TemplateParam, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for test_namespace_bindings::TemplateParam::TemplateParam (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for constructor 'TemplateParam::TemplateParam': - // Can't generate bindings for TemplateParam::TemplateParam, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for TemplateParam::TemplateParam (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'test_namespace_bindings::TemplateParam::TemplateParam': + // Can't generate bindings for test_namespace_bindings::TemplateParam::TemplateParam, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for test_namespace_bindings::TemplateParam::TemplateParam (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'TemplateParam::operator=': - // Can't generate bindings for TemplateParam::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for TemplateParam::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for TemplateParam::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'test_namespace_bindings::TemplateParam::operator=': + // Can't generate bindings for test_namespace_bindings::TemplateParam::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for test_namespace_bindings::TemplateParam::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for test_namespace_bindings::TemplateParam::operator= (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'TemplateParam::operator=': - // Can't generate bindings for TemplateParam::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for TemplateParam::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for TemplateParam::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'test_namespace_bindings::TemplateParam::operator=': + // Can't generate bindings for test_namespace_bindings::TemplateParam::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for test_namespace_bindings::TemplateParam::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for test_namespace_bindings::TemplateParam::operator= (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for type alias 'TemplateWithStructTemplateParam': - // Can't generate bindings for TemplateWithStructTemplateParam, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for TemplateWithStructTemplateParam (error: Can't generate bindings for test_namespace_bindings::MyTemplate, because of missing required features (crubit.rs-features): + // Error while generating bindings for type alias 'test_namespace_bindings::TemplateWithStructTemplateParam': + // Can't generate bindings for test_namespace_bindings::TemplateWithStructTemplateParam, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::TemplateWithStructTemplateParam (error: Can't generate bindings for test_namespace_bindings::MyTemplate, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::MyTemplate (crate::__CcTemplateInstN23test_namespace_bindings10MyTemplateINS_13TemplateParamEEE is a template instantiation) // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::MyTemplate (crate::__CcTemplateInstN23test_namespace_bindings10MyTemplateINS_13TemplateParamEEE is a template instantiation)) - // Error while generating bindings for type alias 'ParamFromDifferentScope': - // Can't generate bindings for ParamFromDifferentScope, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for ParamFromDifferentScope (error: Can't generate bindings for test_namespace_bindings::MyTemplate, because of missing required features (crubit.rs-features): + // Error while generating bindings for type alias 'test_namespace_bindings::ParamFromDifferentScope': + // Can't generate bindings for test_namespace_bindings::ParamFromDifferentScope, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::ParamFromDifferentScope (error: Can't generate bindings for test_namespace_bindings::MyTemplate, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::MyTemplate (crate::__CcTemplateInstN23test_namespace_bindings10MyTemplateI14DifferentScopeEE is a template instantiation) // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::MyTemplate (crate::__CcTemplateInstN23test_namespace_bindings10MyTemplateI14DifferentScopeEE is a template instantiation)) // Error while generating bindings for class 'test_namespace_bindings::TemplateWithTwoParams': // Class templates are not supported yet - // Error while generating bindings for type alias 'AliasToTemplateWithTwoParams': - // Can't generate bindings for AliasToTemplateWithTwoParams, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for AliasToTemplateWithTwoParams (error: Can't generate bindings for test_namespace_bindings::TemplateWithTwoParams, because of missing required features (crubit.rs-features): + // Error while generating bindings for type alias 'test_namespace_bindings::AliasToTemplateWithTwoParams': + // Can't generate bindings for test_namespace_bindings::AliasToTemplateWithTwoParams, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::AliasToTemplateWithTwoParams (error: Can't generate bindings for test_namespace_bindings::TemplateWithTwoParams, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::TemplateWithTwoParams (crate::__CcTemplateInstN23test_namespace_bindings21TemplateWithTwoParamsIifEE is a template instantiation) // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::TemplateWithTwoParams (crate::__CcTemplateInstN23test_namespace_bindings21TemplateWithTwoParamsIifEE is a template instantiation)) - // Error while generating bindings for type alias 'AliasToTemplateOfATemplate': - // Can't generate bindings for AliasToTemplateOfATemplate, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for AliasToTemplateOfATemplate (error: Can't generate bindings for test_namespace_bindings::TemplateWithTwoParams, int>, because of missing required features (crubit.rs-features): + // Error while generating bindings for type alias 'test_namespace_bindings::AliasToTemplateOfATemplate': + // Can't generate bindings for test_namespace_bindings::AliasToTemplateOfATemplate, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::AliasToTemplateOfATemplate (error: Can't generate bindings for test_namespace_bindings::TemplateWithTwoParams, int>, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::TemplateWithTwoParams, int> (crate::__CcTemplateInstN23test_namespace_bindings21TemplateWithTwoParamsINS0_IiiEEiEE is a template instantiation) // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::TemplateWithTwoParams, int> (crate::__CcTemplateInstN23test_namespace_bindings21TemplateWithTwoParamsINS0_IiiEEiEE is a template instantiation)) @@ -152,9 +152,9 @@ pub mod test_namespace_bindings { // Explicit class template specialization with definition should be imported // even when not instantiated if there is a type alias for it. - // Error while generating bindings for type alias 'MyCharStruct': - // Can't generate bindings for MyCharStruct, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for MyCharStruct (error: Can't generate bindings for test_namespace_bindings::MyStruct, because of missing required features (crubit.rs-features): + // Error while generating bindings for type alias 'test_namespace_bindings::MyCharStruct': + // Can't generate bindings for test_namespace_bindings::MyCharStruct, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::MyCharStruct (error: Can't generate bindings for test_namespace_bindings::MyStruct, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::MyStruct (crate::__CcTemplateInstN23test_namespace_bindings8MyStructIcEE is a template instantiation) // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for test_namespace_bindings::MyStruct (crate::__CcTemplateInstN23test_namespace_bindings8MyStructIcEE is a template instantiation)) @@ -191,9 +191,9 @@ pub mod template_template_params { // Error while generating bindings for class // Error while generating bindings for class 'template_template_params::MyTemplate': // Class templates are not supported yet - // Error while generating bindings for type alias 'MyTypeAlias': - // Can't generate bindings for MyTypeAlias, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for MyTypeAlias (error: Can't generate bindings for template_template_params::MyTemplate, because of missing required features (crubit.rs-features): + // Error while generating bindings for type alias 'template_template_params::MyTypeAlias': + // Can't generate bindings for template_template_params::MyTypeAlias, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for template_template_params::MyTypeAlias (error: Can't generate bindings for template_template_params::MyTemplate, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for template_template_params::MyTemplate (crate::__CcTemplateInstN24template_template_params10MyTemplateINS_6PolicyEEE is a template instantiation) // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for template_template_params::MyTemplate (crate::__CcTemplateInstN24template_template_params10MyTemplateINS_6PolicyEEE is a template instantiation)) } @@ -203,9 +203,9 @@ pub mod template_template_params { // Error while generating bindings for class pub mod forward_declared_template { // Error while generating bindings for class 'forward_declared_template::ForwardDeclaredTemplate': // Class templates are not supported yet - // Error while generating bindings for type alias 'TypeAliasToForwardDeclaredTemplate': - // Can't generate bindings for TypeAliasToForwardDeclaredTemplate, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for TypeAliasToForwardDeclaredTemplate (error: Can't generate bindings for forward_declared_template::ForwardDeclaredTemplate, because of missing required features (crubit.rs-features): + // Error while generating bindings for type alias 'forward_declared_template::TypeAliasToForwardDeclaredTemplate': + // Can't generate bindings for forward_declared_template::TypeAliasToForwardDeclaredTemplate, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for forward_declared_template::TypeAliasToForwardDeclaredTemplate (error: Can't generate bindings for forward_declared_template::ForwardDeclaredTemplate, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:wrapper] for forward_declared_template::ForwardDeclaredTemplate (incomplete type)) } @@ -225,23 +225,23 @@ pub mod private_classes { type Kind = ::cxx::kind::Trivial; } - // Error while generating bindings for constructor 'HasPrivateType::HasPrivateType': - // Can't generate bindings for HasPrivateType::HasPrivateType, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for HasPrivateType::HasPrivateType (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'private_classes::HasPrivateType::HasPrivateType': + // Can't generate bindings for private_classes::HasPrivateType::HasPrivateType, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for private_classes::HasPrivateType::HasPrivateType (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for constructor 'HasPrivateType::HasPrivateType': - // Can't generate bindings for HasPrivateType::HasPrivateType, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for HasPrivateType::HasPrivateType (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'private_classes::HasPrivateType::HasPrivateType': + // Can't generate bindings for private_classes::HasPrivateType::HasPrivateType, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for private_classes::HasPrivateType::HasPrivateType (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'HasPrivateType::operator=': - // Can't generate bindings for HasPrivateType::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for HasPrivateType::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for HasPrivateType::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'private_classes::HasPrivateType::operator=': + // Can't generate bindings for private_classes::HasPrivateType::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for private_classes::HasPrivateType::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for private_classes::HasPrivateType::operator= (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'HasPrivateType::operator=': - // Can't generate bindings for HasPrivateType::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for HasPrivateType::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for HasPrivateType::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'private_classes::HasPrivateType::operator=': + // Can't generate bindings for private_classes::HasPrivateType::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for private_classes::HasPrivateType::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:templates_cc needs [//features:experimental] for private_classes::HasPrivateType::operator= (the type of __param_0 (parameter #1): references are not supported) } // namespace private_classes diff --git a/rs_bindings_from_cc/test/golden/templates_source_order_rs_api.rs b/rs_bindings_from_cc/test/golden/templates_source_order_rs_api.rs index d75621bac..c58e065d9 100644 --- a/rs_bindings_from_cc/test/golden/templates_source_order_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/templates_source_order_rs_api.rs @@ -104,21 +104,21 @@ pub mod test_namespace_bindings { } } - // Error while generating bindings for type alias 'Alias7': - // Can't generate bindings for Alias7, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_source_order_cc needs [//features:wrapper] for Alias7 (error: Can't generate bindings for MyTemplate, because of missing required features (crubit.rs-features): + // Error while generating bindings for type alias 'test_namespace_bindings::Alias7': + // Can't generate bindings for test_namespace_bindings::Alias7, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_source_order_cc needs [//features:wrapper] for test_namespace_bindings::Alias7 (error: Can't generate bindings for MyTemplate, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:templates_source_order_cc needs [//features:wrapper] for MyTemplate (crate::__CcTemplateInst10MyTemplateIcE is a template instantiation) // //rs_bindings_from_cc/test/golden:templates_source_order_cc needs [//features:wrapper] for MyTemplate (crate::__CcTemplateInst10MyTemplateIcE is a template instantiation)) - // Error while generating bindings for type alias 'Alias8': - // Can't generate bindings for Alias8, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_source_order_cc needs [//features:wrapper] for Alias8 (error: Can't generate bindings for MyTemplate, because of missing required features (crubit.rs-features): + // Error while generating bindings for type alias 'test_namespace_bindings::Alias8': + // Can't generate bindings for test_namespace_bindings::Alias8, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_source_order_cc needs [//features:wrapper] for test_namespace_bindings::Alias8 (error: Can't generate bindings for MyTemplate, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:templates_source_order_cc needs [//features:wrapper] for MyTemplate (crate::__CcTemplateInst10MyTemplateIN23test_namespace_bindings5InnerEE is a template instantiation) // //rs_bindings_from_cc/test/golden:templates_source_order_cc needs [//features:wrapper] for MyTemplate (crate::__CcTemplateInst10MyTemplateIN23test_namespace_bindings5InnerEE is a template instantiation)) - // Error while generating bindings for type alias 'Alias9': - // Can't generate bindings for Alias9, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:templates_source_order_cc needs [//features:wrapper] for Alias9 (error: Can't generate bindings for MyTemplate>, because of missing required features (crubit.rs-features): + // Error while generating bindings for type alias 'test_namespace_bindings::Alias9': + // Can't generate bindings for test_namespace_bindings::Alias9, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:templates_source_order_cc needs [//features:wrapper] for test_namespace_bindings::Alias9 (error: Can't generate bindings for MyTemplate>, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/golden:templates_source_order_cc needs [//features:wrapper] for MyTemplate> (crate::__CcTemplateInst10MyTemplateIS_IN23test_namespace_bindings5InnerEEE is a template instantiation) // //rs_bindings_from_cc/test/golden:templates_source_order_cc needs [//features:wrapper] for MyTemplate> (crate::__CcTemplateInst10MyTemplateIS_IN23test_namespace_bindings5InnerEEE is a template instantiation)) } diff --git a/rs_bindings_from_cc/test/golden/trivial_type_rs_api.rs b/rs_bindings_from_cc/test/golden/trivial_type_rs_api.rs index 8df69ebd7..f79aee399 100644 --- a/rs_bindings_from_cc/test/golden/trivial_type_rs_api.rs +++ b/rs_bindings_from_cc/test/golden/trivial_type_rs_api.rs @@ -61,31 +61,31 @@ pub mod ns { } } - // Error while generating bindings for constructor 'Trivial::Trivial': - // Can't generate bindings for Trivial::Trivial, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for Trivial::Trivial (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'ns::Trivial::Trivial': + // Can't generate bindings for ns::Trivial::Trivial, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::Trivial::Trivial (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for constructor 'Trivial::Trivial': - // Can't generate bindings for Trivial::Trivial, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for Trivial::Trivial (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for constructor 'ns::Trivial::Trivial': + // Can't generate bindings for ns::Trivial::Trivial, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::Trivial::Trivial (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'Trivial::operator=': - // Can't generate bindings for Trivial::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for Trivial::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for Trivial::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'ns::Trivial::operator=': + // Can't generate bindings for ns::Trivial::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::Trivial::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::Trivial::operator= (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'Trivial::operator=': - // Can't generate bindings for Trivial::operator=, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for Trivial::operator= (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for Trivial::operator= (the type of __param_0 (parameter #1): references are not supported) + // Error while generating bindings for function 'ns::Trivial::operator=': + // Can't generate bindings for ns::Trivial::operator=, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::Trivial::operator= (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::Trivial::operator= (the type of __param_0 (parameter #1): references are not supported) - // Error while generating bindings for function 'Trivial::RvalueRefQualified': - // Can't generate bindings for Trivial::RvalueRefQualified, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for Trivial::RvalueRefQualified (the type of __this (parameter #0): references are not supported) + // Error while generating bindings for function 'ns::Trivial::RvalueRefQualified': + // Can't generate bindings for ns::Trivial::RvalueRefQualified, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::Trivial::RvalueRefQualified (the type of __this (parameter #0): references are not supported) - // Error while generating bindings for function 'Trivial::ConstRvalueRefQualified': - // Can't generate bindings for Trivial::ConstRvalueRefQualified, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for Trivial::ConstRvalueRefQualified (the type of __this (parameter #0): references are not supported) + // Error while generating bindings for function 'ns::Trivial::ConstRvalueRefQualified': + // Can't generate bindings for ns::Trivial::ConstRvalueRefQualified, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::Trivial::ConstRvalueRefQualified (the type of __this (parameter #0): references are not supported) #[inline(always)] pub fn TakesByValue(mut trivial: crate::ns::Trivial) -> crate::ns::Trivial { @@ -99,25 +99,25 @@ pub mod ns { } } - // Error while generating bindings for function 'TakesByReference': - // Can't generate bindings for TakesByReference, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for TakesByReference (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for TakesByReference (the type of trivial (parameter #0): references are not supported) - - // Error while generating bindings for function 'TakesByConstReference': - // Can't generate bindings for TakesByConstReference, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for TakesByConstReference (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for TakesByConstReference (the type of trivial (parameter #0): references are not supported) - - // Error while generating bindings for function 'TakesByRvalueReference': - // Can't generate bindings for TakesByRvalueReference, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for TakesByRvalueReference (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for TakesByRvalueReference (the type of trivial (parameter #0): references are not supported) - - // Error while generating bindings for function 'TakesByConstRvalueReference': - // Can't generate bindings for TakesByConstRvalueReference, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for TakesByConstRvalueReference (return type: references are not supported) - // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for TakesByConstRvalueReference (the type of trivial (parameter #0): references are not supported) + // Error while generating bindings for function 'ns::TakesByReference': + // Can't generate bindings for ns::TakesByReference, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::TakesByReference (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::TakesByReference (the type of trivial (parameter #0): references are not supported) + + // Error while generating bindings for function 'ns::TakesByConstReference': + // Can't generate bindings for ns::TakesByConstReference, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::TakesByConstReference (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::TakesByConstReference (the type of trivial (parameter #0): references are not supported) + + // Error while generating bindings for function 'ns::TakesByRvalueReference': + // Can't generate bindings for ns::TakesByRvalueReference, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::TakesByRvalueReference (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::TakesByRvalueReference (the type of trivial (parameter #0): references are not supported) + + // Error while generating bindings for function 'ns::TakesByConstRvalueReference': + // Can't generate bindings for ns::TakesByConstRvalueReference, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::TakesByConstRvalueReference (return type: references are not supported) + // //rs_bindings_from_cc/test/golden:trivial_type_cc needs [//features:experimental] for ns::TakesByConstRvalueReference (the type of trivial (parameter #0): references are not supported) } // namespace ns diff --git a/rs_bindings_from_cc/test/templates/regression_401857961/repro_rs_api.rs b/rs_bindings_from_cc/test/templates/regression_401857961/repro_rs_api.rs index e356d9181..b60cd5aa7 100644 --- a/rs_bindings_from_cc/test/templates/regression_401857961/repro_rs_api.rs +++ b/rs_bindings_from_cc/test/templates/regression_401857961/repro_rs_api.rs @@ -53,9 +53,9 @@ pub mod repro { // Class templates are not supported yet // Generated from: rs_bindings_from_cc/test/templates/regression_401857961/repro.h;l=24 - // Error while generating bindings for function 'crash': - // Can't generate bindings for crash, because of missing required features (crubit.rs-features): - // //rs_bindings_from_cc/test/templates/regression_401857961:repro needs [//features:wrapper] for crash (the type of __param_0 (parameter #0): error: Can't generate bindings for repro::Nullable, because of missing required features (crubit.rs-features): + // Error while generating bindings for function 'repro::crash': + // Can't generate bindings for repro::crash, because of missing required features (crubit.rs-features): + // //rs_bindings_from_cc/test/templates/regression_401857961:repro needs [//features:wrapper] for repro::crash (the type of __param_0 (parameter #0): error: Can't generate bindings for repro::Nullable, because of missing required features (crubit.rs-features): // //rs_bindings_from_cc/test/templates/regression_401857961:repro needs [//features:wrapper] for repro::Nullable (crate::__CcTemplateInstN5repro8NullableINS_8IntervalEEE is a template instantiation) // //rs_bindings_from_cc/test/templates/regression_401857961:repro needs [//features:wrapper] for repro::Nullable (crate::__CcTemplateInstN5repro8NullableINS_8IntervalEEE is a template instantiation)) }