about summary refs log tree commit diff
path: root/src/libsyntax/parse/parser.rs
AgeCommit message (Collapse)AuthorLines
2013-03-02Remove REC, change related tests/docsJihyun Yu-10/+6
2013-03-01Avoid calling to_vec() unnecessarily in parser.Niko Matsakis-6/+6
Also, rename the OptVec-to-vector conversion method to opt_vec::take_vec() and convert from a method into a fn because I fear strange bugs.
2013-02-27auto merge of #5155 : bstrie/rust/dedrop, r=pcwaltonbors-1/+5
This removes all but 6 uses of `drop {}` from the entire codebase. Removing any of the remaining uses causes various non-trivial bugs; I'll start reporting them once this gets merged.
2013-02-27auto merge of #5141 : nikomatsakis/rust/region-syntax-expl-lifetimes, ↵bors-140/+117
r=nikomatsakis Major changes are: - replace ~[ty_param] with Generics structure, which includes both OptVec<TyParam> and OptVec<Lifetime>; - the use of syntax::opt_vec to avoid allocation for empty lists; cc #4846 r? @graydon
2013-02-27Introduce lifetime declarations into the lists of type parameters.Niko Matsakis-140/+117
Major changes are: - replace ~[ty_param] with Generics structure, which includes both OptVec<TyParam> and OptVec<Lifetime>; - the use of syntax::opt_vec to avoid allocation for empty lists; cc #4846
2013-02-27Turn old `drop` blocks into `Drop` traitsBen Striegel-1/+5
2013-02-27librustc: Forbid `pub` or `priv` before trait implementationsPatrick Walton-5/+12
2013-02-27libsyntax: Forbid mutable vectors. rs=demutingPatrick Walton-0/+8
2013-02-27libsyntax: Forbid `~mut` and `~const`. rs=demutingPatrick Walton-1/+5
2013-02-26libsyntax: Stop parsing `~mut`Patrick Walton-1/+6
2013-02-25Stop parsing capture clausesBen Striegel-38/+20
2013-02-22libsyntax: De-mut the parser. rs=demutingPatrick Walton-269/+270
2013-02-21auto merge of #5077 : jbclements/rust/increase-monomorphization-depth-limit, ↵bors-3/+38
r=catamorphism It appears that using deriving_eq/auto_encode on ASTs bumps up against the "gee this looks like infinite unfolding" limit of 10 in monomorphization. Increasing it to 30 seems to solve this problem for me.... Also, commenting and a few renames.
2013-02-21Cleanup, commenting, trivial renamingJohn Clements-3/+38
2013-02-21Remove the last bits of structural records from tests/rustc/rusti/rustpkg.Luqman Aden-1/+1
2013-02-21auto merge of #5071 : luqmana/rust/derec, r=pcwaltonbors-58/+63
Rid libsyntax of records and get rid of the last piece in `librustc/front/test.rs`.
2013-02-21librustc: Separate the rest of the trait bounds with `+` and stop parsing ↵Patrick Walton-1/+7
space-separated ones. rs=plussing
2013-02-21Get rid of structural records in libsyntax and the last bit in librustc.Luqman Aden-58/+63
2013-02-19auto merge of #4999 : erickt/rust/incoming, r=brsonbors-7/+7
This patch series is doing a couple things with the ultimate goal of removing `#[allow(vecs_implicitly_copyable)]`, although I'm not quite there yet. The main change is passing around `@~str`s in most places, and using `ref`s in others. As far as I could tell, there are no performance changes with these patches, and all the tests pass on my mac.
2013-02-19convert syntax::attr to use @~strsErick Tryzelaar-7/+7
2013-02-19auto merge of #5002 : catamorphism/rust/one-tuples, r=graydonbors-8/+28
r? @graydon - This is for greater uniformity (for example, macros that generate tuples). rustc already supported 1-tuple patterns, but there was no way to construct a 1-tuple term. @graydon , as far as your comment on #4898 - it did turn out to be solvable inside the macro (since @luqmana already fixed it using structs instead), but I still think it's a good idea to allow 1-tuples, for uniformity. I don't think anyone is likely to trip over it, and I'm not too worried that it changes the amount of ambiguity.
2013-02-18rustc: For one-tuples, make parsing and printing the type workTim Chevalier-2/+11
and add a test to reflect-visit-data
2013-02-17libsyntax: Update view_item_use/import to reflect actual usageLuqman Aden-6/+6
2013-02-17syntax: Allow 1-tuple expressionsTim Chevalier-6/+17
This is for greater uniformity (for example, macros that generate tuples). rustc already supported 1-tuple patterns, but there was no way to construct a 1-tuple term.
2013-02-16Parse (and discard) lifetime declarations on function typesNiko Matsakis-17/+29
2013-02-16Permit lifetimes to appear in type parameter lists and after `&`. Lifetimes inNiko Matsakis-11/+99
type parameter lists are currently ignored, but `&'a T` is equivalent to `&a/T`.
2013-02-15librustc: Stop parsing `impl Type : Trait` and fix several declarations that ↵Patrick Walton-8/+6
slipped through. r=tjc
2013-02-15libsyntax: Remove move as a keyword.Luqman Aden-1/+1
2013-02-15libsyntax: Get rid of uses of `move` and don't parse it.Luqman Aden-29/+22
2013-02-14Remove DVec from syntax::parseSeo Sanghyeon-8/+6
2013-02-13auto merge of #4922 : jbclements/rust/add-deriving-eq-to-asts, r=catamorphismbors-15/+28
r? Apply deriving_eq to the data structures in ast.rs, and get rid of the custom definitions of eq that were everywhere. resulting ast.rs is about 400 lines shorter. Also: add a few test cases and a bunch of comments. Also: change ast_ty_to_ty_cache to use node ids rather than ast::ty's. I believe this was a suggestion related to my changes, and it appears to pass all tests. Also: tiny doc fix, remove references to crate keywords.
2013-02-13Remove die!, raplace invocations with fail! Issue #4524 pt 3Nick Desaulniers-2/+2
2013-02-13Commenting, test cases, cleanupJohn Clements-15/+28
2013-02-09Issue #4830 fixSeth Pink-47/+24
2013-02-07Make ~fn non-copyable, make &fn copyable, split barefn/closure types,Niko Matsakis-74/+96
correct handling of moves for struct-record update. Part of #3678. Fixes #2828, #3904, #4719.
2013-02-04Merge remote-tracking branch 'bstrie/rimov' into incomingBrian Anderson-2/+2
Conflicts: src/libsyntax/parse/parser.rs src/test/bench/graph500-bfs.rs src/test/bench/sudoku.rs src/test/run-pass/borrowck-mut-vec-as-imm-slice.rs src/test/run-pass/empty-mutable-vec.rs src/test/run-pass/foreach-nested.rs src/test/run-pass/swap-2.rs
2013-02-03rename map -> oldmap and mark it as deprecatedDaniel Micay-1/+1
LinearMap is quite a bit faster, and is fully owned/sendable without requiring copies. The older std::map also doesn't use explicit self and relies on mutable fields.
2013-02-01Merge remote-tracking branch 'nickdesaulniers/issue4524' into nocomm1Brian Anderson-7/+1
2013-02-01Remove fail keyword from lexer & parser and clean up remaining calls toNick Desaulniers-7/+1
fail Fix merge conflicts - Issue 4524
2013-01-31cleanup for make checkJohn Clements-3/+3
2013-01-31more cleanupJohn Clements-59/+69
2013-01-31test cases, cleanupJohn Clements-22/+34
2013-01-31Replace most invocations of fail keyword with die! macroNick Desaulniers-2/+2
2013-01-31Workaround for #4717: pad contents of ast. rs=breakageNiko Matsakis-1/+2
2013-01-31Finalize moves-based-on-type implementation.Niko Matsakis-86/+55
Changes: - Refactor move mode computation - Removes move mode arguments, unary move, capture clauses (though they still parse for backwards compatibility) - Simplify how moves are handled in trans - Fix a number of illegal copies that cropped up - Workaround for bug involving def-ids in params (see details below) Future work (I'll open bugs for these...): - Improve error messages for moves that are due to bindings - Add support for moving owned content like a.b.c to borrow check, test in trans (but I think it'll "just work") - Proper fix for def-ids in params Def ids in params: Move captures into a map instead of recomputing. This is a workaround for a larger bug having to do with the def-ids associated with ty_params, which are not always properly preserved when inlining. I am not sure of my preferred fix for the larger bug yet. This current fix removes the only code in trans that I know of which relies on ty_param def-ids, but feels fragile.
2013-01-30RIMOV, round 6.Ben Striegel-2/+2
This gets rid of `mut` inside bare vectors. It's going to cause some problems later.
2013-01-30librustc: Remove legacy exports from the language. r=brsonPatrick Walton-22/+4
2013-01-29libsyntax: De-export a lot of libsyntax. rs=deëxportingPatrick Walton-35/+37
2013-01-29libsyntax: Implement the `impl Trait for Type` syntaxPatrick Walton-6/+23
2013-01-24remove remaining is_not_empty functions/methodsDaniel Micay-1/+1