Seo Sanghyeon
3f0cc8011a
Make output type in ast::FnDecl optional
2015-01-18 22:49:19 +09: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
caf4a90c66
syntax: Rewrite pp advance_left to use a constant stack size
2015-01-13 21:14: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
Aaron Turon
6abfac083f
Fallout from stabilization
2014-12-30 17:06:08 -08: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
Patrick Walton
ddb2466f6a
librustc: Always parse macro!()
/macro![]
as expressions if not
...
followed by a semicolon.
This allows code like `vec![1i, 2, 3].len();` to work.
This breaks code that uses macros as statements without putting
semicolons after them, such as:
fn main() {
...
assert!(a == b)
assert!(c == d)
println(...);
}
It also breaks code that uses macros as items without semicolons:
local_data_key!(foo)
fn main() {
println("hello world")
}
Add semicolons to fix this code. Those two examples can be fixed as
follows:
fn main() {
...
assert!(a == b);
assert!(c == d);
println(...);
}
local_data_key!(foo);
fn main() {
println("hello world")
}
RFC #378 .
Closes #18635 .
[breaking-change]
2014-12-18 12:09:07 -05:00
Alex Crichton
a02885e167
rollup merge of #19918 : pnkfelix/ast-refactor-make-place-in-exprbox-an-option
...
This is to allow us to migrate away from UnUniq in a followup commit,
and thus unify the code paths related to all forms of `box`.
2014-12-17 11:50:30 -08:00
Alex Crichton
bdb1146181
rollup merge of #19831 : luqmana/deriving-where
...
Fixes #19358 .
2014-12-17 11:50:25 -08:00
Felix S. Klock II
7d4e7f0795
AST refactor: make the place in ExprBox an option.
...
This is to allow us to migrate away from UnUniq in a followup commit,
and thus unify the code paths related to all forms of `box`.
2014-12-16 14:30:30 +01:00
Brian Koropoff
0a1798dd1e
Fix pretty printing of HRTB syntax
2014-12-15 18:26:06 -08:00
Niko Matsakis
22f777ba2e
Parse unsafe impl
but don't do anything particularly interesting with the results.
2014-12-14 11:11:55 -05:00
Niko Matsakis
5686a91914
Parse unsafe trait
but do not do anything with it beyond parsing and integrating into rustdoc etc.
2014-12-14 11:11:55 -05:00
Niko Matsakis
092d04a40a
Rename FnStyle trait to Unsafety.
2014-12-14 11:11:55 -05:00
Niko Matsakis
d258d68db6
Remove proc
types/expressions from the parser, compiler, and
...
language. Recommend `move||` instead.
2014-12-14 04:21:56 -05:00
Luqman Aden
ab1bdde536
libsyntax: Output where clauses in pretty printer for structs.
2014-12-14 01:13:23 -05:00
Jorge Aparicio
0dac05dd62
libsyntax: use unboxed closures
2014-12-13 17:03:47 -05:00