Commit Graph

528 Commits

Author SHA1 Message Date
Matthias Krüger 22339c3406 use for (idx, item) in iter.enumerate() instead of manually counting loop iterations by variables 2020-03-01 21:17:48 +01:00
bors 3f9bddc7fe Auto merge of #69570 - Dylan-DPC:rollup-d6boczt, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #69477 (docs: add mention of async blocks in move keyword docs)
 - #69504 (Use assert_ne in hash tests)
 - #69546 (use to_vec() instead of .iter().cloned().collect() to convert slices to vecs.)
 - #69551 (use is_empty() instead of len() == x  to determine if structs are empty.)
 - #69563 (Fix no_std detection for target triples)
 - #69567 (use .to_string() instead of format!() macro to create strings)

Failed merges:

r? @ghost
2020-02-29 10:43:32 +00:00
bors 04e7f96dd8 Auto merge of #69227 - Marwes:buffer_stderr, r=varkor
perf: Buffer stderr when writing json errors/warnings

Since `stderr` is unbuffered, writing out json messages actually take up
about ~10%/0.1s of the runtime of the `inflate` benchmark as it generates a fair number of warnings.

cc #64413
2020-02-29 07:27:29 +00:00
Dylan DPC bbfec7ca41 Rollup merge of #69567 - matthiaskrgr:useless_fmt, r=nagisa
use .to_string() instead of format!() macro to create strings

handles what is left after https://github.com/rust-lang/rust/pull/69541
2020-02-29 02:16:24 +01:00
Matthias Krüger 85e59b7664 use .to_string() instead of format!() macro to create strings 2020-02-29 01:32:42 +01:00
Matthias Krüger 9523c89f18 use is_empty() instead of len() == x to determine if structs are empty. 2020-02-28 15:16:27 +01:00
Maxim Zholobak 20c9a40fec Rename CodeMap to SourceMap follow up 2020-02-22 16:17:31 +02:00
Markus Westerlind ee064befa0 Ensure diagnostics are printed in the correct order
Even when buffered. Ideally we would flush only when the emitter is
done, but that requires larger changes. This gives most of the benefit
of buffering in any case.
2020-02-17 16:46:53 +01:00
Markus Westerlind 7ac4154643 perf: Buffer stderr when writing json errors/warnings
Since `stderr` is unbuffered, writing out json messages actually take up
about ~10%/0.1s of the runtime of the `inflate` benchmark.

cc #64413
2020-02-17 15:35:42 +01:00
bors 3f32e3001e Auto merge of #69062 - Dylan-DPC:rollup-7wpjpqu, r=Dylan-DPC
Rollup of 8 pull requests

Successful merges:

 - #66498 (Remove unused feature gates)
 - #68816 (Tweak borrow error on `FnMut` when `Fn` is expected)
 - #68824 (Enable Control Flow Guard in rustbuild)
 - #69022 (traits: preallocate 2 Vecs of known initial size)
 - #69031 (Use `dyn Trait` more in tests)
 - #69044 (Don't run coherence twice for future-compat lints)
 - #69047 (Don't rustfmt check the vendor directory.)
 - #69055 (Clean up E0307 explanation)

Failed merges:

r? @ghost
2020-02-11 17:45:49 +00:00
Dylan DPC ec0cfd1d01 Rollup merge of #66498 - bjorn3:less_feature_flags, r=Dylan-DPC
Remove unused feature gates

I think many of the remaining unstable things can be easily be replaced with stable things. I have kept the `#![feature(nll)]` even though it is only necessary in `libstd`, to make regressions of it harder.
2020-02-11 16:36:54 +01:00
jumbatm d246385122 Run RustFmt 2020-02-11 19:49:01 +10:00
jumbatm 7c58ffe874 Invert control in struct_lint_level.
Caller now passes in a `decorate` function, which is only run if the
lint is allowed.
2020-02-11 19:47:40 +10:00
bors f8d830b4de Auto merge of #68376 - Centril:move-ref-patterns, r=matthewjasper
Initial implementation of `#![feature(move_ref_pattern)]`

Following up on #45600, under the gate `#![feature(move_ref_pattern)]`, `(ref x, mut y)` is allowed subject to restrictions necessary for soundness. The match checking implementation and tests for `#![feature(bindings_after_at)]` is also adjusted as necessary.

Closes #45600.
Tracking issue: #68354.

r? @matthewjasper
2020-02-09 04:01:28 +00:00
Eduard-Mihai Burtescu 4c7eb59e81 rustc_macros: don't limit the -Zmacro-backtrace suggestion to extern macros. 2020-02-06 21:46:38 +02:00
Eduard-Mihai Burtescu ab080973cb rustc_errors: hide "in this macro invocation" when redundant, more explicitly. 2020-02-06 21:32:07 +02:00
Eduard-Mihai Burtescu 5eaa9a150d rustc_errors: deduplicate the -Zmacro-backtrace suggestion message. 2020-02-06 21:32:07 +02:00
Eduard-Mihai Burtescu f6fc80206e rustc: rename -Zexternal-macro-backtrace to -Zmacro-backtrace. 2020-02-06 21:32:07 +02:00
Eduard-Mihai Burtescu 8f286dbf27 rustc_errors: split macro backtrace rendering from <*macros> hacks. 2020-02-06 21:32:07 +02:00
bjorn3 3e61d52784 Remove unused feature gates from librustc_errors 2020-02-04 19:18:11 +01:00
Mazdak Farrokhzad 7af9ff3e69 introduce #![feature(move_ref_pattern)] 2020-02-02 14:13:07 +01:00
Dylan DPC 4af33a9c26 Rollup merge of #68626 - Zoxc:termize, r=estebank
Use termize instead of term_size

`termize` is a fork of `term_size` which uses `winapi` 0.3 instead of 0.2. This is a step towards removing the `winapi` 0.2 dependency.

r? @Mark-Simulacrum
2020-01-30 01:46:43 +01:00
John Kåre Alsaker b0b11d31a2 Use termize instead of term_size 2020-01-29 01:13:48 +01:00
Michael Burge 79d8c9beab Correct ICE caused by macros generating invalid spans. 2020-01-28 11:02:22 -08:00
Matthias Krüger ec61761e46 don't clone types that are copy, round two. 2020-01-27 01:18:18 +01:00
Eduard-Mihai Burtescu 6980f82c0d rustc_span: return an impl Iterator instead of a Vec from macro_backtrace. 2020-01-26 17:18:55 +02:00
Eduard-Mihai Burtescu 75284f8cbd rustc_span: replace MacroBacktrace with ExpnData. 2020-01-26 17:18:55 +02:00
bors 3d8778d767 Auto merge of #68522 - estebank:impl-trait-sugg-2, r=oli-obk
Further improve `impl Trait`/`dyn Trait` suggestions

After reading [_Returning Trait Objects_ by Bryce Fisher-Fleig](https://bryce.fisher-fleig.org/blog/returning-trait-objects/), [I noticed that](https://www.reddit.com/r/rust/comments/esueur/returning_trait_objects/ffczl4k/) #68195 had a few bugs due to not ignoring `ty::Error`.

- Account for `ty::Error`.
- Account for `if`/`else` and `match` blocks when pointing at return types and referencing their types.
- Increase the multiline suggestion output from 6 lines to 20.
2020-01-26 08:36:23 +00:00
Esteban Küber 16709f032c Revert suggestion window size change 2020-01-25 12:26:33 -08:00
Esteban Küber b626202087 Do not ICE on multipart suggestions touching multiple files
When encountering a multipart suggestion with spans belonging to
different contexts, skip that suggestion.
2020-01-24 18:03:09 -08:00
Esteban Küber 600e385c43 review comments 2020-01-24 14:03:35 -08:00
Esteban Küber 34d51b3378 Increase suggestion code window from 6 lines to 20 2020-01-24 11:18:45 -08:00
Mazdak Farrokhzad de6046fa0f remove rustc_error_codes deps except in rustc_driver 2020-01-18 21:53:53 +01:00
Tyler Mandry 7f6fdef0e9 Rollup merge of #68256 - estebank:bad-sugg-span, r=petrochenkov
Do not ICE on malformed suggestion spans

Under the assumption that suggestions are by their very nature always "best effort", it is ok if we don't display them instead of having an ICE. The underlying issue of the malformed span being _created_ is left unaddressed.

Fix #67567.

r? @petrochenkov
2020-01-17 17:28:15 -08:00
Esteban Küber 03240e1359 review comments 2020-01-16 18:55:23 -08:00
Esteban Küber 10a9ea4c26 Do not ICE on malformed suggestion spans 2020-01-16 18:14:26 -08:00
Matthias Krüger 7fbd30b1ae don't clone types that are copy
found via clippy
2020-01-16 23:48:49 +01:00
Andy Russell 7b564c67de use winapi for non-stdlib Windows bindings 2020-01-11 20:56:46 -05:00
Esteban Küber d558f6a570 Fix invalid bounding box 2020-01-10 11:03:26 -08:00
Vadim Petrochenkov 41a93cba38 Remove -Z continue-parse-after-error 2020-01-08 21:48:04 +03:00
Mazdak Farrokhzad 2c3e5d3de0 - remove syntax::{span_warn!, span_err!, span_fatal!. struct_err!}
- remove syntax::{help!, span_help!, span_note!}
- remove unused syntax::{struct_span_fatal, struct_span_err_or_warn!, span_err_or_warn!}
- lintify check_for_bindings_named_same_as_variants + conflicting_repr_hints
- inline syntax::{struct_span_warn!, diagnostic_used!}
- stringify_error_code! -> error_code! & use it more.
- find_plugin_registrar: de-fatalize an error
- de-fatalize metadata errors
- move type_error_struct! to rustc_typeck
- struct_span_err! -> rustc_errors
2020-01-08 04:25:33 +01:00
Laurent Bonnans 12545c75ff Handle multiple error fix suggestions carefuly
The existing code seems to assume that substitutions spans are disjoint,
which is not always the case.

In the example:

    pub trait AAAA {}
    pub trait B {}
    pub trait C {}
    pub type T<P: AAAA + B + C> = P;

, we get three substituions starting from ':' and ending respectively at
the end of each trait token.

With the former offset calculation, this would cause `underline_start` to
eventually become negative before being converted to `usize`...

The new version may report erroneous results for non perfectly overlapping
substitutions but I don't know if such examples exist. Alternatively, we
could detect these cases and trim out overlapping substitutions.
2020-01-05 12:51:57 +01:00
Vadim Petrochenkov 5bf8105993 Address review comments + Fix rebase 2020-01-03 18:03:28 +04:00
Vadim Petrochenkov 4feeceecd1 Introduce an option for disabling deduplication of diagnostics 2020-01-03 18:03:28 +04:00
Vadim Petrochenkov 70f1d57048 Rename syntax_pos to rustc_span in source code 2020-01-01 09:15:18 +03:00
Vadim Petrochenkov b9a9c5b4fd Make things build again 2019-12-30 19:18:16 +03:00
bors 774a4bd4f4 Auto merge of #67614 - Mark-Simulacrum:global-callbacks, r=Zoxc
Set callbacks globally

This sets the callbacks from syntax and rustc_errors just once, utilizing static (rather than thread-local) storage.
2019-12-29 04:30:56 +00:00
Mark Rousskov b98633b94c Store callbacks in global statics
The callbacks have precisely two states: the default, and the one
present throughout almost all of the rustc run (the filled in value
which has access to TyCtxt).

We used to store this as a thread local, and reset it on each thread to
the non-default value. But this is somewhat wasteful, since there is no
reason to set it globally -- while the callbacks themselves access TLS,
they do not do so in a manner that fails in when we do not have TLS to
work with.
2019-12-25 14:10:46 -05:00
David Tolnay 4646a88b7a Deprecate Error::description for real
`description` has been documented as soft-deprecated since 1.27.0 (17
months ago). There is no longer any reason to call it or implement it.

This commit:

- adds #[rustc_deprecated(since = "1.41.0")] to Error::description;

- moves description (and cause, which is also deprecated) below the
  source and backtrace methods in the Error trait;

- reduces documentation of description and cause to take up much less
  vertical real estate in rustdocs, while preserving the example that
  shows how to render errors without needing to call description;

- removes the description function of all *currently unstable* Error
  impls in the standard library;

- marks #[allow(deprecated)] the description function of all *stable*
  Error impls in the standard library;

- replaces miscellaneous uses of description in example code and the
  compiler.
2019-12-24 22:39:49 -08:00
Mark Rousskov 6891388e66 x.py fmt after previous deignore 2019-12-24 17:38:22 -05:00