summary refs log tree commit diff
path: root/src/libsyntax/ext
AgeCommit message (Collapse)AuthorLines
2013-05-30Rewrite deriving(Decodable, Encodable)Alex Crichton-957/+232
Now it uses the generic deriving code and should in theory work in all cases.
2013-05-30Remove unnecessary 'use' formsDaniel Farina-2/+1
Fix a laundry list of warnings involving unused imports that glutted up compilation output. There are more, but there seems to be some false positives (where 'remedy' appears to break the build), but this particular set of fixes seems safe.
2013-05-30Remove copy bindings from patterns.Niko Matsakis-13/+13
2013-05-29librustc: Stop reexporting the standard modules from prelude.Patrick Walton-6/+59
2013-05-29libsyntax: Stop parsing mutable fieldsPatrick Walton-1/+1
2013-05-28Remove unnecessary allocations flagged by lintSeo Sanghyeon-12/+12
2013-05-25Use an enum for keywords and intern them to improve parser performanceBjörn Steinbrink-2/+3
Currently, keywords are stored in hashsets that are recreated for every Parser instance, which is quite expensive since macro expansion creates lots of them. Additionally, the parser functions that look for a keyword currently accept a string and have a runtime check to validate that they actually received a keyword. By creating an enum for the keywords and inserting them into the ident interner, we can avoid the creation of the hashsets and get static checks for the keywords. For libstd, this cuts the parse+expansion part from ~2.6s to ~1.6s.
2013-05-23cleanup warnings from libsyntaxErick Tryzelaar-2/+0
2013-05-22libsyntax: Fix more merge fallout.Patrick Walton-2/+2
2013-05-22syntax: Change syntax extensions to expand to `std::foo` instead of `core::foo`Patrick Walton-53/+54
2013-05-22librustc: Change `std` to `extra` throughout libsyntax and librustcPatrick Walton-12/+12
2013-05-22libextra: Rename the actual metadata names of libcore to libstd and libstd ↵Patrick Walton-1/+66
to libextra
2013-05-22Fix ICE in macrosCorey Richardson-4/+7
2013-05-22syntax/ext: convert all AstBuilder methods to a uniform syntax.Huon Wilson-1686/+998
2013-05-22syntax/ext: migrate build.rs functions to AstBuilder methods.Huon Wilson-925/+1126
2013-05-22syntax/ext: collect the ast building traits into a single trait.Huon Wilson-493/+420
2013-05-22syntax/ext: modernise ext_ctxt to be CamelCase and use new.Huon Wilson-324/+323
2013-05-22syntax/ext: Remove the trait-object indirection of the ext_ctxt object.Huon Wilson-106/+82
2013-05-21syntax/ext: remove the ~str dependence of the deriving code.Huon Wilson-79/+81
2013-05-20Remove all unnecessary allocations (as flagged by lint)Alex Crichton-45/+42
2013-05-20Implement a lint mode to detect unnecessary allocationsAlex Crichton-3/+3
2013-05-20getting rid of interner_key! macroJohn Clements-1/+1
2013-05-20hygiene infrastructure.John Clements-35/+58
- added a hash table to memoize rename and mark operations. - added rename, mark, and resolve fold fns
2013-05-19Register snapshotsBrian Anderson-15/+0
2013-05-18Made bytes!() accept a list of string, integer or char literalsMarvin Löbel-5/+50
2013-05-17Re-implement lint with less emphasis on item idsAlex Crichton-6/+7
This way it's much easier to add lints throughout compilation correctly, and functions on impls can alter the way lints are emitted.
2013-05-16auto merge of #6530 : huonw/rust/deriving-deepclone, r=bstriebors-7/+43
2013-05-16syntax: use fmt! over + in deriving/cloneHuon Wilson-6/+6
2013-05-16auto merge of #6531 : sammykim/rust/bytes, r=luqmanabors-0/+30
Fix #4334.
2013-05-16syntax: implement #[deriving(DeepClone)]. Fixes #6514.Huon Wilson-6/+42
2013-05-16Implement bytes! syntax extensionSangeun Kim-0/+30
2013-05-15auto merge of #6502 : huonw/rust/no-auto-code, r=graydonbors-1485/+629
Replace all instances of #[auto_*code] with the appropriate #[deriving] attribute and remove the majority of the actual auto_* code, leaving stubs to refer the user to the new syntax. Also, moves the useful contents of auto_encode.rs to more appropriate spots: tests and comments to deriving/encodable.rs, and the ExtCtxtMethods trait to build.rs (unused so far, but the method syntax might be nicer than using the mk_* fns in many instances).
2013-05-15auto merge of #6500 : kud1ing/rust/cleanup, r=bstriebors-36/+0
Fixes #6445
2013-05-16syntax: deprecate #[auto_{en,de}code] in favour of #[deriving({En,De}codable)].Huon Wilson-1485/+629
Replace all instances of #[auto_*code] with the appropriate #[deriving] attribute and remove the majority of the actual code, leaving stubs to refer the user to the new syntax.
2013-05-15auto merge of #6499 : dotdash/rust/static_keywords, r=thestingerbors-2/+2
2013-05-15auto merge of #6487 : recrack/rust/vec_len, r=thestingerbors-3/+3
Rename vec::len(var) to var.len() ``` libcore, libfuzzer, librustc, librustdoc, libstd, libsyntax test/auxiliary test/bench test/run-pass ```
2013-05-15remove deriving_eq, deriving_iter_bytes, deriving_clone (deprecated in 0.6)Lenny222-36/+0
2013-05-15Allow static strings to be used with keyword checksBjörn Steinbrink-2/+2
2013-05-14rustc: rename ast::self_ty and related fields to explicit_selfErick Tryzelaar-32/+31
2013-05-15Rename vec::len(var) to var.len()Youngmin Yoo-3/+3
2013-05-15Use parentheses for cond! macro instead of preceding pipesBrendan Zabarauskas-4/+4
This is temporary. Once the macro parser has improved or been re-written these can be removed.
2013-05-15Add Scheme-style `cond!` macro to syntax::ext::expandBrendan Zabarauskas-1/+35
Addresses issue #6037
2013-05-14Fix test fallout from removing vecs_implicitly_copyableAlex Crichton-12/+8
2013-05-14syntax: Remove #[allow(vecs_implicitly_copyable)]Alex Crichton-136/+137
2013-05-14Fix cosmetics for fail!() callsMarvin Löbel-1/+1
2013-05-14Use static string with fail!() and remove fail!(fmt!())Björn Steinbrink-10/+10
fail!() used to require owned strings but can handle static strings now. Also, it can pass its arguments to fmt!() on its own, no need for the caller to call fmt!() itself.
2013-05-12librustc: Make `self` and `static` into keywordsPatrick Walton-27/+24
2013-05-11Warning policeTim Chevalier-5/+3
2013-05-11auto merge of #6389 : sonwow/rust/issue-3356, r=bstriebors-8/+8
Fix for #3356
2013-05-10auto merge of #6223 : alexcrichton/rust/issue-6183, r=pcwaltonbors-23/+33
Closes #6183. The first commit changes the compiler's method of treating a `for` loop, and all the remaining commits are just dealing with the fallout. The biggest fallout was the `IterBytes` trait, although it's really a whole lot nicer now because all of the `iter_bytes_XX` methods are just and-ed together. Sadly there was a huge amount of stuff that's `cfg(stage0)` gated, but whoever lands the next snapshot is going to have a lot of fun deleting all this code!