File tree 5 files changed +100
-28
lines changed
5 files changed +100
-28
lines changed Original file line number Diff line number Diff line change @@ -17,9 +17,9 @@ ena = "0.14.0"
17
17
log = " 0.4.8"
18
18
rustc-hash = " 1.1.0"
19
19
scoped-tls = " 1"
20
- chalk-solve = { version = " 0.56 " , default-features = false }
21
- chalk-ir = " 0.56 "
22
- chalk-recursive = " 0.56 "
20
+ chalk-solve = { version = " 0.58 " , default-features = false }
21
+ chalk-ir = " 0.58 "
22
+ chalk-recursive = " 0.58 "
23
23
la-arena = { version = " 0.2.0" , path = " ../../lib/arena" }
24
24
25
25
stdx = { path = " ../stdx" , version = " 0.0.0" }
Original file line number Diff line number Diff line change @@ -955,6 +955,51 @@ fn test() { foo.call(); }
955
955
) ;
956
956
}
957
957
958
+ #[ test]
959
+ fn super_trait_impl_return_trait_method_resolution ( ) {
960
+ check_infer (
961
+ r#"
962
+ trait Base {
963
+ fn foo(self) -> usize;
964
+ }
965
+
966
+ trait Super : Base {}
967
+
968
+ fn base1() -> impl Base { loop {} }
969
+ fn super1() -> impl Super { loop {} }
970
+
971
+ fn test(base2: impl Base, super2: impl Super) {
972
+ base1().foo();
973
+ super1().foo();
974
+ base2.foo();
975
+ super2.foo();
976
+ }
977
+ "# ,
978
+ expect ! [ [ r#"
979
+ 24..28 'self': Self
980
+ 90..101 '{ loop {} }': !
981
+ 92..99 'loop {}': !
982
+ 97..99 '{}': ()
983
+ 128..139 '{ loop {} }': !
984
+ 130..137 'loop {}': !
985
+ 135..137 '{}': ()
986
+ 149..154 'base2': impl Base
987
+ 167..173 'super2': impl Super
988
+ 187..264 '{ ...o(); }': ()
989
+ 193..198 'base1': fn base1() -> impl Base
990
+ 193..200 'base1()': impl Base
991
+ 193..206 'base1().foo()': usize
992
+ 212..218 'super1': fn super1() -> impl Super
993
+ 212..220 'super1()': impl Super
994
+ 212..226 'super1().foo()': usize
995
+ 232..237 'base2': impl Base
996
+ 232..243 'base2.foo()': usize
997
+ 249..255 'super2': impl Super
998
+ 249..261 'super2.foo()': usize
999
+ "# ] ] ,
1000
+ ) ;
1001
+ }
1002
+
958
1003
#[ test]
959
1004
fn method_resolution_non_parameter_type ( ) {
960
1005
check_types (
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ doctest = false
13
13
[dependencies ]
14
14
itertools = " 0.10.0"
15
15
rowan = " 0.12.2"
16
- rustc_lexer = { version = " 705 .0.0" , package = " rustc-ap-rustc_lexer" }
16
+ rustc_lexer = { version = " 707 .0.0" , package = " rustc-ap-rustc_lexer" }
17
17
rustc-hash = " 1.1.0"
18
18
arrayvec = " 0.5.1"
19
19
once_cell = " 1.3.1"
Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ flate2 = "1.0"
15
15
pico-args = " 0.4.0"
16
16
proc-macro2 = " 1.0.8"
17
17
quote = " 1.0.2"
18
- ungrammar = " 1.9 "
18
+ ungrammar = " =1.11 "
19
19
walkdir = " 2.3.1"
20
20
write-json = " 0.1.0"
21
21
xshell = " 0.1"
You can’t perform that action at this time.
0 commit comments