Skip to content

Commit e18a4a1

Browse files
committed
Drop #[derive(Clone, Copy)] from NamedImplKey.
This commit seems desirable because: * Removing unused APIs seems desirable in general. * It enables a (potential, tentative) change of `NamedImplKey` fields where the mangled `T` is not necessary an `Ident`.
1 parent 8f4b7ad commit e18a4a1

File tree

5 files changed

+24
-25
lines changed

5 files changed

+24
-25
lines changed

gen/src/write.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1440,7 +1440,7 @@ fn write_generic_instantiations(out: &mut OutFile) {
14401440
out.begin_block(Block::ExternC);
14411441
for impl_key in out.types.impls.keys() {
14421442
out.next_section();
1443-
match *impl_key {
1443+
match impl_key {
14441444
ImplKey::RustBox(ident) => write_rust_box_extern(out, ident),
14451445
ImplKey::RustVec(ident) => write_rust_vec_extern(out, ident),
14461446
ImplKey::UniquePtr(ident) => write_unique_ptr(out, ident),
@@ -1454,7 +1454,7 @@ fn write_generic_instantiations(out: &mut OutFile) {
14541454
out.begin_block(Block::Namespace("rust"));
14551455
out.begin_block(Block::InlineNamespace("cxxbridge1"));
14561456
for impl_key in out.types.impls.keys() {
1457-
match *impl_key {
1457+
match impl_key {
14581458
ImplKey::RustBox(ident) => write_rust_box_impl(out, ident),
14591459
ImplKey::RustVec(ident) => write_rust_vec_impl(out, ident),
14601460
_ => {}
@@ -1464,8 +1464,8 @@ fn write_generic_instantiations(out: &mut OutFile) {
14641464
out.end_block(Block::Namespace("rust"));
14651465
}
14661466

1467-
fn write_rust_box_extern(out: &mut OutFile, key: NamedImplKey) {
1468-
let resolve = out.types.resolve(&key);
1467+
fn write_rust_box_extern(out: &mut OutFile, key: &NamedImplKey) {
1468+
let resolve = out.types.resolve(key);
14691469
let inner = resolve.name.to_fully_qualified();
14701470
let instance = resolve.name.to_symbol();
14711471

@@ -1486,7 +1486,7 @@ fn write_rust_box_extern(out: &mut OutFile, key: NamedImplKey) {
14861486
);
14871487
}
14881488

1489-
fn write_rust_vec_extern(out: &mut OutFile, key: NamedImplKey) {
1489+
fn write_rust_vec_extern(out: &mut OutFile, key: &NamedImplKey) {
14901490
let element = key.rust;
14911491
let inner = element.to_typename(out.types);
14921492
let instance = element.to_mangled(out.types);
@@ -1535,8 +1535,8 @@ fn write_rust_vec_extern(out: &mut OutFile, key: NamedImplKey) {
15351535
);
15361536
}
15371537

1538-
fn write_rust_box_impl(out: &mut OutFile, key: NamedImplKey) {
1539-
let resolve = out.types.resolve(&key);
1538+
fn write_rust_box_impl(out: &mut OutFile, key: &NamedImplKey) {
1539+
let resolve = out.types.resolve(key);
15401540
let inner = resolve.name.to_fully_qualified();
15411541
let instance = resolve.name.to_symbol();
15421542

@@ -1567,7 +1567,7 @@ fn write_rust_box_impl(out: &mut OutFile, key: NamedImplKey) {
15671567
writeln!(out, "}}");
15681568
}
15691569

1570-
fn write_rust_vec_impl(out: &mut OutFile, key: NamedImplKey) {
1570+
fn write_rust_vec_impl(out: &mut OutFile, key: &NamedImplKey) {
15711571
let element = key.rust;
15721572
let inner = element.to_typename(out.types);
15731573
let instance = element.to_mangled(out.types);
@@ -1655,7 +1655,7 @@ fn write_rust_vec_impl(out: &mut OutFile, key: NamedImplKey) {
16551655
writeln!(out, "}}");
16561656
}
16571657

1658-
fn write_unique_ptr(out: &mut OutFile, key: NamedImplKey) {
1658+
fn write_unique_ptr(out: &mut OutFile, key: &NamedImplKey) {
16591659
let ty = UniquePtr::Ident(key.rust);
16601660
write_unique_ptr_common(out, ty);
16611661
}
@@ -1779,7 +1779,7 @@ fn write_unique_ptr_common(out: &mut OutFile, ty: UniquePtr) {
17791779
writeln!(out, "}}");
17801780
}
17811781

1782-
fn write_shared_ptr(out: &mut OutFile, key: NamedImplKey) {
1782+
fn write_shared_ptr(out: &mut OutFile, key: &NamedImplKey) {
17831783
let ident = key.rust;
17841784
let resolve = out.types.resolve(ident);
17851785
let inner = resolve.name.to_fully_qualified();
@@ -1860,8 +1860,8 @@ fn write_shared_ptr(out: &mut OutFile, key: NamedImplKey) {
18601860
writeln!(out, "}}");
18611861
}
18621862

1863-
fn write_weak_ptr(out: &mut OutFile, key: NamedImplKey) {
1864-
let resolve = out.types.resolve(&key);
1863+
fn write_weak_ptr(out: &mut OutFile, key: &NamedImplKey) {
1864+
let resolve = out.types.resolve(key);
18651865
let inner = resolve.name.to_fully_qualified();
18661866
let instance = resolve.name.to_symbol();
18671867

@@ -1929,7 +1929,7 @@ fn write_weak_ptr(out: &mut OutFile, key: NamedImplKey) {
19291929
writeln!(out, "}}");
19301930
}
19311931

1932-
fn write_cxx_vector(out: &mut OutFile, key: NamedImplKey) {
1932+
fn write_cxx_vector(out: &mut OutFile, key: &NamedImplKey) {
19331933
let element = key.rust;
19341934
let inner = element.to_typename(out.types);
19351935
let instance = element.to_mangled(out.types);

macro/src/expand.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ fn expand(ffi: Module, doc: Doc, attrs: OtherAttrs, apis: &[Api], types: &Types)
9292
}
9393

9494
for (impl_key, &explicit_impl) in &types.impls {
95-
match *impl_key {
95+
match impl_key {
9696
ImplKey::RustBox(ident) => {
9797
hidden.extend(expand_rust_box(ident, types, explicit_impl));
9898
}
@@ -1296,7 +1296,7 @@ fn type_id(name: &Pair) -> TokenStream {
12961296
crate::type_id::expand(Crate::Cxx, qualified)
12971297
}
12981298

1299-
fn expand_rust_box(key: NamedImplKey, types: &Types, explicit_impl: Option<&Impl>) -> TokenStream {
1299+
fn expand_rust_box(key: &NamedImplKey, types: &Types, explicit_impl: Option<&Impl>) -> TokenStream {
13001300
let ident = key.rust;
13011301
let resolve = types.resolve(ident);
13021302
let link_prefix = format!("cxxbridge1$box${}$", resolve.name.to_symbol());
@@ -1345,7 +1345,7 @@ fn expand_rust_box(key: NamedImplKey, types: &Types, explicit_impl: Option<&Impl
13451345
}
13461346
}
13471347

1348-
fn expand_rust_vec(key: NamedImplKey, types: &Types, explicit_impl: Option<&Impl>) -> TokenStream {
1348+
fn expand_rust_vec(key: &NamedImplKey, types: &Types, explicit_impl: Option<&Impl>) -> TokenStream {
13491349
let elem = key.rust;
13501350
let resolve = types.resolve(elem);
13511351
let link_prefix = format!("cxxbridge1$rust_vec${}$", resolve.name.to_symbol());
@@ -1443,7 +1443,7 @@ fn expand_rust_vec(key: NamedImplKey, types: &Types, explicit_impl: Option<&Impl
14431443
}
14441444

14451445
fn expand_unique_ptr(
1446-
key: NamedImplKey,
1446+
key: &NamedImplKey,
14471447
types: &Types,
14481448
explicit_impl: Option<&Impl>,
14491449
) -> TokenStream {
@@ -1555,7 +1555,7 @@ fn expand_unique_ptr(
15551555
}
15561556

15571557
fn expand_shared_ptr(
1558-
key: NamedImplKey,
1558+
key: &NamedImplKey,
15591559
types: &Types,
15601560
explicit_impl: Option<&Impl>,
15611561
) -> TokenStream {
@@ -1637,7 +1637,7 @@ fn expand_shared_ptr(
16371637
}
16381638
}
16391639

1640-
fn expand_weak_ptr(key: NamedImplKey, types: &Types, explicit_impl: Option<&Impl>) -> TokenStream {
1640+
fn expand_weak_ptr(key: &NamedImplKey, types: &Types, explicit_impl: Option<&Impl>) -> TokenStream {
16411641
let ident = key.rust;
16421642
let name = ident.to_string();
16431643
let resolve = types.resolve(ident);
@@ -1710,7 +1710,7 @@ fn expand_weak_ptr(key: NamedImplKey, types: &Types, explicit_impl: Option<&Impl
17101710
}
17111711

17121712
fn expand_cxx_vector(
1713-
key: NamedImplKey,
1713+
key: &NamedImplKey,
17141714
explicit_impl: Option<&Impl>,
17151715
types: &Types,
17161716
) -> TokenStream {

macro/src/generics.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ pub(crate) struct ImplGenerics<'a> {
1111
}
1212

1313
pub(crate) struct TyGenerics<'a> {
14-
key: NamedImplKey<'a>,
14+
key: &'a NamedImplKey<'a>,
1515
explicit_impl: Option<&'a Impl>,
1616
resolve: Resolution<'a>,
1717
}
1818

1919
pub(crate) fn split_for_impl<'a>(
20-
key: NamedImplKey<'a>,
20+
key: &'a NamedImplKey<'a>,
2121
explicit_impl: Option<&'a Impl>,
2222
resolve: Resolution<'a>,
2323
) -> (ImplGenerics<'a>, TyGenerics<'a>) {

syntax/instantiate.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use proc_macro2::{Ident, Span};
33
use std::hash::{Hash, Hasher};
44
use syn::Token;
55

6-
#[derive(Copy, Clone, PartialEq, Eq, Hash)]
6+
#[derive(PartialEq, Eq, Hash)]
77
pub(crate) enum ImplKey<'a> {
88
RustBox(NamedImplKey<'a>),
99
RustVec(NamedImplKey<'a>),
@@ -13,7 +13,6 @@ pub(crate) enum ImplKey<'a> {
1313
CxxVector(NamedImplKey<'a>),
1414
}
1515

16-
#[derive(Copy, Clone)]
1716
pub(crate) struct NamedImplKey<'a> {
1817
#[allow(dead_code)] // only used by cxxbridge-macro, not cxx-build
1918
pub begin_span: Span,

syntax/types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ impl<'a> Types<'a> {
174174
let Some(impl_key) = ty.impl_key() else {
175175
continue;
176176
};
177-
let implicit_impl = match impl_key {
177+
let implicit_impl = match &impl_key {
178178
ImplKey::RustBox(ident)
179179
| ImplKey::RustVec(ident)
180180
| ImplKey::UniquePtr(ident)

0 commit comments

Comments
 (0)