Expand description
Library for applying diagnostic suggestions to source code.
This is a low-level library. You pass it the JSON output from rustc
,
and you can then use it to apply suggestions to in-memory strings.
This library doesn’t execute commands, or read or write from the filesystem.
If you are looking for the cargo fix
implementation, the core of it is
located in cargo::ops::fix
.
The general outline of how to use this library is:
- Call
rustc
and collect the JSON data. - Pass the json data to
get_suggestions_from_json
. - Create a
CodeFix
with the source of a file to modify. - Call
CodeFix::apply
to apply a change. - Call
CodeFix::finish
to get the result and write it back to disk.
This crate is maintained by the Cargo team, primarily for use by Cargo and Rust compiler test suite and not intended for external use (except as a transitive dependency). This crate may make major changes to its APIs or be deprecated without warning.
Modules§
- Rustc Diagnostic JSON Output.
- error 🔒Error types.
- replace 🔒A small module giving you a simple container that allows easy and cheap replacement of parts of its content, with the ability to commit or rollback pending changes.
Structs§
- Represents a code fix. This doesn’t write to disks but is only in memory.
- Represents a replacement of a
snippet
. - Represents code that will get replaced.
- Solution to a diagnostic item.
- An error/warning and possible solutions for fixing it
Enums§
- A filter to control which suggestion should be applied.
Functions§
- Applies multiple
suggestions
to the givencode
, handling certain conflicts automatically. - Converts a
DiagnosticSpan
into aReplacement
. - Collects code
Suggestion
s from a single compiler diagnostic line. - Collects code
Suggestion
s from one or more compiler diagnostic lines. - Converts a
DiagnosticSpan
to aSnippet
.