Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit d48606f

Browse files
committed
unroll test loop
1 parent 5e6d646 commit d48606f

File tree

1 file changed

+131
-60
lines changed

1 file changed

+131
-60
lines changed

crates/ide-completion/src/tests/type_pos.rs

Lines changed: 131 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -715,8 +715,8 @@ pub struct S;
715715

716716
#[test]
717717
fn completes_const_and_type_generics_separately() {
718-
let type_completion_cases = [
719-
// Function
718+
// Function generic params
719+
check(
720720
r#"
721721
struct Foo;
722722
const X: usize = 0;
@@ -725,45 +725,48 @@ fn main() {
725725
foo::<F$0, _>();
726726
}
727727
"#,
728-
// Method
728+
expect![[r#"
729+
en Enum
730+
ma makro!(…) macro_rules! makro
731+
md module
732+
st Foo
733+
st Record
734+
st Tuple
735+
st Unit
736+
tt Trait
737+
un Union
738+
bt u32
739+
kw crate::
740+
kw self::
741+
"#]],
742+
);
743+
check(
729744
r#"
730-
const X: usize = 0;
731745
struct Foo;
732-
impl Foo { fn bar<const N: usize, T>(self) {} }
746+
const X: usize = 0;
747+
fn foo<T, const N: usize>() {}
733748
fn main() {
734-
Foo.bar::<_, $0>();
749+
foo::<_, $0>();
735750
}
736751
"#,
737-
];
738-
739-
for case in type_completion_cases {
740-
check(
741-
case,
742-
expect![[r#"
743-
en Enum
744-
ma makro!(…) macro_rules! makro
745-
md module
746-
st Foo
747-
st Record
748-
st Tuple
749-
st Unit
750-
tt Trait
751-
un Union
752-
bt u32
753-
kw crate::
754-
kw self::
755-
"#]],
756-
)
757-
}
752+
expect![[r#"
753+
ct CONST
754+
ct X
755+
ma makro!(…) macro_rules! makro
756+
kw crate::
757+
kw self::
758+
"#]],
759+
);
758760

761+
// Method generic params
759762
check(
760763
r#"
761764
const X: usize = 0;
762765
struct Foo;
763-
trait Bar {
764-
type Baz<T, const X: usize>;
766+
impl Foo { fn bar<const N: usize, T>(self) {} }
767+
fn main() {
768+
Foo.bar::<_, $0>();
765769
}
766-
fn foo(_: impl Bar<Baz<F$0, 0> = ()>) {}
767770
"#,
768771
expect![[r#"
769772
en Enum
@@ -773,35 +776,58 @@ fn foo(_: impl Bar<Baz<F$0, 0> = ()>) {}
773776
st Record
774777
st Tuple
775778
st Unit
776-
tt Bar
777779
tt Trait
778780
un Union
779781
bt u32
780782
kw crate::
781783
kw self::
782784
"#]],
783785
);
784-
785-
let const_completion_cases = [
786-
// Function params
786+
check(
787787
r#"
788-
struct Foo;
789788
const X: usize = 0;
790-
fn foo<T, const N: usize>() {}
789+
struct Foo;
790+
impl Foo { fn bar<const N: usize, T>(self) {} }
791791
fn main() {
792-
foo::<_, $0>();
792+
Foo.bar::<X$0, _>();
793793
}
794794
"#,
795-
// Method params
795+
expect![[r#"
796+
ct CONST
797+
ct X
798+
ma makro!(…) macro_rules! makro
799+
kw crate::
800+
kw self::
801+
"#]],
802+
);
803+
804+
// Associated type generic params
805+
check(
796806
r#"
797807
const X: usize = 0;
798808
struct Foo;
799-
impl Foo { fn bar<const N: usize, T>(self) {} }
800-
fn main() {
801-
Foo.bar::<X$0, _>();
809+
trait Bar {
810+
type Baz<T, const X: usize>;
802811
}
812+
fn foo(_: impl Bar<Baz<F$0, 0> = ()>) {}
803813
"#,
804-
// Associated type params
814+
expect![[r#"
815+
en Enum
816+
ma makro!(…) macro_rules! makro
817+
md module
818+
st Foo
819+
st Record
820+
st Tuple
821+
st Unit
822+
tt Bar
823+
tt Trait
824+
un Union
825+
bt u32
826+
kw crate::
827+
kw self::
828+
"#]],
829+
);
830+
check(
805831
r#"
806832
const X: usize = 0;
807833
struct Foo;
@@ -810,15 +836,35 @@ trait Bar {
810836
}
811837
fn foo<T: Bar<Baz<(), $0> = ()>>() {}
812838
"#,
813-
// Type params
839+
expect![[r#"
840+
ct CONST
841+
ct X
842+
ma makro!(…) macro_rules! makro
843+
kw crate::
844+
kw self::
845+
"#]],
846+
);
847+
848+
// Type generic params
849+
check(
814850
r#"
815851
const X: usize = 0;
816852
struct Foo<T, const N: usize>(T);
817853
fn main() {
818854
let _: Foo::<_, $0> = Foo(());
819855
}
820856
"#,
821-
// Enum variant params
857+
expect![[r#"
858+
ct CONST
859+
ct X
860+
ma makro!(…) macro_rules! makro
861+
kw crate::
862+
kw self::
863+
"#]],
864+
);
865+
866+
// Type alias generic params
867+
check(
822868
r#"
823869
const X: usize = 0;
824870
struct Foo<T, const N: usize>(T);
@@ -827,39 +873,64 @@ fn main() {
827873
let _: Bar::<X$0, _> = Bar(());
828874
}
829875
"#,
876+
expect![[r#"
877+
ct CONST
878+
ct X
879+
ma makro!(…) macro_rules! makro
880+
kw crate::
881+
kw self::
882+
"#]],
883+
);
884+
885+
// Enum variant params
886+
check(
830887
r#"
831888
const X: usize = 0;
832889
enum Foo<T, const N: usize> { A(T), B }
833890
fn main() {
834891
Foo::B::<(), $0>;
835892
}
836893
"#,
837-
// Trait params
894+
expect![[r#"
895+
ct CONST
896+
ct X
897+
ma makro!(…) macro_rules! makro
898+
kw crate::
899+
kw self::
900+
"#]],
901+
);
902+
903+
// Trait params
904+
check(
838905
r#"
839906
const X: usize = 0;
840907
trait Foo<T, const N: usize> {}
841908
impl Foo<(), $0> for () {}
842909
"#,
843-
// Trait alias params
910+
expect![[r#"
911+
ct CONST
912+
ct X
913+
ma makro!(…) macro_rules! makro
914+
kw crate::
915+
kw self::
916+
"#]],
917+
);
918+
919+
// Trait alias params
920+
check(
844921
r#"
845922
#![feature(trait_alias)]
846923
const X: usize = 0;
847924
trait Foo<T, const N: usize> {}
848925
trait Bar<const M: usize, U> = Foo<U, M>;
849926
fn foo<T: Bar<X$0, ()>>() {}
850927
"#,
851-
];
852-
853-
for case in const_completion_cases {
854-
check(
855-
case,
856-
expect![[r#"
857-
ct CONST
858-
ct X
859-
ma makro!(…) macro_rules! makro
860-
kw crate::
861-
kw self::
862-
"#]],
863-
);
864-
}
928+
expect![[r#"
929+
ct CONST
930+
ct X
931+
ma makro!(…) macro_rules! makro
932+
kw crate::
933+
kw self::
934+
"#]],
935+
);
865936
}

0 commit comments

Comments
 (0)