Skip to content

Commit 4ccd824

Browse files
committed
---
yaml --- r: 234690 b: refs/heads/tmp c: fb5de8c h: refs/heads/master v: v3
1 parent 453afcb commit 4ccd824

File tree

72 files changed

+559
-343
lines changed

Some content is hidden

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

72 files changed

+559
-343
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
2525
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
2626
refs/heads/beta: d2e13e822a73e0ea46ae9e21afdd3155fc997f6d
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
28-
refs/heads/tmp: 519527b1f58eaa572307b33ef69a837d4d49cdd0
28+
refs/heads/tmp: fb5de8ce57a36e504af2dd6626365d94b5f4262d
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
3030
refs/tags/homu-tmp: ab792abf1fcc28afbd315426213f6428da25c085
3131
refs/tags/1.0.0-beta: 8cbb92b53468ee2b0c2d3eeb8567005953d40828

branches/tmp/mk/tests.mk

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1046,6 +1046,10 @@ $$(call TEST_OK_FILE,$(1),$(2),$(3),rmake): \
10461046
$$(RMAKE_TESTS:%=$(3)/test/run-make/%-$(1)-T-$(2)-H-$(3).ok)
10471047
@touch $$@
10481048

1049+
$(3)/test/run-make/%-$(1)-T-$(2)-H-$(3).ok: \
1050+
export INCLUDE := $$(CFG_MSVC_INCLUDE_PATH_$$(HOST_$(3)))
1051+
$(3)/test/run-make/%-$(1)-T-$(2)-H-$(3).ok: \
1052+
export LIB := $$(CFG_MSVC_LIB_PATH_$$(HOST_$(3)))
10491053
$(3)/test/run-make/%-$(1)-T-$(2)-H-$(3).ok: \
10501054
$(S)src/test/run-make/%/Makefile \
10511055
$$(CSREQ$(1)_T_$(2)_H_$(3))
@@ -1056,15 +1060,16 @@ $(3)/test/run-make/%-$(1)-T-$(2)-H-$(3).ok: \
10561060
$$(MAKE) \
10571061
$$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
10581062
$(3)/test/run-make/$$* \
1059-
$$(CC_$(3)) \
1063+
'$$(CC_$(3))' \
10601064
"$$(CFG_GCCISH_CFLAGS_$(3))" \
10611065
$$(HBIN$(1)_H_$(3))/rustdoc$$(X_$(3)) \
10621066
"$$(TESTNAME)" \
10631067
$$(LD_LIBRARY_PATH_ENV_NAME$(1)_T_$(2)_H_$(3)) \
10641068
"$$(LD_LIBRARY_PATH_ENV_HOSTDIR$(1)_T_$(2)_H_$(3))" \
10651069
"$$(LD_LIBRARY_PATH_ENV_TARGETDIR$(1)_T_$(2)_H_$(3))" \
10661070
$(1) \
1067-
$$(S)
1071+
$$(S) \
1072+
$(3)
10681073
@touch -r [email protected]_time $$@ && rm [email protected]_time
10691074
else
10701075
# FIXME #11094 - The above rule doesn't work right for multiple targets

branches/tmp/src/doc/reference.md

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,11 +1178,22 @@ let px: i32 = match p { Point(x, _) => x };
11781178
```
11791179

11801180
A _unit-like struct_ is a structure without any fields, defined by leaving off
1181-
the list of fields entirely. Such types will have a single value. For example:
1181+
the list of fields entirely. Such a structure implicitly defines a constant of
1182+
its type with the same name. For example:
11821183

11831184
```
1185+
# #![feature(braced_empty_structs)]
11841186
struct Cookie;
1185-
let c = [Cookie, Cookie, Cookie, Cookie];
1187+
let c = [Cookie, Cookie {}, Cookie, Cookie {}];
1188+
```
1189+
1190+
is equivalent to
1191+
1192+
```
1193+
# #![feature(braced_empty_structs)]
1194+
struct Cookie {}
1195+
const Cookie: Cookie = Cookie {};
1196+
let c = [Cookie, Cookie {}, Cookie, Cookie {}];
11861197
```
11871198

11881199
The precise memory layout of a structure is not specified. One can specify a
@@ -2411,6 +2422,7 @@ The currently implemented features of the reference compiler are:
24112422
terms of encapsulation).
24122423
* - `default_type_parameter_fallback` - Allows type parameter defaults to
24132424
influence type inference.
2425+
* - `braced_empty_structs` - Allows use of empty structs with braces.
24142426

24152427
If a feature is promoted to a language feature, then all existing programs will
24162428
start to receive compilation warnings about `#![feature]` directives which enabled
@@ -2762,7 +2774,7 @@ The following expressions are equivalent.
27622774
let x = std::ops::Range {start: 0, end: 10};
27632775
let y = 0..10;
27642776
2765-
assert_eq!(x,y);
2777+
assert_eq!(x, y);
27662778
```
27672779

27682780
### Unary operator expressions
@@ -3035,18 +3047,18 @@ A `loop` expression may optionally have a _label_. The label is written as
30353047
a lifetime preceding the loop expression, as in `'foo: loop{ }`. If a
30363048
label is present, then labeled `break` and `continue` expressions nested
30373049
within this loop may exit out of this loop or return control to its head.
3038-
See [Break expressions](#break-expressions) and [Continue
3050+
See [break expressions](#break-expressions) and [continue
30393051
expressions](#continue-expressions).
30403052

3041-
### Break expressions
3053+
### `break` expressions
30423054

30433055
A `break` expression has an optional _label_. If the label is absent, then
30443056
executing a `break` expression immediately terminates the innermost loop
30453057
enclosing it. It is only permitted in the body of a loop. If the label is
30463058
present, then `break 'foo` terminates the loop with label `'foo`, which need not
30473059
be the innermost label enclosing the `break` expression, but must enclose it.
30483060

3049-
### Continue expressions
3061+
### `continue` expressions
30503062

30513063
A `continue` expression has an optional _label_. If the label is absent, then
30523064
executing a `continue` expression immediately terminates the current iteration
@@ -3059,7 +3071,7 @@ innermost label enclosing the `break` expression, but must enclose it.
30593071

30603072
A `continue` expression is only permitted in the body of a loop.
30613073

3062-
### While loops
3074+
### `while` loops
30633075

30643076
A `while` loop begins by evaluating the boolean loop conditional expression.
30653077
If the loop conditional expression evaluates to `true`, the loop body block
@@ -3082,12 +3094,12 @@ Like `loop` expressions, `while` loops can be controlled with `break` or
30823094
loops](#infinite-loops), [break expressions](#break-expressions), and
30833095
[continue expressions](#continue-expressions) for more information.
30843096

3085-
### For expressions
3097+
### `for` expressions
30863098

30873099
A `for` expression is a syntactic construct for looping over elements provided
30883100
by an implementation of `std::iter::IntoIterator`.
30893101

3090-
An example of a for loop over the contents of an array:
3102+
An example of a `for` loop over the contents of an array:
30913103

30923104
```
30933105
# type Foo = i32;
@@ -3117,7 +3129,7 @@ Like `loop` expressions, `for` loops can be controlled with `break` or
31173129
loops](#infinite-loops), [break expressions](#break-expressions), and
31183130
[continue expressions](#continue-expressions) for more information.
31193131

3120-
### If expressions
3132+
### `if` expressions
31213133

31223134
An `if` expression is a conditional branch in program control. The form of an
31233135
`if` expression is a condition expression, followed by a consequent block, any
@@ -3129,7 +3141,7 @@ evaluates to `false`, the consequent block is skipped and any subsequent `else
31293141
if` condition is evaluated. If all `if` and `else if` conditions evaluate to
31303142
`false` then any `else` block is executed.
31313143

3132-
### Match expressions
3144+
### `match` expressions
31333145

31343146
A `match` expression branches on a *pattern*. The exact form of matching that
31353147
occurs depends on the pattern. Patterns consist of some combination of
@@ -3235,7 +3247,7 @@ let message = match maybe_digit {
32353247
};
32363248
```
32373249

3238-
### If let expressions
3250+
### `if let` expressions
32393251

32403252
An `if let` expression is semantically identical to an `if` expression but in place
32413253
of a condition expression it expects a refutable let statement. If the value of the
@@ -3256,15 +3268,15 @@ if let ("Ham", b) = dish {
32563268
}
32573269
```
32583270

3259-
### While let loops
3271+
### `while let` loops
32603272

32613273
A `while let` loop is semantically identical to a `while` loop but in place of a
32623274
condition expression it expects a refutable let statement. If the value of the
32633275
expression on the right hand side of the let statement matches the pattern, the
32643276
loop body block executes and control returns to the pattern matching statement.
32653277
Otherwise, the while expression completes.
32663278

3267-
### Return expressions
3279+
### `return` expressions
32683280

32693281
Return expressions are denoted with the keyword `return`. Evaluating a `return`
32703282
expression moves its argument into the designated output location for the

branches/tmp/src/doc/trpl/error-handling.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ thread '<main>' panicked at 'Invalid number: 11', src/bin/panic-simple.rs:5
8787
Here's another example that is slightly less contrived. A program that accepts
8888
an integer as an argument, doubles it and prints it.
8989

90+
<div id="code-unwrap-double">
9091
```rust,should_panic
92+
9193
use std::env;
9294
9395
fn main() {
@@ -97,6 +99,7 @@ fn main() {
9799
println!("{}", 2 * n);
98100
}
99101
```
102+
</div>
100103

101104
If you give this program zero arguments (error 1) or if the first argument
102105
isn't an integer (error 2), the program will panic just like in the first
@@ -120,7 +123,7 @@ It would be better if we just showed the code for unwrapping because it is so
120123
simple, but to do that, we will first need to explore the `Option` and `Result`
121124
types. Both of these types have a method called `unwrap` defined on them.
122125

123-
## The `Option` type
126+
### The `Option` type
124127

125128
The `Option` type is [defined in the standard library][5]:
126129

@@ -137,6 +140,7 @@ system is an important concept because it will cause the compiler to force the
137140
programmer to handle that absence. Let's take a look at an example that tries
138141
to find a character in a string:
139142

143+
<div id="code-option-ex-string-find">
140144
```rust
141145
// Searches `haystack` for the Unicode character `needle`. If one is found, the
142146
// byte offset of the character is returned. Otherwise, `None` is returned.
@@ -149,6 +153,7 @@ fn find(haystack: &str, needle: char) -> Option<usize> {
149153
None
150154
}
151155
```
156+
</div>
152157

153158
Notice that when this function finds a matching character, it doen't just
154159
return the `offset`. Instead, it returns `Some(offset)`. `Some` is a variant or

branches/tmp/src/doc/trpl/guessing-game.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,7 @@ With this definition, anything of type `Foo` can be either a
599599
`Foo::Bar` or a `Foo::Baz`. We use the `::` to indicate the
600600
namespace for a particular `enum` variant.
601601

602-
The [`Ordering`][ordering] enum has three possible variants: `Less`, `Equal`,
602+
The [`Ordering`][ordering] `enum` has three possible variants: `Less`, `Equal`,
603603
and `Greater`. The `match` statement takes a value of a type, and lets you
604604
create an ‘arm’ for each possible value. Since we have three types of
605605
`Ordering`, we have three arms:
@@ -918,9 +918,9 @@ let guess: u32 = match guess.trim().parse() {
918918
919919
This is how you generally move from ‘crash on error’ to ‘actually handle the
920920
error’, by switching from `ok().expect()` to a `match` statement. The `Result`
921-
returned by `parse()` is an enum just like `Ordering`, but in this case, each
921+
returned by `parse()` is an `enum` just like `Ordering`, but in this case, each
922922
variant has some data associated with it: `Ok` is a success, and `Err` is a
923-
failure. Each contains more information: the successful parsed integer, or an
923+
failure. Each contains more information: the successfully parsed integer, or an
924924
error type. In this case, we `match` on `Ok(num)`, which sets the inner value
925925
of the `Ok` to the name `num`, and then we just return it on the right-hand
926926
side. In the `Err` case, we don’t care what kind of error it is, so we just

branches/tmp/src/doc/trpl/installing-rust.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ Oh, we should also mention the officially supported platforms:
6464

6565
* Windows (7, 8, Server 2008 R2)
6666
* Linux (2.6.18 or later, various distributions), x86 and x86-64
67-
* OSX 10.7 (Lion) or greater, x86 and x86-64
67+
* OSX 10.7 (Lion) or later, x86 and x86-64
6868

6969
We extensively test Rust on these platforms, and a few others, too, like
7070
Android. But these are the ones most likely to work, as they have the most

0 commit comments

Comments
 (0)