diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-06-11 16:30:05 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-06-11 16:30:05 +0100 |
commit | bd61ad756cc0a7bfeaa5dae81ac5ab50a2e71697 (patch) | |
tree | 382ff970758f62c2d4322c6daf2071b8543133f0 /crates/ra_ide | |
parent | 7c617000b832354ea405a9543276505c1c7e6a0a (diff) | |
parent | 215e229dd1a495cda6541371c75145ba03f62de5 (diff) |
Merge #4849
4849: Make known paths use `core` instead of `std` r=matklad a=jonas-schievink
I'm not sure if this causes problems today, but it seems like it easily could, if rust-analyzer processes the libstd sources for the right `--target` and that target is a `#![no_std]`-only target.
Co-authored-by: Jonas Schievink <[email protected]>
Diffstat (limited to 'crates/ra_ide')
-rw-r--r-- | crates/ra_ide/src/diagnostics.rs | 56 |
1 files changed, 22 insertions, 34 deletions
diff --git a/crates/ra_ide/src/diagnostics.rs b/crates/ra_ide/src/diagnostics.rs index bf14a467f..f44feaf69 100644 --- a/crates/ra_ide/src/diagnostics.rs +++ b/crates/ra_ide/src/diagnostics.rs | |||
@@ -321,29 +321,26 @@ mod tests { | |||
321 | fn test_wrap_return_type() { | 321 | fn test_wrap_return_type() { |
322 | let before = r#" | 322 | let before = r#" |
323 | //- /main.rs | 323 | //- /main.rs |
324 | use std::{string::String, result::Result::{self, Ok, Err}}; | 324 | use core::result::Result::{self, Ok, Err}; |
325 | 325 | ||
326 | fn div(x: i32, y: i32) -> Result<i32, String> { | 326 | fn div(x: i32, y: i32) -> Result<i32, ()> { |
327 | if y == 0 { | 327 | if y == 0 { |
328 | return Err("div by zero".into()); | 328 | return Err(()); |
329 | } | 329 | } |
330 | x / y<|> | 330 | x / y<|> |
331 | } | 331 | } |
332 | 332 | ||
333 | //- /std/lib.rs | 333 | //- /core/lib.rs |
334 | pub mod string { | ||
335 | pub struct String { } | ||
336 | } | ||
337 | pub mod result { | 334 | pub mod result { |
338 | pub enum Result<T, E> { Ok(T), Err(E) } | 335 | pub enum Result<T, E> { Ok(T), Err(E) } |
339 | } | 336 | } |
340 | "#; | 337 | "#; |
341 | let after = r#" | 338 | let after = r#" |
342 | use std::{string::String, result::Result::{self, Ok, Err}}; | 339 | use core::result::Result::{self, Ok, Err}; |
343 | 340 | ||
344 | fn div(x: i32, y: i32) -> Result<i32, String> { | 341 | fn div(x: i32, y: i32) -> Result<i32, ()> { |
345 | if y == 0 { | 342 | if y == 0 { |
346 | return Err("div by zero".into()); | 343 | return Err(()); |
347 | } | 344 | } |
348 | Ok(x / y) | 345 | Ok(x / y) |
349 | } | 346 | } |
@@ -355,7 +352,7 @@ mod tests { | |||
355 | fn test_wrap_return_type_handles_generic_functions() { | 352 | fn test_wrap_return_type_handles_generic_functions() { |
356 | let before = r#" | 353 | let before = r#" |
357 | //- /main.rs | 354 | //- /main.rs |
358 | use std::result::Result::{self, Ok, Err}; | 355 | use core::result::Result::{self, Ok, Err}; |
359 | 356 | ||
360 | fn div<T>(x: T) -> Result<T, i32> { | 357 | fn div<T>(x: T) -> Result<T, i32> { |
361 | if x == 0 { | 358 | if x == 0 { |
@@ -364,13 +361,13 @@ mod tests { | |||
364 | <|>x | 361 | <|>x |
365 | } | 362 | } |
366 | 363 | ||
367 | //- /std/lib.rs | 364 | //- /core/lib.rs |
368 | pub mod result { | 365 | pub mod result { |
369 | pub enum Result<T, E> { Ok(T), Err(E) } | 366 | pub enum Result<T, E> { Ok(T), Err(E) } |
370 | } | 367 | } |
371 | "#; | 368 | "#; |
372 | let after = r#" | 369 | let after = r#" |
373 | use std::result::Result::{self, Ok, Err}; | 370 | use core::result::Result::{self, Ok, Err}; |
374 | 371 | ||
375 | fn div<T>(x: T) -> Result<T, i32> { | 372 | fn div<T>(x: T) -> Result<T, i32> { |
376 | if x == 0 { | 373 | if x == 0 { |
@@ -386,32 +383,29 @@ mod tests { | |||
386 | fn test_wrap_return_type_handles_type_aliases() { | 383 | fn test_wrap_return_type_handles_type_aliases() { |
387 | let before = r#" | 384 | let before = r#" |
388 | //- /main.rs | 385 | //- /main.rs |
389 | use std::{string::String, result::Result::{self, Ok, Err}}; | 386 | use core::result::Result::{self, Ok, Err}; |
390 | 387 | ||
391 | type MyResult<T> = Result<T, String>; | 388 | type MyResult<T> = Result<T, ()>; |
392 | 389 | ||
393 | fn div(x: i32, y: i32) -> MyResult<i32> { | 390 | fn div(x: i32, y: i32) -> MyResult<i32> { |
394 | if y == 0 { | 391 | if y == 0 { |
395 | return Err("div by zero".into()); | 392 | return Err(()); |
396 | } | 393 | } |
397 | x <|>/ y | 394 | x <|>/ y |
398 | } | 395 | } |
399 | 396 | ||
400 | //- /std/lib.rs | 397 | //- /core/lib.rs |
401 | pub mod string { | ||
402 | pub struct String { } | ||
403 | } | ||
404 | pub mod result { | 398 | pub mod result { |
405 | pub enum Result<T, E> { Ok(T), Err(E) } | 399 | pub enum Result<T, E> { Ok(T), Err(E) } |
406 | } | 400 | } |
407 | "#; | 401 | "#; |
408 | let after = r#" | 402 | let after = r#" |
409 | use std::{string::String, result::Result::{self, Ok, Err}}; | 403 | use core::result::Result::{self, Ok, Err}; |
410 | 404 | ||
411 | type MyResult<T> = Result<T, String>; | 405 | type MyResult<T> = Result<T, ()>; |
412 | fn div(x: i32, y: i32) -> MyResult<i32> { | 406 | fn div(x: i32, y: i32) -> MyResult<i32> { |
413 | if y == 0 { | 407 | if y == 0 { |
414 | return Err("div by zero".into()); | 408 | return Err(()); |
415 | } | 409 | } |
416 | Ok(x / y) | 410 | Ok(x / y) |
417 | } | 411 | } |
@@ -423,16 +417,13 @@ mod tests { | |||
423 | fn test_wrap_return_type_not_applicable_when_expr_type_does_not_match_ok_type() { | 417 | fn test_wrap_return_type_not_applicable_when_expr_type_does_not_match_ok_type() { |
424 | let content = r#" | 418 | let content = r#" |
425 | //- /main.rs | 419 | //- /main.rs |
426 | use std::{string::String, result::Result::{self, Ok, Err}}; | 420 | use core::result::Result::{self, Ok, Err}; |
427 | 421 | ||
428 | fn foo() -> Result<String, i32> { | 422 | fn foo() -> Result<(), i32> { |
429 | 0<|> | 423 | 0<|> |
430 | } | 424 | } |
431 | 425 | ||
432 | //- /std/lib.rs | 426 | //- /core/lib.rs |
433 | pub mod string { | ||
434 | pub struct String { } | ||
435 | } | ||
436 | pub mod result { | 427 | pub mod result { |
437 | pub enum Result<T, E> { Ok(T), Err(E) } | 428 | pub enum Result<T, E> { Ok(T), Err(E) } |
438 | } | 429 | } |
@@ -444,7 +435,7 @@ mod tests { | |||
444 | fn test_wrap_return_type_not_applicable_when_return_type_is_not_result() { | 435 | fn test_wrap_return_type_not_applicable_when_return_type_is_not_result() { |
445 | let content = r#" | 436 | let content = r#" |
446 | //- /main.rs | 437 | //- /main.rs |
447 | use std::{string::String, result::Result::{self, Ok, Err}}; | 438 | use core::result::Result::{self, Ok, Err}; |
448 | 439 | ||
449 | enum SomeOtherEnum { | 440 | enum SomeOtherEnum { |
450 | Ok(i32), | 441 | Ok(i32), |
@@ -455,10 +446,7 @@ mod tests { | |||
455 | 0<|> | 446 | 0<|> |
456 | } | 447 | } |
457 | 448 | ||
458 | //- /std/lib.rs | 449 | //- /core/lib.rs |
459 | pub mod string { | ||
460 | pub struct String { } | ||
461 | } | ||
462 | pub mod result { | 450 | pub mod result { |
463 | pub enum Result<T, E> { Ok(T), Err(E) } | 451 | pub enum Result<T, E> { Ok(T), Err(E) } |
464 | } | 452 | } |