Skip to content

Commit 33f1654

Browse files
committed
---
yaml --- r: 155260 b: refs/heads/try2 c: 81ee358 h: refs/heads/master v: v3
1 parent 6238386 commit 33f1654

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+972
-1051
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: cf9c586fccb1063ea6f75609c702df909d4ac3f1
8+
refs/heads/try2: 81ee3586b5d75497af25e77756be8f629d711aaf
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/etc/zsh/_rust

Lines changed: 131 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -4,109 +4,166 @@ local -a _rustc_opts_switches _rustc_opts_lint _rustc_opts_debug
44

55
typeset -A opt_args
66

7+
_rustc_debuginfo_levels=(
8+
"0[no debug info]"
9+
"1[line-tables only (for stacktraces and breakpoints)]"
10+
"2[full debug info with variable and type information (same as -g)]"
11+
)
12+
13+
_rustc_crate_types=(
14+
'bin'
15+
'lib'
16+
'rlib'
17+
'dylib'
18+
'staticlib'
19+
)
20+
21+
_rustc_emit_types=(
22+
'asm'
23+
'bc'
24+
'ir'
25+
'obj'
26+
'link'
27+
)
28+
_rustc_pretty_types=(
29+
'normal[un-annotated source]'
30+
'expanded[crates expanded]'
31+
'typed[crates expanded, with type annotations]'
32+
'identified[fully parenthesized, AST nodes and blocks with IDs]'
33+
'flowgraph=[graphviz formatted flowgraph for node]:NODEID:'
34+
)
35+
_rustc_color_types=(
36+
'auto[colorize, if output goes to a tty (default)]'
37+
'always[always colorize output]'
38+
'never[never colorize output]'
39+
)
40+
41+
_rustc_opts_vals=(
42+
--crate-name='[Specify the name of the crate being built]'
43+
--crate-type='[Comma separated list of types of crates for the compiler to emit]:TYPES:_values -s "," "Crate types" "$_rustc_crate_types[@]"'
44+
--emit='[Comma separated list of types of output for the compiler to emit]:TYPES:_values -s "," "Emit Targets" "$_rustc_emit_types[@]"'
45+
--debuginfo='[Emit DWARF debug info to the objects created]:LEVEL:_values "Debug Levels" "$_rustc_debuginfo_levels[@]"'
46+
--dep-info='[Output dependency info to <filename> after compiling]::FILE:_files -/'
47+
--sysroot='[Override the system root]:PATH:_files -/'
48+
--cfg='[Configure the compilation environment]:SPEC:'
49+
--out-dir='[Write output to compiler-chosen filename in <dir>. Ignored if -o is specified. (default the current directory)]:DIR:_files -/'
50+
-o'[Write output to <filename>. Ignored if more than one --emit is specified.]:FILENAME:_files'
51+
--opt-level='[Optimize with possible levels 0-3]:LEVEL:(0 1 2 3)'
52+
--pretty='[Pretty-print the input instead of compiling]::TYPE:_values "TYPES" "$_rustc_pretty_types[@]"'
53+
-L'[Add a directory to the library search path]:DIR:_files -/'
54+
--target='[Target triple cpu-manufacturer-kernel\[-os\] to compile]:TRIPLE:'
55+
--color='[Configure coloring of output]:CONF:_values "COLORS" "$_rustc_color_types[@]"'
56+
{-v,--version}'[Print version info and exit]::VERBOSE:(verbose)'
57+
--explain='[Provide a detailed explanation of an error message]:OPT:'
58+
--extern'[Specify where an external rust library is located]:ARG:'
59+
)
60+
761
_rustc_opts_switches=(
8-
--ar'[Program to use for managing archives instead of the default.]'
9-
-c'[Compile and assemble, but do not link]'
10-
--cfg'[Configure the compilation environment]'
11-
--crate-id'[Output the crate id and exit]'
12-
--crate-file-name'[deprecated in favor of --print-file-name]'
13-
--crate-name'[Specify the name of the crate being built]'
14-
--crate-type'[Specify the type of crate to crate]'
15-
--debuginfo'[Emit DWARF debug info to the objects created: 0 = no debug info, 1 = line-tables only (for stacktraces and breakpoints), 2 = full debug info with variable and type information (same as -g)]'
16-
--dep-info'[Output dependency info to <filename> after compiling]'
1762
-g'[Equivalent to --debuginfo=2]'
1863
{-h,--help}'[Display this message]'
19-
-L'[Add a directory to the library search path]'
20-
--linker'[Program to use for linking instead of the default.]'
21-
--link-args'[FLAGS is a space-separated list of flags passed to the linker]'
22-
--llvm-args'[A list of arguments to pass to llvm, comma separated]'
23-
--ls'[List the symbols defined by a library crate]'
2464
--no-analysis'[Parse and expand the output, but run no analysis or produce output]'
25-
--no-rpath'[Disables setting the rpath in libs/exes]'
2665
--no-trans'[Run all passes except translation; no output]'
2766
-O'[Equivalent to --opt-level=2]'
28-
-o'[Write output to <filename>]'
29-
--opt-level'[Optimize with possible levels 0-3]'
30-
--out-dir'[Write output to compiler-chosen filename in <dir>]'
3167
--parse-only'[Parse only; do not compile, assemble, or link]'
32-
--passes'[Comma or space separated list of pass names to use]'
33-
--pretty'[Pretty-print the input instead of compiling]'
3468
--print-crate-name'[Output the crate name and exit]'
3569
--print-file-name'[Output the file(s) that would be written if compilation continued and exit]'
36-
--save-temps'[Write intermediate files (.bc, .opt.bc, .o) in addition to normal output]'
37-
--sysroot'[Override the system root]'
3870
--test'[Build a test harness]'
39-
--target'[Target triple cpu-manufacturer-kernel\[-os\] to compile]'
40-
--target-cpu'[Select target processor (llc -mcpu=help for details)]'
41-
--target-feature'[Target specific attributes (llc -mattr=help for details)]'
42-
--relocation-model'[Relocation model (llc --help for details)]'
43-
{-v,--version}'[Print version info and exit]'
4471
)
72+
_rustc_opts_codegen=(
73+
'ar=[Path to the archive utility to use when assembling archives.]:BIN:_path_files'
74+
'linker=[Path to the linker utility to use when linking libraries, executables, and objects.]:BIN:_path_files'
75+
'link-args=[A space-separated list of extra arguments to pass to the linker when the linker is invoked.]:ARGS:'
76+
'target-cpu=[Selects a target processor. If the value is "help", then a list of available CPUs is printed.]:CPU:'
77+
'target-feature=[A space-separated list of features to enable or disable for the target. A preceding "+" enables a feature while a preceding "-" disables it. Available features can be discovered through target-cpu=help.]:FEATURE:'
78+
'passes=[A space-separated list of extra LLVM passes to run. A value of "list" will cause rustc to print all known passes and exit. The passes specified are appended at the end of the normal pass manager.]:LIST:'
79+
'llvm-args=[A space-separated list of arguments to pass through to LLVM.]:ARGS:'
80+
'save-temps[If specified, the compiler will save more files (.bc, .o, .no-opt.bc) generated throughout compilation in the output directory.]'
81+
'rpath[If specified, then the rpath value for dynamic libraries will be set in either dynamic library or executable outputs.]'
82+
'no-prepopulate-passes[Suppresses pre-population of the LLVM pass manager that is run over the module.]'
83+
'no-vectorize-loops[Suppresses running the loop vectorization LLVM pass, regardless of optimization level.]'
84+
'no-vectorize-slp[Suppresses running the LLVM SLP vectorization pass, regardless of optimization level.]'
85+
'soft-float[Generates software floating point library calls instead of hardware instructions.]'
86+
'prefer-dynamic[Prefers dynamic linking to static linking.]'
87+
"no-integrated-as[Force usage of an external assembler rather than LLVM's integrated one.]"
88+
'no-redzone[disable the use of the redzone]'
89+
'relocation-model=[The relocation model to use. (default: pic)]:MODEL:(pic static dynamic-no-pic)'
90+
'code-model=[choose the code model to use (llc -code-model for details)]:MODEL:'
91+
'metadata=[metadata to mangle symbol names with]:VAL:'
92+
'extra-filenames=[extra data to put in each output filename]:VAL:'
93+
'codegen-units=[divide crate into N units to optimize in parallel]:N:'
94+
'help[Show all codegen options]'
95+
)
96+
4597
_rustc_opts_lint=(
46-
'attribute-usage[detects bad use of attributes]'
47-
'ctypes[proper use of libc types in foreign modules]'
48-
'dead-assignment[detect assignments that will never be read]'
49-
'dead-code[detect piece of code that will never be used]'
50-
'default-type-param-usage[prevents explicitly setting a type parameter with a default]'
51-
'deprecated[detects use of #\[deprecated\] items]'
98+
'help[Show a list of all lints]'
5299
'experimental[detects use of #\[experimental\] items]'
53-
'heap-memory[use of any (~ type or @ type) heap memory]'
100+
'heap-memory[use of any (Box type or @ type) heap memory]'
54101
'managed-heap-memory[use of managed (@ type) heap memory]'
55102
'missing-doc[detects missing documentation for public members]'
56-
'non-camel-case-types[types, variants and traits should have camel case names]'
57-
'non-uppercase-pattern-statics[static constants in match patterns should be all caps]'
58103
'non-uppercase-statics[static constants should have uppercase identifiers]'
59104
'owned-heap-memory[use of owned (~ type) heap memory]'
105+
'unnecessary-qualification[detects unnecessarily qualified names]'
106+
'unsafe-block[usage of an `unsafe` block]'
107+
'unstable[detects use of #\[unstable\] items (incl. items with no stability attribute)]'
108+
'unused-result[unused result of an expression in a statement]'
109+
'variant-size-difference[detects enums with widely varying variant sizes]'
110+
'ctypes[proper use of libc types in foreign modules]'
111+
'dead-assignment[detect assignments that will never be read]'
112+
'dead-code[detect piece of code that will never be used]'
113+
'deprecated[detects use of #\[deprecated\] items]'
114+
'non-camel-case-types[types, variants and traits should have camel case names]'
115+
'non-snake-case[methods, functions, lifetime parameters and modules should have snake case names]'
60116
'path-statement[path statements with no effect]'
117+
'raw-pointer-deriving[uses of #\[deriving\] with raw pointers are rarely correct]'
61118
'type-limits[comparisons made useless by limits of the types involved]'
62119
'type-overflow[literal out of range for its type]'
63-
'unknown-crate-type[unknown crate type found in #\[crate_type\] directive]'
64-
'unknown-features[unknown features found in crate-level #\[feature\] directives]'
65120
'unnecessary-allocation[detects unnecessary allocations that can be eliminated]'
66121
'unnecessary-parens[`if`, `match`, `while` and `return` do not need parentheses]'
67-
'unnecessary-qualification[detects unnecessarily qualified names]'
68-
'unnecessary-typecast[detects unnecessary type casts, that can be removed]'
69122
'unreachable-code[detects unreachable code]'
70123
'unrecognized-lint[unrecognized lint attribute]'
71-
'unsafe-block[usage of an `unsafe` block]'
72-
'unstable[detects use of #\[unstable\] items (incl. items with no stability attribute)]'
124+
'unsigned-negate[using an unary minus operator on unsigned type]'
125+
'unused-attribute[detects attributes that were not used by the compiler]'
73126
'unused-imports[imports that are never used]'
74127
'unused-must-use[unused result of a type flagged as #\[must_use\]]'
75128
"unused-mut[detect mut variables which don't need to be mutable]"
76-
'unused-result[unused result of an expression in a statement]'
77129
'unused-unsafe[unnecessary use of an `unsafe` block]'
78130
'unused-variable[detect variables which are not used in any way]'
131+
'visible-private-types[detect use of private types in exported type signatures]'
79132
'warnings[mass-change the level for lints which produce warnings]'
80133
'while-true[suggest using `loop { }` instead of `while true { }`]'
134+
'unknown-crate-type[unknown crate type found in #\[crate_type\] directive]'
135+
'unknown-features[unknown features found in crate-level #\[feature\] directives]'
136+
'bad-style[group of non_camel_case_types, non_snake_case, non_uppercase_statics]'
137+
'unused[group of unused_imports, unused_variable, dead_assignment, dead_code, unused_mut, unreachable_code]'
81138
)
82139

83140
_rustc_opts_debug=(
141+
'verbose[in general, enable more debug printouts]'
142+
'time-passes[measure time of each rustc pass]'
143+
'count-llvm-insns[count where LLVM instrs originate]'
144+
'time-llvm-passes[measure time of each LLVM pass]'
145+
'trans-stats[gather trans statistics]'
84146
'asm-comments[generate comments into the assembly (may change behavior)]'
147+
'no-verify[skip LLVM verification]'
85148
'borrowck-stats[gather borrowck statistics]'
86-
'count-llvm-insns[count where LLVM instrs originate]'
87-
'count-type-sizes[count the sizes of aggregate types]'
88-
'debug-info[Produce debug info (experimental)]'
149+
'no-landing-pads[omit landing pads for unwinding]'
89150
'debug-llvm[enable debug output from LLVM]'
90-
'extra-debug-info[Extra debugging info (experimental)]'
91-
'gc[Garbage collect shared data (experimental)]'
92-
'gen-crate-map[Force generation of a toplevel crate map]'
93-
'lto[Perform LLVM link-time optimizations]'
151+
'show-span[show spans for compiler debugging]'
152+
'count-type-sizes[count the sizes of aggregate types]'
94153
'meta-stats[gather metadata statistics]'
95-
"no-integrated-as[Use external assembler rather than LLVM's integrated one]"
96-
'no-landing-pads[omit landing pads for unwinding]'
97154
'no-opt[do not optimize, even if -O is passed]'
98-
"no-prepopulate-passes[Don't pre-populate the pass managers with a list of passes, only use the passes from --passes]"
99-
"no-vectorize-loops[Don't run the loop vectorization optimization passes]"
100-
"no-vectorize-slp[Don't run LLVM's SLP vectorization passes]"
101-
'no-verify[skip LLVM verification]'
102-
'prefer-dynamic[Prefer dynamic linking to static linking]'
103155
'print-link-args[Print the arguments passed to the linker]'
156+
'gc[Garbage collect shared data (experimental)]'
104157
'print-llvm-passes[Prints the llvm optimization passes being run]'
105-
'soft-float[Generate software floating point library calls]'
106-
'time-llvm-passes[measure time of each LLVM pass]'
107-
'time-passes[measure time of each rustc pass]'
108-
'trans-stats[gather trans statistics]'
109-
'verbose[in general, enable more debug printouts]'
158+
'lto[Perform LLVM link-time optimizations]'
159+
'ast-json[Print the AST as JSON and halt]'
160+
'ast-json-noexpand[Print the pre-expansion AST as JSON and halt]'
161+
'ls[List the symbols defined by a library crate]'
162+
'save-analysis[Write syntax and type analysis information in addition to normal output]'
163+
'flowgraph-print-loans[Include loan analysis data in --pretty flowgraph output]'
164+
'flowgraph-print-moves[Include move analysis data in --pretty flowgraph output]'
165+
'flowgraph-print-assigns[Include assignment analysis data in --pretty flowgraph output]'
166+
'flowgraph-print-all[Include all dataflow analysis data in --pretty flowgraph output]'
110167
)
111168

112169
_rustc_opts_fun_lint(){
@@ -115,14 +172,20 @@ _rustc_opts_fun_lint(){
115172
}
116173

117174
_rustc_opts_fun_debug(){
118-
_describe 'options' _rustc_opts_debug
175+
_values 'options' "$_rustc_opts_debug[@]"
176+
}
177+
178+
_rustc_opts_fun_codegen(){
179+
_values 'options' "$_rustc_opts_codegen[@]"
119180
}
120181

121182
_arguments -s : \
122-
'(-W --warn)'{-W,--warn}'[Set lint warnings]:lint options:_rustc_opts_fun_lint' \
123-
'(-A --allow)'{-A,--allow}'[Set lint allowed]:lint options:_rustc_opts_fun_lint' \
124-
'(-D --deny)'{-D,--deny}'[Set lint denied]:lint options:_rustc_opts_fun_lint' \
125-
'(-F --forbid)'{-F,--forbid}'[Set lint forbidden]:lint options:_rustc_opts_fun_lint' \
183+
'(-W --warn)'{-W,--warn=}'[Set lint warnings]:lint options:_rustc_opts_fun_lint' \
184+
'(-A --allow)'{-A,--allow=}'[Set lint allowed]:lint options:_rustc_opts_fun_lint' \
185+
'(-D --deny)'{-D,--deny=}'[Set lint denied]:lint options:_rustc_opts_fun_lint' \
186+
'(-F --forbid)'{-F,--forbid=}'[Set lint forbidden]:lint options:_rustc_opts_fun_lint' \
126187
'*-Z[Set internal debugging options]:debug options:_rustc_opts_fun_debug' \
188+
'*-C[Set internal Codegen options]:codegen options:_rustc_opts_fun_codegen' \
127189
"$_rustc_opts_switches[@]" \
128-
'*::files:_files -g "*.rs"'
190+
"$_rustc_opts_vals[@]" \
191+
'::files:_files -g "*.rs"'

branches/try2/src/grammar/verify.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ fn parse_antlr_token(s: &str, tokens: &HashMap<String, Token>) -> TokenAndSpan {
211211
let sp = syntax::codemap::Span {
212212
lo: syntax::codemap::BytePos(from_str::<u32>(start).unwrap() - offset),
213213
hi: syntax::codemap::BytePos(from_str::<u32>(end).unwrap() + 1),
214-
expn_info: None
214+
expn_id: syntax::codemap::NO_EXPANSION
215215
};
216216

217217
TokenAndSpan {

branches/try2/src/librustc/driver/driver.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use lint;
1717
use llvm::{ContextRef, ModuleRef};
1818
use metadata::common::LinkMeta;
1919
use metadata::creader;
20-
use middle::{trans, freevars, stability, kind, ty, typeck, reachable};
20+
use middle::{trans, stability, kind, ty, typeck, reachable};
2121
use middle::dependency_format;
2222
use middle;
2323
use plugin::load::Plugins;
@@ -378,11 +378,13 @@ pub fn phase_3_run_analysis_passes<'tcx>(sess: Session,
378378
middle::lang_items::collect_language_items(krate, &sess));
379379

380380
let middle::resolve::CrateMap {
381-
def_map: def_map,
382-
exp_map2: exp_map2,
383-
trait_map: trait_map,
384-
external_exports: external_exports,
385-
last_private_map: last_private_map
381+
def_map,
382+
freevars,
383+
capture_mode_map,
384+
exp_map2,
385+
trait_map,
386+
external_exports,
387+
last_private_map
386388
} =
387389
time(time_passes, "resolution", (), |_|
388390
middle::resolve::resolve_crate(&sess, &lang_items, krate));
@@ -401,10 +403,6 @@ pub fn phase_3_run_analysis_passes<'tcx>(sess: Session,
401403
plugin::build::find_plugin_registrar(
402404
sess.diagnostic(), krate)));
403405

404-
let (freevars, capture_modes) =
405-
time(time_passes, "freevar finding", (), |_|
406-
freevars::annotate_freevars(&def_map, krate));
407-
408406
let region_map = time(time_passes, "region resolution", (), |_|
409407
middle::region::resolve_crate(&sess, krate));
410408

@@ -423,7 +421,7 @@ pub fn phase_3_run_analysis_passes<'tcx>(sess: Session,
423421
named_region_map,
424422
ast_map,
425423
freevars,
426-
capture_modes,
424+
capture_mode_map,
427425
region_map,
428426
lang_items,
429427
stability_index);

branches/try2/src/librustc/lib.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ This API is completely unstable and subject to change.
2929
html_root_url = "http://doc.rust-lang.org/master/")]
3030

3131
#![allow(deprecated)]
32-
#![feature(macro_rules, globs, struct_variant, managed_boxes, quote)]
32+
#![feature(macro_rules, globs, struct_variant, quote)]
3333
#![feature(default_type_params, phase, unsafe_destructor)]
3434

3535
#![allow(unknown_features)] // NOTE: Remove after next snapshot
@@ -93,7 +93,6 @@ pub mod middle {
9393
pub mod effect;
9494
pub mod entry;
9595
pub mod expr_use_visitor;
96-
pub mod freevars;
9796
pub mod graph;
9897
pub mod intrinsicck;
9998
pub mod kind;

branches/try2/src/librustc/lint/builtin.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ use syntax::abi;
4242
use syntax::ast_map;
4343
use syntax::attr::AttrMetaMethods;
4444
use syntax::attr;
45-
use syntax::codemap::Span;
45+
use syntax::codemap::{Span, NO_EXPANSION};
4646
use syntax::parse::token;
4747
use syntax::{ast, ast_util, visit};
4848
use syntax::ptr::P;
@@ -954,8 +954,7 @@ impl LintPass for NonSnakeCase {
954954
match &p.node {
955955
&ast::PatIdent(_, ref path1, _) => {
956956
match cx.tcx.def_map.borrow().find(&p.id) {
957-
Some(&def::DefLocal(_, _)) | Some(&def::DefBinding(_, _)) |
958-
Some(&def::DefArg(_, _)) => {
957+
Some(&def::DefLocal(_)) => {
959958
self.check_snake_case(cx, "variable", path1.node, p.span);
960959
}
961960
_ => {}
@@ -1492,7 +1491,7 @@ impl LintPass for Stability {
14921491

14931492
fn check_expr(&mut self, cx: &Context, e: &ast::Expr) {
14941493
// if the expression was produced by a macro expansion,
1495-
if e.span.expn_info.is_some() { return }
1494+
if e.span.expn_id != NO_EXPANSION { return }
14961495

14971496
let id = match e.node {
14981497
ast::ExprPath(..) | ast::ExprStruct(..) => {

0 commit comments

Comments
 (0)