Skip to content
Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ impl PublicPaths {
}

pub fn merge(&mut self, mut other: Self) {
if self.canonical_path < other.canonical_path {
if self.canonical_path > other.canonical_path {
std::mem::swap(&mut self.canonical_path, &mut other.canonical_path);
}
self.insert_aliases(other);
Expand Down
2 changes: 1 addition & 1 deletion cc_bindings_from_rs/generate_bindings/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -591,7 +591,7 @@ fn resolve_if_use(db: &BindingsGenerator<'_>, def_id: DefId) -> Option<DefId> {
fn symbol_unqualified_name(db: &BindingsGenerator<'_>, def_id: DefId) -> Option<UnqualifiedName> {
let tcx = db.tcx();
let item_name = db
.public_paths_by_def_id(def_id.krate)
.all_public_paths_by_def_id()
.get(&def_id)
.map(|path| path.canonical().name)
.or_else(|| tcx.opt_item_name(def_id))?;
Expand Down
2 changes: 2 additions & 0 deletions cc_bindings_from_rs/test/uses/trasitive_reexports/direct.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,5 @@ impl Direct {
Direct { value: train.value }
}
}

pub use transitive::TransitiveReexportAndDirectReexport;
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,7 @@ pub mod public {
pub value: i32,
}
}

pub struct TransitiveReexportAndDirectReexport {
pub value: i32,
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,5 @@ pub fn direct_to_transitive_private_type_alias(
pub fn direct_to_transitive_use_alias(direct: &direct::Direct) -> direct::TransitiveUseAlias {
direct::TransitiveUseAlias { value: direct.value }
}

pub type DirectReexportOfTransitive = direct::TransitiveReexportAndDirectReexport;
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#pragma clang diagnostic ignored "-Wreturn-type-c-linkage"
#pragma clang diagnostic ignored "-Wunused-private-field"
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#include "support/annotations_internal.h"
#include "support/internal/slot.h"

#include <utility>
Expand Down Expand Up @@ -46,6 +47,19 @@ ::direct::Transitive direct_to_transitive_use_alias(
::direct::Transitive direct_to_transittive_type_alias(
::direct::Direct const& direct);

} // namespace transitive_reexports

namespace transitive_reexports {

// Generated from:
// cc_bindings_from_rs/test/uses/trasitive_reexports/transitive.rs;l=24
using DirectReexportOfTransitive CRUBIT_INTERNAL_RUST_TYPE(
":: direct :: TransitiveReexportAndDirectReexport") =
::direct::TransitiveReexportAndDirectReexport;
} // namespace transitive_reexports

namespace transitive_reexports {

namespace __crubit_internal {
extern "C" void __crubit_thunk_direct_uto_utransitive(
::direct::Direct const&, ::direct::Transitive* __ret_ptr);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@

namespace {

static_assert(std::is_same_v<direct::TransitiveReexportAndDirectReexport,
transitive_reexports::DirectReexportOfTransitive>);

TEST(TransitiveReexportsTest, DirectToTransitive) {
static_assert(std::is_same_v<direct::Transitive, transitive::Transitive>);
direct::Transitive transitive = direct::Transitive::new_(1);
Expand Down
Loading