Skip to content

Commit ef1b333

Browse files
committed
---
yaml --- r: 225017 b: refs/heads/stable c: f894417 h: refs/heads/master i: 225015: 54af195 v: v3
1 parent 63d54bd commit ef1b333

File tree

104 files changed

+428
-1560
lines changed

Some content is hidden

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

104 files changed

+428
-1560
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ refs/heads/tmp: e5d90d98402475b6e154ce216f9efcb80da1a747
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
3030
refs/tags/homu-tmp: 1fe32ca12c51afcd761d9962f51a74ff0d07a591
3131
refs/tags/1.0.0-beta: 8cbb92b53468ee2b0c2d3eeb8567005953d40828
32-
refs/heads/stable: 8dbc3699213965feb422ff9257111f2edb2fc9db
32+
refs/heads/stable: f894417e6b75f9eaa276414de525ea56418f2f68
3333
refs/tags/1.0.0: 55bd4f8ff2b323f317ae89e254ce87162d52a375
3434
refs/tags/1.1.0: bc3c16f09287e5545c1d3f76b7abd54f2eca868b

branches/stable/AUTHORS.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Aaron Raimist <[email protected]>
88
Aaron Todd <[email protected]>
99
Aaron Turon <[email protected]>
1010
Aaron Weiss <[email protected]>
11-
Abhishek Chanda <abhishek.becs@gmail.com>
11+
Abhishek Chanda <abhishek@cloudscaling.com>
1212
Adam Bozanich <[email protected]>
1313
Adam Jacob <[email protected]>
1414
Adam Roben <[email protected]>

branches/stable/src/doc/complement-lang-faq.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
There aren't many large programs yet. The Rust [compiler][rustc], 60,000+ lines at the time of writing, is written in Rust. As the oldest body of Rust code it has gone through many iterations of the language, and some parts are nicer to look at than others. It may not be the best code to learn from, but [borrowck] and [resolve] were written recently.
66

77
[rustc]: https://github.com/rust-lang/rust/tree/master/src/librustc
8-
[resolve]: https://github.com/rust-lang/rust/tree/master/src/librustc_resolve
9-
[borrowck]: https://github.com/rust-lang/rust/tree/master/src/librustc_borrowck/borrowck
8+
[resolve]: https://github.com/rust-lang/rust/blob/master/src/librustc/middle/resolve.rs
9+
[borrowck]: https://github.com/rust-lang/rust/blob/master/src/librustc/middle/borrowck/
1010

1111
A research browser engine called [Servo][servo], currently 30,000+ lines across more than a dozen crates, will be exercising a lot of Rust's distinctive type-system and concurrency features, and integrating many native libraries.
1212

@@ -20,8 +20,8 @@ Some examples that demonstrate different aspects of the language:
2020
* The standard library's [json] module. Enums and pattern matching
2121

2222
[sprocketnes]: https://github.com/pcwalton/sprocketnes
23-
[hash]: https://github.com/rust-lang/rust/tree/master/src/libcore/hash
24-
[HashMap]: https://github.com/rust-lang/rust/tree/master/src/libstd/collections/hash
23+
[hash]: https://github.com/rust-lang/rust/blob/master/src/libstd/hash/mod.rs
24+
[HashMap]: https://github.com/rust-lang/rust/blob/master/src/libcollections/hashmap.rs
2525
[json]: https://github.com/rust-lang/rust/blob/master/src/libserialize/json.rs
2626

2727
You may also be interested in browsing [trending Rust repositories][github-rust] on GitHub.

branches/stable/src/doc/trpl/closures.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ The second is that the syntax is similar, but a bit different. I’ve added spac
5454
here to make them look a little closer:
5555

5656
```rust
57-
fn plus_one_v1 (x: i32) -> i32 { x + 1 }
58-
let plus_one_v2 = |x: i32| -> i32 { x + 1 };
59-
let plus_one_v3 = |x: i32| x + 1 ;
57+
fn plus_one_v1 (x: i32 ) -> i32 { x + 1 }
58+
let plus_one_v2 = |x: i32 | -> i32 { x + 1 };
59+
let plus_one_v3 = |x: i32 | x + 1 ;
6060
```
6161

6262
Small differences, but they’re similar in ways.
@@ -136,7 +136,7 @@ This gives us:
136136
note: `nums` moved into closure environment here because it has type
137137
`[closure(()) -> collections::vec::Vec<i32>]`, which is non-copyable
138138
let takes_nums = || nums;
139-
^~~~~~~
139+
^~~~~~~
140140
```
141141

142142
`Vec<T>` has ownership over its contents, and therefore, when we refer to it
@@ -352,8 +352,8 @@ error: the trait `core::marker::Sized` is not implemented for the type
352352
factory() -> (Fn(i32) -> Vec<i32>) {
353353
^~~~~~~~~~~~~~~~~~~~~
354354
note: `core::ops::Fn(i32) -> collections::vec::Vec<i32>` does not have a constant size known at compile-time
355-
factory() -> (Fn(i32) -> Vec<i32>) {
356-
^~~~~~~~~~~~~~~~~~~~~
355+
fa ctory() -> (Fn(i32) -> Vec<i32>) {
356+
^~~~~~~~~~~~~~~~~~~~~
357357
358358
```
359359

branches/stable/src/doc/trpl/dining-philosophers.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ from the standard library, and so we need to `use` it.
320320
We now print out two messages, with a `sleep_ms()` in the middle. This will
321321
simulate the time it takes a philosopher to eat.
322322

323-
If you run this program, you should see each philosopher eat in turn:
323+
If you run this program, You should see each philosopher eat in turn:
324324

325325
```text
326326
Baruch Spinoza is eating.
@@ -480,7 +480,7 @@ struct Table {
480480
}
481481
```
482482

483-
This `Table` has a vector of `Mutex`es. A mutex is a way to control
483+
This `Table` has an vector of `Mutex`es. A mutex is a way to control
484484
concurrency: only one thread can access the contents at once. This is exactly
485485
the property we need with our forks. We use an empty tuple, `()`, inside the
486486
mutex, since we’re not actually going to use the value, just hold onto it.

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ $ sh rustup.sh
2323
If you're on Windows, please download either the [32-bit installer][win32] or
2424
the [64-bit installer][win64] and run it.
2525

26-
[win32]: https://static.rust-lang.org/dist/rust-1.0.0-i686-pc-windows-gnu.msi
27-
[win64]: https://static.rust-lang.org/dist/rust-1.0.0-x86_64-pc-windows-gnu.msi
26+
[win32]: https://static.rust-lang.org/dist/rust-1.0.0-beta-i686-pc-windows-gnu.msi
27+
[win64]: https://static.rust-lang.org/dist/rust-1.0.0-beta-x86_64-pc-windows-gnu.msi
2828

2929
## Uninstalling
3030

@@ -74,7 +74,7 @@ $ rustc --version
7474
You should see the version number, commit hash, commit date and build date:
7575

7676
```bash
77-
rustc 1.0.0 (a59de37e9 2015-05-13) (built 2015-05-14)
77+
rustc 1.0.0-beta (9854143cb 2015-04-02) (built 2015-04-02)
7878
```
7979

8080
If you did, Rust has been installed successfully! Congrats!

branches/stable/src/doc/trpl/references-and-borrowing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ We can’t modify `v` because it’s borrowed by the loop.
297297
References must live as long as the resource they refer to. Rust will check the
298298
scopes of your references to ensure that this is true.
299299

300-
If Rust didn’t check this property, we could accidentally use a reference
300+
If Rust didn’t check that this property, we could accidentally use a reference
301301
which was invalid. For example:
302302

303303
```rust,ignore

branches/stable/src/doc/trpl/rust-inside-other-languages.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ fn process() {
104104
let handles: Vec<_> = (0..10).map(|_| {
105105
thread::spawn(|| {
106106
let mut _x = 0;
107-
for _ in (0..5_000_000) {
107+
for _ in (0..5_000_001) {
108108
_x += 1
109109
}
110110
})
@@ -217,7 +217,7 @@ end
217217

218218
Hello.process
219219

220-
puts "done!"
220+
puts "done!
221221
```
222222
223223
Before we can run this, we need to install the `ffi` gem:

branches/stable/src/doc/trpl/strings.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ Rust has two main types of strings: `&str` and `String`. Let’s talk about
1616
`&'static str`:
1717

1818
```rust
19-
let greeting = "Hello there."; // greeting: &'static str
19+
let string = "Hello there."; // string: &'static str
2020
```
2121

2222
This string is statically allocated, meaning that it’s saved inside our
23-
compiled program, and exists for the entire duration it runs. The `greeting`
23+
compiled program, and exists for the entire duration it runs. The `string`
2424
binding is a reference to this statically allocated string. String slices
2525
have a fixed size, and cannot be mutated.
2626

branches/stable/src/grammar/lexer.l

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ r/# {
311311
<str>\x22 { BEGIN(suffix); return LIT_STR; }
312312

313313
<str><<EOF>> { return -1; }
314-
<str>\\[n\nr\rt\\\x27\x220] { yymore(); }
314+
<str>\\[n\nrt\\\x27\x220] { yymore(); }
315315
<str>\\x[0-9a-fA-F]{2} { yymore(); }
316316
<str>\\u\{[0-9a-fA-F]?{6}\} { yymore(); }
317317
<str>\\[^n\nrt\\\x27\x220] { return -1; }

branches/stable/src/grammar/parser-lalr.y

Lines changed: 22 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -289,16 +289,16 @@ item_const
289289
;
290290

291291
item_macro
292-
: path_expr '!' maybe_ident parens_delimited_token_trees ';' { $$ = mk_node("ItemMacro", 3, $1, $3, $4); }
293-
| path_expr '!' maybe_ident braces_delimited_token_trees { $$ = mk_node("ItemMacro", 3, $1, $3, $4); }
294-
| path_expr '!' maybe_ident brackets_delimited_token_trees ';'{ $$ = mk_node("ItemMacro", 3, $1, $3, $4); }
292+
: path_expr '!' maybe_ident parens_delimited_token_trees ';'
293+
| path_expr '!' maybe_ident braces_delimited_token_trees
294+
| path_expr '!' maybe_ident brackets_delimited_token_trees ';'
295295
;
296296

297297
view_item
298298
: use_item
299299
| extern_fn_item
300300
| EXTERN CRATE ident ';' { $$ = mk_node("ViewItemExternCrate", 1, $3); }
301-
| EXTERN CRATE ident AS ident ';' { $$ = mk_node("ViewItemExternCrate", 2, $3, $5); }
301+
| EXTERN CRATE str AS ident ';' { $$ = mk_node("ViewItemExternCrate", 2, $3, $5); }
302302
;
303303

304304
extern_fn_item
@@ -312,11 +312,8 @@ use_item
312312
view_path
313313
: path_no_types_allowed { $$ = mk_node("ViewPathSimple", 1, $1); }
314314
| path_no_types_allowed MOD_SEP '{' '}' { $$ = mk_node("ViewPathList", 2, $1, mk_atom("ViewPathListEmpty")); }
315-
| MOD_SEP '{' '}' { $$ = mk_node("ViewPathList", 1, mk_atom("ViewPathListEmpty")); }
316315
| path_no_types_allowed MOD_SEP '{' idents_or_self '}' { $$ = mk_node("ViewPathList", 2, $1, $4); }
317-
| MOD_SEP '{' idents_or_self '}' { $$ = mk_node("ViewPathList", 1, $3); }
318316
| path_no_types_allowed MOD_SEP '{' idents_or_self ',' '}' { $$ = mk_node("ViewPathList", 2, $1, $4); }
319-
| MOD_SEP '{' idents_or_self ',' '}' { $$ = mk_node("ViewPathList", 1, $3); }
320317
| path_no_types_allowed MOD_SEP '*' { $$ = mk_node("ViewPathGlob", 1, $1); }
321318
| '{' '}' { $$ = mk_atom("ViewPathListEmpty"); }
322319
| '{' idents_or_self '}' { $$ = mk_node("ViewPathList", 1, $2); }
@@ -336,7 +333,7 @@ block_item
336333
;
337334

338335
maybe_ty_ascription
339-
: ':' ty_sum { $$ = $2; }
336+
: ':' ty { $$ = $2; }
340337
| %empty { $$ = mk_none(); }
341338
;
342339

@@ -514,7 +511,7 @@ trait_item
514511
;
515512

516513
trait_const
517-
: maybe_outer_attrs CONST ident maybe_ty_ascription maybe_const_default ';' { $$ = mk_node("ConstTraitItem", 4, $1, $3, $4, $5); }
514+
: maybe_outer_attrs CONST ident maybe_const_default ';' { $$ = mk_node("ConstTraitItem", 3, $1, $3, $4); }
518515
;
519516

520517
maybe_const_default
@@ -593,11 +590,11 @@ item_impl
593590
{
594591
$$ = mk_node("ItemImpl", 6, $1, $3, 5, $6, $9, $10);
595592
}
596-
| maybe_unsafe IMPL generic_params trait_ref FOR ty_sum maybe_where_clause '{' maybe_inner_attrs maybe_impl_items '}'
593+
| maybe_unsafe IMPL generic_params trait_ref FOR ty maybe_where_clause '{' maybe_inner_attrs maybe_impl_items '}'
597594
{
598595
$$ = mk_node("ItemImpl", 6, $3, $4, $6, $7, $9, $10);
599596
}
600-
| maybe_unsafe IMPL generic_params '!' trait_ref FOR ty_sum maybe_where_clause '{' maybe_inner_attrs maybe_impl_items '}'
597+
| maybe_unsafe IMPL generic_params '!' trait_ref FOR ty maybe_where_clause '{' maybe_inner_attrs maybe_impl_items '}'
601598
{
602599
$$ = mk_node("ItemImplNeg", 7, $1, $3, $5, $7, $8, $10, $11);
603600
}
@@ -623,7 +620,7 @@ impl_items
623620

624621
impl_item
625622
: impl_method
626-
| attrs_and_vis item_macro { $$ = mk_node("ImplMacroItem", 2, $1, $2); }
623+
| item_macro
627624
| impl_const
628625
| impl_type
629626
;
@@ -701,7 +698,7 @@ params
701698
;
702699

703700
param
704-
: pat ':' ty_sum { $$ = mk_node("Arg", 2, $1, $3); }
701+
: pat ':' ty { $$ = mk_node("Arg", 2, $1, $3); }
705702
;
706703

707704
inferrable_params
@@ -912,11 +909,6 @@ pat
912909
| ident '@' pat { $$ = mk_node("PatIdent", 3, mk_node("BindByValue", 1, mk_atom("MutImmutable")), $1, $3); }
913910
| binding_mode ident '@' pat { $$ = mk_node("PatIdent", 3, $1, $2, $4); }
914911
| BOX pat { $$ = mk_node("PatUniq", 1, $2); }
915-
| '<' ty_sum maybe_as_trait_ref '>' MOD_SEP ident { $$ = mk_node("PatQualifiedPath", 3, $2, $3, $6); }
916-
| SHL ty_sum maybe_as_trait_ref '>' MOD_SEP ident maybe_as_trait_ref '>' MOD_SEP ident
917-
{
918-
$$ = mk_node("PatQualifiedPath", 3, mk_node("PatQualifiedPath", 3, $2, $3, $6), $7, $10);
919-
}
920912
;
921913

922914
pats_or
@@ -989,11 +981,11 @@ pat_vec_elts
989981
ty
990982
: ty_prim
991983
| ty_closure
992-
| '<' ty_sum maybe_as_trait_ref '>' MOD_SEP ident { $$ = mk_node("TyQualifiedPath", 3, $2, $3, $6); }
993-
| SHL ty_sum maybe_as_trait_ref '>' MOD_SEP ident maybe_as_trait_ref '>' MOD_SEP ident { $$ = mk_node("TyQualifiedPath", 3, mk_node("TyQualifiedPath", 3, $2, $3, $6), $7, $10); }
994-
| '(' ty_sums ')' { $$ = mk_node("TyTup", 1, $2); }
995-
| '(' ty_sums ',' ')' { $$ = mk_node("TyTup", 1, $2); }
996-
| '(' ')' { $$ = mk_atom("TyNil"); }
984+
| '<' ty_sum AS trait_ref '>' MOD_SEP ident { $$ = mk_node("TyQualifiedPath", 3, $2, $4, $7); }
985+
| SHL ty_sum AS trait_ref '>' MOD_SEP ident AS trait_ref '>' MOD_SEP ident { $$ = mk_node("TyQualifiedPath", 3, mk_node("TyQualifiedPath", 3, $2, $4, $7), $9, $12); }
986+
| '(' ty_sums ')' { $$ = mk_node("TyTup", 1, $2); }
987+
| '(' ty_sums ',' ')' { $$ = mk_node("TyTup", 1, $2); }
988+
| '(' ')' { $$ = mk_atom("TyNil"); }
997989
;
998990

999991
ty_prim
@@ -1559,7 +1551,11 @@ nonblock_prefix_expr
15591551
;
15601552

15611553
expr_qualified_path
1562-
: '<' ty_sum maybe_as_trait_ref '>' MOD_SEP ident maybe_qpath_params
1554+
: '<' ty_sum maybe_as_trait_ref '>' MOD_SEP ident
1555+
{
1556+
$$ = mk_node("ExprQualifiedPath", 3, $2, $3, $6);
1557+
}
1558+
| '<' ty_sum maybe_as_trait_ref '>' MOD_SEP ident generic_args
15631559
{
15641560
$$ = mk_node("ExprQualifiedPath", 4, $2, $3, $6, $7);
15651561
}
@@ -1580,11 +1576,6 @@ expr_qualified_path
15801576
$$ = mk_node("ExprQualifiedPath", 4, mk_node("ExprQualifiedPath", 4, $2, $3, $6, $7), $8, $11, $12);
15811577
}
15821578

1583-
maybe_qpath_params
1584-
: MOD_SEP generic_args { $$ = $2; }
1585-
| %empty { $$ = mk_none(); }
1586-
;
1587-
15881579
maybe_as_trait_ref
15891580
: AS trait_ref { $$ = $2; }
15901581
| %empty { $$ = mk_none(); }
@@ -1675,10 +1666,8 @@ block_expr
16751666

16761667
full_block_expr
16771668
: block_expr
1678-
| full_block_expr '.' path_generic_args_with_colons %prec IDENT { $$ = mk_node("ExprField", 2, $1, $3); }
1679-
| full_block_expr '.' path_generic_args_with_colons '[' maybe_expr ']' { $$ = mk_node("ExprIndex", 3, $1, $3, $5); }
1680-
| full_block_expr '.' path_generic_args_with_colons '(' maybe_exprs ')' { $$ = mk_node("ExprCall", 3, $1, $3, $5); }
1681-
| full_block_expr '.' LIT_INTEGER { $$ = mk_node("ExprTupleIndex", 1, $1); }
1669+
| full_block_expr '.' path_generic_args_with_colons { $$ = mk_node("ExprField", 2, $1, $3); }
1670+
| full_block_expr '.' LIT_INTEGER { $$ = mk_node("ExprTupleIndex", 1, $1); }
16821671
;
16831672

16841673
expr_match

branches/stable/src/grammar/verify.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ fn parse_token_list(file: &str) -> HashMap<String, token::Token> {
111111
"LIT_BINARY_RAW" => token::Literal(token::BinaryRaw(Name(0), 0), None),
112112
"QUESTION" => token::Question,
113113
"SHEBANG" => token::Shebang(Name(0)),
114-
_ => continue,
114+
_ => panic!("Bad token str `{}`", val),
115115
};
116116

117117
res.insert(num.to_string(), tok);
@@ -287,9 +287,11 @@ fn main() {
287287
let options = config::basic_options();
288288
let session = session::build_session(options, None,
289289
syntax::diagnostics::registry::Registry::new(&[]));
290-
let filemap = session.parse_sess.codemap().new_filemap(String::from_str("<n/a>"), code);
290+
let filemap = parse::string_to_filemap(&session.parse_sess,
291+
code,
292+
String::from_str("<n/a>"));
291293
let mut lexer = lexer::StringReader::new(session.diagnostic(), filemap);
292-
let cm = session.codemap();
294+
let ref cm = lexer.span_diagnostic.cm;
293295

294296
// ANTLR
295297
let mut token_file = File::open(&Path::new(&args.next().unwrap())).unwrap();

0 commit comments

Comments
 (0)