mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-30 22:01:37 +00:00
Add tests for resolving types in core and std preludes
This commit is contained in:
parent
799903ba16
commit
8baa05666c
2 changed files with 93 additions and 0 deletions
|
@ -463,6 +463,37 @@ fn values_dont_shadow_extern_crates() {
|
||||||
"###);
|
"###);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn std_prelude_takes_precedence_above_core_prelude() {
|
||||||
|
let map = def_map(
|
||||||
|
r#"
|
||||||
|
//- /main.rs crate:main deps:core,std
|
||||||
|
use {Foo, Bar};
|
||||||
|
|
||||||
|
//- /std.rs crate:std deps:core
|
||||||
|
#[prelude_import]
|
||||||
|
pub use self::prelude::*;
|
||||||
|
mod prelude {
|
||||||
|
pub struct Foo;
|
||||||
|
pub use core::prelude::Bar;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- /core.rs crate:core
|
||||||
|
#[prelude_import]
|
||||||
|
pub use self::prelude::*;
|
||||||
|
mod prelude {
|
||||||
|
pub struct Bar;
|
||||||
|
}
|
||||||
|
"#,
|
||||||
|
);
|
||||||
|
|
||||||
|
assert_snapshot!(map, @r###"
|
||||||
|
⋮crate
|
||||||
|
⋮Bar: t v
|
||||||
|
⋮Foo: t v
|
||||||
|
"###);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn cfg_not_test() {
|
fn cfg_not_test() {
|
||||||
let map = def_map(
|
let map = def_map(
|
||||||
|
|
|
@ -597,6 +597,68 @@ mod tests {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn completes_std_prelude_if_core_is_defined() {
|
||||||
|
assert_debug_snapshot!(
|
||||||
|
do_reference_completion(
|
||||||
|
"
|
||||||
|
//- /main.rs
|
||||||
|
fn foo() { let x: <|> }
|
||||||
|
|
||||||
|
//- /core/lib.rs
|
||||||
|
#[prelude_import]
|
||||||
|
use prelude::*;
|
||||||
|
|
||||||
|
mod prelude {
|
||||||
|
struct Option;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- /std/lib.rs
|
||||||
|
#[prelude_import]
|
||||||
|
use prelude::*;
|
||||||
|
|
||||||
|
mod prelude {
|
||||||
|
struct String;
|
||||||
|
}
|
||||||
|
"
|
||||||
|
),
|
||||||
|
@r###"
|
||||||
|
[
|
||||||
|
CompletionItem {
|
||||||
|
label: "String",
|
||||||
|
source_range: [18; 18),
|
||||||
|
delete: [18; 18),
|
||||||
|
insert: "String",
|
||||||
|
kind: Struct,
|
||||||
|
},
|
||||||
|
CompletionItem {
|
||||||
|
label: "core",
|
||||||
|
source_range: [18; 18),
|
||||||
|
delete: [18; 18),
|
||||||
|
insert: "core",
|
||||||
|
kind: Module,
|
||||||
|
},
|
||||||
|
CompletionItem {
|
||||||
|
label: "foo()",
|
||||||
|
source_range: [18; 18),
|
||||||
|
delete: [18; 18),
|
||||||
|
insert: "foo()$0",
|
||||||
|
kind: Function,
|
||||||
|
lookup: "foo",
|
||||||
|
detail: "fn foo()",
|
||||||
|
},
|
||||||
|
CompletionItem {
|
||||||
|
label: "std",
|
||||||
|
source_range: [18; 18),
|
||||||
|
delete: [18; 18),
|
||||||
|
insert: "std",
|
||||||
|
kind: Module,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
"###
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn completes_macros_as_value() {
|
fn completes_macros_as_value() {
|
||||||
assert_debug_snapshot!(
|
assert_debug_snapshot!(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue