about summary refs log tree commit diff
path: root/src/libsyntax/ext/deriving/generic.rs
AgeCommit message (Collapse)AuthorLines
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.)