Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/tests/expression.rs')
| -rw-r--r-- | crates/ide-completion/src/tests/expression.rs | 159 |
1 files changed, 131 insertions, 28 deletions
diff --git a/crates/ide-completion/src/tests/expression.rs b/crates/ide-completion/src/tests/expression.rs index 294434297e..c1205f9e18 100644 --- a/crates/ide-completion/src/tests/expression.rs +++ b/crates/ide-completion/src/tests/expression.rs @@ -5,8 +5,8 @@ use crate::{ CompletionConfig, config::AutoImportExclusionType, tests::{ - BASE_ITEMS_FIXTURE, TEST_CONFIG, check, check_edit, check_with_base_items, - completion_list_with_config, + BASE_ITEMS_FIXTURE, TEST_CONFIG, check, check_edit, check_edit_with_config, + check_with_base_items, completion_list_with_config, }, }; @@ -48,8 +48,8 @@ fn baz() { fn create_foo(…) fn(&FooDesc) fn function() fn() ma makro!(…) macro_rules! makro - md _69latrick - md module + md _69latrick:: + md module:: sc STATIC Unit st FooDesc FooDesc st Record Record @@ -149,8 +149,8 @@ impl Unit { me self.foo() fn(self) lc self Unit ma makro!(…) macro_rules! makro - md module - md qualified + md module:: + md qualified:: sp Self Unit sc STATIC Unit st Record Record @@ -212,8 +212,8 @@ impl Unit { en Enum Enum fn function() fn() ma makro!(…) macro_rules! makro - md module - md qualified + md module:: + md qualified:: sc STATIC Unit st Record Record st Tuple Tuple @@ -1150,6 +1150,22 @@ fn break_value_no_block() { } #[test] +fn complete_module_colons() { + check_edit( + "module", + r#"mod module {} fn foo() { $0 }"#, + r#"mod module {} fn foo() { module:: }"#, + ); + + check_edit_with_config( + CompletionConfig { add_colons_to_module: false, ..TEST_CONFIG }, + "module", + r#"mod module {} fn foo() { $0 }"#, + r#"mod module {} fn foo() { module }"#, + ); +} + +#[test] fn else_completion_after_if() { check( r#" @@ -2224,7 +2240,7 @@ pub struct UnstableThisShouldNotBeListed; "#, expect![[r#" fn main() fn() - md std + md std:: bt u32 u32 kw async kw const @@ -2278,7 +2294,7 @@ pub struct UnstableButWeAreOnNightlyAnyway; "#, expect![[r#" fn main() fn() - md std + md std:: st UnstableButWeAreOnNightlyAnyway UnstableButWeAreOnNightlyAnyway bt u32 u32 kw async @@ -2333,7 +2349,7 @@ pub mod intrinsics {} "#, expect![[r#" fn main() fn() - md std + md std:: bt u32 u32 kw async kw const @@ -2383,10 +2399,10 @@ fn main() { pub mod intrinsics {} "#, expect![[r#" - fn main() fn() - md intrinsics - md std - bt u32 u32 + fn main() fn() + md intrinsics:: + md std:: + bt u32 u32 kw async kw const kw crate:: @@ -2622,7 +2638,7 @@ fn main() { ma helper!(…) macro_rules! helper ma m!(…) macro_rules! m ma makro!(…) macro_rules! makro - md module + md module:: sc STATIC Unit st Record Record st Tuple Tuple @@ -3085,12 +3101,12 @@ fn bar() { ma format_args_nl!(…) macro_rules! format_args_nl ma panic!(…) macro_rules! panic ma print!(…) macro_rules! print - md core - md result (use core::result) - md rust_2015 (use core::prelude::rust_2015) - md rust_2018 (use core::prelude::rust_2018) - md rust_2021 (use core::prelude::rust_2021) - md rust_2024 (use core::prelude::rust_2024) + md core:: + md result:: (use core::result) + md rust_2015:: (use core::prelude::rust_2015) + md rust_2018:: (use core::prelude::rust_2018) + md rust_2021:: (use core::prelude::rust_2021) + md rust_2024:: (use core::prelude::rust_2024) tt Clone tt Copy tt FromIterator @@ -3162,6 +3178,37 @@ fn foo() { } #[test] +fn deprecated_enum_marks_variants_deprecated() { + check( + r#" +#[deprecated] +enum Foo { Bar } +fn main() { let _ = Foo::$0; } +"#, + expect![[r#" + ev Bar Bar DEPRECATED + "#]], + ); +} + +#[test] +fn deprecated_variant_of_undeprecated_enum_still_deprecated() { + check( + r#" +enum Foo { + #[deprecated] Bar, + Baz, +} +fn main() { let _ = Foo::$0; } +"#, + expect![[r#" + ev Bar Bar DEPRECATED + ev Baz Baz + "#]], + ); +} + +#[test] fn non_std_test_attr_macro() { check( r#" @@ -3174,9 +3221,9 @@ fn foo() { } "#, expect![[r#" - fn foo() fn() - md proc_macros - bt u32 u32 + fn foo() fn() + md proc_macros:: + bt u32 u32 kw async kw const kw crate:: @@ -3224,9 +3271,9 @@ fn foo() { } "#, expect![[r#" - fn foo() fn() - md proc_macros - bt u32 u32 + fn foo() fn() + md proc_macros:: + bt u32 u32 kw async kw const kw crate:: @@ -3798,3 +3845,59 @@ fn baz(v: impl Bar) { "#]], ); } + +#[test] +fn regression_21697() { + check( + r#" +trait SuperTrait { + type AssocTy; +} + +trait SubTrait<T = <Self as SuperTrait>::AssocTy>: SuperTrait {} + +fn tryme(param: impl SubTrait) { + param$0 +} + "#, + expect![[r#" + fn tryme(…) fn(impl SubTrait<<impl SubTrait<<… as SuperTrait>::AssocTy> + ?Sized as SuperTrait>::AssocTy> + ?Sized) + lc param impl SubTrait<<impl SubTrait<<… as SuperTrait>::AssocTy> + ?Sized as SuperTrait>::AssocTy> + ?Sized + tt SubTrait + tt SuperTrait + bt u32 u32 + kw async + kw const + kw crate:: + kw enum + kw extern + kw false + kw fn + kw for + kw if + kw if let + kw impl + kw impl for + kw let + kw letm + kw loop + kw match + kw mod + kw return + kw self:: + kw static + kw struct + kw trait + kw true + kw type + kw union + kw unsafe + kw use + kw while + kw while let + sn macro_rules + sn pd + sn ppd + "#]], + ); +} |