@@ -23,28 +23,9 @@ use stdx::always;
23
23
use syntax:: ast:: RangeOp ;
24
24
25
25
use crate :: {
26
- Adjust , Adjustment , AdtId , AutoBorrow , Binders , CallableDefId , CallableSig , DeclContext ,
27
- DeclOrigin , IncorrectGenericsLenKind , Interner , Rawness , Scalar , Substitution ,
28
- TraitEnvironment , TraitRef , Ty , TyBuilder , TyExt , TyKind ,
29
- autoderef:: { Autoderef , builtin_deref, deref_by_trait} ,
30
- consteval,
31
- generics:: generics,
32
- infer:: {
33
- BreakableKind ,
34
- coerce:: { CoerceMany , CoerceNever , CoercionCause } ,
35
- find_continuable,
36
- pat:: contains_explicit_ref_binding,
37
- } ,
38
- lang_items:: lang_items_for_bin_op,
39
- lower:: {
40
- LifetimeElisionKind , ParamLoweringMode , lower_to_chalk_mutability,
41
- path:: { GenericArgsLowerer , TypeLikeConst , substs_from_args_and_bindings} ,
42
- } ,
43
- mapping:: { ToChalk , from_chalk} ,
44
- method_resolution:: { self , VisibleFromModule } ,
45
- primitive:: { self , UintTy } ,
46
- static_lifetime, to_chalk_trait_id,
47
- traits:: FnTrait ,
26
+ autoderef:: { builtin_deref, deref_by_trait, Autoderef } , consteval, generics:: generics, infer:: {
27
+ coerce:: { CoerceMany , CoerceNever , CoercionCause } , find_continuable, pat:: contains_explicit_ref_binding, BreakableKind
28
+ } , lang_items:: lang_items_for_bin_op, lower:: { lower_to_chalk_mutability, path:: { substs_from_args_and_bindings, GenericArgsLowerer , TypeLikeConst } , ParamLoweringMode } , mapping:: { from_chalk, ToChalk } , method_resolution:: { self , VisibleFromModule } , next_solver:: mapping:: ChalkToNextSolver , primitive:: { self , UintTy } , static_lifetime, to_chalk_trait_id, traits:: FnTrait , Adjust , Adjustment , AdtId , AutoBorrow , Binders , CallableDefId , CallableSig , DeclContext , DeclOrigin , IncorrectGenericsLenKind , Interner , LifetimeElisionKind , Rawness , Scalar , Substitution , TraitEnvironment , TraitRef , Ty , TyBuilder , TyExt , TyKind
48
29
} ;
49
30
50
31
use super :: {
@@ -826,7 +807,7 @@ impl InferenceContext<'_> {
826
807
let index_ty = self . infer_expr ( * index, & Expectation :: none ( ) , ExprIsRead :: Yes ) ;
827
808
828
809
if let Some ( index_trait) = self . resolve_lang_trait ( LangItem :: Index ) {
829
- let canonicalized = self . canonicalize ( base_ty. clone ( ) ) ;
810
+ let canonicalized = ChalkToNextSolver :: from_nextsolver ( self . canonicalize ( base_ty. clone ( ) . to_nextsolver ( self . table . interner ) ) , self . table . interner ) ;
830
811
let receiver_adjustments = method_resolution:: resolve_indexing_op (
831
812
self . db ,
832
813
self . table . trait_env . clone ( ) ,
@@ -932,6 +913,7 @@ impl InferenceContext<'_> {
932
913
}
933
914
None => {
934
915
let expected_ty = expected. to_option ( & mut self . table ) ;
916
+ tracing:: debug!( ?expected_ty) ;
935
917
let opt_ty = match expected_ty. as_ref ( ) . map ( |it| it. kind ( Interner ) ) {
936
918
Some ( TyKind :: Scalar ( Scalar :: Int ( _) | Scalar :: Uint ( _) ) ) => expected_ty,
937
919
Some ( TyKind :: Scalar ( Scalar :: Char ) ) => {
@@ -1678,7 +1660,7 @@ impl InferenceContext<'_> {
1678
1660
None => {
1679
1661
// no field found, lets attempt to resolve it like a function so that IDE things
1680
1662
// work out while people are typing
1681
- let canonicalized_receiver = self . canonicalize ( receiver_ty. clone ( ) ) ;
1663
+ let canonicalized_receiver = self . canonicalize ( receiver_ty. clone ( ) . to_nextsolver ( self . table . interner ) ) ;
1682
1664
let resolved = method_resolution:: lookup_method (
1683
1665
self . db ,
1684
1666
& canonicalized_receiver,
@@ -1824,7 +1806,7 @@ impl InferenceContext<'_> {
1824
1806
expected : & Expectation ,
1825
1807
) -> Ty {
1826
1808
let receiver_ty = self . infer_expr_inner ( receiver, & Expectation :: none ( ) , ExprIsRead :: Yes ) ;
1827
- let canonicalized_receiver = self . canonicalize ( receiver_ty. clone ( ) ) ;
1809
+ let canonicalized_receiver = self . canonicalize ( receiver_ty. clone ( ) . to_nextsolver ( self . table . interner ) ) ;
1828
1810
1829
1811
let resolved = method_resolution:: lookup_method (
1830
1812
self . db ,
0 commit comments