Commit Graph

104936 Commits

Author SHA1 Message Date
Aaron Hill
71d163b53c
Run rustfmt 2020-01-05 14:37:59 -05:00
Aaron Hill
d41f9dd5dd
Change 'panic!' to 'bug!'
Co-Authored-By: Wesley Wiser <wwiser@gmail.com>
2020-01-05 14:37:59 -05:00
Aaron Hill
ee922d47f2
Fix ICE involving calling Instance.ty during const evaluation
Fixes #67639

`Instance.ty` assumes that we are in a fully monomorphic context (e.g.
codegen), and can therefore use an empty `ParamEnv` when performing
normalization. Howver, the MIR constant evaluator code ends up calling
`Instance.ty` as a result of us attemptign to 'speculatively'
const-evaluate generic functions during const propagation.

As a result,
we may end up with projections involving type parameters
(e.g. <T as MyTrait>::Bar>) in the type we are trying to normalize.
Normalization expects us to have proper predicates in the `ParamEnv` for
such projections, and will ICE if we don't.

This commit adds a new method `Instance.ty_env`, which takes a
`ParamEnv` for use during normalization. The MIR const-evaluator code is
changed to use this method, passing in the proper `ParamEnv` for the
context at hand.
2020-01-05 14:37:59 -05:00
bors
bc1571cc3c Auto merge of #67903 - Dylan-DPC:rollup-k9djyrf, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #67818 (rustdoc: Avoid panic when parsing codeblocks for playground links)
 - #67845 (Also remove const-hack for abs)
 - #67879 (Remove negative number check from float sqrt)
 - #67881 (Add backticks to various diagnostics)
 - #67882 (remove bespoke flock bindings)

Failed merges:

r? @ghost
2020-01-05 17:31:32 +00:00
Dylan DPC
b9160fb56c
Rollup merge of #67882 - euclio:flock, r=rkruppe
remove bespoke flock bindings

Replaces some `struct flock` definitions with the definition from `libc`.
2020-01-05 22:44:34 +05:30
Dylan DPC
10a12c539a
Rollup merge of #67881 - varkor:scattering-of-backticks, r=Centril
Add backticks to various diagnostics
2020-01-05 22:44:33 +05:30
Dylan DPC
eae08b25a6
Rollup merge of #67879 - ollie27:float_sqrt_neg, r=rkruppe
Remove negative number check from float sqrt

It hasn't been UB to pass negative numbers to sqrt since https://reviews.llvm.org/D28797 which was included in LLVM 5.
2020-01-05 22:44:32 +05:30
Dylan DPC
59f8ba3a4e
Rollup merge of #67845 - jumbatm:also-unconst-hack-abs, r=oli-obk
Also remove const-hack for abs

Closes #67842.

r? @oli-obk
2020-01-05 22:44:30 +05:30
Dylan DPC
3548d983d2
Rollup merge of #67818 - ollie27:rustdoc_playground_syntax_error, r=GuillaumeGomez
rustdoc: Avoid panic when parsing codeblocks for playground links

`make_test` is also called when parsing codeblocks for the playground links so it should handle unwinds from the parser internally.

Fixes #63016

r? @GuillaumeGomez
2020-01-05 22:44:29 +05:30
Ivan Tham
3d857efb46
Use as_deref() to replace as_ref().map(...)
Suggested by @lzutao
2020-01-05 23:10:30 +08:00
bors
b69f6e65c0 Auto merge of #67895 - JohnTitor:clippy-up, r=oli-obk
Update Clippy

Fixes #67859

r? @oli-obk
2020-01-05 14:24:55 +00: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
Mazdak Farrokhzad
01563682c6 fix ui-fulldeps fallout 2020-01-05 12:49:22 +01:00
Mazdak Farrokhzad
ebfd8673a7 Remove rustc_hir reexports in rustc::hir. 2020-01-05 12:49:22 +01:00
Mazdak Farrokhzad
1c091bba51 librustc/hir.rs -> librustc/hir/mod.rs 2020-01-05 12:47:11 +01:00
Mazdak Farrokhzad
62ac10ffde simplify reexports in rustc::hir 2020-01-05 12:47:11 +01:00
Yuki Okushi
88ef686424 Update Clippy 2020-01-05 20:15:04 +09:00
dylan_DPC
e03d1c4204 add feature gate 2020-01-05 15:42:35 +05:30
bors
7785834159 Auto merge of #67777 - Zoxc:time-refactor, r=wesleywiser
Use self profile infrastructure for -Z time and -Z time-passes

There's no longer indentation for -Z time and -Z time-passes and duplicate timers between self profiling and -Z time-passes have been removed.

r? @wesleywiser
2020-01-05 07:54:23 +00:00
John Kåre Alsaker
5a485ce4a3 Use self profile infrastructure for -Z time and -Z time-passes 2020-01-05 02:57:14 +01:00
bors
093241deae Auto merge of #67808 - Marwes:projection_normalization_recurse, r=nikomatsakis
perf: Don't recurse into types that do not need normalizing

A bit speculative at this stage but profiling shows that type folding
takes up a substantial amount of time during normalization which may
indicate that many types may be folded despite there being nothing to
normalize
2020-01-05 01:18:57 +00:00
Andy Russell
c8774302d1
remove bespoke flock bindings 2020-01-04 19:44:49 -05:00
Andy Russell
1ad928ee52
buffer lexer errors in rustdoc syntax checking 2020-01-04 19:20:35 -05:00
varkor
0c2cf07d6e Add backticks to various diagnostics 2020-01-05 00:17:46 +00:00
Oliver Middleton
a35b4234df Remove negative number check from float sqrt
It hasn't been UB to pass negative numbers to sqrt since https://reviews.llvm.org/D28797 which was included in LLVM 5.
2020-01-04 23:44:19 +00:00
jumbatm
525cd2d7c1 Re-add comment about behaviour of inline. 2020-01-05 08:01:32 +10:00
bors
7494250106 Auto merge of #67803 - Centril:librustc_hir, r=Zoxc
Extract `rustc_hir` out of `rustc`

The new crate contains:
```rust
pub mod def;
pub mod def_id;
mod hir;
pub mod hir_id;
pub mod itemlikevisit;
pub mod pat_util;
pub mod print;
mod stable_hash_impls;

pub use hir::*;
pub use hir_id::*;
pub use stable_hash_impls::HashStableContext;
```

Remains to be done in follow-up PRs:

- Move `rustc::hir::map` into `rustc_hir_map` -- this has to be a separate crate due to the `dep_graph` (blocked on https://github.com/rust-lang/rust/pull/67761).

- Move references to `rustc::hir` to `rustc_hir` where possible.

cc https://github.com/rust-lang/rust/issues/65031

r? @Zoxc
2020-01-04 21:50:12 +00:00
David Tolnay
097126e284
Omit underscore constants from rustdoc 2020-01-04 12:35:23 -08:00
Matthias Krüger
fe26416691 submodules: update rls from fed7a31 to 7c0489c
Changes:
````
rustup https://github.com/rust-lang/rust/pull/67853
deps: update clippy
Update Clippy
Update cargo.
Correct two links to the json-error-emitter
````

Fixes #67708
2020-01-04 20:22:28 +01:00
Oliver Middleton
efb876f557 rustdoc: Avoid panic when parsing codeblocks for playground links
`make_test` is also called when parsing codeblocks for the playground links so it should handle unwinds from the parser internally.
2020-01-04 18:42:06 +00:00
bors
760ce94c69 Auto merge of #67874 - Dylan-DPC:rollup-xy6bkoe, r=Dylan-DPC
Rollup of 4 pull requests

Successful merges:

 - #67137 (libstd uses `core::panic::Location` where possible.)
 - #67709 (Introduce an option for disabling deduplication of diagnostics)
 - #67775 (Make "use $crate" a hard error)
 - #67812 (Tweak and extend internal BTreeMap documentation, including debug asserts.)

Failed merges:

r? @ghost
2020-01-04 18:39:14 +00:00
dylan_DPC
358b8983f2 removed blank line 2020-01-05 00:00:40 +05:30
dylan_DPC
f744ea03b4 ef em ti ... :P 2020-01-04 23:57:34 +05:30
Dylan DPC
0bbe11089c
Rollup merge of #67812 - ssomers:btreemap_internal_doc, r=rkruppe
Tweak and extend internal BTreeMap documentation, including debug asserts.

Gathered from work on various other pull requests (e.g. #67725, #67686).
2020-01-04 23:52:51 +05:30
Dylan DPC
5dabc3b339
Rollup merge of #67775 - mental32:master, r=Dylan-DPC
Make "use $crate" a hard error

Closes #37390
2020-01-04 23:52:50 +05:30
Dylan DPC
3c87772a8a
Rollup merge of #67709 - petrochenkov:nodedup2, r=Centril
Introduce an option for disabling deduplication of diagnostics

With the intent of using it in UI tests (https://github.com/rust-lang/rust/pull/67122).

The option is boolean (`-Z deduplicate-diagnostics=yes/no`) and can be specified multiple times with later values overriding earlier values (`-Z deduplicate-diagnostics=no -Z deduplicate-diagnostics=yes` == `-Z deduplicate-diagnostics=yes`), so it can be set in a hierarchical way, e.g. UI testing infra may disable the deduplication by default with specific tests being able to enable it back.
2020-01-04 23:52:48 +05:30
Dylan DPC
cce055daef
Rollup merge of #67137 - anp:tracked-panic-internals, r=eddyb
libstd uses `core::panic::Location` where possible.

cc @eddyb
2020-01-04 23:52:44 +05:30
dylan_DPC
eb36688a01 add tests 2020-01-04 23:41:17 +05:30
Mazdak Farrokhzad
cdf32e1a0f pacify the parallel compiler 2020-01-04 19:03:27 +01:00
Mazdak Farrokhzad
937c76bfb2 cleanup librustc_hir/Cargo.toml 2020-01-04 19:03:27 +01:00
Mazdak Farrokhzad
ef08662613 hir::{hir,def,itemlikevisit,pat_util,print} -> rustc_hir
Also fix fallout wrt. HashStable.
2020-01-04 19:03:27 +01:00
Mazdak Farrokhzad
1f7b4e9a59 extract Export, ExportMap from hir::def 2020-01-04 19:03:27 +01:00
Mazdak Farrokhzad
702b2d736a simplify self::Namespace::* import 2020-01-04 19:03:27 +01:00
Mazdak Farrokhzad
60d5d36370 move {Par}DeepVisitor to intravisit 2020-01-04 19:03:27 +01:00
Mazdak Farrokhzad
e1087213ef hir::hir: simplify some imports 2020-01-04 19:03:27 +01:00
Mazdak Farrokhzad
3b66f4e792 split hir/mod.rs -> hir.rs & hir/hir.rs 2020-01-04 19:03:27 +01:00
Adam Perry
27b25eb822 Restrict visibility of location_triple_for_span. 2020-01-04 10:02:17 -08:00
Adam Perry
b76a5be18f Clean up comments in panicking infra. 2020-01-04 10:02:17 -08:00
Adam Perry
612c4c6c90 Update ABI in const impls of panic_fn/begin_panic_fn. 2020-01-04 10:02:17 -08:00
Adam Perry
e218da4251 Test cleanups to match #[track_caller] in panic!.
* Removes unnecessary feature flag from track_caller test.
* Tests of panic internals no longer need to explicitly construct Location.
* Add #![warn(const_err)] to retain-never-const per @oli-obk.
* Add track_caller test with diverging function.
2020-01-04 10:02:17 -08:00