File tree Expand file tree Collapse file tree 3 files changed +22
-24
lines changed Expand file tree Collapse file tree 3 files changed +22
-24
lines changed Original file line number Diff line number Diff line change @@ -110,6 +110,13 @@ mod tests {
110
110
assert_eq ! ( expected, FileRange { file_id: nav. file_id, range: nav. focus_or_full_range( ) } ) ;
111
111
}
112
112
113
+ fn check_unresolved ( ra_fixture : & str ) {
114
+ let ( analysis, position) = fixture:: position ( ra_fixture) ;
115
+ let navs = analysis. goto_definition ( position) . unwrap ( ) . expect ( "no definition found" ) . info ;
116
+
117
+ assert ! ( navs. is_empty( ) , "didn't expect this to resolve anywhere: {:?}" , navs)
118
+ }
119
+
113
120
#[ test]
114
121
fn goto_def_for_extern_crate ( ) {
115
122
check (
@@ -927,17 +934,12 @@ fn f() -> impl Iterator<Item$0 = u8> {}
927
934
}
928
935
929
936
#[ test]
930
- #[ should_panic = "unresolved reference" ]
931
937
fn unknown_assoc_ty ( ) {
932
- check (
938
+ check_unresolved (
933
939
r#"
934
- trait Iterator {
935
- type Item;
936
- //^^^^
937
- }
938
-
940
+ trait Iterator { type Item; }
939
941
fn f() -> impl Iterator<Invalid$0 = u8> {}
940
- "#,
942
+ "# ,
941
943
)
942
944
}
943
945
Original file line number Diff line number Diff line change @@ -66,26 +66,12 @@ mod tests {
66
66
}
67
67
68
68
#[ test]
69
- #[ should_panic]
70
69
fn flip_comma_before_punct ( ) {
71
70
// See https://github.com/rust-analyzer/rust-analyzer/issues/1619
72
71
// "Flip comma" assist shouldn't be applicable to the last comma in enum or struct
73
72
// declaration body.
74
- check_assist_target (
75
- flip_comma,
76
- "pub enum Test { \
77
- A,$0 \
78
- }",
79
- "," ,
80
- ) ;
81
-
82
- check_assist_target (
83
- flip_comma,
84
- "pub struct Test { \
85
- foo: usize,$0 \
86
- }",
87
- "," ,
88
- ) ;
73
+ check_assist_not_applicable ( flip_comma, "pub enum Test { A,$0 }" ) ;
74
+ check_assist_not_applicable ( flip_comma, "pub struct Test { foo: usize,$0 }" ) ;
89
75
}
90
76
91
77
#[ test]
Original file line number Diff line number Diff line change @@ -152,6 +152,16 @@ Do not reuse marks between several tests.
152
152
153
153
** Rationale:** marks provide an easy way to find the canonical test for each bit of code.
154
154
This makes it much easier to understand.
155
+ More than one mark per test / code branch doesn't add significantly to understanding.
156
+
157
+ ## ` #[should_panic] `
158
+
159
+ Do not use ` #[should_panic] ` tests.
160
+ Instead, explicitly check for ` None ` , ` Err ` , etc.
161
+
162
+ ** Rationale:** a ` #[should_panic] ` is a tool for library authors, to makes sure that API does not fail silently, when misused.
163
+ ` rust-analyzer ` is not a library, we don't need to test for API misuse, and we have to handle any user input without panics.
164
+ Panic messages in the logs from the ` #[should_panic] ` tests are confusing.
155
165
156
166
## Function Preconditions
157
167
You can’t perform that action at this time.
0 commit comments