aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/lower.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_ty/src/lower.rs')
-rw-r--r--crates/ra_hir_ty/src/lower.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/crates/ra_hir_ty/src/lower.rs b/crates/ra_hir_ty/src/lower.rs
index dfc018b0b..a05cbd7fc 100644
--- a/crates/ra_hir_ty/src/lower.rs
+++ b/crates/ra_hir_ty/src/lower.rs
@@ -21,8 +21,10 @@ use hir_def::{
21 HasModule, ImplId, LocalFieldId, Lookup, StaticId, StructId, TraitId, TypeAliasId, TypeParamId, 21 HasModule, ImplId, LocalFieldId, Lookup, StaticId, StructId, TraitId, TypeAliasId, TypeParamId,
22 UnionId, VariantId, 22 UnionId, VariantId,
23}; 23};
24use hir_expand::name::Name;
24use ra_arena::map::ArenaMap; 25use ra_arena::map::ArenaMap;
25use ra_db::CrateId; 26use ra_db::CrateId;
27use test_utils::mark;
26 28
27use crate::{ 29use crate::{
28 db::HirDatabase, 30 db::HirDatabase,
@@ -35,7 +37,6 @@ use crate::{
35 ProjectionPredicate, ProjectionTy, ReturnTypeImplTrait, ReturnTypeImplTraits, Substs, 37 ProjectionPredicate, ProjectionTy, ReturnTypeImplTrait, ReturnTypeImplTraits, Substs,
36 TraitEnvironment, TraitRef, Ty, TypeCtor, TypeWalk, 38 TraitEnvironment, TraitRef, Ty, TypeCtor, TypeWalk,
37}; 39};
38use hir_expand::name::Name;
39 40
40#[derive(Debug)] 41#[derive(Debug)]
41pub struct TyLoweringContext<'a> { 42pub struct TyLoweringContext<'a> {
@@ -220,10 +221,7 @@ impl Ty {
220 221
221 let func = match ctx.resolver.generic_def() { 222 let func = match ctx.resolver.generic_def() {
222 Some(GenericDefId::FunctionId(f)) => f, 223 Some(GenericDefId::FunctionId(f)) => f,
223 _ => { 224 _ => panic!("opaque impl trait lowering in non-function"),
224 // this shouldn't happen
225 return (Ty::Unknown, None);
226 }
227 }; 225 };
228 let impl_trait_id = OpaqueTyId::ReturnTypeImplTrait(func, idx); 226 let impl_trait_id = OpaqueTyId::ReturnTypeImplTrait(func, idx);
229 let generics = generics(ctx.db.upcast(), func.into()); 227 let generics = generics(ctx.db.upcast(), func.into());
@@ -719,6 +717,7 @@ fn assoc_type_bindings_from_type_bound<'a>(
719 717
720impl ReturnTypeImplTrait { 718impl ReturnTypeImplTrait {
721 fn from_hir(ctx: &TyLoweringContext, bounds: &[TypeBound]) -> Self { 719 fn from_hir(ctx: &TyLoweringContext, bounds: &[TypeBound]) -> Self {
720 mark::hit!(lower_rpit);
722 let self_ty = Ty::Bound(BoundVar::new(DebruijnIndex::INNERMOST, 0)); 721 let self_ty = Ty::Bound(BoundVar::new(DebruijnIndex::INNERMOST, 0));
723 let predicates = ctx.with_shifted_in(DebruijnIndex::ONE, |ctx| { 722 let predicates = ctx.with_shifted_in(DebruijnIndex::ONE, |ctx| {
724 bounds 723 bounds