| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2013-09-14 | auto merge of #9181 : lkuper/rust/libsyntax-default-methods-refactor, ↵ | bors | -198/+2 | |
| r=alexcrichton I'm getting the three `make check` failures mentioned in issue #9127, which I also get building master. | ||||
| 2013-09-13 | Pass a more proper span to the syntax expanders | Alex Crichton | -1/+19 | |
| Closes #5794 | ||||
| 2013-09-13 | Refactor libsyntax Visitor impls to use default methods. | Lindsey Kuper | -198/+2 | |
| 2013-09-12 | syntax: add #[deriving(Default)] syntax extension | Erick Tryzelaar | -0/+81 | |
| 2013-09-12 | std: Rename {Option,Result}::chain{,_err}* to {and_then,or_else} | Erick Tryzelaar | -5/+12 | |
| 2013-09-12 | Implement a format_args!() macro | Alex Crichton | -61/+108 | |
| The purpose of this macro is to further reduce the number of allocations which occur when dealing with formatting strings. This macro will perform all of the static analysis necessary to validate that a format string is safe, and then it will wrap up the "format string" into an opaque struct which can then be passed around. Two safe functions are added (write/format) which take this opaque argument structure, unwrap it, and then call the unsafe version of write/format (in an unsafe block). Other than these two functions, it is not intended for anyone to ever look inside this opaque struct. The macro looks a bit odd, but mostly because of rvalue lifetimes this is the only way for it to be safe that I know of. Example use-cases of this are: * third-party libraries can use the default formatting syntax without any forced allocations * the fail!() macro can avoid allocating the format string * the logging macros can avoid allocation any strings | ||||
| 2013-09-11 | Flag unsafe blocks from format! as compiler-generated | Alex Crichton | -1/+1 | |
| 2013-09-10 | change type of ExprLoop and ExprBreak elts from ident->name. | John Clements | -1/+3 | |
| Lots of downstream changes in librustc, should be infinitesimally faster. | ||||
| 2013-09-10 | auto merge of #9088 : nikomatsakis/rust/issue-6304-AST-tree-not-DAG, ↵ | bors | -67/+40 | |
| r=catamorphism Ensures that each AST node has a unique id. Fixes numerous bugs in macro expansion and deriving. Add two representative tests. Fixes #7971 Fixes #6304 Fixes #8367 Fixes #8754 Fixes #8852 Fixes #2543 Fixes #7654 | ||||
| 2013-09-10 | Delay assignment of node ids until after expansion. Ensures that each AST node | Niko Matsakis | -67/+40 | |
| has a unique id. Fixes numerous bugs in macro expansion and deriving. Add two representative tests. Fixes #7971 Fixes #6304 Fixes #8367 Fixes #8754 Fixes #8852 Fixes #2543 Fixes #7654 | ||||
| 2013-09-09 | auto merge of #9062 : blake2-ppc/rust/vec-iterator, r=alexcrichton | bors | -1/+1 | |
| Visit the free functions of std::vec and reimplement or remove some. Most prominently, remove `each_permutation` and replace with two iterators, ElementSwaps and Permutations. Replace unzip, unzip_slice with an updated `unzip` that works with an iterator argument. Replace each_permutation with a Permutation iterator. The new permutation iterator is more efficient since it uses an algorithm that produces permutations in an order where each is only one element swap apart, including swapping back to the original state with one swap at the end. Unify the seldomly used functions `build`, `build_sized`, `build_sized_opt` into just one function `build`. Remove `equal_sizes` | ||||
| 2013-09-10 | std::at_vec and vec: Unify build_sized, build_sized_opt into build | blake2-ppc | -1/+1 | |
| These functions have very few users since they are mostly replaced by iterator-based constructions. Convert a few remaining users in-tree, and reduce the number of functions by basically renaming build_sized_opt to build, and removing the other two. This for both the vec and the at_vec versions. | ||||
| 2013-09-09 | auto merge of #9005 : alexcrichton/rust/rusty-log, r=brson | bors | -52/+34 | |
| Also redefine all of the standard logging macros to use more rust code instead of custom LLVM translation code. This makes them a bit easier to understand, but also more flexibile for future types of logging. Additionally, this commit removes the LogType language item in preparation for changing how logging is performed. | ||||
| 2013-09-08 | syntax: aesthetic improvements to the `for` desugaring. | Huon Wilson | -130/+38 | |
| 2013-09-08 | syntax: implement labelled breaks for `for`. | Huon Wilson | -2/+2 | |
| `for` desugars to `loop` so it is trivial to just desugar to `loop` while retaining any label. | ||||
| 2013-09-06 | added index to test cases, more debugging output | John Clements | -4/+11 | |
| 2013-09-06 | quote_* macros no longer need to be capturing | John Clements | -91/+19 | |
| This is actually almost a problem, because those were my poster-child macros for "here's how to implement a capturing macro." Following this change, there will be no macros that use capturing; this will probably make life unpleasant for the first person that wants to implement a capturing macro. I should probably create a dummy_capturing macro, just to show how it works. | ||||
| 2013-09-06 | add test case, cleanup | John Clements | -15/+14 | |
| 2013-09-06 | fixed a bug that caused double-expand-traversal of macros that expand into ↵ | John Clements | -19/+10 | |
| modules. | ||||
| 2013-09-06 | WIP: adding mark-cancelling for macro_rules | John Clements | -7/+47 | |
| 2013-09-06 | comment on hygienic context extension train fns | John Clements | -0/+11 | |
| 2013-09-06 | awesome new bug! added test case | John Clements | -13/+68 | |
| 2013-09-06 | remove unneeded imports, clean up unused var warnings | John Clements | -9/+9 | |
| 2013-09-06 | whitespace, reindentation, and comments only | John Clements | -19/+22 | |
| 2013-09-06 | uncomment mtwt_resolve calls | John Clements | -2/+2 | |
| 2013-09-06 | fix one remaining token comparison, refactor token comparison to avoid == check | John Clements | -11/+10 | |
| 2013-09-06 | remove dead code | John Clements | -15/+0 | |
| 2013-09-06 | capturing macros now implemented | John Clements | -85/+221 | |
| 2013-09-06 | add fold_mac clause to fun_to_ctxt_folder | John Clements | -5/+12 | |
| 2013-09-06 | WIP: adding context to macros | John Clements | -9/+15 | |
| 2013-09-06 | rework fold so that fold_tts takes an ast_fold rather than a thunk, stop ↵ | John Clements | -45/+61 | |
| using closures in ident traversal | ||||
| 2013-09-06 | add temporarily unused ctxt field to mac_invoc_tt | John Clements | -3/+3 | |
| 2013-09-06 | add test case for macro token comparison | John Clements | -0/+4 | |
| 2013-09-06 | marking on both input and output from macros. nice shiny new test case framework | John Clements | -29/+275 | |
| 2013-09-06 | test case support fns, remove debugging test case | John Clements | -3/+7 | |
| 2013-09-06 | test case work | John Clements | -4/+2 | |
| 2013-09-06 | re-add lost call to expand_block_elts | John Clements | -1/+2 | |
| 2013-09-06 | test case work | John Clements | -2/+10 | |
| 2013-09-06 | use empty_ctxt to simplify downstream | John Clements | -2/+5 | |
| 2013-09-06 | make comparison of special_idents non-hygienic | John Clements | -2/+2 | |
| 2013-09-06 | comments | John Clements | -0/+3 | |
| 2013-09-06 | remove FIXME #2888, now bug is fixed | John Clements | -11/+11 | |
| 2013-09-06 | comments only | John Clements | -0/+8 | |
| 2013-09-06 | adding test case to check marking/unmarking | John Clements | -9/+17 | |
| 2013-09-06 | separate ItemDecorator from ItemDecorator | John Clements | -2/+2 | |
| 2013-09-06 | removed unneccessary SyntaxExpander structs | John Clements | -33/+18 | |
| 2013-09-06 | renaming test cases | John Clements | -6/+12 | |
| 2013-09-06 | flip the switch on let renaming | John Clements | -1/+1 | |
| 2013-09-06 | add hygiene support fns, move them around. | John Clements | -41/+164 | |
| also adds test cases | ||||
| 2013-09-06 | compare macro tokens hygienically (commented out) | John Clements | -1/+15 | |
