Add tests for the trait bound flip assist.
Co-authored-by: vlthr <vlthr@users.noreply.github.com>
This commit is contained in:
parent
3a64a85a52
commit
fc2fc8528b
1 changed files with 76 additions and 0 deletions
|
|
@ -30,3 +30,79 @@ pub(crate) fn flip_trait_bound(mut ctx: AssistCtx<impl HirDatabase>) -> Option<A
|
||||||
|
|
||||||
ctx.build()
|
ctx.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
use crate::helpers::{check_assist, check_assist_not_applicable, check_assist_target};
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn flip_trait_bound_assist_available() {
|
||||||
|
check_assist_target(flip_trait_bound, "struct S<T> where T: A <|>+ B + C { }", "+")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn flip_trait_bound_not_applicable_for_single_trait_bound() {
|
||||||
|
check_assist_not_applicable(flip_trait_bound, "struct S<T> where T: <|>A { }")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn flip_trait_bound_works_for_struct() {
|
||||||
|
check_assist(
|
||||||
|
flip_trait_bound,
|
||||||
|
"struct S<T> where T: A <|>+ B { }",
|
||||||
|
"struct S<T> where T: B <|>+ A { }",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn flip_trait_bound_works_for_trait_impl() {
|
||||||
|
check_assist(
|
||||||
|
flip_trait_bound,
|
||||||
|
"impl X for S<T> where T: A +<|> B { }",
|
||||||
|
"impl X for S<T> where T: B +<|> A { }",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn flip_trait_bound_works_for_fn() {
|
||||||
|
check_assist(flip_trait_bound, "fn f<T: A <|>+ B>(t: T) { }", "fn f<T: B <|>+ A>(t: T) { }")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn flip_trait_bound_works_for_fn_where_clause() {
|
||||||
|
check_assist(
|
||||||
|
flip_trait_bound,
|
||||||
|
"fn f<T>(t: T) where T: A +<|> B { }",
|
||||||
|
"fn f<T>(t: T) where T: B +<|> A { }",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn flip_trait_bound_works_for_lifetime() {
|
||||||
|
check_assist(
|
||||||
|
flip_trait_bound,
|
||||||
|
"fn f<T>(t: T) where T: A <|>+ 'static { }",
|
||||||
|
"fn f<T>(t: T) where T: 'static <|>+ A { }",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn flip_trait_bound_works_for_complex_bounds() {
|
||||||
|
check_assist(
|
||||||
|
flip_trait_bound,
|
||||||
|
"struct S<T> where T: A<T> <|>+ b_mod::B<T> + C<T> { }",
|
||||||
|
"struct S<T> where T: b_mod::B<T> <|>+ A<T> + C<T> { }",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn flip_trait_bound_works_for_long_bounds() {
|
||||||
|
check_assist(
|
||||||
|
flip_trait_bound,
|
||||||
|
"struct S<T> where T: A + B + C + D + E + F +<|> G + H + I + J { }",
|
||||||
|
"struct S<T> where T: A + B + C + D + E + G +<|> F + H + I + J { }",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue