Record lifetimes associated with generic type instantiation
diff --git a/syntax/resolve.rs b/syntax/resolve.rs
index 5bb1535..08fcf16 100644
--- a/syntax/resolve.rs
+++ b/syntax/resolve.rs
@@ -1,9 +1,16 @@
-use crate::syntax::{NamedType, Pair, Types};
+use crate::syntax::{Lifetimes, NamedType, Pair, Types};
use proc_macro2::Ident;
+#[derive(Copy, Clone)]
+pub struct Resolution<'a> {
+ pub name: &'a Pair,
+ pub generics: &'a Lifetimes,
+}
+
impl<'a> Types<'a> {
- pub fn resolve(&self, ident: &impl UnresolvedName) -> &Pair {
- self.resolutions
+ pub fn resolve(&self, ident: &impl UnresolvedName) -> Resolution<'a> {
+ *self
+ .resolutions
.get(ident.ident())
.expect("Unable to resolve type")
}