about summary refs log tree commit diff
path: root/src/libsyntax/parse/mod.rs
AgeCommit message (Collapse)AuthorLines
2013-09-24added test case for tokenization of macro_rulesJohn Clements-0/+45
2013-09-24cleanupJohn Clements-9/+2
2013-09-23librustc: Remove the remaining direct uses of `@fn` from librustc.Patrick Walton-1/+1
2013-09-16Update syntax testCorey Richardson-1/+123
2013-09-16Fix hardcoded string in libsyntaxCorey Richardson-24/+2
2013-09-10Delay assignment of node ids until after expansion. Ensures that each AST nodeNiko Matsakis-32/+17
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-03Modernized a few more types in syntax::astMarvin Löbel-19/+19
2013-09-01Modernized a few type names in rustc and syntaxMarvin Löbel-8/+8
2013-08-30fix various warningsErick Tryzelaar-1/+1
2013-08-27librustc: Fix merge fallout.Patrick Walton-45/+3
2013-08-27librustc: Ensure that type parameters are in the right positions in paths.Patrick Walton-2/+2
This removes the stacking of type parameters that occurs when invoking trait methods, and fixes all places in the standard library that were relying on it. It is somewhat awkward in places; I think we'll probably want something like the `Foo::<for T>::new()` syntax.
2013-08-27librustc: Add support for type parameters in the middle of paths.Patrick Walton-78/+149
For example, `foo::<T>::bar::<U>`. This doesn't enforce that the type parameters are in the right positions, however.
2013-08-11libsyntax: Update from `@Object` to `@mut Object` as requiredNiko Matsakis-4/+4
2013-07-29New naming convention for ast::{node_id, local_crate, crate_node_id, ↵Michael Woerister-5/+5
blk_check_mode, ty_field, ty_method}
2013-07-25syntax: Fix #6416 by aborting on errors after test parse.Graydon Hoare-4/+2
2013-07-22Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg.Michael Woerister-18/+18
`crate => Crate` `local => Local` `blk => Block` `crate_num => CrateNum` `crate_cfg => CrateConfig` Also, Crate and Local are not wrapped in spanned<T> anymore.
2013-07-20syntax: modernise attribute handling in syntax::attr.Huon Wilson-3/+3
This does a number of things, but especially dramatically reduce the number of allocations performed for operations involving attributes/ meta items: - Converts ast::meta_item & ast::attribute and other associated enums to CamelCase. - Converts several standalone functions in syntax::attr into methods, defined on two traits AttrMetaMethods & AttributeMethods. The former is common to both MetaItem and Attribute since the latter is a thin wrapper around the former. - Deletes functions that are unnecessary due to iterators. - Converts other standalone functions to use iterators and the generic AttrMetaMethods rather than allocating a lot of new vectors (e.g. the old code would have to allocate a new vector to use functions that operated on &[meta_item] on &[attribute].) - Moves the core algorithm of the #[cfg] matching to syntax::attr, similar to find_inline_attr and find_linkage_metas. This doesn't have much of an effect on the speed of #[cfg] stripping, despite hugely reducing the number of allocations performed; presumably most of the time is spent in the ast folder rather than doing attribute checks. Also fixes the Eq instance of MetaItem_ to correctly ignore spaces, so that `rustc --cfg 'foo(bar)'` now works.
2013-07-17librustc: Remove all uses of "copy".Patrick Walton-8/+6
2013-07-17librustc: Add a lint mode for unnecessary `copy` and remove a bunch of them.Patrick Walton-6/+2
2013-07-17Made ast::blk not use spanned<T> anymore.Michael Woerister-20/+19
2013-07-07auto merge of #7615 : Aatch/rust/syntax-deshare, r=graydonbors-15/+15
In an ideal world, the AST would be completely sendable, this gets us a step closer. It removes the local heap allocations for `view_item`, `Path`, `Lifetime` `trait_ref` `OptVec<TyParamBounds>` and `Ty`. There are also a few other smaller changes I made as things went along.
2013-07-07Fix broken testsJames Miller-5/+5
2013-07-07De-managed ast::PathJames Miller-10/+10
2013-07-04libsyntax: fix infinite loop when recursively including modulesPhilipp Brüschweiler-0/+4
Fixes #7276
2013-06-26Infer default static/Owned bounds for unbounded heap fns/traits (#7264)Ben Blum-2/+2
2013-06-25great renaming propagation: syntaxCorey Richardson-7/+3
2013-06-23Parse and typecheck (not kindcheck) bounds on trait paths.Ben Blum-2/+2
2013-06-13Use @str instead of @~str in libsyntax and librustc. Fixes #5048.Huon Wilson-40/+40
This almost removes the StringRef wrapper, since all strings are Equiv-alent now. Removes a lot of `/* bad */ copy *`'s, and converts several things to be &'static str (the lint table and the intrinsics table). There are many instances of .to_managed(), unfortunately.
2013-06-09remove unused import warningsHuon Wilson-2/+1
2013-06-05add hygiene support functionsJohn Clements-22/+12
2013-06-05remove unused get_ident_interner'sJohn Clements-1/+2
2013-06-05removed unused imports (and one unused argument)John Clements-3/+1
2013-06-05remove interner field from string_readerJohn Clements-3/+1
2013-06-05remove interner from tt_readerJohn Clements-1/+0
2013-06-05interner just uses uints, not idents with syntax contextJohn Clements-2/+2
2013-06-05removed some interner fieldsJohn Clements-6/+0
2013-06-05just use TLS internerJohn Clements-2/+2
2013-06-05change to newer macro escape mechanism, using uints in more placesJohn Clements-11/+17
2013-06-01syntax: move callee_id into the expr_ variantsErick Tryzelaar-11/+6
2013-05-30Fix parser testNiko Matsakis-1/+1
2013-05-30Remove copy bindings from patterns.Niko Matsakis-3/+3
2013-05-22librustc: Change `std` to `extra` throughout libsyntax and librustcPatrick Walton-4/+4
2013-05-20getting rid of interner_key! macroJohn Clements-21/+22
2013-05-20hygiene infrastructure.John Clements-19/+14
- added a hash table to memoize rename and mark operations. - added rename, mark, and resolve fold fns
2013-05-20detect unused attrs in one more place, allow parsing to continue for allJohn Clements-0/+16
changed a bunch of fatal()'s into err()'s, to allow parsing to proceed.
2013-05-20refactoring test functionsJohn Clements-70/+7
2013-05-19Use assert_eq! rather than assert! where possibleCorey Richardson-1/+1
2013-05-14Fix test fallout from removing vecs_implicitly_copyableAlex Crichton-7/+6
2013-05-12librustc: Make `self` and `static` into keywordsPatrick Walton-2/+4
2013-05-09Use a specialized string interner to reduce the need for owned stringsBjörn Steinbrink-6/+6
&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.