From 688a45e00b53412a7a16360c6d678a5d91a95789 Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sat, 12 Jan 2019 21:27:35 +0100 Subject: Implement beginnings of generics - add HIR for generic params - resolve generic params in type paths - add substitions for ADTs - insert type variables for substitutions --- crates/ra_hir/src/code_model_api.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'crates/ra_hir/src/code_model_api.rs') diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs index 11e919c1a..6c85e5939 100644 --- a/crates/ra_hir/src/code_model_api.rs +++ b/crates/ra_hir/src/code_model_api.rs @@ -12,6 +12,7 @@ use crate::{ expr::BodySyntaxMapping, ty::InferenceResult, adt::VariantData, + generics::Generics, code_model_impl::def_id_to_ast, }; @@ -201,6 +202,10 @@ impl Struct { pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc) { def_id_to_ast(db, self.def_id) } + + pub fn generics(&self, db: &impl HirDatabase) -> Arc { + db.generics(self.def_id) + } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] @@ -228,6 +233,10 @@ impl Enum { pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc) { def_id_to_ast(db, self.def_id) } + + pub fn generics(&self, db: &impl HirDatabase) -> Arc { + db.generics(self.def_id) + } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] @@ -339,6 +348,10 @@ impl Function { pub fn infer(&self, db: &impl HirDatabase) -> Arc { db.infer(self.def_id) } + + pub fn generics(&self, db: &impl HirDatabase) -> Arc { + db.generics(self.def_id) + } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] @@ -384,6 +397,10 @@ impl Trait { pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc) { def_id_to_ast(db, self.def_id) } + + pub fn generics(&self, db: &impl HirDatabase) -> Arc { + db.generics(self.def_id) + } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] @@ -399,4 +416,8 @@ impl Type { pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc) { def_id_to_ast(db, self.def_id) } + + pub fn generics(&self, db: &impl HirDatabase) -> Arc { + db.generics(self.def_id) + } } -- cgit v1.2.3