summaryrefslogtreecommitdiff
path: root/plugins/rust
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/rust')
-rw-r--r--plugins/rust/_rust67
1 files changed, 52 insertions, 15 deletions
diff --git a/plugins/rust/_rust b/plugins/rust/_rust
index f4e8f6f78..6e3f344cd 100644
--- a/plugins/rust/_rust
+++ b/plugins/rust/_rust
@@ -15,59 +15,93 @@ _rustc_crate_types=(
'lib'
'rlib'
'dylib'
+ 'cdylib'
'staticlib'
+ 'proc-macro'
)
_rustc_emit_types=(
'asm'
- 'bc'
- 'ir'
+ 'llvm-bc'
+ 'llvm-ir'
'obj'
+ 'metadata'
'link'
+ 'dep-info'
+ 'mir'
+)
+_rustc_print_types=(
+ 'crate-name'
+ 'file-names'
+ 'sysroot'
+ 'cfg'
+ 'target-list'
+ 'target-cpus'
+ 'target-features'
+ 'relocation-models'
+ 'code-models'
+ 'target-spec-json'
+ 'native-static-libs'
)
_rustc_pretty_types=(
'normal[un-annotated source]'
'expanded[crates expanded]'
- 'typed[crates expanded, with type annotations]'
- 'identified[fully parenthesized, AST nodes and blocks with IDs]'
+ 'expanded,identified[fully parenthesized, AST nodes with IDs]'
+)
+_rustc_unpretty_types=(
+ 'normal[un-annotated source]'
+ 'expanded[crates expanded]'
+ 'expanded,identified[fully parenthesized, AST nodes with IDs]'
'flowgraph=[graphviz formatted flowgraph for node]:NODEID:'
+ 'everybody_loops[all function bodies replaced with `loop {}`]'
+ 'hir[the HIR]'
+ 'hir,identified'
+ 'hir,typed[HIR with types for each node]'
)
_rustc_color_types=(
'auto[colorize, if output goes to a tty (default)]'
'always[always colorize output]'
'never[never colorize output]'
)
+_rustc_error_format=(
+ 'human'
+ 'json'
+)
_rustc_opts_vals=(
+ --cfg='[Configure the compilation environment]:SPEC:'
+ -L'[Add a directory to the library search path]:DIR:_files -/'
--crate-name='[Specify the name of the crate being built]'
--crate-type='[Comma separated list of types of crates for the compiler to emit]:TYPES:_values -s "," "Crate types" "$_rustc_crate_types[@]"'
--emit='[Comma separated list of types of output for the compiler to emit]:TYPES:_values -s "," "Emit Targets" "$_rustc_emit_types[@]"'
+ --print='[Comma separated list of compiler information to print on stdout]:TYPES:_values -s "," "Printable info" "$_rustc_print_types[@]"'
+ -o'[Write output to <filename>. Ignored if more than one --emit is specified.]:FILENAME:_files'
+ --out-dir='[Write output to compiler-chosen filename in <dir>. Ignored if -o is specified. (default the current directory)]:DIR:_files -/'
+ --explain='[Provide a detailed explanation of an error message]:OPT:'
+ --target='[Target triple cpu-manufacturer-kernel\[-os\] to compile]:TRIPLE:'
+ --extern'[Specify where an external rust library is located]:ARG:'
+ --sysroot='[Override the system root]:PATH:_files -/'
+ --error-format='[How errors and other messages are produced]:TYPES:_values "$_rustc_error_format"'
--debuginfo='[Emit DWARF debug info to the objects created]:LEVEL:_values "Debug Levels" "$_rustc_debuginfo_levels[@]"'
--dep-info='[Output dependency info to <filename> after compiling]::FILE:_files -/'
- --sysroot='[Override the system root]:PATH:_files -/'
- --cfg='[Configure the compilation environment]:SPEC:'
- --out-dir='[Write output to compiler-chosen filename in <dir>. Ignored if -o is specified. (default the current directory)]:DIR:_files -/'
- -o'[Write output to <filename>. Ignored if more than one --emit is specified.]:FILENAME:_files'
--opt-level='[Optimize with possible levels 0-3]:LEVEL:(0 1 2 3)'
--pretty='[Pretty-print the input instead of compiling]::TYPE:_values "TYPES" "$_rustc_pretty_types[@]"'
- -L'[Add a directory to the library search path]:DIR:_files -/'
- --target='[Target triple cpu-manufacturer-kernel\[-os\] to compile]:TRIPLE:'
+ --unpretty='[Present the input source, unstable (and less-pretty)]::TYPE:_values "TYPES" "$_rustc_unpretty_types[@]"'
--color='[Configure coloring of output]:CONF:_values "COLORS" "$_rustc_color_types[@]"'
- {-v,--version}'[Print version info and exit]::VERBOSE:(verbose)'
- --explain='[Provide a detailed explanation of an error message]:OPT:'
- --extern'[Specify where an external rust library is located]:ARG:'
)
_rustc_opts_switches=(
-g'[Equivalent to --debuginfo=2]'
+ -O'[Equivalent to --opt-level=2]'
+ --test'[Build a test harness]'
+ {-v,--verbose}'[Use verbose output]'
+ {-V,--version}'[Print version info and exit]'
{-h,--help}'[Display this message]'
--no-analysis'[Parse and expand the output, but run no analysis or produce output]'
--no-trans'[Run all passes except translation; no output]'
- -O'[Equivalent to --opt-level=2]'
--parse-only'[Parse only; do not compile, assemble, or link]'
--print-crate-name'[Output the crate name and exit]'
--print-file-name'[Output the file(s) that would be written if compilation continued and exit]'
- --test'[Build a test harness]'
)
_rustc_opts_codegen=(
'ar=[Path to the archive utility to use when assembling archives.]:BIN:_path_files'
@@ -139,6 +173,9 @@ _rustc_opts_lint=(
_rustc_opts_debug=(
'verbose[in general, enable more debug printouts]'
+ 'span-free-formats[when debug-printing compiler state, do not include spans]'
+ "identify-regions[make unnamed regions display as '# (where # is some non-ident unique id)]"
+ 'emit-end-regions[emit EndRegion as part of MIR; enable transforms that solely process EndRegion]'
'time-passes[measure time of each rustc pass]'
'count-llvm-insns[count where LLVM instrs originate]'
'time-llvm-passes[measure time of each LLVM pass]'