about summary refs log tree commit diff
path: root/src/libsyntax
AgeCommit message (Collapse)AuthorLines
2018-05-03Auto merge of #50413 - kennytm:rollup, r=kennytmbors-2/+8
Rollup of 12 pull requests Successful merges: - #50302 (Add query search order check) - #50320 (Fix invalid path generation in rustdoc search) - #50349 (Rename "show type declaration" to "show declaration") - #50360 (Clarify wordings of the `unstable_name_collision` lint.) - #50365 (Use two vectors in nearest_common_ancestor.) - #50393 (Allow unaligned reads in constants) - #50401 (Revert "Implement FromStr for PathBuf") - #50406 (Forbid constructing empty identifiers from concat_idents) - #50407 (Always inline simple BytePos and CharPos methods.) - #50416 (check if the token is a lifetime before parsing) - #50417 (Update Cargo) - #50421 (Fix ICE when using a..=b in a closure.) Failed merges:
2018-05-03Auto merge of #50030 - flip1995:rfc2103, r=petrochenkovbors-84/+166
Implement tool_attributes feature (RFC 2103) cc #44690 This is currently just a rebased and compiling (hopefully) version of #47773. Let's see if travis likes this. I will add the implementation for `tool_lints` this week.
2018-05-03check if the token is a lifetime before parsingrleungx-2/+8
2018-05-03Auto merge of #50391 - nnethercote:escape_unicode, r=eddybbors-11/+5
Use escape_default() for strings in LitKind::token(). This avoids converting every char to \u{...} form, which bloats the resulting strings unnecessarily. It also provides consistency with the existing escape_default() calls in LitKind::token() used for raw string literals, char literals, and raw byte char literals. There are two benefits from this change. - Compilation is faster. Most of the rustc-perf benchmarks see a non-trivial speedup, particularly for incremental rebuilds, with the best speedup over 13%, and multiple others over 10%. - Generated rlibs are smaller. An extreme example is libfutures.rlib, which shrinks from 2073306 bytes to 1765927 bytes, a 15% reduction. r? @jseyfried <details><summary>Here are full numbers for all the rustc-perf runs where the improvement was > 1%.</summary> ``` regex-check avg: -11.1% min: -13.4% max: -5.5% futures-check avg: -7.6% min: -11.4% max: -3.5% futures-opt avg: -6.3% min: -10.3% max: -2.3% futures avg: -6.6% min: -10.3% max: -2.8% regex-opt avg: -4.7% min: -10.2% max: -0.4% regex avg: -5.3% min: -10.2% max: -1.2% hyper-check avg: -4.8% min: -6.6% max: -2.7% encoding-check avg: -4.1% min: -5.5% max: -2.5% issue-46449-check avg: -4.7% min: -5.2% max: -4.1% clap-rs-check avg: -2.9% min: -5.2% max: -1.1% hyper avg: -3.0% min: -5.1% max: -0.8% parser-check avg: -4.2% min: -4.9% max: -3.2% hyper-opt avg: -2.6% min: -4.9% max: -0.3% encoding-opt avg: -2.3% min: -4.6% max: -0.5% encoding avg: -2.5% min: -4.4% max: -0.6% issue-46449 avg: -2.3% min: -4.4% max: -1.8% issue-46449-opt avg: -1.7% min: -4.3% max: -0.9% clap-rs-opt avg: -1.6% min: -4.2% max: -0.2% serde-check avg: -1.4% min: -4.1% max: -0.2% clap-rs avg: -1.6% min: -3.9% max: -0.7% unify-linearly-check avg: -3.2% min: -3.7% max: -2.7% serde avg: -1.1% min: -3.5% max: -0.1% regression-31157-check avg: -2.6% min: -3.4% max: -1.6% helloworld-check avg: -2.5% min: -3.4% max: -0.6% serde-opt avg: -1.3% min: -3.3% max: -0.5% tokio-webpush-simple-check avg: -2.4% min: -3.2% max: -1.8% piston-image-check avg: -1.7% min: -3.2% max: -0.9% deeply-nested-opt avg: -1.5% min: -3.0% max: -0.6% deeply-nested-check avg: -1.9% min: -2.9% max: -0.4% deeply-nested avg: -1.9% min: -2.9% max: -1.2% syn-check avg: -1.8% min: -2.8% max: -0.6% coercions avg: -0.5% min: -2.8% max: 0.4% syn-opt avg: -0.9% min: -2.4% max: -0.1% syn avg: -1.1% min: -2.2% max: -0.3% parser-opt avg: -1.9% min: -2.1% max: -1.6% parser avg: -1.9% min: -2.1% max: -1.6% style-servo-check avg: -1.3% min: -2.0% max: -0.8% regression-31157-opt avg: -0.8% min: -2.0% max: 0.0% piston-image avg: -0.7% min: -1.8% max: -0.2% piston-image-opt avg: -0.6% min: -1.8% max: -0.0% regression-31157 avg: -1.0% min: -1.7% max: -0.3% html5ever-opt avg: -0.6% min: -1.5% max: -0.1% unify-linearly-opt avg: -1.3% min: -1.5% max: -1.1% unify-linearly avg: -1.3% min: -1.4% max: -1.2% tokio-webpush-simple-opt avg: -0.4% min: -1.2% max: -0.0% helloworld-opt avg: -1.0% min: -1.1% max: -0.6% helloworld avg: -1.0% min: -1.1% max: -0.7% inflate-opt avg: -0.3% min: -1.1% max: 0.1% html5ever-check avg: -0.6% min: -1.0% max: -0.3% inflate-check avg: -0.3% min: -1.0% max: -0.1% ``` </details>
2018-05-03Auto merge of #50378 - varkor:repr-align-max-29, r=eddybbors-4/+15
Reduce maximum repr(align(N)) to 2^29 The current maximum `repr(align(N))` alignment is larger than the maximum alignment accepted by LLVM, which can cause issues for huge values of `N`, as seen in #49492. Fixes #49492. r? @rkruppe
2018-05-03Remove parse::escape_default().Nicholas Nethercote-7/+3
str::escape_default() can be used instead.
2018-05-03Use escape_default() for strings in LitKind::token().Nicholas Nethercote-4/+2
This avoids converting every char to \u{...} form, which bloats the resulting strings unnecessarily. It also provides consistency with the existing escape_default() calls in LitKind::token() used for raw string literals, char literals, and raw byte char literals. There are two benefits from this change. - Compilation is faster. Most of the rustc-perf benchmarks see a non-trivial speedup, particularly for incremental rebuilds, with the best speedup over 13%, and multiple others over 10%. - Generated rlibs are smaller. An extreme example is libfutures.rlib, which shrinks from 2073306 bytes to 1765927 bytes, a 15% reduction.
2018-05-02Auto merge of #50339 - nnethercote:lazy-Printer-buf, r=michaelwoeristerbors-7/+23
Extend Printer::buf on demand. So that 55 entries (at 48 bytes each) don't need to be eagerly initialized on creation. This speeds up numerous rust-perf benchmark runs, by up to 3%. ``` crates.io-check avg: -2.4% min: -3.7% max: -1.1% encoding-check avg: -2.1% min: -2.9% max: -1.2% crates.io-opt avg: -1.3% min: -2.7% max: -0.1% crates.io avg: -1.4% min: -2.7% max: -0.3% encoding-opt avg: -1.1% min: -2.5% max: 0.1% encoding avg: -1.3% min: -2.4% max: -0.3% hyper-check avg: -1.7% min: -2.3% max: -0.9% regex-check avg: -1.5% min: -1.9% max: -0.7% piston-image-check avg: -0.9% min: -1.8% max: -0.5% hyper avg: -1.0% min: -1.7% max: -0.3% hyper-opt avg: -0.9% min: -1.7% max: -0.1% syn-check avg: -1.0% min: -1.5% max: -0.6% clap-rs avg: -0.3% min: -1.5% max: 0.2% regex-opt avg: -0.6% min: -1.5% max: -0.0% regression-31157-check avg: -1.1% min: -1.4% max: -0.7% regex avg: -0.7% min: -1.3% max: -0.1% clap-rs-check avg: -0.5% min: -1.2% max: 0.1% syn-opt avg: -0.5% min: -1.1% max: -0.1% syn avg: -0.5% min: -1.1% max: -0.2% serde-opt avg: -0.3% min: -1.1% max: 0.1% piston-image-opt avg: -0.4% min: -1.1% max: -0.0% piston-image avg: -0.4% min: -1.0% max: -0.0% ```
2018-05-02fix testsflip1995-17/+17
2018-05-02make it compile againflip1995-75/+72
2018-05-02Change Attribute::name to return the last segmentSeiichi Uchida-4/+7
And fix some typos
2018-05-02Gate tool_attributes featureSeiichi Uchida-2/+20
2018-05-02Remove Option from the return type of Attribute::name()Seiichi Uchida-11/+12
2018-05-02Allow Path for name of MetaItemSeiichi Uchida-64/+127
2018-05-01Auto merge of #49982 - petrochenkov:noreex, r=alexcrichtonbors-43/+40
Remove unstable `macro_reexport` It's subsumed by `feature(use_extern_macros)` and `pub use` cc https://github.com/rust-lang/rust/issues/35896 closes https://github.com/rust-lang/rust/issues/29638 closes https://github.com/rust-lang/rust/issues/38951
2018-05-01Reduce the maximum alignment to repr(align(1 << 29))varkor-3/+3
This brings it into line with LLVM's maximum permitted alignment.
2018-05-01Add E0589 to the error indexvarkor-1/+12
2018-05-01Auto merge of #49789 - petrochenkov:prelext, r=nikomatsakisbors-1/+4
Module experiments: Add one more prelude layer for extern crate names passed with `--extern` Implements one item from https://internals.rust-lang.org/t/the-great-module-adventure-continues/6678/183 When some name is looked up in lexical scope (`name`, i.e. not module-relative scope `some_mod::name` or `::name`), it's searched roughly in the next order: - local variables - items in unnamed blocks - items in the current module - :sparkles: NEW! :sparkles: crate names passed with `--extern` ("extern prelude") - standard library prelude (`Vec`, `drop`) - language prelude (built-in types like `u8`, `str`, etc) The last two layers contain a limited set of names controlled by us and not arbitrary user-defined names like upper layers. We want to be able to add new names into these two layers without breaking user code, so "extern prelude" names have higher priority than std prelude and built-in types. This is a one-time breaking change, that's why it would be nice to run this through crater. Practical impact is expected to be minimal though due to stylistic reasons (there are not many `Uppercase` crates) and due to the way how primitive types are resolved (https://github.com/rust-lang/rust/pull/32131).
2018-05-01Give removal reasons to removed featuresVadim Petrochenkov-36/+40
2018-05-01Remove `macro_reexport`Vadim Petrochenkov-9/+2
It's subsumed by `feature(use_extern_macros)` and `pub use`
2018-04-30Auto merge of #48925 - zackmdavis:fn_must_stabilize, r=nikomatsakisbors-19/+3
stabilize `#[must_use]` for functions and must-use comparison operators (RFC 1940) r? @nikomatsakis
2018-04-30Extend Printer::buf on demand.Nicholas Nethercote-7/+23
So that 55 entries (at 48 bytes each) don't need to be eagerly initialized on creation. This speeds up numerous rust-perf benchmark runs, by up to 3%.
2018-04-30Auto merge of #50204 - Manishearth:approx-enum, r=estebankbors-13/+13
Use enum for approximate suggestions r? @nrc @killercup
2018-04-30Auto merge of #50092 - abonander:issue-49934, r=petrochenkovbors-14/+77
Warn on pointless #[derive] in more places This fixes the regression in #49934 and ensures that unused `#[derive]` invocations on statements, expressions and generic type parameters survive to trip the `unused_attributes` lint. There is a separate warning hardcoded for `#[derive]` on macro invocations since linting (even the early-lint pass) occurs after expansion. This also adds regression tests for some nodes that were already warning properly. closes #49934
2018-04-29Warn on pointless `#[derive]` in more placesAustin Bonander-14/+77
This fixes the regression in #49934 and ensures that unused `#[derive]`s on statements, expressions and generic type parameters survive to trip the `unused_attributes` lint. For `#[derive]` on macro invocations it has a hardcoded warning since linting occurs after expansion. This also adds regression testing for some nodes that were already warning properly. closes #49934
2018-04-29Auto merge of #50317 - varkor:repr-align-assign, r=nagisabors-0/+25
Improve error message for #[repr(align=x)] Before: ``` error[E0552]: unrecognized representation hint --> src/main.rs:1:8 | 1 | #[repr(align="8")] | ^^^^^^^^^ ``` After: ``` error[E0693]: incorrect `repr(align)` attribute format --> src/main.rs:1:8 | 2 | #[repr(align="8")] | ^^^^^^^^^ help: use parentheses instead: `align(8)` ``` Fixes #50314.
2018-04-29Add error when using repr(align=x) instead of repr(align(x))varkor-0/+25
2018-04-28stabilize `#[must_use]` for functions and must-use operatorsZack M. Davis-19/+3
This is in the matter of RFC 1940 and tracking issue #43302.
2018-04-28Auto merge of #50155 - est31:label_expressions, r=petrochenkovbors-1/+2
'label can start expressions ```Rust let foo = 'label: loop { break 'label 42; }; ``` is valid Rust code.
2018-04-28Rollup merge of #49968 - christianpoveda:stabilize_dyn, r=nikomatsakiskennytm-7/+2
Stabilize dyn trait This PR stabilizes RFC 2113. I followed the [stabilization guide](https://forge.rust-lang.org/stabilization-guide.html). Related issue: https://github.com/rust-lang/rust/issues/49218
2018-04-27fixed rustc version for dyn_traitChristian Poveda-1/+1
2018-04-27stop requiring the feature-gate to use dyn_traitChristian Poveda-7/+2
2018-04-27Add one more prelude layer for extern crate names passed with `--extern`Vadim Petrochenkov-1/+4
2018-04-26Fixed tidy errors.Irina Popa-1/+3
2018-04-26rustc_target: move in syntax::abi and flip dependency.Irina Popa-150/+10
2018-04-25Approximate -> ApplicabilityManish Goregaokar-13/+13
2018-04-24Use enum for approximate suggestionsManish Goregaokar-5/+5
2018-04-24Auto merge of #50096 - alexcrichton:less-simd-warnings, r=michaelwoeristerbors-1/+1
Tweak some warnings around #[target_feature] This commit fixes up some issues discovered when getting the `stdsimd` crate's CI compiling again.
2018-04-24Auto merge of #49911 - rcoh:master, r=nikomatsakisbors-27/+40
Don't allow #[should_panic] with non-() tests Adds (removes) support for `#[should_panic]` when the test is non-`()`
2018-04-24Rollup merge of #49985 - zackmdavis:0, r=estebankkennytm-4/+3
don't see issue #0 The unstable-feature attribute requires an issue (neglecting it is E0547), which gets used in the error messages. Unfortunately, there are some cases where "0" is apparently used a placeholder where no issue exists, directing the user to see the (nonexistent) issue #0. (It would have been better to either let `issue` be optional—compare to how issue is an `Option<u32>` in the feature-gate declarations in libsyntax/feature-gate.rs—or actually require that an issue be created.) Rather than endeavoring to change how `#[unstable]` works at this time (given competing contributor and reviewer priorities), this simple patch proposes the less-ambitious solution of just not adding the "(see issue)" note when the number is zero. Resolves #49983.
2018-04-23Auto merge of #49368 - matthewjasper:feature-gate-where-clause, r=nikomatsakisbors-2/+6
Feature gate where clauses on associated types Fixes #49365. Requires crater: these have been usable since 1.24.
2018-04-23Don't allow #[should_panic] with non-() testsRussell Cohen-27/+40
2018-04-23'label can start expressionsest31-1/+2
let foo = 'label: loop { break 'label 42; }; is valid Rust code.
2018-04-23Auto merge of #48946 - PramodBisht:issues/48636, r=estebankbors-1/+16
Doc comments present after a particular syntax error cause an unhelpful error message to be output. fixed: #48636 r? @estebank
2018-04-22Auto merge of #50152 - petrochenkov:nooverhyg, r=alexcrichtonbors-1/+2
parser: Do not override syntactic context for dummy spans Fixes https://github.com/rust-lang/rust/issues/50061 https://github.com/rust-lang/rust/commit/e2afefd80bf779bc3c6f697a3c6cc3a476993602 seemingly did everything right, but uncovered a preexisting bug.
2018-04-221) Addresses #48636Pramod Bisht-1/+16
2) Changed position of help message, incase comma is missing 3) added few missing spaces and handled span_suggestion for vscode 4) updated stderr file
2018-04-22Auto merge of #49757 - GuillaumeGomez:never-search, r=QuietMisdreavusbors-0/+7
Add specific never search Fixes #49529. r? @QuietMisdreavus
2018-04-22parser: Do not override syntactic context for dummy spansVadim Petrochenkov-1/+2
2018-04-22Add tracking issue number for doc alias featureGuillaume Gomez-1/+1
2018-04-21Auto merge of #50121 - pnkfelix:revert-stabilization-of-never-type-et-al, ↵bors-0/+7
r=alexcrichton Revert stabilization of never_type (!) et al Fix #49691 I *think* this correctly adopts @nikomatsakis 's desired fix of: * reverting stabilization of `!` and `TryFrom`, and * returning to the previous fallback semantics (i.e. it is once again dependent on whether the crate has opted into `#[feature(never_type)]`, * **without** attempting to put back in the previous future-proofing warnings regarding the change in fallback semantics. (I'll be away from computers for a week starting now, so any updates to this PR should be either pushed into it, or someone else should adopt the task of polishing this fix and put up their own PR.)