Skip to content

Commit ef3f092

Browse files
author
christopherdumas
committed
---
yaml --- r: 234038 b: refs/heads/beta c: 3fa1ee4 h: refs/heads/master v: v3
1 parent 75fa6bd commit ef3f092

File tree

294 files changed

+5952
-18174
lines changed

Some content is hidden

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

294 files changed

+5952
-18174
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ refs/tags/0.9: 36870b185fc5f5486636d4515f0e22677493f225
2323
refs/tags/0.10: ac33f2b15782272ae348dbd7b14b8257b2148b5a
2424
refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
2525
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
26-
refs/heads/beta: 53e694e19be805a3e14d257120b5515a7670e122
26+
refs/heads/beta: 3fa1ee4677d756fa38884766b39d65633261235b
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
2828
refs/heads/tmp: 370fe2786109360f7c35b8ba552b83b773dd71d6
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f

branches/beta/configure

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,27 +1180,16 @@ do
11801180
# MSVC requires cmake because that's how we're going to build LLVM
11811181
probe_need CFG_CMAKE cmake
11821182

1183-
# There are three builds of cmake on windows: MSVC, MinGW and Cygwin
1184-
# The Cygwin build does not have generators for Visual Studio, so
1185-
# detect that here and error.
1186-
if ! "$CFG_CMAKE" --help | sed -n '/^Generators/,$p' | grep 'Visual Studio' > /dev/null
1187-
then
1188-
err "cmake does not support Visual Studio generators.\n\n \
1189-
This is likely due to it being an msys/cygwin build of cmake, \
1190-
rather than the required windows version, built using MinGW \
1191-
or Visual Studio."
1192-
fi
1193-
11941183
# Use the REG program to figure out where VS is installed
11951184
# We need to figure out where cl.exe and link.exe are, so we do some
11961185
# munging and some probing here. We also look for the default
11971186
# INCLUDE and LIB variables for MSVC so we can set those in the
11981187
# build system as well.
1199-
install=$(cmd //c reg QUERY \
1188+
install=$(reg QUERY \
12001189
'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0' \
12011190
-v InstallDir)
12021191
if [ -z "$install" ]; then
1203-
install=$(cmd //c reg QUERY \
1192+
install=$(reg QUERY \
12041193
'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0' \
12051194
-v InstallDir)
12061195
fi
@@ -1233,9 +1222,9 @@ do
12331222
eval CFG_MSVC_LINK_$bits="\"$bindir/link.exe\""
12341223

12351224
vcvarsall="${CFG_MSVC_ROOT}/VC/vcvarsall.bat"
1236-
include_path=$(cmd //V:ON //c "$vcvarsall" $msvc_part \& echo !INCLUDE!)
1225+
include_path=$(cmd /c "\"$vcvarsall\" $msvc_part && cmd /c echo %INCLUDE%")
12371226
need_ok "failed to learn about MSVC's INCLUDE"
1238-
lib_path=$(cmd //V:ON //c "$vcvarsall" $msvc_part \& echo !LIB!)
1227+
lib_path=$(cmd /c "\"$vcvarsall\" $msvc_part && cmd /c echo %LIB%")
12391228
need_ok "failed to learn about MSVC's LIB"
12401229

12411230
eval CFG_MSVC_INCLUDE_PATH_${bits}="\"$include_path\""

branches/beta/mk/crates.mk

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ TARGET_CRATES := libc std flate arena term \
5656
alloc_system
5757
RUSTC_CRATES := rustc rustc_typeck rustc_borrowck rustc_resolve rustc_driver \
5858
rustc_trans rustc_back rustc_llvm rustc_privacy rustc_lint \
59-
rustc_data_structures rustc_front rustc_platform_intrinsics
59+
rustc_data_structures rustc_platform_intrinsics
6060
HOST_CRATES := syntax $(RUSTC_CRATES) rustdoc fmt_macros
6161
TOOLS := compiletest rustdoc rustc rustbook error-index-generator
6262

@@ -71,24 +71,23 @@ DEPS_graphviz := std
7171
DEPS_syntax := std term serialize log fmt_macros arena libc rustc_bitflags
7272
DEPS_rustc_driver := arena flate getopts graphviz libc rustc rustc_back rustc_borrowck \
7373
rustc_typeck rustc_resolve log syntax serialize rustc_llvm \
74-
rustc_trans rustc_privacy rustc_lint rustc_front
74+
rustc_trans rustc_privacy rustc_lint
7575

7676
DEPS_rustc_trans := arena flate getopts graphviz libc rustc rustc_back \
77-
log syntax serialize rustc_llvm rustc_front rustc_platform_intrinsics
78-
DEPS_rustc_typeck := rustc syntax rustc_front rustc_platform_intrinsics
79-
DEPS_rustc_borrowck := rustc rustc_front log graphviz syntax
80-
DEPS_rustc_resolve := rustc rustc_front log syntax
81-
DEPS_rustc_privacy := rustc rustc_front log syntax
77+
log syntax serialize rustc_llvm rustc_platform_intrinsics
78+
DEPS_rustc_typeck := rustc syntax rustc_platform_intrinsics
79+
DEPS_rustc_borrowck := rustc log graphviz syntax
80+
DEPS_rustc_resolve := rustc log syntax
81+
DEPS_rustc_privacy := rustc log syntax
8282
DEPS_rustc_lint := rustc log syntax
8383
DEPS_rustc := syntax flate arena serialize getopts rbml \
8484
log graphviz rustc_llvm rustc_back rustc_data_structures
8585
DEPS_rustc_llvm := native:rustllvm libc std rustc_bitflags
8686
DEPS_rustc_platform_intrinsics := rustc rustc_llvm
87-
DEPS_rustc_back := std syntax rustc_llvm rustc_front flate log libc
88-
DEPS_rustc_front := std syntax log serialize
87+
DEPS_rustc_back := std syntax rustc_llvm flate log libc
8988
DEPS_rustc_data_structures := std log serialize
9089
DEPS_rustdoc := rustc rustc_driver native:hoedown serialize getopts \
91-
test rustc_lint rustc_front
90+
test rustc_lint
9291
DEPS_rustc_bitflags := core
9392
DEPS_flate := std native:miniz
9493
DEPS_arena := std

branches/beta/mk/docs.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,6 @@ ifdef CFG_DISABLE_DOCS
191191
endif
192192

193193
docs: $(DOC_TARGETS)
194-
doc: docs
195194
compiler-docs: $(COMPILER_DOC_TARGETS)
196195

197196
trpl: doc/book/index.html

branches/beta/mk/rt.mk

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -259,10 +259,8 @@ BACKTRACE_NAME_$(1) := $$(call CFG_STATIC_LIB_NAME_$(1),backtrace)
259259
BACKTRACE_LIB_$(1) := $$(RT_OUTPUT_DIR_$(1))/$$(BACKTRACE_NAME_$(1))
260260
BACKTRACE_BUILD_DIR_$(1) := $$(RT_OUTPUT_DIR_$(1))/libbacktrace
261261

262-
# We don't use this on platforms that aren't linux-based (with the exception of
263-
# msys2/mingw builds on windows, which use it to read the dwarf debug
264-
# information) so just make the file available, the compilation of libstd won't
265-
# actually build it.
262+
# We don't use this on platforms that aren't linux-based, so just make the file
263+
# available, the compilation of libstd won't actually build it.
266264
ifeq ($$(findstring darwin,$$(OSTYPE_$(1))),darwin)
267265
# See comment above
268266
$$(BACKTRACE_LIB_$(1)):
@@ -275,7 +273,7 @@ $$(BACKTRACE_LIB_$(1)):
275273
touch $$@
276274
else
277275

278-
ifeq ($$(findstring msvc,$(1)),msvc)
276+
ifeq ($$(CFG_WINDOWSY_$(1)),1)
279277
# See comment above
280278
$$(BACKTRACE_LIB_$(1)):
281279
touch $$@
@@ -298,25 +296,16 @@ endif
298296
# ./configure script. This is done to force libbacktrace to *not* use the
299297
# atomic/sync functionality because it pulls in unnecessary dependencies and we
300298
# never use it anyway.
301-
#
302-
# We also use `env PWD=` to clear the PWD environment variable, and then
303-
# execute the command in a new shell. This is necessary to workaround a
304-
# buildbot/msys2 bug: the shell is launched with PWD set to a windows-style path,
305-
# which results in all further uses of `pwd` also printing a windows-style path,
306-
# which breaks libbacktrace's configure script. Clearing PWD within the same
307-
# shell is not sufficient.
308-
309299
$$(BACKTRACE_BUILD_DIR_$(1))/Makefile: $$(BACKTRACE_DEPS) $$(MKFILE_DEPS)
310300
@$$(call E, configure: libbacktrace for $(1))
311301
$$(Q)rm -rf $$(BACKTRACE_BUILD_DIR_$(1))
312302
$$(Q)mkdir -p $$(BACKTRACE_BUILD_DIR_$(1))
313-
$$(Q)(cd $$(BACKTRACE_BUILD_DIR_$(1)) && env \
314-
PWD= \
303+
$$(Q)(cd $$(BACKTRACE_BUILD_DIR_$(1)) && \
315304
CC="$$(CC_$(1))" \
316305
AR="$$(AR_$(1))" \
317306
RANLIB="$$(AR_$(1)) s" \
318307
CFLAGS="$$(CFG_GCCISH_CFLAGS_$(1):-Werror=) -fno-stack-protector" \
319-
$(S)src/libbacktrace/configure --build=$(CFG_GNU_TRIPLE_$(CFG_BUILD)) --host=$(CFG_GNU_TRIPLE_$(1)))
308+
$(S)src/libbacktrace/configure --target=$(1) --host=$(CFG_BUILD))
320309
$$(Q)echo '#undef HAVE_ATOMIC_FUNCTIONS' >> \
321310
$$(BACKTRACE_BUILD_DIR_$(1))/config.h
322311
$$(Q)echo '#undef HAVE_SYNC_FUNCTIONS' >> \
@@ -328,7 +317,7 @@ $$(BACKTRACE_LIB_$(1)): $$(BACKTRACE_BUILD_DIR_$(1))/Makefile $$(MKFILE_DEPS)
328317
INCDIR=$(S)src/libbacktrace
329318
$$(Q)cp $$(BACKTRACE_BUILD_DIR_$(1))/.libs/libbacktrace.a $$@
330319

331-
endif # endif for msvc
320+
endif # endif for windowsy
332321
endif # endif for ios
333322
endif # endif for darwin
334323

branches/beta/src/compiletest/runtest.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ fn run_pretty_test(config: &Config, props: &TestProps, testfile: &Path) {
268268
// FIXME (#9639): This needs to handle non-utf8 paths
269269
let mut args = vec!("-".to_owned(),
270270
"-Zunstable-options".to_owned(),
271-
"--unpretty".to_owned(),
271+
"--pretty".to_owned(),
272272
pretty_type,
273273
format!("--target={}", config.target),
274274
"-L".to_owned(),

branches/beta/src/doc/grammar.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ type_path_tail : '<' type_expr [ ',' type_expr ] + '>'
281281
## Macros
282282

283283
```antlr
284-
expr_macro_rules : "macro_rules" '!' ident '(' macro_rule * ')' ';'
284+
expr_macro_rules : "macro_rules" '!' ident '(' macro_rule * ')' ';'
285285
| "macro_rules" '!' ident '{' macro_rule * '}' ;
286286
macro_rule : '(' matcher * ')' "=>" '(' transcriber * ')' ';' ;
287287
matcher : '(' matcher * ')' | '[' matcher * ']'
@@ -306,7 +306,7 @@ transcriber : '(' transcriber * ')' | '[' transcriber * ']'
306306

307307
```antlr
308308
item : vis ? mod_item | fn_item | type_item | struct_item | enum_item
309-
| const_item | static_item | trait_item | impl_item | extern_block_item ;
309+
| const_item | static_item | trait_item | impl_item | extern_block ;
310310
```
311311

312312
### Type Parameters
@@ -636,31 +636,31 @@ lambda_expr : '|' ident_list '|' expr ;
636636
### While loops
637637

638638
```antlr
639-
while_expr : [ lifetime ':' ] ? "while" no_struct_literal_expr '{' block '}' ;
639+
while_expr : [ lifetime ':' ] "while" no_struct_literal_expr '{' block '}' ;
640640
```
641641

642642
### Infinite loops
643643

644644
```antlr
645-
loop_expr : [ lifetime ':' ] ? "loop" '{' block '}';
645+
loop_expr : [ lifetime ':' ] "loop" '{' block '}';
646646
```
647647

648648
### Break expressions
649649

650650
```antlr
651-
break_expr : "break" [ lifetime ] ?;
651+
break_expr : "break" [ lifetime ];
652652
```
653653

654654
### Continue expressions
655655

656656
```antlr
657-
continue_expr : "continue" [ lifetime ] ?;
657+
continue_expr : "continue" [ lifetime ];
658658
```
659659

660660
### For expressions
661661

662662
```antlr
663-
for_expr : [ lifetime ':' ] ? "for" pat "in" no_struct_literal_expr '{' block '}' ;
663+
for_expr : [ lifetime ':' ] "for" pat "in" no_struct_literal_expr '{' block '}' ;
664664
```
665665

666666
### If expressions
@@ -688,12 +688,13 @@ match_pat : pat [ '|' pat ] * [ "if" expr ] ? ;
688688
```antlr
689689
if_let_expr : "if" "let" pat '=' expr '{' block '}'
690690
else_tail ? ;
691+
else_tail : "else" [ if_expr | if_let_expr | '{' block '}' ] ;
691692
```
692693

693694
### While let loops
694695

695696
```antlr
696-
while_let_expr : [ lifetime ':' ] ? "while" "let" pat '=' expr '{' block '}' ;
697+
while_let_expr : "while" "let" pat '=' expr '{' block '}' ;
697698
```
698699

699700
### Return expressions
@@ -753,6 +754,8 @@ return_expr : "return" expr ? ;
753754
```antlr
754755
closure_type := [ 'unsafe' ] [ '<' lifetime-list '>' ] '|' arg-list '|'
755756
[ ':' bound-list ] [ '->' type ]
757+
procedure_type := 'proc' [ '<' lifetime-list '>' ] '(' arg-list ')'
758+
[ ':' bound-list ] [ '->' type ]
756759
lifetime-list := lifetime | lifetime ',' lifetime-list
757760
arg-list := ident ':' type | ident ':' type ',' arg-list
758761
bound-list := bound | bound '+' bound-list

branches/beta/src/doc/reference.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3200,6 +3200,16 @@ let z = match x { &0 => "zero", _ => "some" };
32003200
assert_eq!(y, z);
32013201
```
32023202

3203+
A pattern that's just an identifier, like `Nil` in the previous example, could
3204+
either refer to an enum variant that's in scope, or bind a new variable. The
3205+
compiler resolves this ambiguity by forbidding variable bindings that occur in
3206+
`match` patterns from shadowing names of variants that are in scope. For
3207+
example, wherever `List` is in scope, a `match` pattern would not be able to
3208+
bind `Nil` as a new name. The compiler interprets a variable pattern `x` as a
3209+
binding _only_ if there is no variant named `x` in scope. A convention you can
3210+
use to avoid conflicts is simply to name variants with upper-case letters, and
3211+
local variables with lower-case letters.
3212+
32033213
Multiple match patterns may be joined with the `|` operator. A range of values
32043214
may be specified with `...`. For example:
32053215

branches/beta/src/doc/trpl/choosing-your-guarantees.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
% Choosing your Guarantees
22

3-
One important feature of Rust is that it lets us control the costs and guarantees
3+
One important feature of Rust as language is that it lets us control the costs and guarantees
44
of a program.
55

66
There are various &ldquo;wrapper type&rdquo; abstractions in the Rust standard library which embody
@@ -18,9 +18,9 @@ Before proceeding, it is highly recommended that one reads about [ownership][own
1818

1919
## `Box<T>`
2020

21-
[`Box<T>`][box] is an &ldquo;owned&rdquo; pointer, or a &ldquo;box&rdquo;. While it can hand
22-
out references to the contained data, it is the only owner of the data. In particular, consider
23-
the following:
21+
[`Box<T>`][box] is pointer which is &ldquo;owned&rdquo;, or a &ldquo;box&rdquo;. While it can hand
22+
out references to the contained data, it is the only owner of the data. In particular, when
23+
something like the following occurs:
2424

2525
```rust
2626
let x = Box::new(1);
@@ -40,7 +40,7 @@ allowed to share references to this by the regular borrowing rules, checked at c
4040

4141
[box]: ../std/boxed/struct.Box.html
4242

43-
## `&T` and `&mut T`
43+
## `&T` and `&mut T`
4444

4545
These are immutable and mutable references respectively. They follow the &ldquo;read-write lock&rdquo;
4646
pattern, such that one may either have only one mutable reference to some data, or any number of
@@ -243,7 +243,7 @@ Many of the types above cannot be used in a threadsafe manner. Particularly, `Rc
243243
`RefCell<T>`, which both use non-atomic reference counts (_atomic_ reference counts are those which
244244
can be incremented from multiple threads without causing a data race), cannot be used this way. This
245245
makes them cheaper to use, but we need thread safe versions of these too. They exist, in the form of
246-
`Arc<T>` and `Mutex<T>`/`RwLock<T>`
246+
`Arc<T>` and `Mutex<T>`/`RWLock<T>`
247247

248248
Note that the non-threadsafe types _cannot_ be sent between threads, and this is checked at compile
249249
time.

branches/beta/src/doc/trpl/deref-coercions.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ Vectors can `Deref` to a slice.
8989

9090
## Deref and method calls
9191

92-
`Deref` will also kick in when calling a method. Consider the following
93-
example.
92+
`Deref` will also kick in when calling a method. In other words, these are
93+
the same two things in Rust:
9494

9595
```rust
9696
struct Foo;
@@ -99,13 +99,13 @@ impl Foo {
9999
fn foo(&self) { println!("Foo"); }
100100
}
101101

102-
let f = &&Foo;
102+
let f = Foo;
103103

104104
f.foo();
105105
```
106106

107-
Even though `f` is a `&&Foo` and `foo` takes `&self`, this works. That’s
108-
because these things are the same:
107+
Even though `f` isn’t a reference, and `foo` takes `&self`, this works.
108+
That’s because these things are the same:
109109

110110
```rust,ignore
111111
f.foo();

branches/beta/src/doc/trpl/macros.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ fn main() {
313313
}
314314
```
315315

316-
This works because Rust has a [hygienic macro system][]. Each macro expansion
316+
This works because Rust has a [hygienic macro system][https://en.wikipedia.org/wiki/Hygienic_macro]. Each macro expansion
317317
happens in a distinct ‘syntax context’, and each variable is tagged with the
318318
syntax context where it was introduced. It’s as though the variable `state`
319319
inside `main` is painted a different "color" from the variable `state` inside

0 commit comments

Comments
 (0)