about summary refs log tree commit diff
path: root/src/libsyntax/ext/deriving/generic.rs
AgeCommit message (Collapse)AuthorLines
2013-06-26Infer default static/Owned bounds for unbounded heap fns/traits (#7264)Ben Blum-1/+1
2013-06-25auto merge of #7365 : cmr/rust/syntax_cleanup, r=Aatchbors-5/+3
Sets the stage for further cleanup (especially mass-slaughter of `@`)
2013-06-25remove the redundant `each` method from OptVecDaniel Micay-2/+2
2013-06-25great renaming propagation: syntaxCorey Richardson-5/+3
2013-06-23Parse and typecheck (not kindcheck) bounds on trait paths.Ben Blum-1/+2
2013-06-23vec: remove BaseIter implementationDaniel Micay-3/+3
I removed the `static-method-test.rs` test because it was heavily based on `BaseIter` and there are plenty of other more complex uses of static methods anyway.
2013-06-21vec: rm old_iter implementations, except BaseIterDaniel Micay-4/+4
The removed test for issue #2611 is well covered by the `std::iterator` module itself. This adds the `count` method to `IteratorUtil` to replace `EqIter`.
2013-06-18replace #[inline(always)] with #[inline]. r=burningtree.Graydon Hoare-5/+5
2013-06-14add IteratorUtil to the preludeDaniel Micay-1/+0
2013-06-13Use @str instead of @~str in libsyntax and librustc. Fixes #5048.Huon Wilson-1/+1
This almost removes the StringRef wrapper, since all strings are Equiv-alent now. Removes a lot of `/* bad */ copy *`'s, and converts several things to be &'static str (the lint table and the intrinsics table). There are many instances of .to_managed(), unfortunately.
2013-06-09std: remove foldr and alli methods in vecHuon Wilson-4/+4
2013-06-08std: remove vec::each2 and vec::each2_mut in favour of iteratorsHuon Wilson-2/+3
2013-06-07syntax: move expand_generic_deriving to be a method on TraitDefHuon Wilson-29/+26
2013-06-07syntax: move functions from deriving/mod to deriving/generic.Huon Wilson-23/+198
These are now only called in generic and can be private. This includes manually inlining/merging some that are called once.
2013-06-04librustc: Disallow multiple patterns from appearing in a "let" declaration.Patrick Walton-3/+6
You can still initialize multiple variables at once with "let (x, y) = (1, 2)".
2013-05-29librustc: Stop reexporting the standard modules from prelude.Patrick Walton-0/+3
2013-05-22librustc: Change `std` to `extra` throughout libsyntax and librustcPatrick Walton-1/+1
2013-05-22libextra: Rename the actual metadata names of libcore to libstd and libstd ↵Patrick Walton-0/+2
to libextra
2013-05-22syntax/ext: convert all AstBuilder methods to a uniform syntax.Huon Wilson-29/+23
2013-05-22syntax/ext: migrate build.rs functions to AstBuilder methods.Huon Wilson-17/+17
2013-05-22syntax/ext: modernise ext_ctxt to be CamelCase and use new.Huon Wilson-26/+26
2013-05-21syntax/ext: remove the ~str dependence of the deriving code.Huon Wilson-8/+8
2013-05-20Remove all unnecessary allocations (as flagged by lint)Alex Crichton-6/+6
2013-05-14rustc: rename ast::self_ty and related fields to explicit_selfErick Tryzelaar-17/+16
2013-05-14syntax: Remove #[allow(vecs_implicitly_copyable)]Alex Crichton-62/+63
2013-05-08librustc: Fix merge fallout.Patrick Walton-6/+2
2013-05-07libsyntax: extend generic deriving code to handle almost all possible traits.Huon Wilson-355/+430
This adds support for static methods, and arguments of most types, traits with type parameters, methods with type parameters (and lifetimes for both), as well as making the code more robust to support deriving on types with lifetimes (i.e. 'self).
2013-04-27only use #[no_core] in libcoreDaniel Micay-2/+0
2013-04-25Rename vec::mod2 to vec::mod_zipCorey Richardson-1/+1
2013-04-12libsyntax: another fix for deriving on windows.Huon Wilson-2/+1
2013-04-12libsyntax: short-circuit on non-matching variants in deriving code.Huon Wilson-40/+121
Allow a deriving instance using the generic code to short-circuit for any non-matching enum variants (grouping them all into a _ match), reducing the number of arms required. Use this to speed up the Eq & TotalEq implementations.
2013-04-12libsyntax: abstract most of the deriving boilerplate into a simpler(r) ↵Huon Wilson-0/+826
interface. Pulls out many of the common patterns from the Eq and Clone deriving code (and invents a few of its own), so that deriving instances are very easy to write for a certain class of traits. (Basically, those which don't have parameters and where all methods only take arguments of type `&Self` and return either `Self` or types with no parameters.)