You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
I was updating the turtle crate to the 2018 edition (following the instructions in the guide) and I got the error message below. It instructed me to open this issue, and I always do whatever rustc says, so here you go. 😄
$ cargo fix --edition-idioms --features test --broken-code --allow-dirty
Checking turtle v1.0.0-rc.3 (/home/sunjay/Documents/projects/turtle)
warning: failed to automatically apply fixes suggested by rustc to crate `turtle`
after fixes were automatically applied the compiler reported errors within these files:
* src/color.rs
* src/lib.rs
* src/point.rs
* src/rand.rs
* src/speed.rs
This likely indicates a bug in either rustc or cargo itself,
and we would appreciate a bug report! You're likely to see
a number of compiler warnings after this message which cargo
attempted to fix but failed. If you could open an issue at
https://github.com/rust-lang/rust/issues
quoting the full output of this command we'd be very appreciative!
Note that you may be able to make some more progress in the near-term
fixing code with the `--broken-code` flag
The following errors were reported:
error[E0433]: failed to resolve: could not find `distributions` in `self`
--> src/rand.rs:197:11
|
197 | use self::distributions::range::SampleRange;
| ^^^^^^^^^^^^^ could not find `distributions` in `self`
error[E0432]: unresolved import `crate::rand_crate::*`
--> src/rand.rs:195:9
|
195 | pub use crate::rand_crate::*;
| ^^^^^^^^^^^^^^^^^^^^ Cannot glob-import a module into itself.
error[E0432]: unresolved import `crate::rand::random`
--> src/lib.rs:89:23
|
89 | pub use crate::rand::{random, random_range};
| ^^^^^^ no `random` in `rand`
error[E0432]: unresolved imports `crate::rand::distributions`, `crate::rand::Rng`
--> src/point.rs:5:5
|
5 | distributions::{Distribution, Standard},
| ^^^^^^^^^^^^^ could not find `distributions` in `rand`
6 | RandomRange, Rng,
| ^^^ no `Rng` in `rand`
error[E0432]: unresolved imports `crate::rand::distributions`, `crate::rand::Rng`
--> src/speed.rs:8:5
|
8 | distributions::{Distribution, Standard},
| ^^^^^^^^^^^^^ could not find `distributions` in `rand`
9 | Rng,
| ^^^ no `Rng` in `rand`
error[E0432]: unresolved imports `crate::rand::distributions`, `crate::rand::Rng`
--> src/color.rs:163:5
|
163 | distributions::{Distribution, Standard},
| ^^^^^^^^^^^^^ could not find `distributions` in `rand`
164 | Rng,
| ^^^ no `Rng` in `rand`
error[E0405]: cannot find trait `Rng` in this scope
--> src/rand.rs:200:24
|
200 | fn random_range<R: Rng>(rng: &mut R, low: Self, high: Self) -> Self;
| ^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
195 | use rand::Rng;
|
195 | use rand::prelude::Rng;
|
error[E0405]: cannot find trait `SampleRange` in this scope
--> src/rand.rs:205:21
|
205 | T: PartialOrd + SampleRange,
| ^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
|
195 | use rand::distributions::range::SampleRange;
|
error[E0405]: cannot find trait `Rng` in this scope
--> src/rand.rs:207:24
|
207 | fn random_range<R: Rng>(rng: &mut R, low: T, high: T) -> T {
| ^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
195 | use rand::Rng;
|
195 | use rand::prelude::Rng;
|
error[E0425]: cannot find function `thread_rng` in this scope
--> src/rand.rs:236:19
|
236 | let mut rng = thread_rng();
| ^^^^^^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
195 | use rand::prelude::thread_rng;
|
195 | use rand::thread_rng;
|
error[E0659]: `rand` is ambiguous (name vs any other name during import resolution)
--> src/lib.rs:51:5
|
51 | use rand as rand_crate;
| ^^^^ ambiguous name
|
= note: `rand` could refer to an extern crate passed with `--extern`
= help: use `::rand` to refer to this extern crate unambiguously
note: `rand` could also refer to the module defined here
--> src/lib.rs:83:1
|
83 | pub mod rand;
| ^^^^^^^^^^^^^
= help: use `crate::rand` to refer to this module unambiguously
warning: unused import: `serde_json`
--> src/lib.rs:47:5
|
47 | use serde_json;
| ^^^^^^^^^^
|
= note: #[warn(unused_imports)] on by default
warning: unused import: `self::distributions::range::SampleRange`
--> src/rand.rs:197:5
|
197 | use self::distributions::range::SampleRange;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 11 previous errors
Some errors occurred: E0405, E0425, E0432, E0433, E0659.
For more information about an error, try `rustc --explain E0405`.
Original diagnostics will follow.
error[E0432]: unresolved import `crate::rand_crate::*`
--> src/rand.rs:195:9
|
195 | pub use crate::rand_crate::*;
| ^^^^^^^^^^^^^^^^^^^^ Cannot glob-import a module into itself.
error[E0432]: unresolved import `crate::rand::random`
--> src/lib.rs:89:23
|
89 | pub use crate::rand::{random, random_range};
| ^^^^^^ no `random` in `rand`
error[E0432]: unresolved imports `crate::rand::distributions`, `crate::rand::Rng`
--> src/point.rs:5:5
|
5 | distributions::{Distribution, Standard},
| ^^^^^^^^^^^^^ could not find `distributions` in `rand`
6 | RandomRange, Rng,
| ^^^ no `Rng` in `rand`
error[E0432]: unresolved imports `crate::rand::distributions`, `crate::rand::Rng`
--> src/speed.rs:8:5
|
8 | distributions::{Distribution, Standard},
| ^^^^^^^^^^^^^ could not find `distributions` in `rand`
9 | Rng,
| ^^^ no `Rng` in `rand`
error[E0432]: unresolved imports `crate::rand::distributions`, `crate::rand::Rng`
--> src/color.rs:163:5
|
163 | distributions::{Distribution, Standard},
| ^^^^^^^^^^^^^ could not find `distributions` in `rand`
164 | Rng,
| ^^^ no `Rng` in `rand`
warning: failed to automatically apply fixes suggested by rustc to crate `turtle`
after fixes were automatically applied the compiler reported errors within these files:
* src/color.rs
* src/lib.rs
* src/point.rs
* src/rand.rs
* src/speed.rs
This likely indicates a bug in either rustc or cargo itself,
and we would appreciate a bug report! You're likely to see
a number of compiler warnings after this message which cargo
attempted to fix but failed. If you could open an issue at
https://github.com/rust-lang/rust/issues
quoting the full output of this command we'd be very appreciative!
Note that you may be able to make some more progress in the near-term
fixing code with the `--broken-code` flag
The following errors were reported:
error[E0432]: unresolved import `crate::rand_crate::*`
--> src/rand.rs:195:9
|
195 | pub use crate::rand_crate::*;
| ^^^^^^^^^^^^^^^^^^^^ Cannot glob-import a module into itself.
error[E0432]: unresolved import `crate::rand::random`
--> src/lib.rs:89:23
|
89 | pub use crate::rand::{random, random_range};
| ^^^^^^ no `random` in `rand`
error[E0432]: unresolved imports `crate::rand::distributions`, `crate::rand::Rng`
--> src/point.rs:5:5
|
5 | distributions::{Distribution, Standard},
| ^^^^^^^^^^^^^ could not find `distributions` in `rand`
6 | RandomRange, Rng,
| ^^^ no `Rng` in `rand`
error[E0432]: unresolved imports `crate::rand::distributions`, `crate::rand::Rng`
--> src/speed.rs:8:5
|
8 | distributions::{Distribution, Standard},
| ^^^^^^^^^^^^^ could not find `distributions` in `rand`
9 | Rng,
| ^^^ no `Rng` in `rand`
error[E0432]: unresolved imports `crate::rand::distributions`, `crate::rand::Rng`
--> src/color.rs:163:5
|
163 | distributions::{Distribution, Standard},
| ^^^^^^^^^^^^^ could not find `distributions` in `rand`
164 | Rng,
| ^^^ no `Rng` in `rand`
error[E0405]: cannot find trait `Rng` in this scope
--> src/rand.rs:200:24
|
200 | fn random_range<R: Rng>(rng: &mut R, low: Self, high: Self) -> Self;
| ^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
195 | use rand::Rng;
|
195 | use rand::prelude::Rng;
|
error[E0405]: cannot find trait `SampleRange` in this scope
--> src/rand.rs:205:21
|
205 | T: PartialOrd + SampleRange,
| ^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
|
195 | use rand::distributions::range::SampleRange;
|
error[E0405]: cannot find trait `Rng` in this scope
--> src/rand.rs:207:24
|
207 | fn random_range<R: Rng>(rng: &mut R, low: T, high: T) -> T {
| ^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
195 | use rand::Rng;
|
195 | use rand::prelude::Rng;
|
error[E0425]: cannot find function `thread_rng` in this scope
--> src/rand.rs:236:19
|
236 | let mut rng = thread_rng();
| ^^^^^^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
195 | use rand::prelude::thread_rng;
|
195 | use rand::thread_rng;
|
error[E0659]: `rand` is ambiguous (name vs any other name during import resolution)
--> src/lib.rs:51:5
|
51 | use rand as rand_crate;
| ^^^^ ambiguous name
|
= note: `rand` could refer to an extern crate passed with `--extern`
= help: use `::rand` to refer to this extern crate unambiguously
note: `rand` could also refer to the module defined here
--> src/lib.rs:83:1
|
83 | pub mod rand;
| ^^^^^^^^^^^^^
= help: use `crate::rand` to refer to this module unambiguously
error: aborting due to 10 previous errors
Some errors occurred: E0405, E0425, E0432, E0659.
For more information about an error, try `rustc --explain E0405`.
Original diagnostics will follow.
error[E0405]: cannot find trait `Rng` in this scope
--> src/rand.rs:200:24
|
200 | fn random_range<R: Rng>(rng: &mut R, low: Self, high: Self) -> Self;
| ^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
195 | use rand::Rng;
|
195 | use rand::prelude::Rng;
|
error[E0405]: cannot find trait `SampleRange` in this scope
--> src/rand.rs:205:21
|
205 | T: PartialOrd + SampleRange,
| ^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
|
195 | use rand::distributions::range::SampleRange;
|
error[E0405]: cannot find trait `Rng` in this scope
--> src/rand.rs:207:24
|
207 | fn random_range<R: Rng>(rng: &mut R, low: T, high: T) -> T {
| ^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
195 | use rand::Rng;
|
195 | use rand::prelude::Rng;
|
error[E0425]: cannot find function `thread_rng` in this scope
--> src/rand.rs:236:19
|
236 | let mut rng = thread_rng();
| ^^^^^^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
195 | use rand::prelude::thread_rng;
|
195 | use rand::thread_rng;
|
error[E0659]: `rand` is ambiguous (name vs any other name during import resolution)
--> src/lib.rs:51:5
|
51 | use rand as rand_crate;
| ^^^^ ambiguous name
|
= note: `rand` could refer to an extern crate passed with `--extern`
= help: use `::rand` to refer to this extern crate unambiguously
note: `rand` could also refer to the module defined here
--> src/lib.rs:83:1
|
83 | pub mod rand;
| ^^^^^^^^^^^^^
= help: use `crate::rand` to refer to this module unambiguously
error: aborting due to 10 previous errors
Some errors occurred: E0405, E0425, E0432, E0659.
For more information about an error, try `rustc --explain E0405`.
error: Could not compile `turtle`.
warning: build failed, waiting for other jobs to finish...
error[E0432]: unresolved import `crate::rand_crate::*`
--> src/rand.rs:195:9
|
195 | pub use crate::rand_crate::*;
| ^^^^^^^^^^^^^^^^^^^^ Cannot glob-import a module into itself.
error[E0432]: unresolved import `crate::rand::random`
--> src/lib.rs:89:23
|
89 | pub use crate::rand::{random, random_range};
| ^^^^^^ no `random` in `rand`
error[E0432]: unresolved imports `crate::rand::distributions`, `crate::rand::Rng`
--> src/point.rs:5:5
|
5 | distributions::{Distribution, Standard},
| ^^^^^^^^^^^^^ could not find `distributions` in `rand`
6 | RandomRange, Rng,
| ^^^ no `Rng` in `rand`
error[E0432]: unresolved imports `crate::rand::distributions`, `crate::rand::Rng`
--> src/speed.rs:8:5
|
8 | distributions::{Distribution, Standard},
| ^^^^^^^^^^^^^ could not find `distributions` in `rand`
9 | Rng,
| ^^^ no `Rng` in `rand`
error[E0432]: unresolved imports `crate::rand::distributions`, `crate::rand::Rng`
--> src/color.rs:163:5
|
163 | distributions::{Distribution, Standard},
| ^^^^^^^^^^^^^ could not find `distributions` in `rand`
164 | Rng,
| ^^^ no `Rng` in `rand`
error[E0405]: cannot find trait `Rng` in this scope
--> src/rand.rs:200:24
|
200 | fn random_range<R: Rng>(rng: &mut R, low: Self, high: Self) -> Self;
| ^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
195 | use rand::Rng;
|
195 | use rand::prelude::Rng;
|
error[E0405]: cannot find trait `SampleRange` in this scope
--> src/rand.rs:205:21
|
205 | T: PartialOrd + SampleRange,
| ^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
|
195 | use rand::distributions::range::SampleRange;
|
error[E0405]: cannot find trait `Rng` in this scope
--> src/rand.rs:207:24
|
207 | fn random_range<R: Rng>(rng: &mut R, low: T, high: T) -> T {
| ^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
195 | use rand::Rng;
|
195 | use rand::prelude::Rng;
|
error[E0425]: cannot find function `thread_rng` in this scope
--> src/rand.rs:236:19
|
236 | let mut rng = thread_rng();
| ^^^^^^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
|
195 | use rand::prelude::thread_rng;
|
195 | use rand::thread_rng;
|
error[E0659]: `rand` is ambiguous (name vs any other name during import resolution)
--> src/lib.rs:51:5
|
51 | use rand as rand_crate;
| ^^^^ ambiguous name
|
= note: `rand` could refer to an extern crate passed with `--extern`
= help: use `::rand` to refer to this extern crate unambiguously
note: `rand` could also refer to the module defined here
--> src/lib.rs:83:1
|
83 | pub mod rand;
| ^^^^^^^^^^^^^
= help: use `crate::rand` to refer to this module unambiguously
error: aborting due to 10 previous errors
Some errors occurred: E0405, E0425, E0432, E0659.
For more information about an error, try `rustc --explain E0405`.
error: Could not compile `turtle`.
To learn more, run the command again with --verbose.
I think a lot of these have to do with me renaming the rand crate to rand_crate using extern crate rand as rand_crate. This caused a lot of issues because cargo fix --edition removed that line without adequately replacing it everywhere.
Hi,
I was updating the turtle crate to the 2018 edition (following the instructions in the guide) and I got the error message below. It instructed me to open this issue, and I always do whatever rustc says, so here you go. 😄
I think a lot of these have to do with me renaming the rand crate to
rand_crate
usingextern crate rand as rand_crate
. This caused a lot of issues becausecargo fix --edition
removed that line without adequately replacing it everywhere.Here's a link to the source code just before I started the upgrade: https://github.com/sunjay/turtle/tree/05a5fa118b154c5504bfc9fb770081c2846dd80d
The text was updated successfully, but these errors were encountered: