diff options
| author | bors <bors@rust-lang.org> | 2013-03-12 10:09:55 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-03-12 10:09:55 -0700 |
| commit | a9643d39f8243dceb1184f446d988081a607d824 (patch) | |
| tree | f18385c4e082fe3769e4c9e79b1b713937962b89 /src/rustllvm/RustWrapper.cpp | |
| parent | 15d78fc398527c5035c092c1c67db600543902d5 (diff) | |
| parent | 24efea720860e1dc8d4d1035f1ea8d56a3498614 (diff) | |
| download | rust-a9643d39f8243dceb1184f446d988081a607d824.tar.gz rust-a9643d39f8243dceb1184f446d988081a607d824.zip | |
auto merge of #5320 : apasel422/rust/metaderive, r=graydon
This is the first in a series of patches I'm working on to clean up the code related to `deriving`. This patch allows
```
#[deriving_eq]
#[deriving_iter_bytes]
#[deriving_clone]
struct Foo { bar: uint }
```
to be replaced with:
```
#[deriving(Eq, IterBytes, Clone)]
struct Foo { bar: uint }
```
It leaves the old attributes alone for the time being.
Eventually I'd like to incorporate the new closest-match-suggestion infrastructure for mistyped trait names, and also pass the sub-attributes to the deriving code, so that the following will be possible:
```
#[deriving(TotalOrd(qux, bar))]
struct Foo { bar: uint, baz: char, qux: int }
```
This says to derive an `impl` in which the objects' `qux` fields are compared first, followed by `bar`, while `baz` is ignored in the comparison. If no fields are specified explicitly, all fields will be compared in the order they're defined in the `struct`. This might also be useful for `Eq`. Coming soon.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
