cargo/Cargo.toml
Alex Crichton 876a50366b fix: Iteratively apply suggestions from the compiler
This commit updates the `cargo fix` implementation to iteratively apply fixes
from the compiler instead of only once. Currently the compiler can sometimes
emit overlapping suggestions, such as in the case of transitioning

    ::foo::<::Bar>();

to ...

    crate::foo::<crate::Bar>();

and `rustfix` rightfully can't handle overlapping suggestions as there's no
clear way of how to disambiguate the fixes. To fix this problem Cargo will now
run `rustc` and `rustfix` multiple times, attempting to reach a steady state
where no fixes failed to apply.

Naturally this is a pretty tricky thing to do and we want to be sure that Cargo
doesn't loop forever, for example. A number of safeguards are in place to
prevent Cargo from going off into the weeds when fixing files, notably avoiding
to reattempt fixes if no successful fixes ended up being applied.

Closes #5813
Closes rust-lang/rust#52754
2018-07-31 14:20:58 -07:00

97 lines
1.9 KiB
TOML

[package]
name = "cargo"
version = "0.30.0"
authors = ["Yehuda Katz <wycats@gmail.com>",
"Carl Lerche <me@carllerche.com>",
"Alex Crichton <alex@alexcrichton.com>"]
license = "MIT OR Apache-2.0"
homepage = "https://crates.io"
repository = "https://github.com/rust-lang/cargo"
documentation = "https://docs.rs/cargo"
description = """
Cargo, a package manager for Rust.
"""
[lib]
name = "cargo"
path = "src/cargo/lib.rs"
[dependencies]
atty = "0.2"
crates-io = { path = "src/crates-io", version = "0.18" }
crossbeam-utils = "0.5"
crypto-hash = "0.3.1"
curl = "0.4.13"
env_logger = "0.5.4"
failure = "0.1.1"
filetime = "0.2"
flate2 = "1.0"
fs2 = "0.4"
git2 = "0.7.3"
git2-curl = "0.8.1"
glob = "0.2.11"
hex = "0.3"
home = "0.3"
ignore = "0.4"
lazy_static = "1.0.0"
jobserver = "0.1.11"
lazycell = "1.0"
libc = "0.2"
log = "0.4"
libgit2-sys = "0.7.5"
num_cpus = "1.0"
rustfix = "0.4.2"
same-file = "1"
semver = { version = "0.9.0", features = ["serde"] }
serde = "1.0"
serde_derive = "1.0"
serde_ignored = "0.0.4"
serde_json = "1.0"
shell-escape = "0.1"
tar = { version = "0.4.15", default-features = false }
tempfile = "3.0"
termcolor = "1.0"
toml = "0.4.2"
url = "1.1"
clap = "2.31.2"
unicode-width = "0.1.5"
# Not actually needed right now but required to make sure that rls/cargo build
# with the same set of features in rust-lang/rust
num-traits = "0.2" # enable the default feature
[target.'cfg(target_os = "macos")'.dependencies]
core-foundation = { version = "0.6.0", features = ["mac_os_10_7_support"] }
[target.'cfg(windows)'.dependencies]
miow = "0.3.1"
[target.'cfg(windows)'.dependencies.winapi]
version = "0.3"
features = [
"basetsd",
"handleapi",
"jobapi",
"jobapi2",
"memoryapi",
"minwindef",
"ntdef",
"ntstatus",
"processenv",
"processthreadsapi",
"psapi",
"synchapi",
"winerror",
"winbase",
"wincon",
"winnt",
]
[dev-dependencies]
bufstream = "0.1"
[[bin]]
name = "cargo"
test = false
doc = false