'\" t
.\"     Title: cargo-fix
.\"    Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 1.5.8
.\"      Date: 2019-04-16
.\"    Manual: \ \&
.\"    Source: \ \&
.\"  Language: English
.\"
.TH "CARGO\-FIX" "1" "2019-04-16" "\ \&" "\ \&"
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
.  mso www.tmac
.  am URL
.    ad l
.  .
.  am MTO
.    ad l
.  .
.  LINKSTYLE blue R < >
.\}
.SH "NAME"
cargo\-fix \- Automatically fix lint warnings reported by rustc
.SH "SYNOPSIS"
.sp
\fBcargo fix [\fIOPTIONS\fP]\fP
.SH "DESCRIPTION"
.sp
This Cargo subcommand will automatically take rustc\(cqs suggestions from
diagnostics like warnings and apply them to your source code. This is intended
to help automate tasks that rustc itself already knows how to tell you to fix!
The \fBcargo fix\fP subcommand is also being developed for the Rust 2018 edition
to provide code the ability to easily opt\-in to the new edition without having
to worry about any breakage.
.sp
Executing \fBcargo fix\fP will under the hood execute \fBcargo\-check\fP(1). Any warnings
applicable to your crate will be automatically fixed (if possible) and all
remaining warnings will be displayed when the check process is finished. For
example if you\(cqd like to prepare for the 2018 edition, you can do so by
executing:
.sp
.if n .RS 4
.nf
cargo fix \-\-edition
.fi
.if n .RE
.sp
which behaves the same as \fBcargo check \-\-all\-targets\fP. Similarly if you\(cqd like
to fix code for different platforms you can do:
.sp
.if n .RS 4
.nf
cargo fix \-\-edition \-\-target x86_64\-pc\-windows\-gnu
.fi
.if n .RE
.sp
or if your crate has optional features:
.sp
.if n .RS 4
.nf
cargo fix \-\-edition \-\-no\-default\-features \-\-features foo
.fi
.if n .RE
.sp
If you encounter any problems with \fBcargo fix\fP or otherwise have any questions
or feature requests please don\(cqt hesitate to file an issue at
.URL "https://github.com/rust\-lang/cargo" "" ""
.SH "OPTIONS"
.SS "Fix options"
.sp
\fB\-\-broken\-code\fP
.RS 4
Fix code even if it already has compiler errors. This is useful if \fBcargo
fix\fP fails to apply the changes. It will apply the changes and leave the
broken code in the working directory for you to inspect and manually fix.
.RE
.sp
\fB\-\-edition\fP
.RS 4
Apply changes that will update the code to the latest edition. This will
not update the edition in the \fBCargo.toml\fP manifest, which must be updated
manually.
.RE
.sp
\fB\-\-edition\-idioms\fP
.RS 4
Apply suggestions that will update code to the preferred style for the
current edition.
.RE
.sp
\fB\-\-allow\-no\-vcs\fP
.RS 4
Fix code even if a VCS was not detected.
.RE
.sp
\fB\-\-allow\-dirty\fP
.RS 4
Fix code even if the working directory has changes.
.RE
.sp
\fB\-\-allow\-staged\fP
.RS 4
Fix code even if the working directory has staged changes.
.RE
.SS "Package Selection"
.sp
By default, when no package selection options are given, the packages selected
depend on the current working directory. In the root of a virtual workspace,
all workspace members are selected (\fB\-\-all\fP is implied). Otherwise, only the
package in the current directory will be selected. The default packages may be
overridden with the \fBworkspace.default\-members\fP key in the root \fBCargo.toml\fP
manifest.
.sp
\fB\-p\fP \fISPEC\fP..., \fB\-\-package\fP \fISPEC\fP...
.RS 4
Fix only the specified packages. See \fBcargo\-pkgid\fP(1) for the
SPEC format. This flag may be specified multiple times.
.RE
.sp
\fB\-\-all\fP
.RS 4
Fix all members in the workspace.
.RE
.sp
\fB\-\-exclude\fP \fISPEC\fP...
.RS 4
Exclude the specified packages. Must be used in conjunction with the
\fB\-\-all\fP flag. This flag may be specified multiple times.
.RE
.SS "Target Selection"
.sp
When no target selection options are given, \fBcargo fix\fP will fix all targets
(\fB\-\-all\-targets\fP implied). Binaries are skipped if they have
\fBrequired\-features\fP that are missing.
.sp
Passing target selection flags will fix only the
specified targets.
.sp
\fB\-\-lib\fP
.RS 4
Fix the package\(cqs library.
.RE
.sp
\fB\-\-bin\fP \fINAME\fP...
.RS 4
Fix the specified binary. This flag may be specified multiple times.
.RE
.sp
\fB\-\-bins\fP
.RS 4
Fix all binary targets.
.RE
.sp
\fB\-\-example\fP \fINAME\fP...
.RS 4
Fix the specified example. This flag may be specified multiple times.
.RE
.sp
\fB\-\-examples\fP
.RS 4
Fix all example targets.
.RE
.sp
\fB\-\-test\fP \fINAME\fP...
.RS 4
Fix the specified integration test. This flag may be specified multiple
times.
.RE
.sp
\fB\-\-tests\fP
.RS 4
Fix all targets in test mode that have the \fBtest = true\fP manifest
flag set. By default this includes the library and binaries built as
unittests, and integration tests. Be aware that this will also build any
required dependencies, so the lib target may be built twice (once as a
unittest, and once as a dependency for binaries, integration tests, etc.).
Targets may be enabled or disabled by setting the \fBtest\fP flag in the
manifest settings for the target.
.RE
.sp
\fB\-\-bench\fP \fINAME\fP...
.RS 4
Fix the specified benchmark. This flag may be specified multiple times.
.RE
.sp
\fB\-\-benches\fP
.RS 4
Fix all targets in benchmark mode that have the \fBbench = true\fP
manifest flag set. By default this includes the library and binaries built
as benchmarks, and bench targets. Be aware that this will also build any
required dependencies, so the lib target may be built twice (once as a
benchmark, and once as a dependency for binaries, benchmarks, etc.).
Targets may be enabled or disabled by setting the \fBbench\fP flag in the
manifest settings for the target.
.RE
.sp
\fB\-\-all\-targets\fP
.RS 4
Fix all targets. This is equivalent to specifying \fB\-\-lib \-\-bins
\-\-tests \-\-benches \-\-examples\fP.
.RE
.SS "Feature Selection"
.sp
When no feature options are given, the \fBdefault\fP feature is activated for
every selected package.
.sp
\fB\-\-features\fP \fIFEATURES\fP
.RS 4
Space or comma separated list of features to activate. These features only
apply to the current directory\(cqs package. Features of direct dependencies
may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
.RE
.sp
\fB\-\-all\-features\fP
.RS 4
Activate all available features of all selected packages.
.RE
.sp
\fB\-\-no\-default\-features\fP
.RS 4
Do not activate the \fBdefault\fP feature of the current directory\(cqs
package.
.RE
.SS "Compilation Options"
.sp
\fB\-\-target\fP \fITRIPLE\fP
.RS 4
Fix for the given architecture. The default is the host
architecture. The general format of the triple is
\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
list of supported targets.
.sp
This may also be specified with the \fBbuild.target\fP
.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
.RE
.sp
\fB\-\-release\fP
.RS 4
Fix optimized artifacts with the \fBrelease\fP profile. See the
PROFILES section for details on how this affects profile selection.
.RE
.sp
\fB\-\-profile\fP \fINAME\fP
.RS 4
Changes fix behavior. Currently only \fBtest\fP is
supported, which will fix with the
\fB#[cfg(test)]\fP attribute enabled. This is useful to have it
fix unit tests which are usually excluded via
the \fBcfg\fP attribute. This does not change the actual profile used.
.RE
.SS "Output Options"
.sp
\fB\-\-target\-dir\fP \fIDIRECTORY\fP
.RS 4
Directory for all generated artifacts and intermediate files. May also be
specified with the \fBCARGO_TARGET_DIR\fP environment variable, or the
\fBbuild.target\-dir\fP \c
.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
Defaults
to \fBtarget\fP in the root of the workspace.
.RE
.SS "Display Options"
.sp
\fB\-v\fP, \fB\-\-verbose\fP
.RS 4
Use verbose output. May be specified twice for "very verbose" output which
includes extra output such as dependency warnings and build script output.
May also be specified with the \fBterm.verbose\fP
.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
.RE
.sp
\fB\-q\fP, \fB\-\-quiet\fP
.RS 4
No output printed to stdout.
.RE
.sp
\fB\-\-color\fP \fIWHEN\fP
.RS 4
Control when colored output is used. Valid values:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
\fBauto\fP (default): Automatically detect if color support is available on the
terminal.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
\fBalways\fP: Always display colors.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
\fBnever\fP: Never display colors.
.RE
.sp
May also be specified with the \fBterm.color\fP
.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
.RE
.sp
\fB\-\-message\-format\fP \fIFMT\fP
.RS 4
The output format for diagnostic messages. Valid values:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
\fBhuman\fP (default): Display in a human\-readable text format.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
\fBjson\fP: Emit JSON messages to stdout.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.  sp -1
.  IP \(bu 2.3
.\}
\fBshort\fP: Emit shorter, human\-readable text messages.
.RE
.RE
.SS "Manifest Options"
.sp
\fB\-\-manifest\-path\fP \fIPATH\fP
.RS 4
Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
directory or any parent directory for the \fBCargo.toml\fP file.
.RE
.sp
\fB\-\-frozen\fP, \fB\-\-locked\fP
.RS 4
Either of these flags requires that the \fBCargo.lock\fP file is
up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
attempting to access the network to determine if it is out\-of\-date.
.sp
These may be used in environments where you want to assert that the
\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
access.
.RE
.sp
\fB\-\-offline\fP
.RS 4
Prevents Cargo from accessing the network for any reason. Without this
flag, Cargo will stop with an error if it needs to access the network and
the network is not available. With this flag, Cargo will attempt to
proceed without the network if possible.
.sp
Beware that this may result in different dependency resolution than online
mode. Cargo will restrict itself to crates that are downloaded locally, even
if there might be a newer version as indicated in the local copy of the index.
See the \fBcargo\-fetch\fP(1) command to download dependencies before going
offline.
.sp
May also be specified with the \fBnet.offline\fP \c
.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
.RE
.SS "Common Options"
.sp
\fB\-h\fP, \fB\-\-help\fP
.RS 4
Prints help information.
.RE
.sp
\fB\-Z\fP \fIFLAG\fP...
.RS 4
Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
details.
.RE
.SS "Miscellaneous Options"
.sp
\fB\-j\fP \fIN\fP, \fB\-\-jobs\fP \fIN\fP
.RS 4
Number of parallel jobs to run. May also be specified with the
\fBbuild.jobs\fP \c
.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
Defaults to
the number of CPUs.
.RE
.SH "PROFILES"
.sp
Profiles may be used to configure compiler options such as optimization levels
and debug settings. See
\c
.URL "https://doc.rust\-lang.org/cargo/reference/manifest.html#the\-profile\-sections" "the reference"
for more details.
.sp
Profile selection depends on the target and crate being built. By default the
\fBdev\fP or \fBtest\fP profiles are used. If the \fB\-\-release\fP flag is given, then the
\fBrelease\fP or \fBbench\fP profiles are used.
.TS
allbox tab(:);
lt lt lt.
T{
.sp
Target
T}:T{
.sp
Default Profile
T}:T{
.sp
\fB\-\-release\fP Profile
T}
T{
.sp
lib, bin, example
T}:T{
.sp
\fBdev\fP
T}:T{
.sp
\fBrelease\fP
T}
T{
.sp
test, bench, or any target
.br
in "test" or "bench" mode
T}:T{
.sp
\fBtest\fP
T}:T{
.sp
\fBbench\fP
T}
.TE
.sp
.sp
Dependencies use the \fBdev\fP/\fBrelease\fP profiles.
.SH "ENVIRONMENT"
.sp
See \c
.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
for
details on environment variables that Cargo reads.
.SH "EXIT STATUS"
.sp
0
.RS 4
Cargo succeeded.
.RE
.sp
101
.RS 4
Cargo failed to complete.
.RE
.SH "EXAMPLES"
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.  sp -1
.  IP " 1." 4.2
.\}
Apply compiler suggestions to the local package:
.sp
.if n .RS 4
.nf
cargo fix
.fi
.if n .RE
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.  sp -1
.  IP " 2." 4.2
.\}
Convert a 2015 edition to 2018:
.sp
.if n .RS 4
.nf
cargo fix \-\-edition
.fi
.if n .RE
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 3.\h'+01'\c
.\}
.el \{\
.  sp -1
.  IP " 3." 4.2
.\}
Apply suggested idioms for the current edition:
.sp
.if n .RS 4
.nf
cargo fix \-\-edition\-idioms
.fi
.if n .RE
.RE
.SH "SEE ALSO"
.sp
\fBcargo\fP(1), \fBcargo\-check\fP(1)