}
pub mod iter {
- pub use self::traits::iterator::Iterator;
- mod traits { mod iterator {
- use crate::option::Option;
- pub trait Iterator {
- type Item;
- fn next(&mut self) -> Option<Self::Item>;
+ pub use self::traits::{collect::IntoIterator, iterator::Iterator};
+ mod traits {
+ mod iterator {
+ use crate::option::Option;
+ pub trait Iterator {
+ type Item;
+ fn next(&mut self) -> Option<Self::Item>;
+ }
+ }
+ mod collect {
+ pub trait IntoIterator {
+ type Item;
+ }
}
- } }
+ }
pub use self::sources::*;
mod sources {
}
pub mod prelude {
- pub use crate::{convert::From, iter::Iterator, option::Option::{self, *}};
+ pub use crate::{convert::From, iter::{IntoIterator, Iterator}, option::Option::{self, *}};
}
#[prelude_import]
pub use prelude::*;
}
fn check_with_config(config: InlayHintsConfig, ra_fixture: &str) {
- let (analysis, file_id) = fixture::file(ra_fixture);
+ let ra_fixture = format!("{}\n{}", ra_fixture, FamousDefs::FIXTURE);
+ let (analysis, file_id) = fixture::file(&ra_fixture);
let expected = extract_annotations(&*analysis.file_text(file_id).unwrap());
let inlay_hints = analysis.inlay_hints(file_id, &config).unwrap();
let actual =
println!("Unit expr");
}
-//- /core.rs crate:core
-#[prelude_import] use iter::*;
-mod iter {
- trait IntoIterator {
- type Item;
- }
-}
//- /alloc.rs crate:alloc deps:core
mod collections {
struct Vec<T> {}
//^ &str
}
}
-
-//- /core.rs crate:core
-#[prelude_import] use iter::*;
-mod iter {
- trait IntoIterator {
- type Item;
- }
-}
//- /alloc.rs crate:alloc deps:core
mod collections {
struct Vec<T> {}
chaining_hints: true,
max_length: None,
},
- &format!(
- "{}\n{}\n",
- r#"
+ r#"
//- /main.rs crate:main deps:std
-use std::{Option::{self, Some, None}, iter};
+use std::iter;
struct MyIter;
-impl iter::Iterator for MyIter {
+impl Iterator for MyIter {
type Item = ();
fn next(&mut self) -> Option<Self::Item> {
None
//- /std.rs crate:std deps:core
use core::*;
"#,
- FamousDefs::FIXTURE
- ),
);
}
}