summary refs log tree commit diff
path: root/src/libsyntax/ext
AgeCommit message (Collapse)AuthorLines
2013-05-01rustc: remove the rest of dropErick Tryzelaar-1/+0
Removes: ast::struct_def::dtor syntax::ast::ii_dtor syntax::visit::fk_dtor syntax::ast_map::node_dtor syntax:struct_dtor
2013-04-30Merge remote-tracking branch 'brson/io'Brian Anderson-1/+1
Conflicts: src/libcore/task/local_data_priv.rs
2013-04-30new borrow checker (mass squash)Niko Matsakis-62/+71
2013-04-30adapt to snapshotNiko Matsakis-11/+0
2013-04-29librustc: Forbid type implementations on typedefs.Patrick Walton-1/+44
2013-04-29librustc: Change labels to use the lifetime notation `'`.Patrick Walton-5/+18
2013-04-29test: Fix tests.Patrick Walton-1/+3
2013-04-29librustc: Remove the concept of modes from the compiler.Patrick Walton-17/+15
This commit does not remove `ty::arg`, although that should be possible to do now.
2013-04-29librustc: Remove `ptr::addr_of`.Patrick Walton-5/+3
2013-04-28change stage1,stage2,stage2 into not(stage0)John Clements-3/+1
With luck, this will allow rust to compile itself without --cfg flags again...
2013-04-27only use #[no_core] in libcoreDaniel Micay-86/+0
2013-04-26auto merge of #6059 : Kimundi/rust/nice-fail, r=pcwaltonbors-17/+34
r? @brson Unwinding through macros now happens as a call to the trait function `FailWithCause::fail_with()`, which consumes self, allowing to use a more generic failure object in the future.
2013-04-25Made fail! and assert! accept both &'static str and ~str, as well as a fmt! ↵Marvin Löbel-17/+34
like format list. Unwinding through macros now happens as a call to the trait function `FailWithCause::fail_with()`, which consumes self, allowing to use a more generic failure object in the future.
2013-04-25Rename vec::mod2 to vec::mod_zipCorey Richardson-3/+3
2013-04-24Merge remote-tracking branch 'brson/io'Brian Anderson-1/+1
Conflicts: src/libcore/rt/uvio.rs
2013-04-24Remove needless FIXME. Fixes #2811.Niko Matsakis-2/+0
2013-04-23Merge remote-tracking branch 'brson/io'Brian Anderson-1/+1
This also reverts some changes to TLS that were leaking memory. Conflicts: src/libcore/rt/uv/net.rs src/libcore/task/local_data_priv.rs src/libcore/unstable/lang.rs
2013-04-22auto merge of #6007 : pcwalton/rust/use-mod, r=brsonbors-1/+0
r? @brson
2013-04-22Make conditions public. #6009Brian Anderson-1/+1
2013-04-22librustc: Remove `use mod` from the languagePatrick Walton-1/+0
2013-04-20syntax: remove unused 'mut' variablesAlex Crichton-3/+5
2013-04-19syntax: de-mode and prepare for de-modeing rustcAlex Crichton-157/+157
2013-04-16added MTWT functionsJohn Clements-0/+47
2013-04-12auto merge of #5827 : ↵bors-0/+13
nikomatsakis/rust/issue-5656-change-meaning-of-borrowed-self, r=pcwalton See #5656 for details. r? @pcwalton
2013-04-12libsyntax: another fix for deriving on windows.Huon Wilson-2/+1
2013-04-12libsyntax: (maybe) fix deriving(TotalOrd) on windowsHuon Wilson-6/+6
2013-04-12libsyntax: short-circuit on non-matching variants in deriving code.Huon Wilson-81/+151
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: derive Clone, Eq, TotalEq, Ord, TotalOrd with the new generic ↵Huon Wilson-761/+411
deriving code. Closes #4269, #5588 and #5589.
2013-04-12libsyntax: abstract most of the deriving boilerplate into a simpler(r) ↵Huon Wilson-42/+915
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-10Issue #5656: Make &self not mean "&'self self"Niko Matsakis-0/+13
Fixes #5656. Fixes #5541.
2013-04-10syntax: add {read,emit}_enum_struct_variant{,_field}Erick Tryzelaar-0/+8
2013-04-10std: add serialize {read,emit}_tuple{,_arg,_struct,_struct_arg}Erick Tryzelaar-0/+14
2013-04-10syntax: add support for #[deriving(Decodable)]Erick Tryzelaar-7/+510
2013-04-10syntax: add support for #[deriving(Encodable)]Erick Tryzelaar-8/+455
2013-04-10syntax: Simplify deriving to handle classes that take generics, like EncodableErick Tryzelaar-34/+28
2013-04-10std: rename {read,emit}_field to {read,emit}_struct_fieldErick Tryzelaar-5/+5
2013-04-10std: clean up the order of {De,En}codable methodsErick Tryzelaar-7/+7
2013-04-10syntax: update a deriving error message to use the new syntaxErick Tryzelaar-5/+3
2013-04-10path -> PathJohn Clements-35/+35
2013-04-05Fix various warnings, NOTEs, etcNiko Matsakis-1/+1
2013-04-05Refactor so that references to traits are not represented using a type with aNiko Matsakis-11/+20
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-04-03auto merge of #5696 : thestinger/rust/hashmap, r=sanxiynbors-19/+19
This naming is free now that `oldmap` has finally been removed, so this is a search-and-replace to take advantage of that. It might as well be called `HashMap` instead of being named after the specific implementation, since there's only one. SipHash distributes keys so well that I don't think there will ever be much need to use anything but a simple hash table with open addressing. If there *is* a better way to do it, it will probably be better in all cases and can just be the default implementation. A cuckoo-hashing implementation combining a weaker hash with SipHash could be useful, but that won't be as general purpose - you would need to write a separate fast hash function specialized for the type to really take advantage of it (like taking a page from libstdc++/libc++ and just using the integer value as the "hash"). I think a more specific naming for a truly alternative implementation like that would be fine, with the nice naming reserved for the general purpose container.
2013-04-03auto merge of #5559 : jbclements/rust/change-to-tt-based-parsing, r=jbclementsbors-28/+29
Changes the parser to parse all streams into token-trees before hitting the parser proper, in preparation for hygiene. As an added bonus, it appears to speed up the parser (albeit by a totally imperceptible 1%). Also, many comments in the parser. Also, field renaming in token-trees (readme->forest, cur->stack).
2013-04-03rename Linear{Map,Set} => Hash{Map,Set}Daniel Micay-19/+19
2013-04-03hashmap: rm linear namespaceDaniel Micay-4/+4
2013-03-31Fix warningsBrian Anderson-2/+2
2013-03-30auto merge of #5630 : erickt/rust/serial, r=ericktbors-27/+13
@nikomatsakis and I were talking about how the serializers were a bit too complicated. None of the users of With the `emit_option` and `read_option` functions, the serializers are now moving more high level. This patch series continues that trend. I've removed support for emitting specific string and vec types, and added support for emitting mapping types.
2013-03-30syntax: fix auto_encode test.Erick Tryzelaar-4/+4
2013-03-29Add AbiSet and integrate it into the AST.Niko Matsakis-1/+3
I believe this patch incorporates all expected syntax changes from extern function reform (#3678). You can now write things like: extern "<abi>" fn foo(s: S) -> T { ... } extern "<abi>" mod { ... } extern "<abi>" fn(S) -> T The ABI for foreign functions is taken from this syntax (rather than from an annotation). We support the full ABI specification I described on the mailing list. The correct ABI is chosen based on the target architecture. Calls by pointer to C functions are not yet supported, and the Rust type of crust fns is still *u8.
2013-03-29Merge remote-tracking branch 'remotes/origin/incoming' into serialErick Tryzelaar-15/+2