about summary refs log tree commit diff
path: root/src/libsyntax
AgeCommit message (Collapse)AuthorLines
2016-03-06Auto merge of #30884 - durka:inclusive-ranges, r=aturonbors-50/+92
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-02Fix the search paths for macro-expanded non-inline modulesJeffrey Seyfried-3/+60
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-29std: Stabilize APIs for the 1.8 releaseAlex Crichton-12/+3
This commit is the result of the FCPs ending for the 1.8 release cycle for both the libs and the lang suteams. The full list of changes are: Stabilized * `braced_empty_structs` * `augmented_assignments` * `str::encode_utf16` - renamed from `utf16_units` * `str::EncodeUtf16` - renamed from `Utf16Units` * `Ref::map` * `RefMut::map` * `ptr::drop_in_place` * `time::Instant` * `time::SystemTime` * `{Instant,SystemTime}::now` * `{Instant,SystemTime}::duration_since` - renamed from `duration_from_earlier` * `{Instant,SystemTime}::elapsed` * Various `Add`/`Sub` impls for `Time` and `SystemTime` * `SystemTimeError` * `SystemTimeError::duration` * Various impls for `SystemTimeError` * `UNIX_EPOCH` * `ops::{Add,Sub,Mul,Div,Rem,BitAnd,BitOr,BitXor,Shl,Shr}Assign` Deprecated * Scoped TLS (the `scoped_thread_local!` macro) * `Ref::filter_map` * `RefMut::filter_map` * `RwLockReadGuard::map` * `RwLockWriteGuard::map` * `Condvar::wait_timeout_with` Closes #27714 Closes #27715 Closes #27746 Closes #27748 Closes #27908 Closes #29866
2016-02-27fix fallout from libsyntax enumpocalypseAlex Burka-3/+3
2016-02-27feature-gate inclusive range syntaxAlex Burka-1/+12
2016-02-27libsyntax: parse inclusive rangesAlex Burka-50/+81
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-21rustbuild: Sync some Cargo.toml/lib.rs dependenciesAlex Crichton-2/+1
The standard library doesn't depend on rustc_bitflags, so move it to explicit dependencies on all other crates. Additionally, the arena/fmt_macros deps could be dropped from libsyntax.
2016-02-18Remove unnecessary explicit lifetime bounds.Corey Farwell-11/+11
These explicit lifetimes can be ommitted because of lifetime elision rules. Instances were found using rust-clippy.
2016-02-17Auto merge of #31707 - GuillaumeGomez:macro_name, r=sfacklerbors-1/+6
I'm wondering if instead of a second help message, a note would be better. I let it up to reviewers.
2016-02-17Auto merge of #31685 - petrochenkov:patrefact2, r=eddybbors-1/+1
And split `PatKind::Enum` into `PatKind::TupleStruct` and `PatKind::Path`. This is the HIR part of https://github.com/rust-lang/rust/pull/31581. This is also kind of a preparation for https://github.com/rust-lang/rfcs/pull/1492. r? @eddyb
2016-02-16Add check on find_best_match_for_name and improve help message for undefined ↵ggomez-1/+6
macro
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-16Split PatKind::Enum into PatKind::TupleStruct and PatKind::PathVadim Petrochenkov-1/+1
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-14Auto merge of #31581 - petrochenkov:patrefact, r=Manishearthbors-133/+148
cc https://github.com/rust-lang/rust/pull/31487#issuecomment-182945101 plugin-[breaking-change] The first commit renames `ast::Pat_` to `ast::PatKind` and uses its variants in enum qualified form. I've also taken the opportunity and renamed `PatKind::Region` into `PatKind::Ref`. The second commit splits `PatKind::Enum` into `PatKind::TupleStruct` and `PatKind::UnitStruct`. So, pattern kinds now correspond to their struct/variant kinds - `Struct`, `TupleStruct` and `UnitStruct`. @nikomatsakis @nrc @arielb1 Are you okay with this naming scheme? An alternative possible naming scheme is `PatKind::StructVariant`, `PatKind::TupleVariant`, `PatKind::UnitVariant` (it's probably closer to the common use, but I like it less). I intend to apply these changes to HIR later, they should not necessarily go in the same nightly with https://github.com/rust-lang/rust/pull/31487 r? @Manishearth
2016-02-14Rollup merge of #31609 - erickt:nit, r=sfacklerManish Goregaokar-1/+1
2016-02-13Split ast::PatKind::Enum into tuple struct and path patternsVadim Petrochenkov-24/+41
2016-02-13Rename ast::Pat_ and its variantsVadim Petrochenkov-120/+118
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-12syntax: Replace unstable `vec.as_slice().get()` with `vec.get()`Erick Tryzelaar-1/+1
2016-02-12Use more autoderef in libsyntaxJonas Schievink-171/+171
2016-02-12Auto merge of #31583 - petrochenkov:indi_ast, r=Manishearthbors-232/+249
cc #31487 plugin-[breaking-change] The AST part of https://github.com/rust-lang/rust/pull/30087 r? @Manishearth
2016-02-12Auto merge of #30830 - arcnmx:static-extern, r=alexcrichtonbors-0/+5
See #29676 r? @alexcrichton
2016-02-11Remove some unnecessary indirection from AST structuresVadim Petrochenkov-232/+249
2016-02-11bootstrap: Add a bunch of Cargo.toml filesAlex Crichton-0/+16
These describe the structure of all our crate dependencies.
2016-02-11Pass through diagnostic handler insteadarcnmx-5/+5
2016-02-11Use find_export_name_attr instead of string literalarcnmx-4/+4
2016-02-11Remove link_section and linkage as extern indicatorsarcnmx-2/+0
2016-02-11Only retain external static symbols across LTOarcnmx-0/+7
2016-02-11[breaking-change] don't glob export ast::PathListItem_ variantsOliver 'ker' Schneider-19/+23
2016-02-11[breaking-change] don't glob export ast::StrStyle variantsOliver 'ker' Schneider-19/+20
2016-02-11[breaking-change] don't glob export ast::Visibility variantsOliver 'ker' Schneider-42/+41
2016-02-11[breaking-change] don't glob export ast::TraitItemKind variantsOliver 'ker' Schneider-32/+30
2016-02-11[breaking-change] don't glob export ast::Mutablity variantsOliver 'ker' Schneider-42/+51
2016-02-11[breaking-change] don't glob export ast::MetaItem_Oliver 'ker' Schneider-54/+53
2016-02-11[breaking-change] don't glob export ast::MacStmtStyleOliver 'ker' Schneider-14/+13
2016-02-11[breaking-change] don't glob export ast::KleeneOp variantsOliver 'ker' Schneider-17/+18
2016-02-11[breaking-change] don't glob export ast::Item_ variantsOliver 'ker' Schneider-175/+171
2016-02-11[breaking-change] don't glob export ast::ForeignItem_ variantsOliver 'ker' Schneider-19/+18
2016-02-11[breaking-change] don't pub export ast::Stmt_ variantsOliver Schneider-81/+76