@@ -4,12 +4,12 @@ use smol_str::SmolStr;
44
55use crate :: {
66 InFiled , InferFailReason , InferGuardRef , LuaInferCache , LuaInstanceType , LuaMemberId ,
7- LuaMemberOwner , LuaOperatorOwner , TypeOps , TypeSubstitutor , check_type_compact ,
7+ LuaMemberOwner , LuaOperatorOwner , TypeOps , TypeSubstitutor ,
88 db_index:: {
99 DbIndex , LuaGenericType , LuaIntersectionType , LuaMemberKey , LuaObjectType ,
1010 LuaOperatorMetaMethod , LuaTupleType , LuaType , LuaTypeDeclId , LuaUnionType ,
1111 } ,
12- infer_expr, instantiate_type_generic,
12+ infer_expr, instantiate_type_generic, is_assignable ,
1313 semantic:: InferGuard ,
1414} ;
1515
@@ -316,7 +316,7 @@ fn find_index_metamethod(
316316 LuaIndexKey :: Expr ( expr) => infer_expr ( db, cache, expr. clone ( ) ) ?,
317317 } ;
318318
319- if check_type_compact ( db, key_type , & access_key_type) . is_ok ( ) {
319+ if is_assignable ( db, & access_key_type, key_type ) {
320320 return Ok ( value_type. clone ( ) ) ;
321321 }
322322
@@ -548,7 +548,7 @@ fn find_member_by_index_table(
548548 LuaMemberKey :: Integer ( i) => LuaType :: IntegerConst ( * i) ,
549549 _ => continue ,
550550 } ;
551- if check_type_compact ( db, & key_type , & member_key_type ) . is_ok ( ) {
551+ if is_assignable ( db, & member_key_type , & key_type ) {
552552 let member_type = db
553553 . get_type_index ( )
554554 . get_type_cache ( & member. get_id ( ) . into ( ) )
@@ -663,7 +663,7 @@ fn infer_member_by_index_array(
663663 } else if member_key. is_expr ( ) {
664664 let expr = member_key. get_expr ( ) . ok_or ( InferFailReason :: None ) ?;
665665 let expr_type = infer_expr ( db, cache, expr. clone ( ) ) ?;
666- if check_type_compact ( db, & LuaType :: Number , & expr_type ) . is_ok ( ) {
666+ if is_assignable ( db, & expr_type , & LuaType :: Number ) {
667667 return Ok ( base. clone ( ) ) ;
668668 }
669669 }
@@ -683,7 +683,7 @@ fn infer_member_by_index_object(
683683 let expr = member_key. get_expr ( ) . ok_or ( InferFailReason :: None ) ?;
684684 let expr_type = infer_expr ( db, cache, expr. clone ( ) ) ?;
685685 for ( key, field) in access_member_type {
686- if check_type_compact ( db, key , & expr_type) . is_ok ( ) {
686+ if is_assignable ( db, & expr_type, key ) {
687687 return Ok ( field. clone ( ) ) ;
688688 }
689689 }
0 commit comments