Commit graph

24229 commits

Author SHA1 Message Date
bors
e577e49b9f Auto merge of #60058 - varkor:const-generics-ty-refactor, r=cramertj
Make const parameters enforce no variance constraints

Fixes https://github.com/rust-lang/rust/issues/60047. Also includes some minor const refactoring for convenience.
2019-04-18 08:58:45 +00:00
bors
be1dbaffed Auto merge of #60048 - estebank:issue-54954, r=sanxiyn
Fix ICE on const evaluation of const method

Fix #54954.
2019-04-18 06:00:06 +00:00
bors
fb1b222f04 Auto merge of #60051 - estebank:fn-sugg, r=davidtwco
Do not mention missing `PartialOrd` impl when involving uncalled fns
2019-04-18 03:06:17 +00:00
varkor
318a10e906 Add a test for unused const parameters 2019-04-18 00:30:50 +01:00
Mazdak Farrokhzad
42b3cf107d
Rollup merge of #60037 - eddyb:actually-its-param, r=estebank
Resolve inconsistency in error messages between "parameter" and "variable".

The inconsistency was introduced in 104fe1c4db (#33619), when a label saying `type variable` was added to an error with a message talking about `type parameters`.
Given that `parameter` is far more prevalent when referring to generics in the context of Rust, IMO it should be that in both the message and the label.

r? @nikomatsakis or @estebank
2019-04-18 00:23:40 +02:00
Esteban Küber
8f77a035a4 Do not mention missing PartialOrd impl when involving uncalled fns 2019-04-17 14:37:52 -07:00
bors
3c3d3c1777 Auto merge of #59527 - matklad:sized-index, r=Centril
Add test checking that Index<T: ?Sized> works

I've noticed that we have an `Idx: ?Sized` bound on the **index** in the `Index`, which seems strange given that we accept index by value. My guess is that it was meant to be removed in https://github.com/rust-lang/rust/pull/23601, but was overlooked.

If I remove this bound, `./x.py src/libstd/ src/libcore/` passes, which means at least that this is not covered by test.

I think there's three things we can do here:

* run crater with the bound removed to check if there are any regressions, and merge this, to be consistent with other operator traits
* run crater, get regressions, write a test for this with a note that "hey, we tried to fix it, its unfixable"
* decide, in the light of by-value DSTs, that this is a feature rather than a bug, and add a test

cc @rust-lang/libs

EDIT: the forth alternative is that there exist a genuine reason why this is the case, but I failed to see it :D
2019-04-17 19:18:51 +00:00
Esteban Küber
d56c82074b Fix ICE on const evaluation of const method 2019-04-17 12:00:35 -07:00
Aleksey Kladov
cc3abc4d27 add a test for unsized index 2019-04-17 15:31:52 +03:00
Eduard-Mihai Burtescu
5f7055988b Resolve inconsistency in error messages between "parameter" and "variable". 2019-04-17 13:25:07 +03:00
Mazdak Farrokhzad
0349b78e80
Rollup merge of #59646 - JohnTitor:improve-wording, r=oli-obk
const fn: Improve wording

fixes #59611

This might need discussion. Feel free to close this PR if we don't need to fix.
2019-04-17 10:31:33 +02:00
Mazdak Farrokhzad
c89bc54d4f
Rollup merge of #59128 - oli-obk:colorful_json, r=mark-i-m,eddyb
Emit ansi color codes in the `rendered` field of json diagnostics

cc @ljedrz

Implemented for https://github.com/rust-lang/rust/pull/56595#issuecomment-447645115 (x.py clippy)
2019-04-17 10:31:30 +02:00
Oliver Scherer
5c6a43a58b Don't test json with color codes on windows 2019-04-16 17:35:49 +02:00
bors
3b27b4f592 Auto merge of #59769 - RalfJung:compiletest-normalization, r=alexcrichton
compiletest normalization: preserve non-JSON lines such as ICEs

Currently, every non-JSON line from stderr gets normalized away when compiletest normalizes the output. In particular, ICEs get normalized to the empty output. That does not seem desirable, so this changes normalization to preserve non-JSON lines instead.

Also see https://github.com/laumann/compiletest-rs/issues/169: because of that bug, Miri currently *looks* green in the toolstate, but some tests ICE. That same bug is likely no longer present in latest compiletest because the error code gets checked separately, but it still seems like a good idea to also make sure that ICEs are considered stderr output:
This change found an accidental user-visible `error!` in CTFE validation (fixed), and a non-deterministic panic when there are two `main` symbols (not fixed, no idea where this comes from). Both got missed before because non-JSON output got ignored.
2019-04-16 10:18:17 +00:00
Ralf Jung
28c4397b28 this panic occurs not just on Windows, normalize it away everywhere 2019-04-16 10:55:46 +02:00
Mazdak Farrokhzad
a95ca298a6
Rollup merge of #59993 - euclio:unused-ref-field, r=estebank
include mode in unused binding suggestion span

Fixes #54180.
2019-04-16 05:14:25 +02:00
Mazdak Farrokhzad
426e747b7e
Rollup merge of #59992 - QuietMisdreavus:static-settings-path, r=GuillaumeGomez
rustdoc: use --static-root-path for settings.js

At the time i was writing https://github.com/rust-lang/docs.rs/pull/332, i noticed that the `settings.js` file that was being loaded was not being loaded from the `--static-root-path`. This PR fixes that so that users on docs.rs can effectively cache this file.
2019-04-16 05:14:24 +02:00
Mazdak Farrokhzad
bdf2473289
Rollup merge of #59903 - estebank:after-main, r=oli-obk
Continue evaluating after missing main
2019-04-16 05:14:21 +02:00
Yuki OKUSHI
407541552b Fix tests 2019-04-16 07:32:29 +09:00
Ralf Jung
581c1ab730 normalize away some Windows-only panic printing 2019-04-15 23:09:14 +02:00
Andy Russell
74560f3ab3
include mode in unused binding suggestion span 2019-04-15 13:09:37 -04:00
Mazdak Farrokhzad
fb2ce84f1d
Rollup merge of #59978 - ollie27:rustdoc_default, r=QuietMisdreavus
rustdoc: Remove default keyword from re-exported trait methods

Fixes #59977

r? @QuietMisdreavus

As this fixes a stable to beta regression, could it be backported?
2019-04-15 18:23:47 +02:00
Mazdak Farrokhzad
92702c1cff
Rollup merge of #59648 - alex:must-use-result, r=alexcrichton
Add must_use annotations to Result::is_ok and is_err

Discussed in #59610
2019-04-15 18:23:39 +02:00
QuietMisdreavus
1c0e1c10d5 use --static-root-path for settings.js 2019-04-15 11:20:08 -05:00
John Kåre Alsaker
cf3a256159 Update test 2019-04-15 15:20:07 +02:00
John Kåre Alsaker
b82ab24bbf Preallocate BUILTIN_ATTRIBUTES symbols and use a hash map instead of looping 2019-04-15 15:20:05 +02:00
Oliver Middleton
1db76c1bff rustdoc: Remove default keyword from re-exported trait methods 2019-04-14 23:55:14 +01:00
bors
aa99abeb26 Auto merge of #59335 - Aaron1011:fix/extern-priv-final, r=Aaron1011
Properly parse '--extern-private' with name and path

It turns out that https://github.com/rust-lang/rust/pull/57586 didn't properly parse `--extern-private name=path`.

This PR properly implements the `--extern-private` option. I've added a new `extern-private` option to `compiletest`, which causes an `--extern-private` option to be passed to the compiler with the proper path.

Part of https://github.com/rust-lang/rust/issues/44663
2019-04-14 19:47:40 +00:00
Mazdak Farrokhzad
9506f62a7a
Rollup merge of #59936 - petrochenkov:confict, r=davidtwco
Fix cross-crate visibility of fictive variant constructors

After merging https://github.com/rust-lang/rust/pull/59376 I realized that the code in the decoder wasn't entirely correct - we "decoded" fictive variant constructors with their variant's visibility, which could be public, rather than demoted to `pub(crate)`.

Fictive constructors are not directly usable in expression/patterns, but the effect still can be observed with imports.

r? @davidtwco
2019-04-14 17:49:26 +02:00
Mazdak Farrokhzad
99a91094ec
Rollup merge of #59896 - estebank:dedup-spans, r=davidtwco
Remove duplicated redundant spans

Fix #59895.
2019-04-14 17:49:21 +02:00
Mazdak Farrokhzad
27adc935fb
Rollup merge of #59877 - Zoxc:hiridify_def_id, r=eddyb
HirIdify hir::Def

cc @ljedrz
r? @oli-obk
2019-04-14 17:49:19 +02:00
Vadim Petrochenkov
dbc7042bfe Address review comments 2019-04-14 12:37:22 +03:00
Vadim Petrochenkov
3c3a140294 Fix cross-crate visibility of fictive variant constructors 2019-04-14 12:22:44 +03:00
Ralf Jung
e2d88171a3 huge-enum also exhibits this error 2019-04-14 10:24:49 +02:00
Ralf Jung
184939fe98 some more tests need normalization 2019-04-14 10:01:32 +02:00
Ralf Jung
3a39b431e8 normalize away spurious error 2019-04-14 10:01:32 +02:00
Ralf Jung
6cd7c8b04a normalize flags and rustc version in ICE repro 2019-04-14 10:01:32 +02:00
Ralf Jung
fa1cc72f41 fix output test for backtrace-debuginfo.rs 2019-04-14 10:01:32 +02:00
Ralf Jung
d2e183fd99 fix tests 2019-04-14 10:01:32 +02:00
John Kåre Alsaker
b5d43fcdc9 Update tests 2019-04-14 09:30:03 +02:00
bors
464473ab3b Auto merge of #59798 - rchaser53:issue-59488, r=estebank
Improvement for comparision against fn

I try to add error message.
related: https://github.com/rust-lang/rust/issues/59488
2019-04-14 05:58:13 +00:00
Aaron Hill
21491dc701
Properly parse '--extern-private' with name and path 2019-04-14 00:37:25 -04:00
bors
ee621f4232 Auto merge of #59950 - Centril:rollup-hpmr62i, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #59776 (Apply resource-suffix to search-index and source-files scripts as well)
 - #59784 (Suggest importing macros from the crate root)
 - #59812 (Exclude profiler-generated symbols from MSVC __imp_-symbol workaround.)
 - #59874 (Clean up handling of `-Z pgo-gen` commandline option.)
 - #59890 (Don't generate empty json variables)
 - #59911 (Revert "compile crates under test w/ -Zemit-stack-sizes")

Failed merges:

r? @ghost
2019-04-14 01:10:57 +00:00
Mazdak Farrokhzad
021a8eca47
Rollup merge of #59874 - michaelwoerister:pgo-updates-1, r=cramertj
Clean up handling of `-Z pgo-gen` commandline option.

This PR adapts the `-Z pgo-gen` flag to how Clang and GCC handle the corresponding `-fprofile-generate` flag. In particular, the flag now optionally takes a directory to place the profiling data in and allows to omit the argument (instead of having to pass an empty string).
2019-04-14 00:39:46 +02:00
Mazdak Farrokhzad
7ff376b3b2
Rollup merge of #59812 - michaelwoerister:profile-gen-msvc-imp, r=alexcrichton
Exclude profiler-generated symbols from MSVC __imp_-symbol workaround.

LLVM's profiling instrumentation adds a few symbols that are used by the profiler runtime. Since these show up as globals in the LLVM IR, the compiler generates `dllimport`-related `__imp_` stubs for them. This can lead to linker errors because the instrumentation symbols have weak linkage or are in a comdat section, but the `__imp_` stubs aren't.

Instead of trying to replicate the linkage/comdat setup for the stubs, this PR just excludes the profiler-related symbols from stub-generation since they aren't supposed to be referenced via `__declspec(dllimport)` anywhere anyway.

r? @alexcrichton

EDIT: I considered making this more general, i.e. inferring from the symbol name if it is a Rust symbol or not. But then I figured out that that would yield false negatives for `#[no_mangle]` et al, so I went with a blacklist approach.
2019-04-14 00:39:44 +02:00
Mazdak Farrokhzad
c4a3332d38
Rollup merge of #59784 - davidtwco:issue-59764, r=estebank
Suggest importing macros from the crate root

Fixes #59764.

r? @estebank
cc @varkor
2019-04-14 00:39:43 +02:00
Mazdak Farrokhzad
857416b590
Rollup merge of #59899 - nnethercote:sort-enum-variants-by-size, r=pnkfelix
In `-Zprint-type-size` output, sort enum variants by size.

It's useful to see the biggest variants first.

r? @pnkfelix
2019-04-14 00:23:46 +02:00
Mazdak Farrokhzad
abfca1e155
Rollup merge of #59858 - mark-i-m:dup-matcher-bindings-3, r=Centril
Make duplicate matcher bindings a hard error

r? @Centril

Closes #57742
2019-04-14 00:23:44 +02:00
Mazdak Farrokhzad
449697b7ff
Rollup merge of #59835 - lzutao:nonzero-signed, r=Mark-Simulacrum
Re-export NonZero signed variant in std

Closes  #59834 .
2019-04-14 00:23:39 +02:00
Mazdak Farrokhzad
d5030e2489
Rollup merge of #59708 - matthewjasper:double-closure-unused-mut, r=pnkfelix
Mark variables captured by reference as mutable correctly

Closes #59620

r? @pnkfelix
2019-04-14 00:23:27 +02:00