]> git.lizzy.rs Git - rust.git/commitdiff
Introduce hir::Param
authorAleksey Kladov <aleksey.kladov@gmail.com>
Wed, 19 Aug 2020 14:04:11 +0000 (16:04 +0200)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Wed, 19 Aug 2020 14:04:18 +0000 (16:04 +0200)
We generally shouldn't expose TypeRef out of hir. So, let's just use a
placehoder here.

crates/hir/src/code_model.rs

index 3254f316b531e7bd4a8638a9eb99d8e053848a45..68ccedc60bf8104d74bbc9f3056e0bed4b4177fa 100644 (file)
@@ -673,8 +673,13 @@ pub fn self_param(self, db: &dyn HirDatabase) -> Option<SelfParam> {
         Some(SelfParam { func: self.id })
     }
 
-    pub fn params(self, db: &dyn HirDatabase) -> Vec<TypeRef> {
-        db.function_data(self.id).params.clone()
+    pub fn params(self, db: &dyn HirDatabase) -> Vec<Param> {
+        db.function_data(self.id)
+            .params
+            .iter()
+            .skip(if self.self_param(db).is_some() { 1 } else { 0 })
+            .map(|_| Param { _ty: () })
+            .collect()
     }
 
     pub fn is_unsafe(self, db: &dyn HirDatabase) -> bool {
@@ -707,6 +712,10 @@ pub struct SelfParam {
     func: FunctionId,
 }
 
+pub struct Param {
+    _ty: (),
+}
+
 impl SelfParam {
     pub fn access(self, db: &dyn HirDatabase) -> Access {
         let func_data = db.function_data(self.func);