Commit Graph

105216 Commits

Author SHA1 Message Date
varkor
8f94d9bb08 Fix ICE in const pretty printing and resolve FIXME
Consts now have a `fmt::Display` impl, so we can just use that to pretty-print.
2020-01-06 00:11:27 +00:00
bors
33640f0e03 Auto merge of #67563 - euclio:rustdoc-buffer-lexer, r=GuillaumeGomez
buffer lexer errors in rustdoc syntax checking

The code isn't ideal (I really would like to display the errors inline), but this at least gets us to where we were before #63017.
2020-01-06 00:09:14 +00:00
Oliver Middleton
e2305d0055 rustdoc: HTML escape const values 2020-01-05 23:19:42 +00:00
Aaron Hill
336b902f66
Use Instance.ty_env instead of Instance.monomorphic_ty in interpreter 2020-01-05 18:09:57 -05:00
varkor
adb46fd0a4 Silence TooGeneric error
This error may be produced during intermediate failed attempts at evaluation of a generic const, which may nevertheless succeed later.
2020-01-05 23:00:47 +00:00
bors
0731573042 Auto merge of #67821 - matthiaskrgr:submodule_upd, r=Xanewok
submodules: update rls from fed7a31 to 7010eee

Changes:
````
Update Clippy
Update cargo.
Correct two links to the json-error-emitter
````

Fixes #67708
2020-01-05 20:56:03 +00:00
Aaron Hill
db2c4f214f
Fix typo 2020-01-05 15:00:55 -05:00
Aaron Hill
33caf0b61f
Rename Instance.ty to Instance.monomorphic_ty 2020-01-05 14:59:40 -05:00
Aaron Hill
464b58ca11
s/projections/params/ 2020-01-05 14:37:59 -05:00
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
Aleksey Kladov
b25eeef88d Add more nuanced advice about spin_loop_hint 2020-01-05 20:37:22 +01: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
Adam Perry
b97ee0f07a
Fix typo
Co-Authored-By: lzutao <taolzu@gmail.com>
2020-01-04 22:54:09 -08:00
Adam Perry
7a6af7eb0e Result's panics have #[track_caller]. 2020-01-04 19:52:37 -08:00
Adam Perry
2e9d573d3f Option's panics are all #[track_caller].
Also includes a simple test with a custom panic hook to ensure we don't regress.
2020-01-04 19:52:37 -08:00
Adam Perry
3458aba0f9 Fix incremental builds of core by allowing unused attribute.
The same problem as in https://github.com/rust-lang/rust/issues/65023 was
introduced by https://github.com/rust-lang/rust/pull/67657. This works
around the current incrcomp issue with these attributes by allowing it
here.
2020-01-04 18:20:52 -08: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
David Tolnay
90adafbc9e
Distinguish between private items and hidden items in rustdoc
I believe rustdoc should not be conflating private items (visibility
lower than `pub`) and hidden items (attribute `doc(hidden)`). This
matters now that Cargo is passing --document-private-items by default
for bin crates. In bin crates that rely on macros, intentionally hidden
implementation details of the macros can overwhelm the actual useful
internal API that one would want to document.

This PR restores the strip-hidden pass when documenting private items,
and introduces a separate unstable --document-hidden-items option to
skip the strip-hidden pass. The two options are orthogonal to one
another.
2020-01-04 11:28:53 -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
cjkenn
e01e8b9256 add ui test 2020-01-04 10:58:04 -08: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