Commit graph

30568 commits

Author SHA1 Message Date
Oliver Middleton
17f4cbc303 rustdoc: Fix handling of compile errors when running rustdoc --test
* Call `abort_if_errors` so all errors actually stop rustdoc.
* Don't panic with "compiler aborted in rustdoc!", instead just exit to avoid the ugly panic message.
* Use rlib as the crate type when searching for doctests matching what is used for doc generation so `#[no_std]` crates don't create "no global memory allocator" errors.
2020-01-18 23:51:06 +00:00
Mazdak Farrokhzad
36e58ea6bf
Rollup merge of #68224 - GuillaumeGomez:prevent-urls-in-headings, r=ollie27
Prevent urls in headings

Fixes #68215.

cc @pietroalbini @ollie27

r? @kinnison
2020-01-18 19:36:03 +01:00
Mazdak Farrokhzad
57b6843100 slice_patterns: address review comments 2020-01-18 19:33:47 +01:00
Mazdak Farrokhzad
e3c2f8fc57 slice_patterns: organize some tests 2020-01-18 19:33:47 +01:00
Mazdak Farrokhzad
a1eadca88f slice_patterns: remove gates in tests 2020-01-18 19:33:47 +01:00
Mazdak Farrokhzad
3e3cac010b slice_patterns: remove feature gate test 2020-01-18 19:33:47 +01:00
Konrad Borowski
d7a18f8986 Add a test for iter::empty::<*mut i32> being Sync and Send 2020-01-18 18:50:10 +01:00
bors
35b5157db5 Auto merge of #68170 - wesleywiser:stop_const_prop_ref_taking, r=oli-obk
Turn off const propagation of ref taking

Fixes #67529
Fixes #67640
Fixes #67641
Fixes #67862

r? @oli-obk
2020-01-18 11:36:47 +00:00
Ralf Jung
6106758fce adjust ui tests 2020-01-18 12:24:54 +01:00
Ralf Jung
ec063a0ae8 adjust mir-opt tests 2020-01-18 11:15:56 +01:00
Tyler Mandry
9d9c8c69e3
Rollup merge of #68312 - varkor:issue-67753-regression, r=Centril
Add regression test for integer literals in generic arguments in where clauses

Closes https://github.com/rust-lang/rust/issues/67753.
2020-01-17 17:28:20 -08:00
Tyler Mandry
87293cd3d8
Rollup merge of #68291 - tmiasko:sanitizer-tests, r=nikomatsakis
Update sanitizer tests

* Move tests from src/test/run-make-fulldeps to src/test/ui.
* Fix memory sanitizer test to detect the intended issue rather than
  an unrelated one caused by the use of an uninstrumented std.
2020-01-17 17:28:18 -08: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
Tyler Mandry
bafe089d1f
Rollup merge of #68093 - GuillaumeGomez:fix-deref-impl-typedef, r=oli-obk
Fix deref impl typedef

Fixes #35295.

r? @kinnison
2020-01-17 17:28:12 -08:00
Tyler Mandry
c854aecd62
Rollup merge of #66660 - jumbatm:dont_warn_about_snake_case_in_patterns, r=centril
Don't warn about snake case for field puns.

Closes #66362.
2020-01-17 17:28:10 -08:00
Oliver Middleton
79061d0e02 rustdoc: Catch fatal errors when syntax highlighting
For some errors the lexer will unwind so we need to handle that in addition to handling `token::Unknown`.
2020-01-17 23:44:44 +00:00
bors
d8dcb6345b Auto merge of #67476 - mark-i-m:simplify-borrow_check-5, r=matthewjasper
Region naming refactoring [6/N]

Followup to #67474

EDIT: this PR is probably best read commit-by-commit...

The major changes in this PR include:
- moving many functions around to modules that better suit them. In particular, a lot of methods were moved from `borrow_check::diagnostics::region_errors` to `borrow_check::region_infer`, and `report_region_errors` was moved from `borrow_check` to `borrow_check::diagnostics::region_errors`.
- `borrow_check::diagnostics::{region_errors, region_name}` are now most comprised of methods on `MirBorrowckCtxt` instead of `RegionInferenceContext`, allowing us to get rid of the annoying `pub(in crate::borrow_check)` on most of the fields of the latter, along with a number of method arguments on many methods.
- I renamed `MirBorrowckCtxt.nonlexical_regioncx` to just `regioncx` because their is no lexical lifetimes any more, and the old name was annoyingly verbose, causing many lines to wrap unnecessarily.
- I got rid of `ErrorRegionNamingContext`. Region naming is implemented as inherent methods on `MirBorrowckCtxt`, so we just move the naming stuff into that struct.

The PR is rather large, but the commits are fairly self-contained (though they don't all compile). There was one minor output change to one test with `compare-mode=nll`, which I think is acceptable.

Between this PR and the last one, a net of 200 lines are removed, most of which was function parameters and context structs 🎉

Some samples:

```diff
-                        self.nonlexical_regioncx.free_region_constraint_info(
-                            &self.body,
-                            &self.local_names,
-                            &self.upvars,
-                            self.mir_def_id,
-                            self.infcx,
-                            borrow_region_vid,
-                            region,
-                        );
+                        self.free_region_constraint_info(borrow_region_vid, region);
```

```diff
-            .or_else(|| {
-                self.give_name_if_anonymous_region_appears_in_yield_ty(
-                    infcx,
-                    body,
-                    *mir_def_id,
-                    fr,
-                    renctx,
-                )
-            });
+            .or_else(|| self.give_name_if_anonymous_region_appears_in_arguments(fr))
```

r? @matthewjasper

cc @eddyb
2020-01-17 21:43:23 +00:00
Vadim Petrochenkov
8fa8b81a77 Fix some tests failing in --pass check mode 2020-01-18 00:38:17 +03:00
Guillaume Gomez
298e8ad5dc Extend url in heading test a bit 2020-01-17 19:49:03 +01:00
varkor
a91f77ca26 Add regression test for integer literals in generic arguments in where clauses 2020-01-17 16:09:22 +00:00
Aaron Hill
3fef3d8b76
Add @weiznich's regression test 2020-01-17 08:22:40 -05:00
bors
71c6346aa1 Auto merge of #68285 - oli-obk:specialization_regression, r=davidtwco
Array repeat expression lengths must be monomorphic at MIR building time

fixes #67743
2020-01-17 12:25:07 +00:00
bors
2480c9eac1 Auto merge of #68305 - Dylan-DPC:rollup-aoohsz8, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #67956 (Detail transitive containment in E0588 diagnostic)
 - #68153 (resolve: Point at the private item definitions in privacy errors)
 - #68195 (Account for common `impl Trait`/`dyn Trait` return type errors)
 - #68288 (Fix some of the rustfmt fallout in Miri)
 - #68292 (don't clone types that are copy)
 - #68301 (Don't propagate __RUST_TEST_INVOKE to subprocess)

Failed merges:

r? @ghost
2020-01-17 09:17:18 +00:00
Dylan DPC
98347cdbff
Rollup merge of #68301 - tmandry:dont-propagate-test-invoke, r=alexcrichton
Don't propagate __RUST_TEST_INVOKE to subprocess

When -Z panic_abort_tests is enabled, we use an environment variable to
tell the subprocess which test to invoke. If that subprocess then
invokes another Rust test binary, chaos ensues.

r? @alexcrichton
2020-01-17 11:16:42 +05:30
Dylan DPC
de01a29fbe
Rollup merge of #68195 - estebank:impl-trait-2000, r=Centril
Account for common `impl Trait`/`dyn Trait` return type errors

- When all return paths have the same type, suggest `impl Trait`.
- When all return paths implement the expected `trait`, suggest `Box<dyn Trait>` and mention using an `enum`.
- When multiple different types are returned and `impl Trait` is expected, extend the explanation.
- When return type is `impl Trait` and the return paths do not implement `Trait`, point at the returned values.
- Split `src/librustc/traits/error_reporting.rs` into multiple files to keep size under control.

Fix #68110, cc #66523.
2020-01-17 11:16:37 +05:30
Dylan DPC
ecf42a3d62
Rollup merge of #68153 - petrochenkov:privdiag, r=estebank
resolve: Point at the private item definitions in privacy errors

A basic version of https://github.com/rust-lang/rust/pull/67951.
r? @estebank
2020-01-17 11:16:36 +05:30
Dylan DPC
9f4b328da2
Rollup merge of #67956 - varkor:E0588-provide-context, r=estebank
Detail transitive containment in E0588 diagnostic

Fixes https://github.com/rust-lang/rust/issues/67383.
2020-01-17 11:16:32 +05:30
bors
91ff7c689d Auto merge of #67731 - matthewjasper:drop-in-place-reclimit, r=eddyb
Handle recursive instantiation of drop shims

The compiler used to hang because the recursion limit was never hit.
2020-01-17 04:13:38 +00: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
Tyler Mandry
6246f7e1f9 Don't propagate __RUST_TEST_INVOKE to subprocess
When -Z panic_abort_tests is enabled, we use an environment variable to
tell the subprocess which test to invoke. If that subprocess then
invokes another Rust test binary, chaos ensues.
2020-01-16 16:54:00 -08:00
jumbatm
25a8f9473f Don't warn about snake case for field puns that don't introduce a new name. 2020-01-17 05:57:39 +10:00
Vadim Petrochenkov
0b60f1f2ae Ignore some tests on platforms without libstd spans 2020-01-16 22:19:55 +03:00
Vadim Petrochenkov
c84efe9b6c resolve: Say "import" when reporting private imports 2020-01-16 21:59:11 +03:00
Vadim Petrochenkov
28c3f6eb40 resolve: Point at the private item definitions in privacy errors 2020-01-16 21:59:11 +03:00
Esteban Küber
00e2626895 Account for object safety when suggesting Box<dyn Trait> 2020-01-16 09:49:14 -08:00
Esteban Küber
d7a6212401 review comments 2020-01-16 09:49:14 -08:00
Esteban Küber
509cb33dbc review comments 2020-01-16 09:49:13 -08:00
Esteban Küber
5b36c187dc review comments 2020-01-16 09:49:13 -08:00
Esteban Küber
4c13d2555c Add E0746 explanation to the index 2020-01-16 09:37:24 -08:00
Esteban Küber
e1dd8a9095 When trait bounds are missing for return values, point at them 2020-01-16 09:37:24 -08:00
Esteban Küber
b4bbe784a9 Make impl Trait suggestion in E0746 MachineApplicable 2020-01-16 09:37:24 -08:00
Esteban Küber
ea7e885204 Elide E0308 errors in favor of E0746
When a type error involves a `dyn Trait` as the return type, do not emit
the type error, as the "return type is not `Sized`" error will provide
enough information to the user.
2020-01-16 09:37:24 -08:00
Esteban Küber
75eabb17ae Account for diverging types in return impl Trait 2020-01-16 09:37:24 -08:00
Esteban Küber
6fd564112f Specific error for unsized dyn Trait return type
Suggest `impl Trait` when possible, and `Box<dyn Trait>` otherwise.
2020-01-16 09:37:24 -08:00
Dylan DPC
6e797ff8d9
Rollup merge of #68263 - ollie27:rustdoc_invalid_syntax_highlight_escape, r=GuillaumeGomez
rustdoc: HTML escape codeblocks which fail syntax highlighting

r? @GuillaumeGomez
2020-01-16 20:53:30 +05:30
Dylan DPC
c0ff382cb5
Rollup merge of #68255 - tmiasko:unused-aux, r=Dylan-DPC
Remove unused auxiliary file that was replaced with rust_test_helpers
2020-01-16 20:53:29 +05:30
Dylan DPC
678f662e54
Rollup merge of #68244 - tmiasko:leak, r=Centril
Enable leak sanitizer test case

* Use `black_box` to avoid memory leak removal during optimization.
* Leak multiple objects to make test case more robust.
2020-01-16 20:53:27 +05:30
Oliver Scherer
eed0d33a65 Array repeat expression lengths must be monomorphic at MIR building time 2020-01-16 16:18:08 +01:00
Guillaume Gomez
5022dd3b85 Extend url in titles test 2020-01-16 14:26:43 +01:00