@@ -947,28 +947,95 @@ fn main() {
947
947
) ;
948
948
check (
949
949
r#"
950
+ //- /main.rs crate:main deps:core
951
+ pub struct Vec<T> {}
952
+
953
+ impl<T> Vec<T> {
954
+ pub fn new() -> Self { Vec {} }
955
+ pub fn push(&mut self, t: T) {}
956
+ }
957
+
958
+ impl<T> IntoIterator for Vec<T> {
959
+ type Item=T;
960
+ }
961
+
950
962
fn main() {
951
- let data = &[1i32, 2, 3];
952
- //^^^^ &[i32; _]
953
- for i in
963
+ let mut data = Vec::new();
964
+ //^^^^^^^^ Vec<&str>
965
+ data.push("foo");
966
+ for i in
954
967
955
968
println!("Unit expr");
956
- }"# ,
969
+ }
970
+
971
+ //- /core.rs crate:core
972
+ #[prelude_import] use iter::*;
973
+ mod iter {
974
+ trait IntoIterator {
975
+ type Item;
976
+ }
977
+ }
978
+ //- /alloc.rs crate:alloc deps:core
979
+ mod collections {
980
+ struct Vec<T> {}
981
+ impl<T> Vec<T> {
982
+ fn new() -> Self { Vec {} }
983
+ fn push(&mut self, t: T) { }
984
+ }
985
+ impl<T> IntoIterator for Vec<T> {
986
+ type Item=T;
987
+ }
988
+ }
989
+ "# ,
957
990
) ;
958
991
}
959
992
960
993
#[ test]
961
994
fn complete_for_hint ( ) {
962
995
check (
963
996
r#"
997
+ //- /main.rs crate:main deps:core
998
+ pub struct Vec<T> {}
999
+
1000
+ impl<T> Vec<T> {
1001
+ pub fn new() -> Self { Vec {} }
1002
+ pub fn push(&mut self, t: T) {}
1003
+ }
1004
+
1005
+ impl<T> IntoIterator for Vec<T> {
1006
+ type Item=T;
1007
+ }
1008
+
964
1009
fn main() {
965
- let data = &[ 1, 2, 3 ];
966
- //^^^^ &[i32; _]
967
- for i in data.into_iter() {
968
- //^ &i32
969
- println!("{}", i);
1010
+ let mut data = Vec::new();
1011
+ //^^^^^^^^ Vec<&str>
1012
+ data.push("foo");
1013
+ for i in data {
1014
+ //^ &str
1015
+ let z = i;
1016
+ //^ &str
970
1017
}
971
- }"# ,
1018
+ }
1019
+
1020
+ //- /core.rs crate:core
1021
+ #[prelude_import] use iter::*;
1022
+ mod iter {
1023
+ trait IntoIterator {
1024
+ type Item;
1025
+ }
1026
+ }
1027
+ //- /alloc.rs crate:alloc deps:core
1028
+ mod collections {
1029
+ struct Vec<T> {}
1030
+ impl<T> Vec<T> {
1031
+ fn new() -> Self { Vec {} }
1032
+ fn push(&mut self, t: T) { }
1033
+ }
1034
+ impl<T> IntoIterator for Vec<T> {
1035
+ type Item=T;
1036
+ }
1037
+ }
1038
+ "# ,
972
1039
) ;
973
1040
}
974
1041
}
0 commit comments