@@ -31,8 +31,8 @@ use syntax::{SyntaxNodePtr, TextRange};
3131use triomphe:: Arc ;
3232
3333use crate :: {
34- CallableDefId , ClosureId , ComplexMemoryMap , Const , ConstData , ConstScalar , FnDefId , Interner ,
35- MemoryMap , Substitution , ToChalk , TraitEnvironment , Ty , TyBuilder , TyExt , TyKind ,
34+ AliasTy , CallableDefId , ClosureId , ComplexMemoryMap , Const , ConstData , ConstScalar , FnDefId ,
35+ Interner , MemoryMap , Substitution , ToChalk , TraitEnvironment , Ty , TyBuilder , TyExt , TyKind ,
3636 consteval:: { ConstEvalError , intern_const_scalar, try_const_usize} ,
3737 db:: { HirDatabase , InternedClosure } ,
3838 display:: { ClosureStyle , DisplayTarget , HirDisplay } ,
@@ -2195,7 +2195,7 @@ impl Evaluator<'_> {
21952195 }
21962196 }
21972197 }
2198- chalk_ir :: TyKind :: Array ( inner, len) => {
2198+ TyKind :: Array ( inner, len) => {
21992199 let len = match try_const_usize ( this. db , len) {
22002200 Some ( it) => it as usize ,
22012201 None => not_supported ! ( "non evaluatable array len in patching addresses" ) ,
@@ -2213,7 +2213,7 @@ impl Evaluator<'_> {
22132213 ) ?;
22142214 }
22152215 }
2216- chalk_ir :: TyKind :: Tuple ( _, subst) => {
2216+ TyKind :: Tuple ( _, subst) => {
22172217 let layout = this. layout ( ty) ?;
22182218 for ( id, ty) in subst. iter ( Interner ) . enumerate ( ) {
22192219 let ty = ty. assert_ty_ref ( Interner ) ; // Tuple only has type argument
@@ -2229,7 +2229,7 @@ impl Evaluator<'_> {
22292229 ) ?;
22302230 }
22312231 }
2232- chalk_ir :: TyKind :: Adt ( adt, subst) => match adt. 0 {
2232+ TyKind :: Adt ( adt, subst) => match adt. 0 {
22332233 AdtId :: StructId ( s) => {
22342234 let data = s. fields ( this. db ) ;
22352235 let layout = this. layout ( ty) ?;
@@ -2280,6 +2280,10 @@ impl Evaluator<'_> {
22802280 }
22812281 AdtId :: UnionId ( _) => ( ) ,
22822282 } ,
2283+ TyKind :: Alias ( AliasTy :: Projection ( proj) ) => {
2284+ let ty = this. db . normalize_projection ( proj. clone ( ) , this. trait_env . clone ( ) ) ;
2285+ rec ( this, bytes, & ty, locals, mm, stack_depth_limit - 1 ) ?;
2286+ }
22832287 _ => ( ) ,
22842288 }
22852289 Ok ( ( ) )
0 commit comments