From f96c1a0414ee302fe96503d89f2998483345c8a9 Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Tue, 1 Jun 2021 13:39:19 +0200 Subject: Implement per-edition preludes --- crates/hir_ty/src/tests/traits.rs | 48 ++++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 16 deletions(-) (limited to 'crates/hir_ty/src/tests/traits.rs') diff --git a/crates/hir_ty/src/tests/traits.rs b/crates/hir_ty/src/tests/traits.rs index 49add4ab9..588f0d1d4 100644 --- a/crates/hir_ty/src/tests/traits.rs +++ b/crates/hir_ty/src/tests/traits.rs @@ -20,11 +20,12 @@ fn test() { } //^ u64 //- /core.rs crate:core -#[prelude_import] use future::*; -mod future { - #[lang = "future_trait"] - trait Future { - type Output; +pub mod prelude { + pub mod rust_2018 { + #[lang = "future_trait"] + pub trait Future { + type Output; + } } } "#, @@ -136,17 +137,15 @@ fn test() { } //^ i32 //- /core.rs crate:core -#[prelude_import] use ops::*; -mod ops { - trait Try { +pub mod ops { + pub trait Try { type Ok; type Error; } } -#[prelude_import] use result::*; -mod result { - enum Result { +pub mod result { + pub enum Result { Ok(O), Err(E) } @@ -156,6 +155,12 @@ mod result { type Error = E; } } + +pub mod prelude { + pub mod rust_2018 { + pub use crate::{result::*, ops::*}; + } +} "#, ); } @@ -190,8 +195,7 @@ mov convert { impl From for T {} } -#[prelude_import] use result::*; -mod result { +pub mod result { use crate::convert::From; use crate::ops::{Try, FromResidual}; @@ -208,6 +212,12 @@ mod result { impl> FromResidual> for Result {} } + +pub mod prelude { + pub mod rust_2018 { + pub use crate::result::*; + } +} "#, ); } @@ -217,6 +227,7 @@ fn infer_for_loop() { check_types( r#" //- /main.rs crate:main deps:core,alloc +#![no_std] use alloc::collections::Vec; fn test() { @@ -228,14 +239,19 @@ fn test() { } //- /core.rs crate:core -#[prelude_import] use iter::*; -mod iter { - trait IntoIterator { +pub mod iter { + pub trait IntoIterator { type Item; } } +pub mod prelude { + pub mod rust_2018 { + pub use crate::iter::*; + } +} //- /alloc.rs crate:alloc deps:core +#![no_std] mod collections { struct Vec {} impl Vec { -- cgit v1.2.3