@@ -167,6 +167,13 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
167
167
let unused = ();
168
168
42
169
169
}
170
+ #[cfg(test)]
171
+ mod test {
172
+ #[test]
173
+ fn my_test() {
174
+ let test_val: u32 = super::fetch_u32();
175
+ }
176
+ }
170
177
"# )
171
178
. file ( "binary/Cargo.toml" , r#"
172
179
[package]
@@ -198,16 +205,17 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
198
205
rls. expect_messages ( & [
199
206
ExpectedMessage :: new ( Some ( 0 ) ) . expect_contains ( "capabilities" ) ,
200
207
ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
201
- ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) ,
202
- ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) ,
203
- ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) ,
204
- ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) ,
208
+ ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
209
+ ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
210
+ ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
211
+ ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
205
212
ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#""done":true"# ) ,
206
213
ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Indexing""# ) ,
207
214
] ) ;
208
215
rls. expect_messages_unordered ( & [
209
216
ExpectedMessage :: new ( None ) . expect_contains ( "publishDiagnostics" ) . expect_contains ( "library/src/lib.rs" )
210
- . expect_contains ( "unused variable: `unused`" ) ,
217
+ . expect_contains ( "unused variable: `unused`" )
218
+ . expect_contains ( "unused variable: `test_val`" ) ,
211
219
ExpectedMessage :: new ( None ) . expect_contains ( "publishDiagnostics" ) . expect_contains ( "binary/src/main.rs" )
212
220
. expect_contains ( "unused variable: `val`" ) ,
213
221
] ) ;
@@ -229,7 +237,7 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
229
237
}
230
238
} ,
231
239
"rangeLength" : 3 ,
232
- "text" : "invalid_return_type "
240
+ "text" : "u64 "
233
241
}
234
242
] ,
235
243
"textDocument" : {
@@ -242,14 +250,17 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
242
250
ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
243
251
ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
244
252
ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
245
- ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) . expect_contains ( r#""done":true"# ) ,
253
+ ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
254
+ ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
255
+ ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#""done":true"# ) ,
246
256
ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Indexing""# ) ,
247
257
] ) ;
248
258
rls. expect_messages_unordered ( & [
249
259
ExpectedMessage :: new ( None ) . expect_contains ( "publishDiagnostics" ) . expect_contains ( "library/src/lib.rs" )
250
- . expect_contains ( "cannot find type `invalid_return_type` in this scope" ) ,
260
+ . expect_contains ( "unused variable: `unused`" ) // Regular lib compiles
261
+ . expect_contains ( "expected u32, found u64" ) , // lib unit tests have compile errors
251
262
ExpectedMessage :: new ( None ) . expect_contains ( "publishDiagnostics" ) . expect_contains ( "binary/src/main.rs" )
252
- . expect_contains ( "unused variable: `val` " ) ,
263
+ . expect_contains ( "expected u32, found u64 " ) , // bin depending on lib picks up type mismatch
253
264
] ) ;
254
265
rls. expect_messages ( & [
255
266
ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Indexing""# ) . expect_contains ( r#""done":true"# ) ,
@@ -265,10 +276,10 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
265
276
} ,
266
277
"end" : {
267
278
"line" : 1 ,
268
- "character" : 57 ,
279
+ "character" : 41 ,
269
280
}
270
281
} ,
271
- "rangeLength" : 19 ,
282
+ "rangeLength" : 3 ,
272
283
"text" : "u32"
273
284
}
274
285
] ,
@@ -279,6 +290,8 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
279
290
} ) ) ) . unwrap ( ) ;
280
291
281
292
rls. expect_messages ( & [
293
+ ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
294
+ ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
282
295
ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
283
296
ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
284
297
ExpectedMessage :: new ( None ) . expect_contains ( "progress" ) . expect_contains ( r#"title":"Building""# ) ,
@@ -287,7 +300,8 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
287
300
] ) ;
288
301
rls. expect_messages_unordered ( & [
289
302
ExpectedMessage :: new ( None ) . expect_contains ( "publishDiagnostics" ) . expect_contains ( "library/src/lib.rs" )
290
- . expect_contains ( "unused variable: `unused`" ) ,
303
+ . expect_contains ( "unused variable: `unused`" )
304
+ . expect_contains ( "unused variable: `test_val`" ) ,
291
305
ExpectedMessage :: new ( None ) . expect_contains ( "publishDiagnostics" ) . expect_contains ( "binary/src/main.rs" )
292
306
. expect_contains ( "unused variable: `val`" ) ,
293
307
] ) ;
0 commit comments