about summary refs log tree commit diff
path: root/src/libsyntax/parse
AgeCommit message (Collapse)AuthorLines
2013-02-15libsyntax: Get rid of uses of `move` and don't parse it.Luqman Aden-37/+30
2013-02-14auto merge of #4927 : sanxiyn/rust/remove-dvec, r=catamorphismbors-10/+7
2013-02-14auto merge of #4911 : lifthrasiir/rust/comment-exemptions, r=catamorphismbors-39/+64
This is a natural extension of #4887, and handles the following three cases: ~~~~ a line with only /s //////////////////////////////////////////// a line with only /s followed by whitespace //////////////////////////////////////////// a block comment with only *s between two /s /********************************/ ~~~~
2013-02-14librustc: Replace `impl Type : Trait` with `impl Trait for Type`. ↵Patrick Walton-4/+4
rs=implflipping
2013-02-14Remove DVec from syntax::parseSeo Sanghyeon-10/+7
2013-02-13auto merge of #4922 : jbclements/rust/add-deriving-eq-to-asts, r=catamorphismbors-25/+107
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-7/+7
2013-02-13cleanup, fix test caseJohn Clements-3/+11
2013-02-13deriving_eq for tokens and binopsJohn Clements-6/+1
Note that the replaced definition of equality on tokens contains a *huge* shortcut on INTERPOLATED tokens (those that contain ASTs), whereby any two INTERPOLATED tokens are considered equal. This seems like a really broken notion of equality, but it appears that the existing test cases and the compiler don't depend on it. Niko noticed this, BTW. Replace long definition of Eq on tokens and binops w
2013-02-13Commenting, test cases, cleanupJohn Clements-19/+98
2013-02-13libsyntax: don't parse ////, /***/ as doc commentsKang Seonghoon-39/+64
2013-02-09auto merge of #4861 : sethpink/rust/incoming, r=catamorphismbors-52/+24
Fix for issue #4830.
2013-02-09auto merge of #4854 : thestinger/rust/oldmap, r=catamorphismbors-8/+8
2013-02-09Issue #4830 fixSeth Pink-52/+24
2013-02-08oldmap: get rid of legacy _ref suffixesDaniel Micay-8/+8
2013-02-08Add and lex LIFETIME tokensNiko Matsakis-17/+89
cc #4846
2013-02-07librustc: Lots of de-muting. rs=demutingPatrick Walton-100/+106
2013-02-07auto merge of #4791 : jbclements/rust/demodeing-and-deGCing, r=jbclements,brsonbors-44/+45
r? It looks to me like the string_reader and tt_reader structs are GC pointers only because they predate the modern borrow system. This commit leaves the type names string_reader and tt_reader alone (they still refer to GC-ed pointers), but internally the functions now use borrowed pointers to refer to these structures. My guess would be that it's possible to move this change outward and not use the GCed pointers at all, but that change looks like it could be a larger one. Actually, I'm delighted at how quick this change was.
2013-02-07Make ~fn non-copyable, make &fn copyable, split barefn/closure types,Niko Matsakis-76/+100
correct handling of moves for struct-record update. Part of #3678. Fixes #2828, #3904, #4719.
2013-02-06libsyntax: no binary/hex float literalsKang Seonghoon-0/+7
2013-02-04demodeing, un-gc-ingJohn Clements-44/+45
It looks to me like the string_reader and tt_reader structs are GC pointers only because they predate the modern borrow system. This commit leaves the type names string_reader and tt_reader alone (they still refer to GC-ed pointers), but internally the functions now use borrowed pointers to refer to these structures. My guess would be that it's possible to move this change outward and not use the GCed pointers at all, but that change looks like it could be a larger one. Actually, I'm delighted at how quick this change was.
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-03Merge remote-tracking branch 'thestinger/old_map' into incomingBrian Anderson-7/+7
Conflicts: src/test/bench/core-map.rs
2013-02-03Converted libcore/uint-template.rs to the new string functions.Marvin Löbel-2/+2
- Moved ToStr implementation of unsigned integers to uint-template.rs. - Marked the `str()` function as deprecated. - Forwarded all conversion functions to `core::num::to_str_common()` and `core::num::from_str_common()`. - Fixed most places in the codebase where `to_str()` is being used. - Added uint-template to_str and from_str overflow tests.
2013-02-03oldmap: get rid of the legacy each_key methodDaniel Micay-3/+3
2013-02-03oldmap: get rid of the legacy contains_key methodDaniel Micay-1/+1
2013-02-03rename map -> oldmap and mark it as deprecatedDaniel Micay-3/+3
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-8/+2
2013-02-01Remove fail keyword from lexer & parser and clean up remaining calls toNick Desaulniers-8/+2
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-68/+133
2013-01-31Replace most invocations of fail keyword with die! macroNick Desaulniers-7/+7
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-23/+5
2013-01-29libsyntax: De-export libsyntax. rs=deexportingPatrick Walton-14/+10
2013-01-29libsyntax: De-export a lot of libsyntax. rs=deëxportingPatrick Walton-165/+142
2013-01-29libsyntax: Implement the `impl Trait for Type` syntaxPatrick Walton-6/+23
2013-01-29librustc: Disallow trait bounds in types, enumerations, and structure ↵Patrick Walton-10/+8
definitions. r=tjc
2013-01-29libstd: Remove "dual impls" from the language and enforce coherence rules. ↵Patrick Walton-2/+2
r=brson "Dual impls" are impls that are both type implementations and trait implementations. They can lead to ambiguity and so this patch removes them from the language. This also enforces coherence rules. Without this patch, records can implement traits not defined in the current crate. This patch fixes this, and updates all of rustc to adhere to the new enforcement. Most of this patch is fixing rustc to obey the coherence rules, which involves converting a bunch of records to structs.
2013-01-24remove remaining is_not_empty functions/methodsDaniel Micay-1/+1
2013-01-24Merge pull request #4609 from sonwow/keyword-superTim Chevalier-1/+1
Make `super` a keyword
2013-01-24syntax/rustc: Improve error message for misuse of `for` loopTim Chevalier-37/+39
Print out a clearer error message when a `for` gets used with the wrong type of iterator. Also fix spans on `for` loop bodies, and suppress some more derived errors. r=brson Closes #3651
2013-01-24Make `super` a keywordYoungsoo Son-1/+1
2013-01-23libsyntax: Fix parsing of `pub unsafe fn` inside `extern` blocks. rs=bugfixPatrick Walton-1/+2
2013-01-23libsyntax: Implement `assert` as a macro (called `fail_unless!` on a ↵Patrick Walton-12/+17
transitionary basis to avoid conflicting with the keyword right now). r=brson
2013-01-23libsyntax: Remove `fn() unsafe { ... }`. r=graydonPatrick Walton-9/+18
2013-01-23libsyntax: Implement the `+` syntax for multiple trait bounds. r=tjcPatrick Walton-0/+4