about summary refs log tree commit diff
path: root/src/libsyntax/ext/deriving/mod.rs
AgeCommit message (Collapse)AuthorLines
2013-05-14syntax: Remove #[allow(vecs_implicitly_copyable)]Alex Crichton-4/+4
2013-05-12librustc: Make `self` and `static` into keywordsPatrick Walton-2/+1
2013-05-09Use a specialized string interner to reduce the need for owned stringsBjörn Steinbrink-3/+3
&str can be turned into @~str on demand, using to_owned(), so for strings, we can create a specialized interner that accepts &str for intern() and find() but stores and returns @~str.
2013-05-08librustc: Fix merge fallout.Patrick Walton-2/+2
2013-05-07libsyntax: add #[deriving(Rand, ToStr)].Huon Wilson-0/+6
The former fills each field of a struct or enum variant with a random value (and picks a random enum variant). The latter makes the .to_str method have the same output as fmt!("%?", ..).
2013-05-07libsyntax: extend generic deriving code to handle almost all possible traits.Huon Wilson-122/+142
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-4/+0
2013-04-19syntax: de-mode and prepare for de-modeing rustcAlex Crichton-1/+1
2013-04-12libsyntax: derive Clone, Eq, TotalEq, Ord, TotalOrd with the new generic ↵Huon Wilson-3/+18
deriving code. Closes #4269, #5588 and #5589.
2013-04-12libsyntax: abstract most of the deriving boilerplate into a simpler(r) ↵Huon Wilson-29/+72
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.)
2013-04-10syntax: add support for #[deriving(Decodable)]Erick Tryzelaar-0/+3
2013-04-10syntax: add support for #[deriving(Encodable)]Erick Tryzelaar-0/+3
2013-04-10syntax: Simplify deriving to handle classes that take generics, like EncodableErick Tryzelaar-28/+16
2013-04-10path -> PathJohn Clements-1/+1
2013-04-05Refactor so that references to traits are not represented using a type with aNiko Matsakis-3/+3
bare function store (which is not in fact a kind of value) but rather ty::TraitRef. Removes many uses of fail!() and other telltale signs of type-semantic mismatch. cc #4183 (not a fix, but related)
2013-03-31Fix warningsBrian Anderson-1/+1
2013-03-28Removing unused importsAlex Crichton-7/+7
2013-03-28librustc: Remove common fields and nested enums from the languagePatrick Walton-7/+1
2013-03-27remove sty_by_ref, though traces still remain due to dtorsNiko Matsakis-1/+1
2013-03-26librustc: Modify all code to use new lifetime binder syntaxPatrick Walton-10/+12
2013-03-22syntax: replace uses of old deriving attribute with new oneAndrew Paseltiner-2/+2
2013-03-19syntax: split deriving module into submodules for each traitAndrew Paseltiner-973/+15
2013-03-19syntax: move ext/deriving.rs to ext/deriving/mod.rsAndrew Paseltiner-0/+1267