bors
76fbb35831
Auto merge of #21079 - huonw:chained-cmp-tweaks, r=pnkfelix
...
First commit is mindless groundwork for the second one, to make the spans (arguably) nicer.
### before
```
require-parens-for-chained-comparison.rs:14:20: 14:22 error: Chained comparison operators require parentheses
require-parens-for-chained-comparison.rs:14 false == false == false;
^~
require-parens-for-chained-comparison.rs:17:16: 17:17 error: Chained comparison operators require parentheses
require-parens-for-chained-comparison.rs:17 false == 0 < 2;
^
require-parens-for-chained-comparison.rs:20:8: 20:9 error: Chained comparison operators require parentheses
require-parens-for-chained-comparison.rs:20 f<X>();
^
require-parens-for-chained-comparison.rs:20:8: 20:9 help: Use ::< instead of < if you meant to specify type arguments.
require-parens-for-chained-comparison.rs:20 f<X>();
^
```
### after
```
require-parens-for-chained-comparison.rs:14:11: 14:22 error: chained comparison operators require parentheses
require-parens-for-chained-comparison.rs:14 false == false == false;
^~~~~~~~~~~
require-parens-for-chained-comparison.rs:17:11: 17:17 error: chained comparison operators require parentheses
require-parens-for-chained-comparison.rs:17 false == 0 < 2;
^~~~~~
require-parens-for-chained-comparison.rs:20:6: 20:9 error: chained comparison operators require parentheses
require-parens-for-chained-comparison.rs:20 f<X>();
^~~
require-parens-for-chained-comparison.rs:20:6: 20:9 help: use `::<...>` instead of `<...>` if you meant to specify type arguments
require-parens-for-chained-comparison.rs:20 f<X>();
^~~
```
2015-01-24 17:07:43 +00:00
Huon Wilson
2e888d0341
Add the span of the operator itself to ast::BinOp.
2015-01-25 00:33:50 +11:00
Vadim Chugunov
f09c680b4c
Fix tidy.
2015-01-23 18:32:00 -08:00
Vadim Chugunov
27a261be3e
Suppress space after idents with "ModName" style in serialization of exported macros.
...
Fixes issue #20701
2015-01-22 17:45:43 -08:00
Alex Crichton
df1cddf20a
rollup merge of #20179 : eddyb/blind-items
...
Conflicts:
src/librustc/diagnostics.rs
src/librustdoc/clean/mod.rs
src/librustdoc/html/format.rs
src/libsyntax/parse/parser.rs
2015-01-21 11:56:00 -08:00
Alex Crichton
886c6f3534
rollup merge of #21258 : aturon/stab-3-index
...
Conflicts:
src/libcore/ops.rs
src/librustc_typeck/astconv.rs
src/libstd/io/mem.rs
src/libsyntax/parse/lexer/mod.rs
2015-01-21 11:53:49 -08:00
Alex Crichton
0c981875e4
rollup merge of #21340 : pshc/libsyntax-no-more-ints
...
Collaboration with @rylev!
I didn't change `int` in the [quasi-quoter](99ae1a30f3/src/libsyntax/ext/quote.rs (L328) ), because I'm not sure if there will be adverse effects.
Addresses #21095 .
2015-01-21 09:13:51 -08:00
Aaron Turon
a506d4cbfe
Fallout from stabilization.
2015-01-21 08:11:07 -08:00
Eduard Burtescu
7cece8725b
syntax: fix fallout of merging ast::ViewItem into ast::Item.
2015-01-21 16:27:26 +02:00
Paul Collier
3c32cd1be2
libsyntax: 0u -> 0us, 0i -> 0is
2015-01-18 19:43:44 -08:00
Paul Collier
591337431d
libsyntax: int types -> isize
2015-01-18 19:43:44 -08:00
Seo Sanghyeon
3f0cc8011a
Make output type in ast::FnDecl optional
2015-01-18 22:49:19 +09:00
Paul Collier
d5c83652b3
libsyntax: rename functions from uint to usize
2015-01-17 20:47:30 -08:00
Paul Collier
a32249d447
libsyntax: uint types to usize
2015-01-17 23:45:29 +00:00
Alex Crichton
b1a7e34fc0
rollup merge of #21127 : erickt/opt-stack
...
libsyntax compiled without optimization uses a lot of stack, which can cause it to run out of stack space. This PR factors out some arm handlers from `print_expr` as well as converts `advance_left` into a loop. This helps to cut down on the stack usage.
2015-01-15 14:11:53 -08:00
Eduard Burtescu
2cdc86c180
syntax: add fully qualified UFCS expressions.
2015-01-15 18:51:14 +02:00
Erick Tryzelaar
e14d053a50
syntax: factor out print_expr arms to reduce non-optimized stack usage
2015-01-13 21:16:56 -08:00
Erick Tryzelaar
92b48556e0
syntax: Don't import the pp.rs enum variants into the namespace
2015-01-13 21:12:39 -08:00
Jorge Aparicio
517f1cc63c
use slicing sugar
2015-01-07 17:35:56 -05:00
Nick Cameron
0c7f7a5fb8
fallout
2015-01-07 12:02:52 +13:00
Nick Cameron
791f545685
Pretty print empty structs properly
2015-01-07 10:49:00 +13:00
Nick Cameron
f7ff37e4c5
Replace full slice notation with index calls
2015-01-07 10:46:33 +13:00
Alex Crichton
7975fd9cee
rollup merge of #20482 : kmcallister/macro-reform
...
Conflicts:
src/libflate/lib.rs
src/libstd/lib.rs
src/libstd/macros.rs
src/libsyntax/feature_gate.rs
src/libsyntax/parse/parser.rs
src/libsyntax/show_span.rs
src/test/auxiliary/macro_crate_test.rs
src/test/compile-fail/lint-stability.rs
src/test/run-pass/intrinsics-math.rs
src/test/run-pass/tcp-connect-timeouts.rs
2015-01-05 19:01:17 -08:00
Alex Crichton
bb5e16b4b8
rollup merge of #20554 : huonw/mut-pattern
...
Conflicts:
src/librustc_typeck/check/_match.rs
2015-01-05 18:38:51 -08:00
Alex Crichton
3d9923d0d5
rollup merge of #20424 : jroesch/tuple-struct-where-clause-fix
...
Fixes #17904 . All the cases that I believe we should support are detailed in the test case, let me know if there is there is any more desired behavior. cc @japaric.
r? @nikomatsakis or whoever is appropriate.
2015-01-05 18:36:30 -08:00
Jorge Aparicio
714a5b7f5e
remove TyClosure
2015-01-05 17:22:15 -05:00
Keegan McAllister
ad7c647773
Add a special macro nonterminal $crate
2015-01-05 11:38:12 -08:00
Jared Roesch
c02fac471a
Refactor struct parsing and add tests
2015-01-05 00:46:01 -08:00
Huon Wilson
bf6c007760
Change & pat to only work with &T, and &mut with &mut T.
...
This implements RFC 179 by making the pattern `&<pat>` require matching
against a variable of type `&T`, and introducing the pattern `&mut
<pat>` which only works with variables of type `&mut T`.
The pattern `&mut x` currently parses as `&(mut x)` i.e. a pattern match
through a `&T` or a `&mut T` that binds the variable `x` to have type
`T` and to be mutable. This should be rewritten as follows, for example,
for &mut x in slice.iter() {
becomes
for &x in slice.iter() {
let mut x = x;
Due to this, this is a
[breaking-change]
Closes #20496 .
2015-01-05 16:14:17 +11:00
Flavio Percoco
8b883ab268
Add syntax for negative implementations of traits
...
This commit introduces the syntax for negative implmenetations of traits
as shown below:
`impl !Trait for Type {}`
cc #13231
Part of RFC #3
2015-01-04 23:16:13 +01:00
Jorge Aparicio
351409a622
sed -i -s 's/#\[deriving(/#\[derive(/g' **/*.rs
2015-01-03 22:54:18 -05:00
Jorge Aparicio
56dcbd17fd
sed -i -s 's/\bmod,/self,/g' **/*.rs
2015-01-03 22:42:21 -05:00
Alex Crichton
1f2ead1629
Merge remote-tracking branch 'origin/master' into rollup
...
Conflicts:
src/test/compile-fail/borrowck-loan-rcvr-overloaded-op.rs
2015-01-02 10:50:07 -08:00
Seo Sanghyeon
f2a06f760b
Make type in ast::Local optional
2015-01-02 20:55:31 +09:00
Nick Cameron
74d11d26f4
Accept self in place of mod in use items
...
[breaking-change]
`mod` is still accepted, but gives a deprecated warning
2015-01-02 23:05:22 +13:00
Alex Crichton
2a8547783f
rollup merge of #20194 : nick29581/dst-syntax
...
Part of #19607 .
r? @nikomatsakis
2014-12-29 16:35:59 -08:00
Nick Cameron
4e2afb0052
Remove ExprSlice by hacking the compiler
...
[breaking-change]
The `mut` in slices is now redundant. Mutability is 'inferred' from position. This means that if mutability is only obvious from the type, you will need to use explicit calls to the slicing methods.
2014-12-30 13:06:25 +13:00
Nick Cameron
ed8f503911
Add hypothetical support for ranges with only an upper bound
...
Note that this doesn't add the surface syntax.
2014-12-30 13:06:24 +13:00
Huon Wilson
5e5cc6749e
Slash the ast::Stmt type from 104 to 24 bytes.
...
(on platforms with 64-bit pointers.)
The StmtMac variant is rather large and also fairly rare, so let's
optimise the common case.
2014-12-29 23:55:25 +11:00
Nick Cameron
c4640a2a69
Changes to RustDoc
2014-12-26 10:54:24 +13:00
Nick Cameron
e656081b70
Accept ?Sized as well as Sized?
...
Includes a bit of refactoring to store `?` unbounds as bounds with a modifier, rather than in their own world, in the AST at least.
2014-12-26 10:16:24 +13:00
Nick Cameron
8a357e1d87
Add syntax for ranges
2014-12-24 09:12:45 +13:00
Alex Crichton
55cf032f43
rollup merge of #20124 : klutzy/pprust-asm
2014-12-22 12:48:07 -08:00
Alex Crichton
082bfde412
Fallout of std::str stabilization
2014-12-21 23:31:42 -08:00
klutzy
023572b957
pprust: Fix asm options
2014-12-22 13:37:10 +09:00
Alex Crichton
bc1d818b83
rollup merge of #20057 : nick29581/array-syntax
...
This does NOT break any existing programs because the `[_, ..n]` syntax is also supported.
Part of #19999
r? @nikomatsakis
2014-12-21 09:27:35 -08:00
Jared Roesch
d87b308b67
Add support for multiple region bounds in where clauses
2014-12-20 03:54:39 -08:00
Jared Roesch
e0cac488ac
Add parser support for generalized where clauses
...
Implement support in the parser for generalized where clauses,
as well as the conversion of ast::WherePredicates to
ty::Predicate in `collect.rs`.
2014-12-20 02:48:17 -08:00
Nick Cameron
2e86929a4a
Allow use of [_ ; n] syntax for fixed length and repeating arrays.
...
This does NOT break any existing programs because the `[_, ..n]` syntax is also supported.
2014-12-20 15:23:29 +13:00
Jorge Aparicio
86f8c127dd
libsyntax: use #[deriving(Copy)]
2014-12-19 10:51:00 -05:00