about summary refs log tree commit diff
path: root/src/libsyntax
AgeCommit message (Collapse)AuthorLines
2013-03-05auto merge of #5212 : thestinger/rust/iter, r=graydonbors-14/+14
A small step towards fixing #2827
2013-03-05auto merge of #5179 : alexcrichton/rust/default-warn-unused-import, r=graydonbors-80/+5
I've found that unused imports can often start cluttering a project after a long time, and it's very useful to keep them under control. I don't like how Go forces a compiler error by default and it can't be changed, but I certainly want to know about them so I think that a warn is a good default. Now that the `unused_imports` lint option is a bit smarter, I think it's possible to change the default level to warn. This commit also removes all unused imports throughout the compiler and libraries (500+). The only odd things that I ran into were that some `use` statements had to have `#[cfg(notest)]` or `#[cfg(test)]` based on where they were. The ones with `notest` were mostly in core for modules like `cmp` whereas `cfg(test)` was for tests that weren't part of a normal `mod test` module.
2013-03-04simplified msg (TMI on old one)John Clements-2/+2
2013-03-04better error message for macros with MOD_SEPsJohn Clements-5/+13
2013-03-04libsyntax: Implement `#[deriving_clone]`Patrick Walton-16/+288
2013-03-04Adding missing imports for tests, and gate off othersAlex Crichton-14/+4
2013-03-04Remove unused imports throughout src/Alex Crichton-66/+1
2013-03-03libsyntax: deny deprecated_self in libsyntaxErick Tryzelaar-6/+10
2013-03-03libsyntax: add &self to extensionsErick Tryzelaar-24/+34
2013-03-03libsyntax: add &self to parser methodsErick Tryzelaar-261/+303
2013-03-03replace option::iter with a BaseIter implDaniel Micay-14/+14
2013-03-02auto merge of #5203 : erickt/rust/incoming, r=brsonbors-7/+8
My merges for #5143 missed a couple other copies. This patch corrects this, and gets stage0 to compile libsyntax with `#[deny(vecs_implicitly_copyable)]`. stage1 still fails though.
2013-03-02librustc: Stop parsing `fn@`, `fn~`, and `fn&`Patrick Walton-71/+6
2013-03-02libsyntax: Remove `fn@`, `fn~`, and `fn&` from libsyntax. rs=defunPatrick Walton-194/+181
2013-03-02librustc: Forbid chained imports and fix the logic for one-level renaming ↵Patrick Walton-5/+5
imports
2013-03-02libsyntax: add some more explicit copies for vecs_implicitly_copyable)Erick Tryzelaar-7/+8
2013-03-02Merge remote-tracking branch 'remotes/origin/incoming' into incomingErick Tryzelaar-29/+21
2013-03-02auto merge of #5137 : yjh0502/rust/empty_struct, r=nikomatsakisbors-11/+7
The fix is straight-forward, but there are several changes while fixing the issue. 1) disallow `mut` keyword when making a new struct In code base, there are following code, ```rust struct Foo { mut a: int }; let a = Foo { mut a: 1 }; ``` This is because of structural record, which is deprecated corrently (see issue #3089) In structural record, `mut` keyword should be allowd to control mutability. But without structural record, we don't need to allow `mut` keyword while constructing struct. 2) disallow structural records in parser level This is related to 1). With structural records, there is an ambiguity between empty block and empty struct To solve the problem, I change parser to stop parsing structural records. I think this is not a problem, because structural records are not compiled already. Misc. issues There is an ambiguity between empty struct vs. empty match stmt. with following code, ```rust match x{} {} ``` Two interpretation is possible, which is listed blow ```rust match (x{}) {} // matching with newly-constructed empty struct (match x{}) {} // matching with empty enum(or struct) x // and then empty block ``` It seems that there is no such code in rust code base, but there is one test which uses empty match statement: https://github.com/mozilla/rust/blob/incoming/src/test/run-pass/issue-3037.rs All other cases could be distinguished with look-ahead, but this can't be. One possible solution is wrapping with parentheses when matching with an uninhabited type. ```rust enum what { } fn match_with_empty(x: what) -> ~str { match (x) { //use parentheses to remove the ambiguity } } ```
2013-03-02auto merge of #5193 : sethpink/rust/struct-tup-pp, r=catamorphismbors-16/+12
- Removed space between struct name and parentheses - Fixed indentation of the rest of the file (missing end) - Don't print parentheses for structs with no fields - Added test
2013-03-01Merge remote-tracking branch 'remotes/origin/incoming' into incomingErick Tryzelaar-18/+29
2013-03-02Remove REC, change related tests/docsJihyun Yu-11/+7
2013-03-01auto merge of #5165 : brson/rust/unstable, r=brsonbors-2/+2
r? This probably isn't controversial, but I want somebody else to sign off on it.
2013-03-02Fix some struct-tuple def prettyprint issuesSeth Pink-16/+12
- Removed space between struct name and parentheses - Fixed indentation of the rest of the file (missing end) - Don't print parentheses for structs with no fields - Added test
2013-03-01Avoid calling to_vec() unnecessarily in parser.Niko Matsakis-17/+27
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-03-01Rename core::private to core::unstable. #4743Brian Anderson-2/+2
2013-03-01librustc: "APL2" -> "ASL2". rs=license-fixPatrick Walton-1/+1
2013-03-01Merge remote branch 'sevrak/issue-5164' into incomingPatrick Walton-1/+2
2013-03-01Merge remote-tracking branch 'remotes/origin/incoming' into incomingErick Tryzelaar-143/+188
2013-02-28Remove legacy object creation mode, and convert remaining uses of itNiko Matsakis-114/+117
2013-02-28Fix implicit leaks of imports throughout librariesAlex Crichton-15/+56
Also touch up use of 'pub' and move some tests around so the tested functions don't have to be 'pub'
2013-02-28librustc: Mark all type implementations public. rs=impl-publicityPatrick Walton-2/+2
2013-02-28Merge remote-tracking branch 'remotes/origin/incoming' into incomingErick Tryzelaar-1/+5
2013-02-28Merge remote-tracking branch 'remotes/origin/incoming' into incomingErick Tryzelaar-569/+930
2013-02-28Fix license attribute on cratessevrak-1/+2
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-488/+802
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-488/+802
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-27Merge remote-tracking branch 'remotes/origin/incoming' into incomingErick Tryzelaar-242/+739
2013-02-27librustc: Forbid `pub` or `priv` before trait implementationsPatrick Walton-59/+73
2013-02-27libsyntax: Forbid mutable vectors. rs=demutingPatrick Walton-0/+15
2013-02-27libsyntax: Forbid `~mut` and `~const`. rs=demutingPatrick Walton-2/+6
2013-02-26libsyntax: add some more explicit copiesErick Tryzelaar-91/+160
2013-02-26libsyntax: add some explicit refsErick Tryzelaar-11/+10
2013-02-26libsyntax: remove vecs_implicitly_copyable from the syntax extensionsErick Tryzelaar-124/+151
2013-02-26libsyntax: remove vecs_implicitly_copyable from the printerErick Tryzelaar-25/+26
2013-02-26libsyntax: add explicit copiesErick Tryzelaar-61/+101
2013-02-26libsyntax: change closures to take fn(&Parser)Erick Tryzelaar-33/+33
2013-02-26auto merge of #5120 : jbclements/rust/macros-have-scope, r=pcwaltonbors-127/+604
r? After this patch, macros declared in a module, function, or block can only be used inside of that module, function or block, with the exception of modules declared with the #[macro_escape] attribute; these modules allow macros to escape, and can be used as a limited macro export mechanism. This pull request also includes miscellaneous comments, lots of new test cases, a few renamings, and a few as-yet-unused data definitions for hygiene.
2013-02-26typo-fixing and name-changesJohn Clements-15/+13