mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-28 12:54:58 +00:00
Keep the original completion order in tests
This commit is contained in:
parent
5fa078f26f
commit
8c292e3cc5
12 changed files with 199 additions and 200 deletions
|
@ -428,8 +428,8 @@ struct Test {}
|
||||||
at Hash
|
at Hash
|
||||||
at PartialEq
|
at PartialEq
|
||||||
at PartialEq, Eq
|
at PartialEq, Eq
|
||||||
at PartialEq, Eq, PartialOrd, Ord
|
|
||||||
at PartialEq, PartialOrd
|
at PartialEq, PartialOrd
|
||||||
|
at PartialEq, Eq, PartialOrd, Ord
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -457,10 +457,10 @@ struct Test {}
|
||||||
at Clone, Copy
|
at Clone, Copy
|
||||||
at Debug
|
at Debug
|
||||||
at Default
|
at Default
|
||||||
at Eq
|
|
||||||
at Eq, PartialOrd, Ord
|
|
||||||
at Hash
|
at Hash
|
||||||
|
at Eq
|
||||||
at PartialOrd
|
at PartialOrd
|
||||||
|
at Eq, PartialOrd, Ord
|
||||||
"#]],
|
"#]],
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -472,14 +472,14 @@ struct Test {}
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
at allow(…)
|
at allow(…)
|
||||||
at automatically_derived
|
at automatically_derived
|
||||||
at cfg(…)
|
|
||||||
at cfg_attr(…)
|
at cfg_attr(…)
|
||||||
|
at cfg(…)
|
||||||
at cold
|
at cold
|
||||||
at deny(…)
|
at deny(…)
|
||||||
at deprecated = "…"
|
at deprecated = "…"
|
||||||
at derive(…)
|
at derive(…)
|
||||||
at doc = "…"
|
|
||||||
at export_name = "…"
|
at export_name = "…"
|
||||||
|
at doc = "…"
|
||||||
at forbid(…)
|
at forbid(…)
|
||||||
at ignore = "…"
|
at ignore = "…"
|
||||||
at inline(…)
|
at inline(…)
|
||||||
|
@ -518,15 +518,15 @@ struct Test {}
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
at allow(…)
|
at allow(…)
|
||||||
at automatically_derived
|
at automatically_derived
|
||||||
at cfg(…)
|
|
||||||
at cfg_attr(…)
|
at cfg_attr(…)
|
||||||
|
at cfg(…)
|
||||||
at cold
|
at cold
|
||||||
at crate_name = ""
|
at crate_name = ""
|
||||||
at deny(…)
|
at deny(…)
|
||||||
at deprecated = "…"
|
at deprecated = "…"
|
||||||
at derive(…)
|
at derive(…)
|
||||||
at doc = "…"
|
|
||||||
at export_name = "…"
|
at export_name = "…"
|
||||||
|
at doc = "…"
|
||||||
at feature(…)
|
at feature(…)
|
||||||
at forbid(…)
|
at forbid(…)
|
||||||
at global_allocator
|
at global_allocator
|
||||||
|
@ -538,8 +538,8 @@ struct Test {}
|
||||||
at macro_export
|
at macro_export
|
||||||
at macro_use
|
at macro_use
|
||||||
at must_use = "…"
|
at must_use = "…"
|
||||||
at no_implicit_prelude
|
|
||||||
at no_link
|
at no_link
|
||||||
|
at no_implicit_prelude
|
||||||
at no_main
|
at no_main
|
||||||
at no_mangle
|
at no_mangle
|
||||||
at no_std
|
at no_std
|
||||||
|
|
|
@ -82,8 +82,8 @@ impl S {
|
||||||
fn foo(s: S) { s.<|> }
|
fn foo(s: S) { s.<|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
me bar() fn bar(&self)
|
|
||||||
fd foo u32
|
fd foo u32
|
||||||
|
me bar() fn bar(&self)
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -98,8 +98,8 @@ impl S {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
me foo() fn foo(self)
|
|
||||||
fd the_field (u32,)
|
fd the_field (u32,)
|
||||||
|
me foo() fn foo(self)
|
||||||
"#]],
|
"#]],
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -114,8 +114,8 @@ impl A {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
me foo() fn foo(&self)
|
|
||||||
fd the_field (u32, i32)
|
fd the_field (u32, i32)
|
||||||
|
me foo() fn foo(&self)
|
||||||
"#]],
|
"#]],
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -147,8 +147,8 @@ mod inner {
|
||||||
fn foo(a: inner::A) { a.<|> }
|
fn foo(a: inner::A) { a.<|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
fd crate_field u32
|
|
||||||
fd pub_field u32
|
fd pub_field u32
|
||||||
|
fd crate_field u32
|
||||||
fd super_field u32
|
fd super_field u32
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
|
|
@ -223,21 +223,21 @@ mod tests {
|
||||||
check(
|
check(
|
||||||
r"m<|>",
|
r"m<|>",
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
kw const
|
|
||||||
kw enum
|
|
||||||
kw extern
|
|
||||||
kw fn
|
kw fn
|
||||||
kw impl
|
|
||||||
kw mod
|
|
||||||
kw pub
|
|
||||||
kw pub(crate)
|
|
||||||
kw static
|
|
||||||
kw struct
|
|
||||||
kw trait
|
|
||||||
kw type
|
|
||||||
kw union
|
|
||||||
kw unsafe
|
|
||||||
kw use
|
kw use
|
||||||
|
kw impl
|
||||||
|
kw trait
|
||||||
|
kw enum
|
||||||
|
kw struct
|
||||||
|
kw union
|
||||||
|
kw mod
|
||||||
|
kw const
|
||||||
|
kw type
|
||||||
|
kw static
|
||||||
|
kw extern
|
||||||
|
kw unsafe
|
||||||
|
kw pub(crate)
|
||||||
|
kw pub
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -247,23 +247,23 @@ mod tests {
|
||||||
check(
|
check(
|
||||||
r"fn quux() { <|> }",
|
r"fn quux() { <|> }",
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
kw const
|
|
||||||
kw extern
|
|
||||||
kw fn
|
kw fn
|
||||||
|
kw use
|
||||||
|
kw impl
|
||||||
|
kw trait
|
||||||
|
kw match
|
||||||
|
kw while
|
||||||
|
kw loop
|
||||||
kw if
|
kw if
|
||||||
kw if let
|
kw if let
|
||||||
kw impl
|
|
||||||
kw let
|
kw let
|
||||||
kw loop
|
|
||||||
kw match
|
|
||||||
kw mod
|
kw mod
|
||||||
kw return
|
kw const
|
||||||
kw static
|
|
||||||
kw trait
|
|
||||||
kw type
|
kw type
|
||||||
|
kw static
|
||||||
|
kw extern
|
||||||
kw unsafe
|
kw unsafe
|
||||||
kw use
|
kw return
|
||||||
kw while
|
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -273,23 +273,23 @@ mod tests {
|
||||||
check(
|
check(
|
||||||
r"fn quux() { if true { <|> } }",
|
r"fn quux() { if true { <|> } }",
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
kw const
|
|
||||||
kw extern
|
|
||||||
kw fn
|
kw fn
|
||||||
|
kw use
|
||||||
|
kw impl
|
||||||
|
kw trait
|
||||||
|
kw match
|
||||||
|
kw while
|
||||||
|
kw loop
|
||||||
kw if
|
kw if
|
||||||
kw if let
|
kw if let
|
||||||
kw impl
|
|
||||||
kw let
|
kw let
|
||||||
kw loop
|
|
||||||
kw match
|
|
||||||
kw mod
|
kw mod
|
||||||
kw return
|
kw const
|
||||||
kw static
|
|
||||||
kw trait
|
|
||||||
kw type
|
kw type
|
||||||
|
kw static
|
||||||
|
kw extern
|
||||||
kw unsafe
|
kw unsafe
|
||||||
kw use
|
kw return
|
||||||
kw while
|
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -299,25 +299,25 @@ mod tests {
|
||||||
check(
|
check(
|
||||||
r#"fn quux() { if true { () } <|> }"#,
|
r#"fn quux() { if true { () } <|> }"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
kw const
|
|
||||||
kw else
|
|
||||||
kw else if
|
|
||||||
kw extern
|
|
||||||
kw fn
|
kw fn
|
||||||
|
kw use
|
||||||
|
kw impl
|
||||||
|
kw trait
|
||||||
|
kw match
|
||||||
|
kw while
|
||||||
|
kw loop
|
||||||
kw if
|
kw if
|
||||||
kw if let
|
kw if let
|
||||||
kw impl
|
|
||||||
kw let
|
kw let
|
||||||
kw loop
|
kw else
|
||||||
kw match
|
kw else if
|
||||||
kw mod
|
kw mod
|
||||||
kw return
|
kw const
|
||||||
kw static
|
|
||||||
kw trait
|
|
||||||
kw type
|
kw type
|
||||||
|
kw static
|
||||||
|
kw extern
|
||||||
kw unsafe
|
kw unsafe
|
||||||
kw use
|
kw return
|
||||||
kw while
|
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
check_edit(
|
check_edit(
|
||||||
|
@ -336,13 +336,13 @@ fn quux() -> i32 {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
|
kw match
|
||||||
|
kw while
|
||||||
|
kw loop
|
||||||
kw if
|
kw if
|
||||||
kw if let
|
kw if let
|
||||||
kw loop
|
|
||||||
kw match
|
|
||||||
kw return
|
|
||||||
kw unsafe
|
kw unsafe
|
||||||
kw while
|
kw return
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -352,8 +352,8 @@ fn quux() -> i32 {
|
||||||
check(
|
check(
|
||||||
r"trait My { <|> }",
|
r"trait My { <|> }",
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
kw const
|
|
||||||
kw fn
|
kw fn
|
||||||
|
kw const
|
||||||
kw type
|
kw type
|
||||||
kw unsafe
|
kw unsafe
|
||||||
"#]],
|
"#]],
|
||||||
|
@ -365,12 +365,12 @@ fn quux() -> i32 {
|
||||||
check(
|
check(
|
||||||
r"impl My { <|> }",
|
r"impl My { <|> }",
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
kw const
|
|
||||||
kw fn
|
kw fn
|
||||||
kw pub
|
kw const
|
||||||
kw pub(crate)
|
|
||||||
kw type
|
kw type
|
||||||
kw unsafe
|
kw unsafe
|
||||||
|
kw pub(crate)
|
||||||
|
kw pub
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -380,25 +380,25 @@ fn quux() -> i32 {
|
||||||
check(
|
check(
|
||||||
r"fn my() { loop { <|> } }",
|
r"fn my() { loop { <|> } }",
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
kw break
|
|
||||||
kw const
|
|
||||||
kw continue
|
|
||||||
kw extern
|
|
||||||
kw fn
|
kw fn
|
||||||
|
kw use
|
||||||
|
kw impl
|
||||||
|
kw trait
|
||||||
|
kw match
|
||||||
|
kw while
|
||||||
|
kw loop
|
||||||
kw if
|
kw if
|
||||||
kw if let
|
kw if let
|
||||||
kw impl
|
|
||||||
kw let
|
kw let
|
||||||
kw loop
|
|
||||||
kw match
|
|
||||||
kw mod
|
kw mod
|
||||||
kw return
|
kw const
|
||||||
kw static
|
|
||||||
kw trait
|
|
||||||
kw type
|
kw type
|
||||||
|
kw static
|
||||||
|
kw extern
|
||||||
kw unsafe
|
kw unsafe
|
||||||
kw use
|
kw continue
|
||||||
kw while
|
kw break
|
||||||
|
kw return
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -409,8 +409,8 @@ fn quux() -> i32 {
|
||||||
r"unsafe <|>",
|
r"unsafe <|>",
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
kw fn
|
kw fn
|
||||||
kw impl
|
|
||||||
kw trait
|
kw trait
|
||||||
|
kw impl
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -421,8 +421,8 @@ fn quux() -> i32 {
|
||||||
r"fn my_fn() { unsafe <|> }",
|
r"fn my_fn() { unsafe <|> }",
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
kw fn
|
kw fn
|
||||||
kw impl
|
|
||||||
kw trait
|
kw trait
|
||||||
|
kw impl
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -542,12 +542,12 @@ pub mod future {
|
||||||
check(
|
check(
|
||||||
r#"fn main() { let _ = <|> }"#,
|
r#"fn main() { let _ = <|> }"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
|
kw match
|
||||||
|
kw while
|
||||||
|
kw loop
|
||||||
kw if
|
kw if
|
||||||
kw if let
|
kw if let
|
||||||
kw loop
|
|
||||||
kw match
|
|
||||||
kw return
|
kw return
|
||||||
kw while
|
|
||||||
"#]],
|
"#]],
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -562,8 +562,8 @@ struct Foo {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
kw pub
|
|
||||||
kw pub(crate)
|
kw pub(crate)
|
||||||
|
kw pub
|
||||||
"#]],
|
"#]],
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -600,12 +600,12 @@ fn foo() {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
|
kw match
|
||||||
|
kw while
|
||||||
|
kw loop
|
||||||
kw if
|
kw if
|
||||||
kw if let
|
kw if let
|
||||||
kw loop
|
|
||||||
kw match
|
|
||||||
kw return
|
kw return
|
||||||
kw while
|
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,8 +170,8 @@ mod tests {
|
||||||
fn ignored_bar() {}
|
fn ignored_bar() {}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
md bar;
|
|
||||||
md foo;
|
md foo;
|
||||||
|
md bar;
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -207,8 +207,8 @@ mod tests {
|
||||||
fn ignored_bar() {}
|
fn ignored_bar() {}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
md bar;
|
|
||||||
md foo;
|
md foo;
|
||||||
|
md bar;
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,10 +66,10 @@ fn foo() {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
st Bar
|
|
||||||
en E
|
en E
|
||||||
ev X ()
|
|
||||||
ct Z
|
ct Z
|
||||||
|
st Bar
|
||||||
|
ev X ()
|
||||||
md m
|
md m
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
|
|
@ -315,20 +315,20 @@ fn main() {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
sn box Box::new(expr)
|
|
||||||
sn call function(expr)
|
|
||||||
sn dbg dbg!(expr)
|
|
||||||
sn dbgr dbg!(&expr)
|
|
||||||
sn if if expr {}
|
sn if if expr {}
|
||||||
sn let let
|
sn while while expr {}
|
||||||
sn letm let mut
|
|
||||||
sn match match expr {}
|
|
||||||
sn not !expr
|
sn not !expr
|
||||||
sn ok Ok(expr)
|
|
||||||
sn ref &expr
|
sn ref &expr
|
||||||
sn refm &mut expr
|
sn refm &mut expr
|
||||||
|
sn match match expr {}
|
||||||
|
sn box Box::new(expr)
|
||||||
|
sn ok Ok(expr)
|
||||||
sn some Some(expr)
|
sn some Some(expr)
|
||||||
sn while while expr {}
|
sn dbg dbg!(expr)
|
||||||
|
sn dbgr dbg!(&expr)
|
||||||
|
sn call function(expr)
|
||||||
|
sn let let
|
||||||
|
sn letm let mut
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -347,18 +347,18 @@ fn main() {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
sn box Box::new(expr)
|
|
||||||
sn call function(expr)
|
|
||||||
sn dbg dbg!(expr)
|
|
||||||
sn dbgr dbg!(&expr)
|
|
||||||
sn if if expr {}
|
sn if if expr {}
|
||||||
sn match match expr {}
|
sn while while expr {}
|
||||||
sn not !expr
|
sn not !expr
|
||||||
sn ok Ok(expr)
|
|
||||||
sn ref &expr
|
sn ref &expr
|
||||||
sn refm &mut expr
|
sn refm &mut expr
|
||||||
|
sn match match expr {}
|
||||||
|
sn box Box::new(expr)
|
||||||
|
sn ok Ok(expr)
|
||||||
sn some Some(expr)
|
sn some Some(expr)
|
||||||
sn while while expr {}
|
sn dbg dbg!(expr)
|
||||||
|
sn dbgr dbg!(&expr)
|
||||||
|
sn call function(expr)
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -373,17 +373,17 @@ fn main() {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
sn box Box::new(expr)
|
|
||||||
sn call function(expr)
|
|
||||||
sn dbg dbg!(expr)
|
|
||||||
sn dbgr dbg!(&expr)
|
|
||||||
sn let let
|
|
||||||
sn letm let mut
|
|
||||||
sn match match expr {}
|
|
||||||
sn ok Ok(expr)
|
|
||||||
sn ref &expr
|
sn ref &expr
|
||||||
sn refm &mut expr
|
sn refm &mut expr
|
||||||
|
sn match match expr {}
|
||||||
|
sn box Box::new(expr)
|
||||||
|
sn ok Ok(expr)
|
||||||
sn some Some(expr)
|
sn some Some(expr)
|
||||||
|
sn dbg dbg!(expr)
|
||||||
|
sn dbgr dbg!(&expr)
|
||||||
|
sn call function(expr)
|
||||||
|
sn let let
|
||||||
|
sn letm let mut
|
||||||
"#]],
|
"#]],
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -398,20 +398,20 @@ fn main() {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
sn box Box::new(expr)
|
|
||||||
sn call function(expr)
|
|
||||||
sn dbg dbg!(expr)
|
|
||||||
sn dbgr dbg!(&expr)
|
|
||||||
sn if if expr {}
|
sn if if expr {}
|
||||||
sn let let
|
sn while while expr {}
|
||||||
sn letm let mut
|
|
||||||
sn match match expr {}
|
|
||||||
sn not !expr
|
sn not !expr
|
||||||
sn ok Ok(expr)
|
|
||||||
sn ref &expr
|
sn ref &expr
|
||||||
sn refm &mut expr
|
sn refm &mut expr
|
||||||
|
sn match match expr {}
|
||||||
|
sn box Box::new(expr)
|
||||||
|
sn ok Ok(expr)
|
||||||
sn some Some(expr)
|
sn some Some(expr)
|
||||||
sn while while expr {}
|
sn dbg dbg!(expr)
|
||||||
|
sn dbgr dbg!(&expr)
|
||||||
|
sn call function(expr)
|
||||||
|
sn let let
|
||||||
|
sn letm let mut
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -199,22 +199,22 @@ use self::{foo::*, bar<|>};
|
||||||
check_builtin(
|
check_builtin(
|
||||||
r#"fn main() { let _: <|> = 92; }"#,
|
r#"fn main() { let _: <|> = 92; }"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
|
bt u32
|
||||||
bt bool
|
bt bool
|
||||||
bt char
|
bt u8
|
||||||
|
bt isize
|
||||||
|
bt u16
|
||||||
|
bt u64
|
||||||
|
bt u128
|
||||||
bt f32
|
bt f32
|
||||||
bt f64
|
|
||||||
bt i128
|
bt i128
|
||||||
bt i16
|
bt i16
|
||||||
bt i32
|
|
||||||
bt i64
|
|
||||||
bt i8
|
|
||||||
bt isize
|
|
||||||
bt str
|
bt str
|
||||||
bt u128
|
bt i64
|
||||||
bt u16
|
bt char
|
||||||
bt u32
|
bt f64
|
||||||
bt u64
|
bt i32
|
||||||
bt u8
|
bt i8
|
||||||
bt usize
|
bt usize
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
@ -279,8 +279,8 @@ struct Spam;
|
||||||
use crate::Sp<|>
|
use crate::Sp<|>
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
st Spam
|
|
||||||
md foo
|
md foo
|
||||||
|
st Spam
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -296,8 +296,8 @@ struct Spam;
|
||||||
use crate::{Sp<|>};
|
use crate::{Sp<|>};
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
st Spam
|
|
||||||
md foo
|
md foo
|
||||||
|
st Spam
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -330,8 +330,8 @@ enum E { Foo, Bar(i32) }
|
||||||
fn foo() { let _ = E::<|> }
|
fn foo() { let _ = E::<|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
ev Bar(…) (i32)
|
|
||||||
ev Foo ()
|
ev Foo ()
|
||||||
|
ev Bar(…) (i32)
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -353,10 +353,10 @@ impl S {
|
||||||
fn foo() { let _ = S::<|> }
|
fn foo() { let _ = S::<|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
ct C const C: i32 = 42;
|
|
||||||
ta T type T = i32;
|
|
||||||
fn a() fn a()
|
fn a() fn a()
|
||||||
me b(…) fn b(&self)
|
me b(…) fn b(&self)
|
||||||
|
ct C const C: i32 = 42;
|
||||||
|
ta T type T = i32;
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -381,9 +381,9 @@ mod m {
|
||||||
fn foo() { let _ = S::<|> }
|
fn foo() { let _ = S::<|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
|
fn public_method() pub(crate) fn public_method()
|
||||||
ct PUBLIC_CONST pub(crate) const PUBLIC_CONST: u32 = 1;
|
ct PUBLIC_CONST pub(crate) const PUBLIC_CONST: u32 = 1;
|
||||||
ta PublicType pub(crate) type PublicType = u32;
|
ta PublicType pub(crate) type PublicType = u32;
|
||||||
fn public_method() pub(crate) fn public_method()
|
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -503,14 +503,14 @@ trait Sub: Super {
|
||||||
fn foo<T: Sub>() { T::<|> }
|
fn foo<T: Sub>() { T::<|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
ct C2 const C2: ();
|
|
||||||
ct CONST const CONST: u8;
|
|
||||||
ta SubTy type SubTy;
|
ta SubTy type SubTy;
|
||||||
ta Ty type Ty;
|
ta Ty type Ty;
|
||||||
fn func() fn func()
|
ct C2 const C2: ();
|
||||||
me method(…) fn method(&self)
|
|
||||||
fn subfunc() fn subfunc()
|
fn subfunc() fn subfunc()
|
||||||
me submethod(…) fn submethod(&self)
|
me submethod(…) fn submethod(&self)
|
||||||
|
ct CONST const CONST: u8;
|
||||||
|
fn func() fn func()
|
||||||
|
me method(…) fn method(&self)
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -543,12 +543,12 @@ impl<T> Sub for Wrap<T> {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
ct C2 const C2: () = ();
|
|
||||||
ct CONST const CONST: u8 = 0;
|
|
||||||
ta SubTy type SubTy;
|
ta SubTy type SubTy;
|
||||||
ta Ty type Ty;
|
ta Ty type Ty;
|
||||||
|
ct CONST const CONST: u8 = 0;
|
||||||
fn func() fn func()
|
fn func() fn func()
|
||||||
me method(…) fn method(&self)
|
me method(…) fn method(&self)
|
||||||
|
ct C2 const C2: () = ();
|
||||||
fn subfunc() fn subfunc()
|
fn subfunc() fn subfunc()
|
||||||
me submethod(…) fn submethod(&self)
|
me submethod(…) fn submethod(&self)
|
||||||
"#]],
|
"#]],
|
||||||
|
@ -567,8 +567,8 @@ impl T { fn bar() {} }
|
||||||
fn main() { T::<|>; }
|
fn main() { T::<|>; }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
fn bar() fn bar()
|
|
||||||
fn foo() fn foo()
|
fn foo() fn foo()
|
||||||
|
fn bar() fn bar()
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -583,9 +583,9 @@ macro_rules! foo { () => {} }
|
||||||
fn main() { let _ = crate::<|> }
|
fn main() { let _ = crate::<|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r##"
|
expect![[r##"
|
||||||
|
fn main() fn main()
|
||||||
ma foo!(…) #[macro_export]
|
ma foo!(…) #[macro_export]
|
||||||
macro_rules! foo
|
macro_rules! foo
|
||||||
fn main() fn main()
|
|
||||||
"##]],
|
"##]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -603,8 +603,8 @@ mod a {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
ct A
|
|
||||||
md b
|
md b
|
||||||
|
ct A
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -628,8 +628,8 @@ mod p {
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
ct RIGHT_CONST
|
ct RIGHT_CONST
|
||||||
st RightType
|
|
||||||
fn right_fn() fn wrong_fn()
|
fn right_fn() fn wrong_fn()
|
||||||
|
st RightType
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -675,8 +675,8 @@ fn main() { m!(self::f<|>); }
|
||||||
fn foo() {}
|
fn foo() {}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
fn foo() fn foo()
|
|
||||||
fn main() fn main()
|
fn main() fn main()
|
||||||
|
fn foo() fn foo()
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -747,8 +747,8 @@ fn main() {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
fn foo(…) fn foo(a: i32, b: i32)
|
|
||||||
fn main() fn main()
|
fn main() fn main()
|
||||||
|
fn foo(…) fn foo(a: i32, b: i32)
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,9 +94,9 @@ fn process(f: S) {
|
||||||
check_snippet(
|
check_snippet(
|
||||||
test_code,
|
test_code,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
fd ..Default::default()
|
|
||||||
sn pd
|
sn pd
|
||||||
sn ppd
|
sn ppd
|
||||||
|
fd ..Default::default()
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -160,8 +160,8 @@ fn process(e: E) {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
fd bar ()
|
|
||||||
fd foo u32
|
fd foo u32
|
||||||
|
fd bar ()
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,9 +105,9 @@ mod tests {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
sn macro_rules
|
|
||||||
sn tfn (Test function)
|
|
||||||
sn tmod (Test module)
|
sn tmod (Test module)
|
||||||
|
sn tfn (Test function)
|
||||||
|
sn macro_rules
|
||||||
"#]],
|
"#]],
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -265,11 +265,11 @@ impl Test for T {
|
||||||
t<|>
|
t<|>
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![["
|
expect![[r#"
|
||||||
ct const TEST_CONST: u16 = \n\
|
ta type TestType =
|
||||||
|
ct const TEST_CONST: u16 =
|
||||||
fn fn test()
|
fn fn test()
|
||||||
ta type TestType = \n\
|
"#]],
|
||||||
"]],
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -268,9 +268,9 @@ fn quux(x: i32) {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
fn quux(…) fn quux(x: i32)
|
|
||||||
bn x i32
|
|
||||||
bn y i32
|
bn y i32
|
||||||
|
bn x i32
|
||||||
|
fn quux(…) fn quux(x: i32)
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -290,8 +290,8 @@ fn quux() {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
bn a
|
|
||||||
bn b i32
|
bn b i32
|
||||||
|
bn a
|
||||||
fn quux() fn quux()
|
fn quux() fn quux()
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
|
@ -306,8 +306,8 @@ fn quux() {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
fn quux() fn quux()
|
|
||||||
bn x
|
bn x
|
||||||
|
fn quux() fn quux()
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -348,9 +348,9 @@ fn main() {
|
||||||
check(
|
check(
|
||||||
r#"struct S<T> { x: <|>}"#,
|
r#"struct S<T> { x: <|>}"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
st S<…>
|
|
||||||
tp Self
|
tp Self
|
||||||
tp T
|
tp T
|
||||||
|
st S<…>
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -375,9 +375,9 @@ enum E {}
|
||||||
fn quux() { <|> }
|
fn quux() { <|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
en E
|
|
||||||
st S
|
st S
|
||||||
fn quux() fn quux()
|
fn quux() fn quux()
|
||||||
|
en E
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -429,8 +429,8 @@ mod m {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
st Bar
|
|
||||||
fn quux() fn quux()
|
fn quux() fn quux()
|
||||||
|
st Bar
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -475,8 +475,8 @@ fn foo() {
|
||||||
check(
|
check(
|
||||||
r#"impl S { fn foo(&self) { <|> } }"#,
|
r#"impl S { fn foo(&self) { <|> } }"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
tp Self
|
|
||||||
bn self &{unknown}
|
bn self &{unknown}
|
||||||
|
tp Self
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -495,9 +495,9 @@ use prelude::*;
|
||||||
mod prelude { struct Option; }
|
mod prelude { struct Option; }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
st Option
|
|
||||||
fn foo() fn foo()
|
fn foo() fn foo()
|
||||||
md std
|
md std
|
||||||
|
st Option
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -522,10 +522,10 @@ use prelude::*;
|
||||||
mod prelude { struct String; }
|
mod prelude { struct String; }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
st String
|
|
||||||
md core
|
|
||||||
fn foo() fn foo()
|
fn foo() fn foo()
|
||||||
md std
|
md std
|
||||||
|
md core
|
||||||
|
st String
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -551,13 +551,13 @@ mod m2 {
|
||||||
fn main() { let v = <|> }
|
fn main() { let v = <|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r##"
|
expect![[r##"
|
||||||
ma bar!(…) macro_rules! bar
|
md m1
|
||||||
ma baz!(…) #[macro_export]
|
ma baz!(…) #[macro_export]
|
||||||
macro_rules! baz
|
macro_rules! baz
|
||||||
ma foo!(…) macro_rules! foo
|
|
||||||
md m1
|
|
||||||
md m2
|
|
||||||
fn main() fn main()
|
fn main() fn main()
|
||||||
|
md m2
|
||||||
|
ma bar!(…) macro_rules! bar
|
||||||
|
ma foo!(…) macro_rules! foo
|
||||||
"##]],
|
"##]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -570,8 +570,8 @@ macro_rules! foo { () => {} }
|
||||||
fn foo() { <|> }
|
fn foo() { <|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
ma foo!(…) macro_rules! foo
|
|
||||||
fn foo() fn foo()
|
fn foo() fn foo()
|
||||||
|
ma foo!(…) macro_rules! foo
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -584,8 +584,8 @@ macro_rules! foo { () => {} }
|
||||||
fn main() { let x: <|> }
|
fn main() { let x: <|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
ma foo!(…) macro_rules! foo
|
|
||||||
fn main() fn main()
|
fn main() fn main()
|
||||||
|
ma foo!(…) macro_rules! foo
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -598,8 +598,8 @@ macro_rules! foo { () => {} }
|
||||||
fn main() { <|> }
|
fn main() { <|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
ma foo!(…) macro_rules! foo
|
|
||||||
fn main() fn main()
|
fn main() fn main()
|
||||||
|
ma foo!(…) macro_rules! foo
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -631,10 +631,10 @@ fn quux(x: i32) {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
ma m!(…) macro_rules! m
|
|
||||||
fn quux(…) fn quux(x: i32)
|
|
||||||
bn x i32
|
|
||||||
bn y i32
|
bn y i32
|
||||||
|
bn x i32
|
||||||
|
fn quux(…) fn quux(x: i32)
|
||||||
|
ma m!(…) macro_rules! m
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -650,10 +650,10 @@ fn quux(x: i32) {
|
||||||
}
|
}
|
||||||
",
|
",
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
ma m!(…) macro_rules! m
|
|
||||||
fn quux(…) fn quux(x: i32)
|
|
||||||
bn x i32
|
|
||||||
bn y i32
|
bn y i32
|
||||||
|
bn x i32
|
||||||
|
fn quux(…) fn quux(x: i32)
|
||||||
|
ma m!(…) macro_rules! m
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -669,10 +669,10 @@ fn quux(x: i32) {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
ma m!(…) macro_rules! m
|
|
||||||
fn quux(…) fn quux(x: i32)
|
|
||||||
bn x i32
|
|
||||||
bn y i32
|
bn y i32
|
||||||
|
bn x i32
|
||||||
|
fn quux(…) fn quux(x: i32)
|
||||||
|
ma m!(…) macro_rules! m
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -686,8 +686,8 @@ use spam::Quux;
|
||||||
fn main() { <|> }
|
fn main() { <|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
?? Quux
|
|
||||||
fn main() fn main()
|
fn main() fn main()
|
||||||
|
?? Quux
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -703,10 +703,10 @@ fn main() {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
en Foo
|
|
||||||
ev Foo::Bar ()
|
ev Foo::Bar ()
|
||||||
ev Foo::Baz ()
|
ev Foo::Baz ()
|
||||||
ev Foo::Quux ()
|
ev Foo::Quux ()
|
||||||
|
en Foo
|
||||||
"#]],
|
"#]],
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -723,10 +723,10 @@ fn main() {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
en Foo
|
|
||||||
ev Foo::Bar ()
|
ev Foo::Bar ()
|
||||||
ev Foo::Baz ()
|
ev Foo::Baz ()
|
||||||
ev Foo::Quux ()
|
ev Foo::Quux ()
|
||||||
|
en Foo
|
||||||
"#]],
|
"#]],
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -739,10 +739,10 @@ enum Foo { Bar, Baz, Quux }
|
||||||
fn main() { let foo: Foo = Q<|> }
|
fn main() { let foo: Foo = Q<|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
en Foo
|
|
||||||
ev Foo::Bar ()
|
ev Foo::Bar ()
|
||||||
ev Foo::Baz ()
|
ev Foo::Baz ()
|
||||||
ev Foo::Quux ()
|
ev Foo::Quux ()
|
||||||
|
en Foo
|
||||||
fn main() fn main()
|
fn main() fn main()
|
||||||
"#]],
|
"#]],
|
||||||
)
|
)
|
||||||
|
@ -756,9 +756,9 @@ mod m { pub enum E { V } }
|
||||||
fn f() -> m::E { V<|> }
|
fn f() -> m::E { V<|> }
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
fn f() fn f() -> m::E
|
|
||||||
md m
|
|
||||||
ev m::E::V ()
|
ev m::E::V ()
|
||||||
|
md m
|
||||||
|
fn f() fn f() -> m::E
|
||||||
"#]],
|
"#]],
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -785,9 +785,9 @@ struct MyStruct {}
|
||||||
impl My<|>
|
impl My<|>
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
st MyStruct
|
|
||||||
tt MyTrait
|
|
||||||
tp Self
|
tp Self
|
||||||
|
tt MyTrait
|
||||||
|
st MyStruct
|
||||||
"#]],
|
"#]],
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -919,13 +919,13 @@ fn main() {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
st FirstStruct
|
fn main() fn main()
|
||||||
st SecondStruct
|
st SecondStruct
|
||||||
|
st FirstStruct
|
||||||
md dep
|
md dep
|
||||||
st dep::some_module::ThirdStruct
|
st dep::some_module::ThirdStruct
|
||||||
st dep::some_module::AfterThirdStruct
|
st dep::some_module::AfterThirdStruct
|
||||||
st dep::some_module::ThiiiiiirdStruct
|
st dep::some_module::ThiiiiiirdStruct
|
||||||
fn main() fn main()
|
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,9 +47,8 @@ pub(crate) fn completion_list_with_config(
|
||||||
code: &str,
|
code: &str,
|
||||||
kind: CompletionKind,
|
kind: CompletionKind,
|
||||||
) -> String {
|
) -> String {
|
||||||
let mut kind_completions: Vec<CompletionItem> =
|
let kind_completions: Vec<CompletionItem> =
|
||||||
get_all_items(config, code).into_iter().filter(|c| c.completion_kind == kind).collect();
|
get_all_items(config, code).into_iter().filter(|c| c.completion_kind == kind).collect();
|
||||||
kind_completions.sort_by_key(|c| c.label().to_owned());
|
|
||||||
let label_width = kind_completions
|
let label_width = kind_completions
|
||||||
.iter()
|
.iter()
|
||||||
.map(|it| monospace_width(it.label()))
|
.map(|it| monospace_width(it.label()))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue