about summary refs log tree commit diff
path: root/src/libsyntax/parse
AgeCommit message (Collapse)AuthorLines
2016-03-06Auto merge of #30884 - durka:inclusive-ranges, r=aturonbors-37/+50
This PR implements [RFC 1192](https://github.com/rust-lang/rfcs/blob/master/text/1192-inclusive-ranges.md), which is triple-dot syntax for inclusive range expressions. The new stuff is behind two feature gates (one for the syntax and one for the std::ops types). This replaces the deprecated functionality in std::iter. Along the way I simplified the desugaring for all ranges. This is my first contribution to rust which changes more than one character outside of a test or comment, so please review carefully! Some of the individual commit messages have more of my notes. Also thanks for putting up with my dumb questions in #rust-internals. - For implementing `std::ops::RangeInclusive`, I took @Stebalien's suggestion from https://github.com/rust-lang/rfcs/pull/1192#issuecomment-137864421. It seemed to me to make the implementation easier and increase type safety. If that stands, the RFC should be amended to avoid confusion. - I also kind of like @glaebhoerl's [idea](https://github.com/rust-lang/rfcs/pull/1254#issuecomment-147815299), which is unified inclusive/exclusive range syntax something like `x>..=y`. We can experiment with this while everything is behind a feature gate. - There are a couple of FIXMEs left (see the last commit). I didn't know what to do about `RangeArgument` and I haven't added `Index` impls yet. Those should be discussed/finished before merging. cc @Gankro since you [complained](https://www.reddit.com/r/rust/comments/3xkfro/what_happened_to_inclusive_ranges/cy5j0yq) cc #27777 #30877 rust-lang/rust#1192 rust-lang/rfcs#1254 relevant to #28237 (tracking issue)
2016-03-02Add `filename` to ParserJeffrey Seyfried-1/+6
2016-03-02Use numeric field `Name`s ("0", "1" etc) for positional fieldsVadim Petrochenkov-1/+1
2016-02-27fix fallout from libsyntax enumpocalypseAlex Burka-1/+1
2016-02-27libsyntax: parse inclusive rangesAlex Burka-38/+51
2016-02-25Rollup merge of #31362 - jseyfried:fix_extern_crate_visibility, r=nikomatsakisManish Goregaokar-7/+0
This PR changes the visibility of extern crate declarations to match that of items (fixes #26775). To avoid breakage, the PR makes it a `public_in_private` lint to reexport a private extern crate, and it adds the lint `inaccessible_extern_crate` for uses of an inaccessible extern crate. The lints can be avoided by making the appropriate `extern crate` declaration public.
2016-02-24Fix the visibility of extern crate declarations and stop warning on pub ↵Jeffrey Seyfried-7/+0
extern crate
2016-02-22Use associated functions for libsyntax SepSeq constructors.Corey Farwell-34/+36
2016-02-16Auto merge of #31534 - jseyfried:restrict_noninline_mod, r=nikomatsakisbors-7/+17
This PR disallows non-inline modules without path annotations that are either in a block or in an inline module whose containing file is not a directory owner (fixes #29765). This is a [breaking-change]. r? @nikomatsakis
2016-02-15RebasingNick Cameron-2/+2
2016-02-15Some error recovery in the parserNick Cameron-32/+150
2016-02-15Add some simple error recovery to the parser and fix testsNick Cameron-28/+63
Some tests just add the extra errors, others I fix by doing some simple error recovery. I've tried to avoid doing too much in the hope of doing something more principled later. In general error messages are getting worse at this stage, but I think in the long run they will get better.
2016-02-15error correction for missing or mismatched closing bracketsNick Cameron-28/+40
2016-02-15refactoring: inline some function in the parserNick Cameron-31/+28
2016-02-13Split ast::PatKind::Enum into tuple struct and path patternsVadim Petrochenkov-3/+3
2016-02-13Rename ast::Pat_ and its variantsVadim Petrochenkov-25/+24
2016-02-13Disallow non-inline modules without path annotations inside blocks and fix ↵Jeffrey Seyfried-4/+17
fallout
2016-02-13Only consider a module to be a directory owner if it is located within a ↵Jeffrey Seyfried-3/+0
directory owner
2016-02-12Use more autoderef in libsyntaxJonas Schievink-23/+23
2016-02-11Remove some unnecessary indirection from AST structuresVadim Petrochenkov-40/+53
2016-02-11[breaking-change] don't glob export ast::PathListItem_ variantsOliver 'ker' Schneider-2/+2
2016-02-11[breaking-change] don't glob export ast::StrStyle variantsOliver 'ker' Schneider-4/+6
2016-02-11[breaking-change] don't glob export ast::Visibility variantsOliver 'ker' Schneider-15/+15
2016-02-11[breaking-change] don't glob export ast::TraitItemKind variantsOliver 'ker' Schneider-7/+6
2016-02-11[breaking-change] don't glob export ast::Mutablity variantsOliver 'ker' Schneider-19/+25
2016-02-11[breaking-change] don't glob export ast::MetaItem_Oliver 'ker' Schneider-3/+3
2016-02-11[breaking-change] don't glob export ast::MacStmtStyleOliver 'ker' Schneider-7/+7
2016-02-11[breaking-change] don't glob export ast::KleeneOp variantsOliver 'ker' Schneider-2/+2
2016-02-11[breaking-change] don't glob export ast::Item_ variantsOliver 'ker' Schneider-25/+22
2016-02-11[breaking-change] don't glob export ast::ForeignItem_ variantsOliver 'ker' Schneider-3/+3
2016-02-11[breaking-change] don't pub export ast::Stmt_ variantsOliver Schneider-26/+23
2016-02-11[breaking-change] don't pub export ast::IntLitType variantsOliver Schneider-12/+12
2016-02-11[breaking-change] don't pub export ast::Lit_ variantsOliver Schneider-24/+23
2016-02-11[breaking-change] don't pub export ast::Ty_ variantsOliver Schneider-27/+25
2016-02-11[breaking-change] remove the sign from integer literals in the astOliver Schneider-18/+10
2016-02-11[breaking-change] don't glob export ast::{UintTy, IntTy} variantsOliver Schneider-13/+13
2016-02-11[breaking-change] don't glob export ast::FloatTy variantsOliver Schneider-2/+2
2016-02-11[breaking-change] don't glob export ast::Expr_ variantsOliver Schneider-90/+84
2016-02-11[breaking-change] don't glob export ast::ExplicitSelf_ variantsOliver Schneider-18/+18
2016-02-11[breaking-change] don't glob export ast::Decl_ variantsOliver Schneider-6/+6
2016-02-11[breaking-change] don't glob export ast::CaptureClause variantsOliver Schneider-4/+4
2016-02-11[breaking-change] don't glob import/export syntax::abi enum variantsOliver Schneider-14/+14
2016-02-11[breaking-change] don't glob export ast::BlockCheckMode variantsOliver Schneider-10/+10
2016-02-11[breaking-change] don't glob import ast::FunctionRetTy variantsOliver Schneider-8/+8
2016-02-11[breaking-change] don't glob export ast::BinOp_Oliver Schneider-38/+39
2016-02-11[breaking-change] don't glob export ast::UnOp variantsOliver Schneider-7/+7
2016-02-08Breaking tokens into pieces should behave similar to Parser::bump.Tomasz Miąsko-11/+19
Previously when breaking tokens into smaller pieces, the replace_token function have been used. It replaced current token and updated span information, but it did not clear the list of expected tokens, neither did it update remaining info about last token. This could lead to incorrect error message, like one described in the issue #24780: expected one of ... `>` ... found `>`
2016-02-01Replace some aborts with ResultsNick Cameron-7/+3
Fixes #31207 by removing abort_if_new_errors
2016-01-30Rollup merge of #31244 - tshepang:rustfmt-parse, r=nikomatsakisManish Goregaokar-49/+49
2016-01-27rustfmt syntax::parseTshepang Lekhonkhobe-49/+49