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.rs193
1 files changed, 126 insertions, 67 deletions
diff --git a/crates/ide-completion/src/tests/expression.rs b/crates/ide-completion/src/tests/expression.rs
index 9b3c676c48..b30ac43bf8 100644
--- a/crates/ide-completion/src/tests/expression.rs
+++ b/crates/ide-completion/src/tests/expression.rs
@@ -1,13 +1,13 @@
//! Completion tests for expressions.
-use expect_test::{expect, Expect};
+use expect_test::{Expect, expect};
use crate::{
+ CompletionConfig,
config::AutoImportExclusionType,
tests::{
- check, check_edit, check_with_base_items, completion_list_with_config, BASE_ITEMS_FIXTURE,
- TEST_CONFIG,
+ BASE_ITEMS_FIXTURE, TEST_CONFIG, check, check_edit, check_with_base_items,
+ completion_list_with_config,
},
- CompletionConfig,
};
fn check_with_config(
@@ -58,6 +58,7 @@ fn baz() {
un Union Union
ev TupleV(…) TupleV(u32)
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -101,6 +102,7 @@ fn func(param0 @ (param1, param2): (i32, i32)) {
lc param1 i32
lc param2 i32
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -169,6 +171,7 @@ impl Unit {
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop
@@ -247,6 +250,7 @@ fn complete_in_block() {
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop
@@ -298,6 +302,7 @@ fn complete_after_if_expr() {
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop
@@ -335,6 +340,7 @@ fn complete_in_match_arm() {
expect![[r#"
fn foo() fn()
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -372,6 +378,7 @@ fn completes_in_loop_ctx() {
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop
@@ -400,6 +407,7 @@ fn completes_in_loop_ctx() {
sn box Box::new(expr)
sn break break expr
sn call function(expr)
+ sn const const {}
sn dbg dbg!(expr)
sn dbgr dbg!(&expr)
sn deref *expr
@@ -424,6 +432,7 @@ fn completes_in_let_initializer() {
expect![[r#"
fn main() fn()
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -448,6 +457,7 @@ fn completes_after_ref_expr() {
expect![[r#"
fn main() fn()
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -471,6 +481,7 @@ fn completes_after_ref_expr() {
fn main() fn()
bt u32 u32
kw const
+ kw const
kw crate::
kw false
kw for
@@ -492,6 +503,7 @@ fn completes_after_ref_expr() {
expect![[r#"
fn main() fn()
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -512,6 +524,7 @@ fn completes_after_ref_expr() {
expect![[r#"
fn main() fn()
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -532,6 +545,7 @@ fn completes_after_ref_expr() {
expect![[r#"
fn main() fn()
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -566,6 +580,7 @@ fn foo() {
fn foo() fn()
st Foo Foo
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -601,6 +616,7 @@ fn foo() {
fn foo() fn()
lc bar i32
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -632,6 +648,7 @@ fn quux(x: i32) {
lc x i32
ma m!(…) macro_rules! m
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -659,6 +676,7 @@ fn quux(x: i32) {
lc x i32
ma m!(…) macro_rules! m
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -688,6 +706,7 @@ fn quux(x: i32) {
lc y i32
ma m!(…) macro_rules! m
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -870,6 +889,7 @@ fn brr() {
st YoloVariant YoloVariant
st YoloVariant {…} YoloVariant { f: usize }
bt u32 u32
+ kw const
kw crate::
kw false
kw for
@@ -945,6 +965,7 @@ fn foo() { if foo {} $0 }
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop
@@ -987,6 +1008,7 @@ fn foo() { if foo {} el$0 }
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop
@@ -1016,6 +1038,7 @@ fn foo() { bar(if foo {} $0) }
expect![[r#"
fn foo() fn()
bt u32 u32
+ kw const
kw crate::
kw else
kw else if
@@ -1040,6 +1063,7 @@ fn foo() { bar(if foo {} el$0) }
expect![[r#"
fn foo() fn()
bt u32 u32
+ kw const
kw crate::
kw else
kw else if
@@ -1077,6 +1101,7 @@ fn foo() { if foo {} $0 let x = 92; }
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop
@@ -1119,6 +1144,7 @@ fn foo() { if foo {} el$0 let x = 92; }
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop
@@ -1161,6 +1187,7 @@ fn foo() { if foo {} el$0 { let x = 92; } }
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop
@@ -1213,6 +1240,7 @@ pub struct UnstableThisShouldNotBeListed;
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop
@@ -1267,6 +1295,7 @@ pub struct UnstableButWeAreOnNightlyAnyway;
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop
@@ -1309,6 +1338,7 @@ fn main() {
me foo() fn(&self)
sn box Box::new(expr)
sn call function(expr)
+ sn const const {}
sn dbg dbg!(expr)
sn dbgr dbg!(&expr)
sn deref *expr
@@ -1335,6 +1365,7 @@ fn main() {
me foo() fn(&self)
sn box Box::new(expr)
sn call function(expr)
+ sn const const {}
sn dbg dbg!(expr)
sn dbgr dbg!(&expr)
sn deref *expr
@@ -1365,6 +1396,7 @@ fn main() {
me foo() fn(&self)
sn box Box::new(expr)
sn call function(expr)
+ sn const const {}
sn dbg dbg!(expr)
sn dbgr dbg!(&expr)
sn deref *expr
@@ -1391,6 +1423,7 @@ fn main() {
me foo() fn(&self)
sn box Box::new(expr)
sn call function(expr)
+ sn const const {}
sn dbg dbg!(expr)
sn dbgr dbg!(&expr)
sn deref *expr
@@ -1417,6 +1450,7 @@ fn main() {
me foo() fn(&self)
sn box Box::new(expr)
sn call function(expr)
+ sn const const {}
sn dbg dbg!(expr)
sn dbgr dbg!(&expr)
sn deref *expr
@@ -1442,6 +1476,7 @@ fn main() {
expect![[r#"
sn box Box::new(expr)
sn call function(expr)
+ sn const const {}
sn dbg dbg!(expr)
sn dbgr dbg!(&expr)
sn deref *expr
@@ -1505,6 +1540,7 @@ fn main() {
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop
@@ -1531,7 +1567,10 @@ fn main() {
#[test]
fn excluded_trait_method_is_excluded() {
check_with_config(
- CompletionConfig { exclude_traits: &["test::ExcludedTrait".to_owned()], ..TEST_CONFIG },
+ CompletionConfig {
+ exclude_traits: &["ra_test_fixture::ExcludedTrait".to_owned()],
+ ..TEST_CONFIG
+ },
r#"
trait ExcludedTrait {
fn foo(&self) {}
@@ -1551,22 +1590,20 @@ fn foo() {
}
"#,
expect![[r#"
- me bar() (as ExcludedTrait) fn(&self)
- me baz() (as ExcludedTrait) fn(&self)
- me foo() (as ExcludedTrait) fn(&self)
- me inherent() fn(&self)
- sn box Box::new(expr)
- sn call function(expr)
- sn dbg dbg!(expr)
- sn dbgr dbg!(&expr)
- sn deref *expr
- sn let let
- sn letm let mut
- sn match match expr {}
- sn ref &expr
- sn refm &mut expr
- sn return return expr
- sn unsafe unsafe {}
+ me inherent() fn(&self)
+ sn box Box::new(expr)
+ sn call function(expr)
+ sn const const {}
+ sn dbg dbg!(expr)
+ sn dbgr dbg!(&expr)
+ sn deref *expr
+ sn let let
+ sn letm let mut
+ sn match match expr {}
+ sn ref &expr
+ sn refm &mut expr
+ sn return return expr
+ sn unsafe unsafe {}
"#]],
);
}
@@ -1574,7 +1611,10 @@ fn foo() {
#[test]
fn excluded_trait_not_excluded_when_inherent() {
check_with_config(
- CompletionConfig { exclude_traits: &["test::ExcludedTrait".to_owned()], ..TEST_CONFIG },
+ CompletionConfig {
+ exclude_traits: &["ra_test_fixture::ExcludedTrait".to_owned()],
+ ..TEST_CONFIG
+ },
r#"
trait ExcludedTrait {
fn foo(&self) {}
@@ -1594,6 +1634,7 @@ fn foo(v: &dyn ExcludedTrait) {
me foo() (as ExcludedTrait) fn(&self)
sn box Box::new(expr)
sn call function(expr)
+ sn const const {}
sn dbg dbg!(expr)
sn dbgr dbg!(&expr)
sn deref *expr
@@ -1607,7 +1648,10 @@ fn foo(v: &dyn ExcludedTrait) {
"#]],
);
check_with_config(
- CompletionConfig { exclude_traits: &["test::ExcludedTrait".to_owned()], ..TEST_CONFIG },
+ CompletionConfig {
+ exclude_traits: &["ra_test_fixture::ExcludedTrait".to_owned()],
+ ..TEST_CONFIG
+ },
r#"
trait ExcludedTrait {
fn foo(&self) {}
@@ -1627,6 +1671,7 @@ fn foo(v: impl ExcludedTrait) {
me foo() (as ExcludedTrait) fn(&self)
sn box Box::new(expr)
sn call function(expr)
+ sn const const {}
sn dbg dbg!(expr)
sn dbgr dbg!(&expr)
sn deref *expr
@@ -1640,7 +1685,10 @@ fn foo(v: impl ExcludedTrait) {
"#]],
);
check_with_config(
- CompletionConfig { exclude_traits: &["test::ExcludedTrait".to_owned()], ..TEST_CONFIG },
+ CompletionConfig {
+ exclude_traits: &["ra_test_fixture::ExcludedTrait".to_owned()],
+ ..TEST_CONFIG
+ },
r#"
trait ExcludedTrait {
fn foo(&self) {}
@@ -1660,6 +1708,7 @@ fn foo<T: ExcludedTrait>(v: T) {
me foo() (as ExcludedTrait) fn(&self)
sn box Box::new(expr)
sn call function(expr)
+ sn const const {}
sn dbg dbg!(expr)
sn dbgr dbg!(&expr)
sn deref *expr
@@ -1678,7 +1727,7 @@ fn foo<T: ExcludedTrait>(v: T) {
fn excluded_trait_method_is_excluded_from_flyimport() {
check_with_config(
CompletionConfig {
- exclude_traits: &["test::module2::ExcludedTrait".to_owned()],
+ exclude_traits: &["ra_test_fixture::module2::ExcludedTrait".to_owned()],
..TEST_CONFIG
},
r#"
@@ -1702,22 +1751,20 @@ fn foo() {
}
"#,
expect![[r#"
- me bar() (use module2::ExcludedTrait) fn(&self)
- me baz() (use module2::ExcludedTrait) fn(&self)
- me foo() (use module2::ExcludedTrait) fn(&self)
- me inherent() fn(&self)
- sn box Box::new(expr)
- sn call function(expr)
- sn dbg dbg!(expr)
- sn dbgr dbg!(&expr)
- sn deref *expr
- sn let let
- sn letm let mut
- sn match match expr {}
- sn ref &expr
- sn refm &mut expr
- sn return return expr
- sn unsafe unsafe {}
+ me inherent() fn(&self)
+ sn box Box::new(expr)
+ sn call function(expr)
+ sn const const {}
+ sn dbg dbg!(expr)
+ sn dbgr dbg!(&expr)
+ sn deref *expr
+ sn let let
+ sn letm let mut
+ sn match match expr {}
+ sn ref &expr
+ sn refm &mut expr
+ sn return return expr
+ sn unsafe unsafe {}
"#]],
);
}
@@ -1727,7 +1774,7 @@ fn flyimport_excluded_trait_method_is_excluded_from_flyimport() {
check_with_config(
CompletionConfig {
exclude_flyimport: vec![(
- "test::module2::ExcludedTrait".to_owned(),
+ "ra_test_fixture::module2::ExcludedTrait".to_owned(),
AutoImportExclusionType::Methods,
)],
..TEST_CONFIG
@@ -1753,22 +1800,20 @@ fn foo() {
}
"#,
expect![[r#"
- me bar() (use module2::ExcludedTrait) fn(&self)
- me baz() (use module2::ExcludedTrait) fn(&self)
- me foo() (use module2::ExcludedTrait) fn(&self)
- me inherent() fn(&self)
- sn box Box::new(expr)
- sn call function(expr)
- sn dbg dbg!(expr)
- sn dbgr dbg!(&expr)
- sn deref *expr
- sn let let
- sn letm let mut
- sn match match expr {}
- sn ref &expr
- sn refm &mut expr
- sn return return expr
- sn unsafe unsafe {}
+ me inherent() fn(&self)
+ sn box Box::new(expr)
+ sn call function(expr)
+ sn const const {}
+ sn dbg dbg!(expr)
+ sn dbgr dbg!(&expr)
+ sn deref *expr
+ sn let let
+ sn letm let mut
+ sn match match expr {}
+ sn ref &expr
+ sn refm &mut expr
+ sn return return expr
+ sn unsafe unsafe {}
"#]],
);
}
@@ -1776,7 +1821,10 @@ fn foo() {
#[test]
fn excluded_trait_method_is_excluded_from_path_completion() {
check_with_config(
- CompletionConfig { exclude_traits: &["test::ExcludedTrait".to_owned()], ..TEST_CONFIG },
+ CompletionConfig {
+ exclude_traits: &["ra_test_fixture::ExcludedTrait".to_owned()],
+ ..TEST_CONFIG
+ },
r#"
pub trait ExcludedTrait {
fn foo(&self) {}
@@ -1796,10 +1844,7 @@ fn foo() {
}
"#,
expect![[r#"
- me bar(…) (as ExcludedTrait) fn(&self)
- me baz(…) (as ExcludedTrait) fn(&self)
- me foo(…) (as ExcludedTrait) fn(&self)
- me inherent(…) fn(&self)
+ me inherent(…) fn(&self)
"#]],
);
}
@@ -1807,7 +1852,10 @@ fn foo() {
#[test]
fn excluded_trait_method_is_not_excluded_when_trait_is_specified() {
check_with_config(
- CompletionConfig { exclude_traits: &["test::ExcludedTrait".to_owned()], ..TEST_CONFIG },
+ CompletionConfig {
+ exclude_traits: &["ra_test_fixture::ExcludedTrait".to_owned()],
+ ..TEST_CONFIG
+ },
r#"
pub trait ExcludedTrait {
fn foo(&self) {}
@@ -1833,7 +1881,10 @@ fn foo() {
"#]],
);
check_with_config(
- CompletionConfig { exclude_traits: &["test::ExcludedTrait".to_owned()], ..TEST_CONFIG },
+ CompletionConfig {
+ exclude_traits: &["ra_test_fixture::ExcludedTrait".to_owned()],
+ ..TEST_CONFIG
+ },
r#"
pub trait ExcludedTrait {
fn foo(&self) {}
@@ -1863,7 +1914,10 @@ fn foo() {
#[test]
fn excluded_trait_not_excluded_when_inherent_path() {
check_with_config(
- CompletionConfig { exclude_traits: &["test::ExcludedTrait".to_owned()], ..TEST_CONFIG },
+ CompletionConfig {
+ exclude_traits: &["ra_test_fixture::ExcludedTrait".to_owned()],
+ ..TEST_CONFIG
+ },
r#"
trait ExcludedTrait {
fn foo(&self) {}
@@ -1884,7 +1938,10 @@ fn foo() {
"#]],
);
check_with_config(
- CompletionConfig { exclude_traits: &["test::ExcludedTrait".to_owned()], ..TEST_CONFIG },
+ CompletionConfig {
+ exclude_traits: &["ra_test_fixture::ExcludedTrait".to_owned()],
+ ..TEST_CONFIG
+ },
r#"
trait ExcludedTrait {
fn foo(&self) {}
@@ -1956,6 +2013,7 @@ fn bar() {
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop
@@ -2028,6 +2086,7 @@ fn foo() {
kw if
kw if let
kw impl
+ kw impl for
kw let
kw letm
kw loop