blob: 5bb15357acc6d4ae3821b2bd0407ba9f6b379a75 [file] [log] [blame]
David Tolnay3abed472020-12-31 23:34:53 -08001use crate::syntax::{NamedType, Pair, Types};
2use proc_macro2::Ident;
3
4impl<'a> Types<'a> {
5 pub fn resolve(&self, ident: &impl UnresolvedName) -> &Pair {
6 self.resolutions
7 .get(ident.ident())
8 .expect("Unable to resolve type")
9 }
10}
11
12pub trait UnresolvedName {
13 fn ident(&self) -> &Ident;
14}
15
16impl UnresolvedName for Ident {
17 fn ident(&self) -> &Ident {
18 self
19 }
20}
21
22impl UnresolvedName for NamedType {
23 fn ident(&self) -> &Ident {
24 &self.rust
25 }
26}