summary refs log tree commit diff
path: root/src/libsyntax/parse/parser.rs
AgeCommit message (Collapse)AuthorLines
2013-08-08Allow attributes to appear as macro argumentsNiko Matsakis-1/+13
Fixes #8393
2013-08-07Forbid `priv` where it has no effectAlex Crichton-6/+18
This is everywhere except struct fields and enum variants.
2013-08-07core: option.map_consume -> option.map_moveErick Tryzelaar-1/+1
2013-08-05Updated std::Option, std::Either and std::ResultMarvin Löbel-4/+4
- Made naming schemes consistent between Option, Result and Either - Changed Options Add implementation to work like the maybe monad (return None if any of the inputs is None) - Removed duplicate Option::get and renamed all related functions to use the term `unwrap` instead
2013-08-03remove obsolete `foreach` keywordDaniel Micay-8/+6
this has been replaced by `for`
2013-08-03make `for` parse as `foreach` doesDaniel Micay-6/+5
Closes #6997
2013-08-02librustc: Disallow "unsafe" for external functionsPatrick Walton-2/+9
2013-08-01migrate many `for` loops to `foreach`Daniel Micay-6/+6
2013-07-31rm ancient error for lowercase kindsDaniel Micay-25/+3
3 of these kinds no longer even exist in the CamelCase form
2013-07-30syntax: implement foreach .. in .. { .. } via desugaring.Graydon Hoare-1/+18
2013-07-29New naming convention for ast::{node_id, local_crate, crate_node_id, ↵Michael Woerister-26/+24
blk_check_mode, ty_field, ty_method}
2013-07-26syntax: fix span for obsolete extern visibility errorPhilipp Brüschweiler-1/+1
2013-07-22auto merge of #7873 : sstewartgallus/rust/cleanup_syntax, r=alexcrichtonbors-100/+100
2013-07-22De-spanned<T> and renamed ast::field (now ast::Field)Michael Woerister-5/+6
2013-07-22Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg.Michael Woerister-29/+29
`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-21Cleanup libsyntax a bitSteven Stewart-Gallus-100/+100
2013-07-21syntax: Bless mod.rs. #4116Brian Anderson-12/+25
When loading a module the parser will look for either foo.rs or foo/mod.rs and generate an error when both are found.
2013-07-20auto merge of #7902 : huonw/rust/attr++, r=cmr,pcwaltonbors-42/+33
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 spans, so that `rustc --cfg 'foo(bar)'` now works.
2013-07-20librustc: Remove `pub extern` and `priv extern` from the language.Patrick Walton-5/+12
Place `pub` or `priv` on individual items instead.
2013-07-20syntax: modernise attribute handling in syntax::attr.Huon Wilson-42/+33
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-18Silence various warnings in bootstrap build.Felix S. Klock II-5/+1
2013-07-17libsyntax: Remove some multi-gigabyte clones that were preventing ↵Patrick Walton-16/+15
bootstrapping on Windows.
2013-07-17librustc: Change repeated vector expressions to use implicit copyability.Patrick Walton-1/+6
2013-07-17librustc: Remove all uses of the `Copy` bound.Patrick Walton-30/+30
2013-07-17librustc: Remove `copy` expressions from the language.Patrick Walton-11/+2
2013-07-17librustc: Remove all uses of "copy".Patrick Walton-356/+490
2013-07-17librustc: Add a lint mode for unnecessary `copy` and remove a bunch of them.Patrick Walton-38/+27
2013-07-17Made ast::blk not use spanned<T> anymore.Michael Woerister-14/+12
2013-07-10unnecessarily mutable variablesBrendan Cully-1/+1
2013-07-09Don't use static default methodJohn Barker-1/+0
- also removed redundant assignment to is_mutbl - updated copyright
2013-07-09Always eat up mut when parsing general args, fixes #7483John Barker-2/+2
2013-07-08Correct merge errorsNiko Matsakis-1/+1
2013-07-07remove some method resolve workaroundsDaniel Micay-1/+1
2013-07-07auto merge of #7615 : Aatch/rust/syntax-deshare, r=graydonbors-66/+74
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-07De-share ast::TyJames Miller-17/+17
2013-07-07De-manage OptVec<TyParamBounds>James Miller-3/+3
2013-07-07De-share trait_refJames Miller-4/+4
Also, makes the pretty-printer use & instead of @ as much as possible, which will help with later changes, though in the interim has produced some... interesting constructs.
2013-07-07De-manage LifetimeJames Miller-10/+10
2013-07-07De-managed ast::PathJames Miller-26/+34
2013-07-07Stop allocating view_items with @James Miller-7/+7
2013-07-07auto merge of #7585 : Blei/rust/fix-circular-modules, r=huonwbors-2/+19
Fixes #7276
2013-07-05Change spans for sugary call expressionsSeo Sanghyeon-9/+8
2013-07-04libsyntax: fix infinite loop when recursively including modulesPhilipp Brüschweiler-2/+19
Fixes #7276
2013-06-29Remove mutability from unique boxes in the ASTAlex Crichton-4/+8
2013-06-28librustc: Fix merge fallout.Patrick Walton-1/+1
2013-06-28librustc: Rewrite reachability and forbid duplicate methods in type ↵Patrick Walton-2/+249
implementations. This should allow fewer symbols to be exported.
2013-06-28librustc: Remove the broken overloaded assign-ops from the language.Patrick Walton-2/+6
They evaluated the receiver twice. They should be added back with `AddAssign`, `SubAssign`, etc., traits.
2013-06-28libsyntax: Remove "copy" pattern bindings from the languagePatrick Walton-2/+2
2013-06-28libsyntax: Fix merge falloutPatrick Walton-2/+4
2013-06-28librustc: Disallow "mut" from distributing over bindings.Patrick Walton-2/+14
This is the backwards-incompatible part of per-binding-site "mut".