internal: cleanup tests

* ensure standard, non-indented style (should add this check to
  `fixture` some day)
* removed a couple of ignores
This commit is contained in:
Aleksey Kladov
2021-06-15 12:48:05 +03:00
parent 7786ab2d44
commit 1e100e8b3e
3 changed files with 600 additions and 613 deletions
+593 -608
View File
@@ -216,28 +216,28 @@ fn applicable_when_found_an_import_partial() {
cov_mark::check!(qualify_path_unqualified_name);
check_assist(
qualify_path,
r"
mod std {
pub mod fmt {
pub struct Formatter;
}
}
r#"
mod std {
pub mod fmt {
pub struct Formatter;
}
}
use std::fmt;
use std::fmt;
$0Formatter
",
r"
mod std {
pub mod fmt {
pub struct Formatter;
}
}
$0Formatter
"#,
r#"
mod std {
pub mod fmt {
pub struct Formatter;
}
}
use std::fmt;
use std::fmt;
fmt::Formatter
",
fmt::Formatter
"#,
);
}
@@ -245,20 +245,20 @@ pub mod fmt {
fn applicable_when_found_an_import() {
check_assist(
qualify_path,
r"
$0PubStruct
r#"
$0PubStruct
pub mod PubMod {
pub struct PubStruct;
}
",
r"
PubMod::PubStruct
pub mod PubMod {
pub struct PubStruct;
}
"#,
r#"
PubMod::PubStruct
pub mod PubMod {
pub struct PubStruct;
}
",
pub mod PubMod {
pub struct PubStruct;
}
"#,
);
}
@@ -266,26 +266,26 @@ pub mod PubMod {
fn applicable_in_macros() {
check_assist(
qualify_path,
r"
macro_rules! foo {
($i:ident) => { fn foo(a: $i) {} }
}
foo!(Pub$0Struct);
r#"
macro_rules! foo {
($i:ident) => { fn foo(a: $i) {} }
}
foo!(Pub$0Struct);
pub mod PubMod {
pub struct PubStruct;
}
",
r"
macro_rules! foo {
($i:ident) => { fn foo(a: $i) {} }
}
foo!(PubMod::PubStruct);
pub mod PubMod {
pub struct PubStruct;
}
"#,
r#"
macro_rules! foo {
($i:ident) => { fn foo(a: $i) {} }
}
foo!(PubMod::PubStruct);
pub mod PubMod {
pub struct PubStruct;
}
",
pub mod PubMod {
pub struct PubStruct;
}
"#,
);
}
@@ -293,32 +293,32 @@ pub mod PubMod {
fn applicable_when_found_multiple_imports() {
check_assist(
qualify_path,
r"
PubSt$0ruct
r#"
PubSt$0ruct
pub mod PubMod1 {
pub struct PubStruct;
}
pub mod PubMod2 {
pub struct PubStruct;
}
pub mod PubMod3 {
pub struct PubStruct;
}
",
r"
PubMod3::PubStruct
pub mod PubMod1 {
pub struct PubStruct;
}
pub mod PubMod2 {
pub struct PubStruct;
}
pub mod PubMod3 {
pub struct PubStruct;
}
"#,
r#"
PubMod3::PubStruct
pub mod PubMod1 {
pub struct PubStruct;
}
pub mod PubMod2 {
pub struct PubStruct;
}
pub mod PubMod3 {
pub struct PubStruct;
}
",
pub mod PubMod1 {
pub struct PubStruct;
}
pub mod PubMod2 {
pub struct PubStruct;
}
pub mod PubMod3 {
pub struct PubStruct;
}
"#,
);
}
@@ -326,15 +326,15 @@ pub mod PubMod3 {
fn not_applicable_for_already_imported_types() {
check_assist_not_applicable(
qualify_path,
r"
use PubMod::PubStruct;
r#"
use PubMod::PubStruct;
PubStruct$0
PubStruct$0
pub mod PubMod {
pub struct PubStruct;
}
",
pub mod PubMod {
pub struct PubStruct;
}
"#,
);
}
@@ -342,35 +342,32 @@ pub mod PubMod {
fn not_applicable_for_types_with_private_paths() {
check_assist_not_applicable(
qualify_path,
r"
PrivateStruct$0
r#"
PrivateStruct$0
pub mod PubMod {
struct PrivateStruct;
}
",
pub mod PubMod {
struct PrivateStruct;
}
"#,
);
}
#[test]
fn not_applicable_when_no_imports_found() {
check_assist_not_applicable(
qualify_path,
"
PubStruct$0",
);
check_assist_not_applicable(qualify_path, r#"PubStruct$0"#);
}
#[test]
fn not_applicable_in_import_statements() {
check_assist_not_applicable(
qualify_path,
r"
use PubStruct$0;
r#"
use PubStruct$0;
pub mod PubMod {
pub struct PubStruct;
}",
pub mod PubMod {
pub struct PubStruct;
}
"#,
);
}
@@ -378,20 +375,20 @@ pub mod PubMod {
fn qualify_function() {
check_assist(
qualify_path,
r"
test_function$0
r#"
test_function$0
pub mod PubMod {
pub fn test_function() {};
}
",
r"
PubMod::test_function
pub mod PubMod {
pub fn test_function() {};
}
"#,
r#"
PubMod::test_function
pub mod PubMod {
pub fn test_function() {};
}
",
pub mod PubMod {
pub fn test_function() {};
}
"#,
);
}
@@ -399,7 +396,7 @@ pub mod PubMod {
fn qualify_macro() {
check_assist(
qualify_path,
r"
r#"
//- /lib.rs crate:crate_with_macro
#[macro_export]
macro_rules! foo {
@@ -410,12 +407,12 @@ macro_rules! foo {
fn main() {
foo$0
}
",
r"
"#,
r#"
fn main() {
crate_with_macro::foo
}
",
"#,
);
}
@@ -423,13 +420,13 @@ fn main() {
fn qualify_path_target() {
check_assist_target(
qualify_path,
r"
struct AssistInfo {
group_label: Option<$0GroupLabel>,
}
r#"
struct AssistInfo {
group_label: Option<$0GroupLabel>,
}
mod m { pub struct GroupLabel; }
",
mod m { pub struct GroupLabel; }
"#,
"GroupLabel",
)
}
@@ -438,20 +435,20 @@ struct AssistInfo {
fn not_applicable_when_path_start_is_imported() {
check_assist_not_applicable(
qualify_path,
r"
pub mod mod1 {
pub mod mod2 {
pub mod mod3 {
pub struct TestStruct;
}
}
}
r#"
pub mod mod1 {
pub mod mod2 {
pub mod mod3 {
pub struct TestStruct;
}
}
}
use mod1::mod2;
fn main() {
mod2::mod3::TestStruct$0
}
",
use mod1::mod2;
fn main() {
mod2::mod3::TestStruct$0
}
"#,
);
}
@@ -459,16 +456,16 @@ fn main() {
fn not_applicable_for_imported_function() {
check_assist_not_applicable(
qualify_path,
r"
pub mod test_mod {
pub fn test_function() {}
}
r#"
pub mod test_mod {
pub fn test_function() {}
}
use test_mod::test_function;
fn main() {
test_function$0
}
",
use test_mod::test_function;
fn main() {
test_function$0
}
"#,
);
}
@@ -476,30 +473,30 @@ fn main() {
fn associated_struct_function() {
check_assist(
qualify_path,
r"
mod test_mod {
pub struct TestStruct {}
impl TestStruct {
pub fn test_function() {}
}
}
r#"
mod test_mod {
pub struct TestStruct {}
impl TestStruct {
pub fn test_function() {}
}
}
fn main() {
TestStruct::test_function$0
}
",
r"
mod test_mod {
pub struct TestStruct {}
impl TestStruct {
pub fn test_function() {}
}
}
fn main() {
TestStruct::test_function$0
}
"#,
r#"
mod test_mod {
pub struct TestStruct {}
impl TestStruct {
pub fn test_function() {}
}
}
fn main() {
test_mod::TestStruct::test_function
}
",
fn main() {
test_mod::TestStruct::test_function
}
"#,
);
}
@@ -508,62 +505,50 @@ fn associated_struct_const() {
cov_mark::check!(qualify_path_qualifier_start);
check_assist(
qualify_path,
r"
mod test_mod {
pub struct TestStruct {}
impl TestStruct {
const TEST_CONST: u8 = 42;
}
}
r#"
mod test_mod {
pub struct TestStruct {}
impl TestStruct {
const TEST_CONST: u8 = 42;
}
}
fn main() {
TestStruct::TEST_CONST$0
}
",
r"
mod test_mod {
pub struct TestStruct {}
impl TestStruct {
const TEST_CONST: u8 = 42;
}
}
fn main() {
TestStruct::TEST_CONST$0
}
"#,
r#"
mod test_mod {
pub struct TestStruct {}
impl TestStruct {
const TEST_CONST: u8 = 42;
}
}
fn main() {
test_mod::TestStruct::TEST_CONST
}
",
fn main() {
test_mod::TestStruct::TEST_CONST
}
"#,
);
}
#[test]
#[ignore = "FIXME: non-trait assoc items completion is unsupported yet, see FIXME in the import_assets.rs for more details"]
fn associated_struct_const_unqualified() {
check_assist(
// FIXME: non-trait assoc items completion is unsupported yet, see FIXME in the import_assets.rs for more details
check_assist_not_applicable(
qualify_path,
r"
mod test_mod {
pub struct TestStruct {}
impl TestStruct {
const TEST_CONST: u8 = 42;
}
}
r#"
mod test_mod {
pub struct TestStruct {}
impl TestStruct {
const TEST_CONST: u8 = 42;
}
}
fn main() {
TEST_CONST$0
}
",
r"
mod test_mod {
pub struct TestStruct {}
impl TestStruct {
const TEST_CONST: u8 = 42;
}
}
fn main() {
test_mod::TestStruct::TEST_CONST
}
",
fn main() {
TEST_CONST$0
}
"#,
);
}
@@ -571,36 +556,36 @@ fn main() {
fn associated_trait_function() {
check_assist(
qualify_path,
r"
mod test_mod {
pub trait TestTrait {
fn test_function();
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_function() {}
}
}
r#"
mod test_mod {
pub trait TestTrait {
fn test_function();
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_function() {}
}
}
fn main() {
test_mod::TestStruct::test_function$0
}
",
r"
mod test_mod {
pub trait TestTrait {
fn test_function();
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_function() {}
}
}
fn main() {
test_mod::TestStruct::test_function$0
}
"#,
r#"
mod test_mod {
pub trait TestTrait {
fn test_function();
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_function() {}
}
}
fn main() {
<test_mod::TestStruct as test_mod::TestTrait>::test_function
}
",
fn main() {
<test_mod::TestStruct as test_mod::TestTrait>::test_function
}
"#,
);
}
@@ -608,31 +593,31 @@ fn main() {
fn not_applicable_for_imported_trait_for_function() {
check_assist_not_applicable(
qualify_path,
r"
mod test_mod {
pub trait TestTrait {
fn test_function();
}
pub trait TestTrait2 {
fn test_function();
}
pub enum TestEnum {
One,
Two,
}
impl TestTrait2 for TestEnum {
fn test_function() {}
}
impl TestTrait for TestEnum {
fn test_function() {}
}
}
r#"
mod test_mod {
pub trait TestTrait {
fn test_function();
}
pub trait TestTrait2 {
fn test_function();
}
pub enum TestEnum {
One,
Two,
}
impl TestTrait2 for TestEnum {
fn test_function() {}
}
impl TestTrait for TestEnum {
fn test_function() {}
}
}
use test_mod::TestTrait2;
fn main() {
test_mod::TestEnum::test_function$0;
}
",
use test_mod::TestTrait2;
fn main() {
test_mod::TestEnum::test_function$0;
}
"#,
)
}
@@ -641,36 +626,36 @@ fn associated_trait_const() {
cov_mark::check!(qualify_path_trait_assoc_item);
check_assist(
qualify_path,
r"
mod test_mod {
pub trait TestTrait {
const TEST_CONST: u8;
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
const TEST_CONST: u8 = 42;
}
}
r#"
mod test_mod {
pub trait TestTrait {
const TEST_CONST: u8;
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
const TEST_CONST: u8 = 42;
}
}
fn main() {
test_mod::TestStruct::TEST_CONST$0
}
",
r"
mod test_mod {
pub trait TestTrait {
const TEST_CONST: u8;
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
const TEST_CONST: u8 = 42;
}
}
fn main() {
test_mod::TestStruct::TEST_CONST$0
}
"#,
r#"
mod test_mod {
pub trait TestTrait {
const TEST_CONST: u8;
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
const TEST_CONST: u8 = 42;
}
}
fn main() {
<test_mod::TestStruct as test_mod::TestTrait>::TEST_CONST
}
",
fn main() {
<test_mod::TestStruct as test_mod::TestTrait>::TEST_CONST
}
"#,
);
}
@@ -678,31 +663,31 @@ fn main() {
fn not_applicable_for_imported_trait_for_const() {
check_assist_not_applicable(
qualify_path,
r"
mod test_mod {
pub trait TestTrait {
const TEST_CONST: u8;
}
pub trait TestTrait2 {
const TEST_CONST: f64;
}
pub enum TestEnum {
One,
Two,
}
impl TestTrait2 for TestEnum {
const TEST_CONST: f64 = 42.0;
}
impl TestTrait for TestEnum {
const TEST_CONST: u8 = 42;
}
}
r#"
mod test_mod {
pub trait TestTrait {
const TEST_CONST: u8;
}
pub trait TestTrait2 {
const TEST_CONST: f64;
}
pub enum TestEnum {
One,
Two,
}
impl TestTrait2 for TestEnum {
const TEST_CONST: f64 = 42.0;
}
impl TestTrait for TestEnum {
const TEST_CONST: u8 = 42;
}
}
use test_mod::TestTrait2;
fn main() {
test_mod::TestEnum::TEST_CONST$0;
}
",
use test_mod::TestTrait2;
fn main() {
test_mod::TestEnum::TEST_CONST$0;
}
"#,
)
}
@@ -711,38 +696,38 @@ fn trait_method() {
cov_mark::check!(qualify_path_trait_method);
check_assist(
qualify_path,
r"
mod test_mod {
pub trait TestTrait {
fn test_method(&self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(&self) {}
}
}
r#"
mod test_mod {
pub trait TestTrait {
fn test_method(&self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(&self) {}
}
}
fn main() {
let test_struct = test_mod::TestStruct {};
test_struct.test_meth$0od()
}
",
r"
mod test_mod {
pub trait TestTrait {
fn test_method(&self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(&self) {}
}
}
fn main() {
let test_struct = test_mod::TestStruct {};
test_struct.test_meth$0od()
}
"#,
r#"
mod test_mod {
pub trait TestTrait {
fn test_method(&self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(&self) {}
}
}
fn main() {
let test_struct = test_mod::TestStruct {};
test_mod::TestTrait::test_method(&test_struct)
}
",
fn main() {
let test_struct = test_mod::TestStruct {};
test_mod::TestTrait::test_method(&test_struct)
}
"#,
);
}
@@ -750,38 +735,38 @@ fn main() {
fn trait_method_multi_params() {
check_assist(
qualify_path,
r"
mod test_mod {
pub trait TestTrait {
fn test_method(&self, test: i32);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(&self, test: i32) {}
}
}
r#"
mod test_mod {
pub trait TestTrait {
fn test_method(&self, test: i32);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(&self, test: i32) {}
}
}
fn main() {
let test_struct = test_mod::TestStruct {};
test_struct.test_meth$0od(42)
}
",
r"
mod test_mod {
pub trait TestTrait {
fn test_method(&self, test: i32);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(&self, test: i32) {}
}
}
fn main() {
let test_struct = test_mod::TestStruct {};
test_struct.test_meth$0od(42)
}
"#,
r#"
mod test_mod {
pub trait TestTrait {
fn test_method(&self, test: i32);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(&self, test: i32) {}
}
}
fn main() {
let test_struct = test_mod::TestStruct {};
test_mod::TestTrait::test_method(&test_struct, 42)
}
",
fn main() {
let test_struct = test_mod::TestStruct {};
test_mod::TestTrait::test_method(&test_struct, 42)
}
"#,
);
}
@@ -789,38 +774,38 @@ fn main() {
fn trait_method_consume() {
check_assist(
qualify_path,
r"
mod test_mod {
pub trait TestTrait {
fn test_method(self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(self) {}
}
}
r#"
mod test_mod {
pub trait TestTrait {
fn test_method(self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(self) {}
}
}
fn main() {
let test_struct = test_mod::TestStruct {};
test_struct.test_meth$0od()
}
",
r"
mod test_mod {
pub trait TestTrait {
fn test_method(self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(self) {}
}
}
fn main() {
let test_struct = test_mod::TestStruct {};
test_struct.test_meth$0od()
}
"#,
r#"
mod test_mod {
pub trait TestTrait {
fn test_method(self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(self) {}
}
}
fn main() {
let test_struct = test_mod::TestStruct {};
test_mod::TestTrait::test_method(test_struct)
}
",
fn main() {
let test_struct = test_mod::TestStruct {};
test_mod::TestTrait::test_method(test_struct)
}
"#,
);
}
@@ -828,29 +813,29 @@ fn main() {
fn trait_method_cross_crate() {
check_assist(
qualify_path,
r"
//- /main.rs crate:main deps:dep
fn main() {
let test_struct = dep::test_mod::TestStruct {};
test_struct.test_meth$0od()
}
//- /dep.rs crate:dep
pub mod test_mod {
pub trait TestTrait {
fn test_method(&self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(&self) {}
}
}
",
r"
fn main() {
let test_struct = dep::test_mod::TestStruct {};
dep::test_mod::TestTrait::test_method(&test_struct)
}
",
r#"
//- /main.rs crate:main deps:dep
fn main() {
let test_struct = dep::test_mod::TestStruct {};
test_struct.test_meth$0od()
}
//- /dep.rs crate:dep
pub mod test_mod {
pub trait TestTrait {
fn test_method(&self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(&self) {}
}
}
"#,
r#"
fn main() {
let test_struct = dep::test_mod::TestStruct {};
dep::test_mod::TestTrait::test_method(&test_struct)
}
"#,
);
}
@@ -858,27 +843,27 @@ fn main() {
fn assoc_fn_cross_crate() {
check_assist(
qualify_path,
r"
//- /main.rs crate:main deps:dep
fn main() {
dep::test_mod::TestStruct::test_func$0tion
}
//- /dep.rs crate:dep
pub mod test_mod {
pub trait TestTrait {
fn test_function();
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_function() {}
}
}
",
r"
fn main() {
<dep::test_mod::TestStruct as dep::test_mod::TestTrait>::test_function
}
",
r#"
//- /main.rs crate:main deps:dep
fn main() {
dep::test_mod::TestStruct::test_func$0tion
}
//- /dep.rs crate:dep
pub mod test_mod {
pub trait TestTrait {
fn test_function();
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_function() {}
}
}
"#,
r#"
fn main() {
<dep::test_mod::TestStruct as dep::test_mod::TestTrait>::test_function
}
"#,
);
}
@@ -886,27 +871,27 @@ fn main() {
fn assoc_const_cross_crate() {
check_assist(
qualify_path,
r"
//- /main.rs crate:main deps:dep
fn main() {
dep::test_mod::TestStruct::CONST$0
}
//- /dep.rs crate:dep
pub mod test_mod {
pub trait TestTrait {
const CONST: bool;
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
const CONST: bool = true;
}
}
",
r"
fn main() {
<dep::test_mod::TestStruct as dep::test_mod::TestTrait>::CONST
}
",
r#"
//- /main.rs crate:main deps:dep
fn main() {
dep::test_mod::TestStruct::CONST$0
}
//- /dep.rs crate:dep
pub mod test_mod {
pub trait TestTrait {
const CONST: bool;
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
const CONST: bool = true;
}
}
"#,
r#"
fn main() {
<dep::test_mod::TestStruct as dep::test_mod::TestTrait>::CONST
}
"#,
);
}
@@ -914,23 +899,23 @@ fn main() {
fn assoc_fn_as_method_cross_crate() {
check_assist_not_applicable(
qualify_path,
r"
//- /main.rs crate:main deps:dep
fn main() {
let test_struct = dep::test_mod::TestStruct {};
test_struct.test_func$0tion()
}
//- /dep.rs crate:dep
pub mod test_mod {
pub trait TestTrait {
fn test_function();
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_function() {}
}
}
",
r#"
//- /main.rs crate:main deps:dep
fn main() {
let test_struct = dep::test_mod::TestStruct {};
test_struct.test_func$0tion()
}
//- /dep.rs crate:dep
pub mod test_mod {
pub trait TestTrait {
fn test_function();
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_function() {}
}
}
"#,
);
}
@@ -938,23 +923,23 @@ fn test_function() {}
fn private_trait_cross_crate() {
check_assist_not_applicable(
qualify_path,
r"
//- /main.rs crate:main deps:dep
fn main() {
let test_struct = dep::test_mod::TestStruct {};
test_struct.test_meth$0od()
}
//- /dep.rs crate:dep
pub mod test_mod {
trait TestTrait {
fn test_method(&self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(&self) {}
}
}
",
r#"
//- /main.rs crate:main deps:dep
fn main() {
let test_struct = dep::test_mod::TestStruct {};
test_struct.test_meth$0od()
}
//- /dep.rs crate:dep
pub mod test_mod {
trait TestTrait {
fn test_method(&self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method(&self) {}
}
}
"#,
);
}
@@ -962,32 +947,32 @@ fn test_method(&self) {}
fn not_applicable_for_imported_trait_for_method() {
check_assist_not_applicable(
qualify_path,
r"
mod test_mod {
pub trait TestTrait {
fn test_method(&self);
}
pub trait TestTrait2 {
fn test_method(&self);
}
pub enum TestEnum {
One,
Two,
}
impl TestTrait2 for TestEnum {
fn test_method(&self) {}
}
impl TestTrait for TestEnum {
fn test_method(&self) {}
}
}
r#"
mod test_mod {
pub trait TestTrait {
fn test_method(&self);
}
pub trait TestTrait2 {
fn test_method(&self);
}
pub enum TestEnum {
One,
Two,
}
impl TestTrait2 for TestEnum {
fn test_method(&self) {}
}
impl TestTrait for TestEnum {
fn test_method(&self) {}
}
}
use test_mod::TestTrait2;
fn main() {
let one = test_mod::TestEnum::One;
one.test$0_method();
}
",
use test_mod::TestTrait2;
fn main() {
let one = test_mod::TestEnum::One;
one.test$0_method();
}
"#,
)
}
@@ -1114,7 +1099,7 @@ fn main() {}
fn keep_generic_annotations_leading_colon() {
check_assist(
qualify_path,
r"
r#"
//- /lib.rs crate:dep
pub mod generic { pub struct Thing<'a, T>(&'a T); }
@@ -1122,7 +1107,7 @@ fn keep_generic_annotations_leading_colon() {
fn foo() -> Thin$0g::<'static, ()> {}
fn main() {}
",
"#,
r"
fn foo() -> dep::generic::Thing::<'static, ()> {}
@@ -1135,30 +1120,30 @@ fn main() {}
fn associated_struct_const_generic() {
check_assist(
qualify_path,
r"
mod test_mod {
pub struct TestStruct<T> {}
impl<T> TestStruct<T> {
const TEST_CONST: u8 = 42;
}
}
r#"
mod test_mod {
pub struct TestStruct<T> {}
impl<T> TestStruct<T> {
const TEST_CONST: u8 = 42;
}
}
fn main() {
TestStruct::<()>::TEST_CONST$0
}
",
r"
mod test_mod {
pub struct TestStruct<T> {}
impl<T> TestStruct<T> {
const TEST_CONST: u8 = 42;
}
}
fn main() {
TestStruct::<()>::TEST_CONST$0
}
"#,
r#"
mod test_mod {
pub struct TestStruct<T> {}
impl<T> TestStruct<T> {
const TEST_CONST: u8 = 42;
}
}
fn main() {
test_mod::TestStruct::<()>::TEST_CONST
}
",
fn main() {
test_mod::TestStruct::<()>::TEST_CONST
}
"#,
);
}
@@ -1166,36 +1151,36 @@ fn main() {
fn associated_trait_const_generic() {
check_assist(
qualify_path,
r"
mod test_mod {
pub trait TestTrait {
const TEST_CONST: u8;
}
pub struct TestStruct<T> {}
impl<T> TestTrait for TestStruct<T> {
const TEST_CONST: u8 = 42;
}
}
r#"
mod test_mod {
pub trait TestTrait {
const TEST_CONST: u8;
}
pub struct TestStruct<T> {}
impl<T> TestTrait for TestStruct<T> {
const TEST_CONST: u8 = 42;
}
}
fn main() {
test_mod::TestStruct::<()>::TEST_CONST$0
}
",
r"
mod test_mod {
pub trait TestTrait {
const TEST_CONST: u8;
}
pub struct TestStruct<T> {}
impl<T> TestTrait for TestStruct<T> {
const TEST_CONST: u8 = 42;
}
}
fn main() {
test_mod::TestStruct::<()>::TEST_CONST$0
}
"#,
r#"
mod test_mod {
pub trait TestTrait {
const TEST_CONST: u8;
}
pub struct TestStruct<T> {}
impl<T> TestTrait for TestStruct<T> {
const TEST_CONST: u8 = 42;
}
}
fn main() {
<test_mod::TestStruct::<()> as test_mod::TestTrait>::TEST_CONST
}
",
fn main() {
<test_mod::TestStruct::<()> as test_mod::TestTrait>::TEST_CONST
}
"#,
);
}
@@ -1203,38 +1188,38 @@ fn main() {
fn trait_method_generic() {
check_assist(
qualify_path,
r"
mod test_mod {
pub trait TestTrait {
fn test_method<T>(&self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method<T>(&self) {}
}
}
r#"
mod test_mod {
pub trait TestTrait {
fn test_method<T>(&self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method<T>(&self) {}
}
}
fn main() {
let test_struct = test_mod::TestStruct {};
test_struct.test_meth$0od::<()>()
}
",
r"
mod test_mod {
pub trait TestTrait {
fn test_method<T>(&self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method<T>(&self) {}
}
}
fn main() {
let test_struct = test_mod::TestStruct {};
test_struct.test_meth$0od::<()>()
}
"#,
r#"
mod test_mod {
pub trait TestTrait {
fn test_method<T>(&self);
}
pub struct TestStruct {}
impl TestTrait for TestStruct {
fn test_method<T>(&self) {}
}
}
fn main() {
let test_struct = test_mod::TestStruct {};
test_mod::TestTrait::test_method::<()>(&test_struct)
}
",
fn main() {
let test_struct = test_mod::TestStruct {};
test_mod::TestTrait::test_method::<()>(&test_struct)
}
"#,
);
}
}
@@ -105,12 +105,13 @@ fn foo<B: Bar
}
#[test]
#[ignore = "This case is very rare but there is no simple solutions to fix it."]
fn replace_impl_trait_with_exist_generic_letter() {
// FIXME: This is wrong, we should pick a different name if the one we
// want is already bound.
check_assist(
replace_impl_trait_with_generic,
r#"fn foo<B>(bar: $0impl Bar) {}"#,
r#"fn foo<B, C: Bar>(bar: C) {}"#,
r#"fn foo<B, B: Bar>(bar: B) {}"#,
);
}
@@ -511,13 +511,14 @@ fn merge_groups_skip_attributed() {
}
#[test]
#[ignore] // FIXME: Support this
fn split_out_merge() {
// FIXME: This is suboptimal, we want to get `use std::fmt::{self, Result}`
// instead.
check_module(
"std::fmt::Result",
r"use std::{fmt, io};",
r"use std::fmt::{self, Result};
use std::io;",
r"use std::fmt::Result;
use std::{fmt, io};",
)
}