Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions examples/cpp/enum/example_generated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#![allow(unused)]
#![deny(warnings)]

extern crate core as __rust_core;
/// Generated from: examples/cpp/enum/example.h;l=8
#[repr(transparent)]
#[derive(Debug, PartialEq, Eq, Copy, Clone, Hash, PartialOrd, Ord)]
Expand Down
1 change: 1 addition & 0 deletions examples/cpp/function/example_generated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#![allow(unused)]
#![deny(warnings)]

extern crate core as __rust_core;
pub mod gshoe {
/// Generated from: examples/cpp/function/example.h;l=12
#[inline(always)]
Expand Down
11 changes: 6 additions & 5 deletions examples/cpp/method/example_generated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#![allow(unused)]
#![deny(warnings)]

extern crate core as __rust_core;
pub mod foo {
/// Generated from: examples/cpp/method/example.h;l=12
#[derive(Clone, Copy, ::ctor::MoveAndAssignViaCopy)]
Expand Down Expand Up @@ -45,7 +46,7 @@ pub mod foo {
impl Default for Bar {
#[inline(always)]
fn default() -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
let mut tmp = ::__rust_core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN3foo3BarC1Ev(&raw mut tmp as *mut _);
tmp.assume_init()
Expand All @@ -60,15 +61,15 @@ mod detail {
#[allow(unused_imports)]
use super::*;
unsafe extern "C" {
pub(crate) unsafe fn __rust_thunk___ZN3foo3BarC1Ev(__this: *mut ::core::ffi::c_void);
pub(crate) unsafe fn __rust_thunk___ZN3foo3BarC1Ev(__this: *mut ::__rust_core::ffi::c_void);
pub(crate) unsafe fn __rust_thunk___ZN3foo3Bar8MyMethodEv(__this: *mut crate::foo::Bar);
}
}

const _: () = {
assert!(::core::mem::size_of::<crate::foo::Bar>() == 4);
assert!(::core::mem::align_of::<crate::foo::Bar>() == 4);
assert!(::__rust_core::mem::size_of::<crate::foo::Bar>() == 4);
assert!(::__rust_core::mem::align_of::<crate::foo::Bar>() == 4);
static_assertions::assert_impl_all!(crate::foo::Bar: Copy,Clone);
static_assertions::assert_not_impl_any!(crate::foo::Bar: Drop);
assert!(::core::mem::offset_of!(crate::foo::Bar, x) == 0);
assert!(::__rust_core::mem::offset_of!(crate::foo::Bar, x) == 0);
};
15 changes: 9 additions & 6 deletions examples/cpp/trivial_abi_struct/example_generated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#![allow(unused)]
#![deny(warnings)]

extern crate core as __rust_core;
/// Because this class has a destructor, it will not receive Rust bindings
/// without ABSL_ATTRIBUTE_TRIVIAL_ABI.
///
Expand All @@ -36,7 +37,7 @@ unsafe impl ::cxx::ExternType for Position {
impl Default for Position {
#[inline(always)]
fn default() -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
let mut tmp = ::__rust_core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN8PositionC1Ev(&raw mut tmp as *mut _);
tmp.assume_init()
Expand Down Expand Up @@ -74,7 +75,9 @@ mod detail {
#[allow(unused_imports)]
use super::*;
unsafe extern "C" {
pub(crate) unsafe fn __rust_thunk___ZN8PositionC1Ev(__this: *mut ::core::ffi::c_void);
pub(crate) unsafe fn __rust_thunk___ZN8PositionC1Ev(
__this: *mut ::__rust_core::ffi::c_void,
);
pub(crate) unsafe fn __rust_thunk___ZN8PositionaSERKS_<'__return_lifetime>(
__this: &mut crate::Position,
__param_0: &crate::Position,
Expand All @@ -84,12 +87,12 @@ mod detail {
}

const _: () = {
assert!(::core::mem::size_of::<crate::Position>() == 8);
assert!(::core::mem::align_of::<crate::Position>() == 4);
assert!(::__rust_core::mem::size_of::<crate::Position>() == 8);
assert!(::__rust_core::mem::align_of::<crate::Position>() == 4);
static_assertions::assert_impl_all!(crate::Position: Clone,Drop);
static_assertions::assert_not_impl_any!(crate::Position: Copy);
assert!(::core::mem::offset_of!(crate::Position, x) == 0);
assert!(::core::mem::offset_of!(crate::Position, y) == 4);
assert!(::__rust_core::mem::offset_of!(crate::Position, x) == 0);
assert!(::__rust_core::mem::offset_of!(crate::Position, y) == 4);
static_assertions::assert_impl_all!(::ffi_11::c_int: Copy);
static_assertions::assert_impl_all!(::ffi_11::c_int: Copy);
};
15 changes: 9 additions & 6 deletions examples/cpp/trivial_struct/example_generated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#![allow(unused)]
#![deny(warnings)]

extern crate core as __rust_core;
/// Generated from: examples/cpp/trivial_struct/example.h;l=8
#[derive(Clone, Copy, ::ctor::MoveAndAssignViaCopy)]
#[repr(C)]
Expand All @@ -33,7 +34,7 @@ unsafe impl ::cxx::ExternType for Position {
impl Default for Position {
#[inline(always)]
fn default() -> Self {
let mut tmp = ::core::mem::MaybeUninit::<Self>::zeroed();
let mut tmp = ::__rust_core::mem::MaybeUninit::<Self>::zeroed();
unsafe {
crate::detail::__rust_thunk___ZN8PositionC1Ev(&raw mut tmp as *mut _);
tmp.assume_init()
Expand All @@ -45,15 +46,17 @@ mod detail {
#[allow(unused_imports)]
use super::*;
unsafe extern "C" {
pub(crate) unsafe fn __rust_thunk___ZN8PositionC1Ev(__this: *mut ::core::ffi::c_void);
pub(crate) unsafe fn __rust_thunk___ZN8PositionC1Ev(
__this: *mut ::__rust_core::ffi::c_void,
);
}
}

const _: () = {
assert!(::core::mem::size_of::<crate::Position>() == 8);
assert!(::core::mem::align_of::<crate::Position>() == 4);
assert!(::__rust_core::mem::size_of::<crate::Position>() == 8);
assert!(::__rust_core::mem::align_of::<crate::Position>() == 4);
static_assertions::assert_impl_all!(crate::Position: Copy,Clone);
static_assertions::assert_not_impl_any!(crate::Position: Drop);
assert!(::core::mem::offset_of!(crate::Position, x) == 0);
assert!(::core::mem::offset_of!(crate::Position, y) == 4);
assert!(::__rust_core::mem::offset_of!(crate::Position, x) == 0);
assert!(::__rust_core::mem::offset_of!(crate::Position, y) == 4);
};
1 change: 1 addition & 0 deletions examples/cpp/unsafe_attributes/example_generated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#![allow(unused)]
#![deny(warnings)]

extern crate core as __rust_core;
/// Generated from: examples/cpp/unsafe_attributes/example.h;l=10
#[inline(always)]
pub fn SafeSignatureWithoutAnnotation() {
Expand Down
32 changes: 18 additions & 14 deletions examples/cpp/virtual/example_generated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,16 @@
#![allow(unused)]
#![deny(warnings)]

extern crate core as __rust_core;
/// Generated from: examples/cpp/virtual/example.h;l=13
#[::ctor::recursively_pinned(PinnedDrop)]
#[repr(C, align(8))]
///CRUBIT_ANNOTATE: cpp_type=RustDerived
pub struct RustDerived {
__non_field_data: [::core::cell::Cell<::core::mem::MaybeUninit<u8>>; 8],
__non_field_data: [::__rust_core::cell::Cell<::__rust_core::mem::MaybeUninit<u8>>; 8],
/// Reason for representing this field as a blob of bytes:
/// Types of non-public C++ fields can be elided away
pub(crate) rust_: [::core::cell::Cell<::core::mem::MaybeUninit<u8>>; 16],
pub(crate) rust_: [::__rust_core::cell::Cell<::__rust_core::mem::MaybeUninit<u8>>; 16],
}
impl !Send for RustDerived {}
impl !Sync for RustDerived {}
Expand Down Expand Up @@ -63,7 +64,7 @@ impl<'__unelided> ::ctor::CtorNew<::ctor::RvalueReference<'__unelided, Self>> fo
unsafe {
::ctor::FnCtor::new(move |dest: *mut Self| {
crate::detail::__rust_thunk___ZN11RustDerivedC1EOS_(
dest as *mut ::core::ffi::c_void,
dest as *mut ::__rust_core::ffi::c_void,
__param_0,
);
})
Expand All @@ -83,15 +84,18 @@ impl<'__unelided> ::ctor::CtorNew<(::ctor::RvalueReference<'__unelided, Self>,)>
/// Generated from: examples/cpp/virtual/example.h;l=13
impl ::ctor::PinnedDrop for RustDerived {
#[inline(always)]
unsafe fn pinned_drop<'a>(self: ::core::pin::Pin<&'a mut Self>) {
unsafe fn pinned_drop<'a>(self: ::__rust_core::pin::Pin<&'a mut Self>) {
crate::detail::__rust_thunk___ZN11RustDerivedD1Ev(self)
}
}

/// Generated from: examples/cpp/virtual/example.h;l=13
impl ::ctor::Assign<::ctor::RvalueReference<'_, Self>> for RustDerived {
#[inline(always)]
fn assign(self: ::core::pin::Pin<&mut Self>, __param_0: ::ctor::RvalueReference<'_, Self>) {
fn assign(
self: ::__rust_core::pin::Pin<&mut Self>,
__param_0: ::ctor::RvalueReference<'_, Self>,
) {
unsafe {
crate::detail::__rust_thunk___ZN11RustDerivedaSEOS_(self, __param_0);
}
Expand All @@ -108,7 +112,7 @@ impl ::ctor::CtorNew<::definition::RustDerived> for RustDerived {
unsafe {
::ctor::FnCtor::new(move |dest: *mut Self| {
crate::detail::__rust_thunk___ZN11RustDerivedC1EN10definition11RustDerivedE(
dest as *mut ::core::ffi::c_void,
dest as *mut ::__rust_core::ffi::c_void,
&mut rust,
);
})
Expand Down Expand Up @@ -185,18 +189,18 @@ mod detail {
use super::*;
unsafe extern "C" {
pub(crate) unsafe fn __rust_thunk___ZN11RustDerivedC1EOS_<'__unelided>(
__this: *mut ::core::ffi::c_void,
__this: *mut ::__rust_core::ffi::c_void,
__param_0: ::ctor::RvalueReference<'__unelided, crate::RustDerived>,
);
pub(crate) unsafe fn __rust_thunk___ZN11RustDerivedD1Ev<'a>(
__this: ::core::pin::Pin<&'a mut crate::RustDerived>,
__this: ::__rust_core::pin::Pin<&'a mut crate::RustDerived>,
);
pub(crate) unsafe fn __rust_thunk___ZN11RustDerivedaSEOS_<'__return_lifetime>(
__this: ::core::pin::Pin<&mut crate::RustDerived>,
__this: ::__rust_core::pin::Pin<&mut crate::RustDerived>,
__param_0: ::ctor::RvalueReference<'_, crate::RustDerived>,
) -> ::core::pin::Pin<&'__return_lifetime mut crate::RustDerived>;
) -> ::__rust_core::pin::Pin<&'__return_lifetime mut crate::RustDerived>;
pub(crate) unsafe fn __rust_thunk___ZN11RustDerivedC1EN10definition11RustDerivedE(
__this: *mut ::core::ffi::c_void,
__this: *mut ::__rust_core::ffi::c_void,
rust: &mut ::definition::RustDerived,
);
pub(crate) unsafe fn __rust_thunk___ZNK11RustDerived7Method1Ev(
Expand All @@ -212,9 +216,9 @@ mod detail {
}

const _: () = {
assert!(::core::mem::size_of::<crate::RustDerived>() == 24);
assert!(::core::mem::align_of::<crate::RustDerived>() == 8);
assert!(::__rust_core::mem::size_of::<crate::RustDerived>() == 24);
assert!(::__rust_core::mem::align_of::<crate::RustDerived>() == 8);
static_assertions::assert_impl_all!(crate::RustDerived: Drop);
static_assertions::assert_not_impl_any!(crate::RustDerived: Copy);
assert!(::core::mem::offset_of!(crate::RustDerived, rust_) == 8);
assert!(::__rust_core::mem::offset_of!(crate::RustDerived, rust_) == 8);
};
7 changes: 5 additions & 2 deletions rs_bindings_from_cc/bazel_support/generate_bindings.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,11 @@ def escape_cpp_target_name(package_name, crate_name):
string: escaped crate name
"""

# Crubit generates assertions with `::core`, which would resolve to current crate, if current
# crate (i.e., cc_library) is named 'core'.
# Crubit used to generate assertions with `::core`, which would resolve to current crate, if
# current crate (i.e., cc_library) is named 'core'. Crubit now uses `::__rust_core` to avoid
# this issue, but we still rename 'core' targets: if a cc_library named "core" is built,
# Bazel passes `--extern core=...` to dependent rustc invocations. This shadows the sysroot
# `core` crate entirely, overriding `::__rust_core` aliases (e.g. `cannot find 'mem' in '__rust_core'`).
if crate_name == "core":
_, _, last_path_component = package_name.rpartition("/")
crate_name = "core_" + last_path_component
Expand Down
29 changes: 15 additions & 14 deletions rs_bindings_from_cc/generate_bindings/database/code_snippet.rs
Original file line number Diff line number Diff line change
Expand Up @@ -619,9 +619,9 @@ pub fn generated_items_to_tokens<'db>(
let n = Literal::usize_unsuffixed(n);
// TODO(b/481405536): Do this unconditionally.
if *internally_mutable_unknown_fields {
quote! { __non_field_data: [::core::cell::Cell<::core::mem::MaybeUninit<u8>>; #n], }
quote! { __non_field_data: [::__rust_core::cell::Cell<::__rust_core::mem::MaybeUninit<u8>>; #n], }
} else {
quote! { __non_field_data: [::core::mem::MaybeUninit<u8>; #n], }
quote! { __non_field_data: [::__rust_core::mem::MaybeUninit<u8>; #n], }
}
});

Expand Down Expand Up @@ -672,7 +672,7 @@ pub fn generated_items_to_tokens<'db>(
__COMMENT__ "Generated due to CRUBIT_OWNED_POINTEE annotation."
#[doc = #doc_comment]
#[repr(transparent)]
pub struct #owned_type_name(::core::ptr::NonNull<#ident>);
pub struct #owned_type_name(::__rust_core::ptr::NonNull<#ident>);

impl Drop for #owned_type_name {
fn drop(&mut self) {
Expand All @@ -699,7 +699,7 @@ pub fn generated_items_to_tokens<'db>(
.iter()
.map(|lt| {
let field_name = format_ident!("__marker_{}", lt.ident);
quote! { #field_name: ::core::marker::PhantomData<& #lt ()> }
quote! { #field_name: ::__rust_core::marker::PhantomData<& #lt ()> }
})
.collect();

Expand Down Expand Up @@ -1061,13 +1061,13 @@ impl ToTokens for DisplayImpl {
fn to_tokens(&self, tokens: &mut TokenStream) {
let Self { type_name, fmt_fn_name } = self;
quote! {
impl ::core::fmt::Display for #type_name {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
impl ::__rust_core::fmt::Display for #type_name {
fn fmt(&self, f: &mut ::__rust_core::fmt::Formatter<'_>) -> ::__rust_core::fmt::Result {
let mut f = ::lossy_formatter::LossyFormatter::new(f);
if unsafe { crate::detail::#fmt_fn_name(self, &mut f) } {
::core::result::Result::Ok(())
::__rust_core::result::Result::Ok(())
} else {
::core::result::Result::Err(::core::fmt::Error)
::__rust_core::result::Result::Err(::__rust_core::fmt::Error)
}
}
}
Expand Down Expand Up @@ -1182,9 +1182,10 @@ impl ToTokens for BitPadding {
fn to_tokens(&self, tokens: &mut TokenStream) {
let n = Literal::usize_unsuffixed(self.padding_size_in_bytes());
if self.internally_mutable {
quote! { [::core::cell::Cell<::core::mem::MaybeUninit<u8>>; #n] }.to_tokens(tokens);
quote! { [::__rust_core::cell::Cell<::__rust_core::mem::MaybeUninit<u8>>; #n] }
.to_tokens(tokens);
} else {
quote! { [::core::mem::MaybeUninit<u8>; #n] }.to_tokens(tokens);
quote! { [::__rust_core::mem::MaybeUninit<u8>; #n] }.to_tokens(tokens);
}
}
}
Expand Down Expand Up @@ -1274,7 +1275,7 @@ impl ToTokens for FieldType {
FieldType::Erased(padding) => padding.to_tokens(tokens),
FieldType::Type { needs_manually_drop, ty } => {
if *needs_manually_drop {
quote! { ::core::mem::ManuallyDrop<#ty> }.to_tokens(tokens)
quote! { ::__rust_core::mem::ManuallyDrop<#ty> }.to_tokens(tokens)
} else {
ty.to_tokens(tokens)
}
Expand Down Expand Up @@ -1391,8 +1392,8 @@ impl ToTokens for Assertion {
let size = Literal::usize_unsuffixed(*size);
let alignment = Literal::usize_unsuffixed(*alignment);
quote! {
assert!(::core::mem::size_of::<#type_name>() == #size);
assert!(::core::mem::align_of::<#type_name>() == #alignment);
assert!(::__rust_core::mem::size_of::<#type_name>() == #size);
assert!(::__rust_core::mem::align_of::<#type_name>() == #alignment);
}
.to_tokens(tokens);
}
Expand Down Expand Up @@ -1420,7 +1421,7 @@ impl ToTokens for Assertion {
for (field_ident, expected_offset) in fields_and_expected_offsets {
let expected_offset = Literal::usize_unsuffixed(*expected_offset);
quote! {
assert!(::core::mem::offset_of!(#qualified_ident, #field_ident) == #expected_offset);
assert!(::__rust_core::mem::offset_of!(#qualified_ident, #field_ident) == #expected_offset);
}
.to_tokens(tokens);
}
Expand Down
Loading