diff options
author | David Tolnay <dtolnay@gmail.com> | 2021-03-27 00:19:13 -0400 |
---|---|---|
committer | David Tolnay <dtolnay@gmail.com> | 2021-03-27 01:23:04 -0400 |
commit | fedc63bfb734b533f50849fb13c821cbc9fc35bb (patch) | |
tree | 93c9efdc995d932a2f3a7e44628aaab9febac1d5 | |
parent | dde630235b22e47936d34b88fa2c9d1a9a64407a (diff) | |
download | cxx-fedc63bfb734b533f50849fb13c821cbc9fc35bb.tar.gz |
Simplify type resolution of named impl keys
-rw-r--r-- | gen/src/write.rs | 9 | ||||
-rw-r--r-- | syntax/resolve.rs | 7 |
2 files changed, 10 insertions, 6 deletions
diff --git a/gen/src/write.rs b/gen/src/write.rs index 406018af..9f9c0391 100644 --- a/gen/src/write.rs +++ b/gen/src/write.rs @@ -1374,8 +1374,7 @@ fn write_generic_instantiations(out: &mut OutFile) { } fn write_rust_box_extern(out: &mut OutFile, key: NamedImplKey) { - let ident = key.rust; - let resolve = out.types.resolve(ident); + let resolve = out.types.resolve(&key); let inner = resolve.name.to_fully_qualified(); let instance = resolve.name.to_symbol(); @@ -1441,8 +1440,7 @@ fn write_rust_vec_extern(out: &mut OutFile, key: NamedImplKey) { } fn write_rust_box_impl(out: &mut OutFile, key: NamedImplKey) { - let ident = key.rust; - let resolve = out.types.resolve(ident); + let resolve = out.types.resolve(&key); let inner = resolve.name.to_fully_qualified(); let instance = resolve.name.to_symbol(); @@ -1741,8 +1739,7 @@ fn write_shared_ptr(out: &mut OutFile, key: NamedImplKey) { } fn write_weak_ptr(out: &mut OutFile, key: NamedImplKey) { - let ident = key.rust; - let resolve = out.types.resolve(ident); + let resolve = out.types.resolve(&key); let inner = resolve.name.to_fully_qualified(); let instance = resolve.name.to_symbol(); diff --git a/syntax/resolve.rs b/syntax/resolve.rs index 08fcf165..821f5427 100644 --- a/syntax/resolve.rs +++ b/syntax/resolve.rs @@ -1,3 +1,4 @@ +use crate::syntax::instantiate::NamedImplKey; use crate::syntax::{Lifetimes, NamedType, Pair, Types}; use proc_macro2::Ident; @@ -31,3 +32,9 @@ impl UnresolvedName for NamedType { &self.rust } } + +impl<'a> UnresolvedName for NamedImplKey<'a> { + fn ident(&self) -> &Ident { + self.rust + } +} |