Commit graph

2845 commits

Author SHA1 Message Date
kennytm
d70e055b66
Rollup merge of #53948 - pnkfelix:issue-52934-minimize-clippy-test, r=wesleywiser
Minimized clippy test from when NLL disabled two-phase borrows

(Of course anyone even skimming the test will realize that this is an *expansion* of a previously posted [minimization](https://github.com/rust-lang/rust/issues/52934#issuecomment-418144787).)

Fix #52934.
2018-09-07 18:13:47 +08:00
kennytm
3792dbd013
Rollup merge of #53860 - pnkfelix:issue-53764-migrate-run-pass-to-ui, r=nikomatsakis
Migrate (some) of run-pass/ to ui

This is a step towards addressing #53764. Much still remains.

I went through a large portion of the `*.rs` files that were directly stored into `src/test/run-pass/` and moved them into various subdirectories of a newly created `src/test/ui/run-pass/`.

(yes, it would have perhaps been nice to meld it more directly with directories already in `src/test/ui/`; but the sad truth is that opens up the reality of filename collisions, and one of my short term goals for resolving #53764 is to keep the *filenames* invariant, even as their parents directories and contents are mildly revised...)
2018-09-07 15:26:42 +08:00
kennytm
1805f3c2fb
Rollup merge of #53550 - brson:recurring, r=estebank
librustc_lint: In recursion warning, change 'recurring' to 'recursing'

The existing wording seems incorrect.

Aside: This warning, 'function cannot return without recursing' is not perfectly clear - it implies that the function _can_ return, it's just got to recurse. But really the fn cannot return period. Clearer wording: 'function recurses infinitely; it cannot return'; or 'function is infinitely self-recursive; it cannot return, and this is probably an error'. I like that.
2018-09-07 15:26:40 +08:00
bors
ad7b22ef29 Auto merge of #54005 - eddyb:uniform-paths-self-resolve, r=petrochenkov
rustc_resolve: allow `use crate_name;` under `uniform_paths`.

Specifically, `use crate_name;` and `use crate_name::{self, ...};` are now allowed, whereas previously there would produce a (false positive) ambiguity error, as the ambiguity detection code was seeing the `crate_name` import as a locally-available definition to conflict with the crate.

r? @petrochenkov cc @aturon @joshtriplett @Centril
2018-09-06 23:29:56 +00:00
bors
a8c11d216b Auto merge of #53575 - matthewjasper:unsized-is-an-error, r=estebank
Don't reduce E0161 to a warning in NLL migrate mode

This error has been on stable for a while, and allowing such code cause the compile to later ICE (since we can't codegen it). Errors `box UNSIZED EXPR` with unsized locals because it's not compatible with the current evaluation order (create the box before evaluating the expressions).

cc #53469 (fixes the ICE in this case)
cc @qnighy
2018-09-06 21:02:35 +00:00
Eduard-Mihai Burtescu
31fce914b2 rustc_resolve: allow use crate_name; under uniform_paths. 2018-09-06 22:07:56 +03:00
bors
c318691407 Auto merge of #52626 - brunocodutra:issue-52475, r=oli-obk
Fix issue #52475: Make loop detector only consider reachable memory

As [suggested](https://github.com/rust-lang/rust/pull/51702#discussion_r197585664) by @oli-obk `alloc_id`s should be ignored by traversing all `Allocation`s in interpreter memory at a given moment in time, beginning by `ByRef` locals in the stack.

- [x] Generalize the implementation of `Hash` for `EvalSnapshot` to traverse `Allocation`s
- [x] Generalize the implementation of `PartialEq` for `EvalSnapshot` to traverse `Allocation`s
- [x] Commit regression tests

Fixes #52626
Fixes https://github.com/rust-lang/rust/issues/52849
2018-09-06 17:35:40 +00:00
Felix S. Klock II
5fe0851548 Allow more lints, mainly overflowing_literals for cases that only arose on 32-bit. 2018-09-06 13:00:26 +02:00
Felix S. Klock II
dc124e4d0b Add #![allow(stable_features)] to ease review.
That is, opting to ignore stable `#![feature(..)]`, under my theory
that a reviewer would prefer as much stuff to be bucketed under "ah
another `#![allow(..)]` here." as possible.
2018-09-06 13:00:26 +02:00
Felix S. Klock II
f97eea1c10 Add .stderr file for test that appears to trigger a lint that cannot be silenced. 2018-09-06 13:00:26 +02:00
Felix S. Klock II
2bce9b031f Add .stdout file for test of log_syntax! and trace_macros!. 2018-09-06 13:00:26 +02:00
Felix S. Klock II
18a77ae4ab Allow uses of #[unsafe_destructor_blind_to_params]. Should be ported to #[may_dangle].
See rust-lang/rust#34761.
2018-09-06 13:00:26 +02:00
Felix S. Klock II
4a9e55e05a Allow illegal_floating_point_literal_pattern. These will need to be updated at some point.
Discussion can be found on rust-lang/rust#41620.
2018-09-06 13:00:26 +02:00
Felix S. Klock II
dc7685e958 Update line numbers to reflect added lines at beginning of tests. 2018-09-06 13:00:26 +02:00
Felix S. Klock II
90412f149c Add .stderr files for shadowed labels where the point of the test is to test such cases. 2018-09-06 13:00:26 +02:00
Felix S. Klock II
f78b9add44 Alpha-rename label to avoid the shadowing lint (which cannot be silenced). 2018-09-06 13:00:26 +02:00
Felix S. Klock II
175d7f4e48 Add .stderr file for test where there are conflicting repr hints.
See rust-lang/rust#53857.
2018-09-06 13:00:26 +02:00
Felix S. Klock II
d18b3bf104 Add #![allow(improper_ctypes)] to extern-pass-empty.rs; note this test seems bogus.
that is, I suspect it should be retired because it is testing behavior
(namely a `#[repr(C)] struct Empty;`) that, if I understand correctly,
is undefined.

See also rust-lang/rust#53859.
2018-09-06 13:00:26 +02:00
Felix S. Klock II
8bcf37d949 Add #[allow(improper_ctypes)] to slew of cases that need e.g. repr(C).
See also rust-lang/rust#53858.
2018-09-06 13:00:26 +02:00
Felix S. Klock II
e462c1adc5 Add #![allow(..)] for a slew of lints of migrated run-pass tests, to silence stderr output. 2018-09-06 13:00:26 +02:00
Felix S. Klock II
90241dfba3 Remove references to a collection of unknown lints. 2018-09-06 13:00:26 +02:00
Felix S. Klock II
06f36a04a4 Move a bunch of auxiliary support files into ui/run-pass/**/auxiliary. 2018-09-06 13:00:26 +02:00
Felix S. Klock II
0909e0bf70 Add // run-pass annotations to all the tests under ui/run-pass/.
(I may have accidentally added it to some auxilliary crates as well;
my emacs-macro-based methodology was pretty crude.)
2018-09-06 13:00:26 +02:00
Felix S. Klock II
7834c22848 Migrated slew of run-pass tests to various subdirectories of ui/run-pass/. 2018-09-06 13:00:26 +02:00
bors
35a5541fd9 Auto merge of #53707 - eddyb:phantom-waffles, r=oli-obk
rustc_typeck: turn `where Type:,` into a WF(Type) predicate, instead of ignoring it.

Fixes #53696, assuming crater doesn't catch anyone using this syntax already.

Allowing an empty list of bounds in the grammar was done for the benefit of macro authors, most of which would *probably* be using it for bounds on type parameters, which are always WF.

r? @nikomatsakis cc @petrochenkov
2018-09-06 09:32:23 +00:00
John Renner
0593dc7e3c Move #[test_case] to a syntax extension 2018-09-04 22:33:23 -07:00
John Renner
e5ed105716 Document #[test_case] and #![test_runner] 2018-09-04 22:33:11 -07:00
John Renner
08ea5b7c78 Fix #[test] shadowing in macro_prelude 2018-09-04 22:33:10 -07:00
John Renner
9b27de41d4 Introduce Custom Test Frameworks 2018-09-04 22:33:00 -07:00
Felix S. Klock II
6bde4298d8 Minimized (and then greatly expanded) test of failure cases from rust-lang/rust#52934. 2018-09-04 16:22:22 +02:00
Bruno Dutra
806ecabab1 Add regression test for #52475 2018-09-03 20:02:35 +02:00
bors
cd5c26f0eb Auto merge of #53697 - Cyres:const-fn-int-ops, r=oli-obk
Add more const int ops

r? @oli-obk

Tracking Issue: #53718

list of `const fn`s in this PR:

- `feature = const_int_rotate`
  - `rotate_left`
  - `rotate_right`
- `feature = const_int_wrapping`
  - `wrapping_add`
  - `wrapping_sub`
  - `wrapping_mul`
  - `wrapping_shl`
  - `wrapping_shr`
- `feature = const_int_overflowing`
  - `overflowing_add`
  - `overflowing_sub`
  - `overflowing_mul`
  - `overflowing_shl`
  - `overflowing_shr`
- `feature = const_int_sign`
  - `is_positive`
  - `is_negative`
- `feature = const_int_conversion`
  - `reverse_bits`
  - `to_le_bytes`
  - `to_ne_bytes`
  - `from_be_bytes`
  - `from_le_bytes`
  - `from_ne_bytes`
  - `reverse_bits`
2018-09-03 16:31:34 +00:00
bors
591a17d3d9 Auto merge of #53831 - TheDarkula:pointer-check, r=oli-obk
Added pointer checking to sanity checks

r? @oli-obk
2018-09-03 11:31:15 +00:00
bors
f3bb23191c Auto merge of #53865 - zilbuz:issue-52768, r=pnkfelix
Remove 'not reporting regions error due to nll' warning

Fix #52768
2018-09-03 08:56:42 +00:00
bors
a1a8c444f9 Auto merge of #53842 - estebank:various, r=petrochenkov
Various small diagnostic and code clean up

 - Point at def span on incorrect `panic` or `oom` function
 - Use structured suggestion instead of note for `+=` that can be performed on a dereference of the left binding
 - Small code formatting cleanup
2018-09-01 23:34:14 +00:00
bors
839d99c861 Auto merge of #53884 - kennytm:rollup, r=kennytm
Rollup of 9 pull requests

Successful merges:

 - #53076 (set cfg(rustdoc) when rustdoc is running on a crate)
 - #53622 (cleanup: Add main functions to some UI tests)
 - #53769 (Also link Clippy repo in the CONTRIBUTING.md file)
 - #53774 (Add rust-gdbgui script.)
 - #53781 (bench: libcore: fix build failure of any.rs benchmark (use "dyn Any"))
 - #53782 (Make Arc cloning mechanics clearer in module docs)
 - #53790 (Add regression test for issue #52060)
 - #53801 (Prevent duplicated impl on foreign types)
 - #53850 (Nuke the `const_to_allocation` query)
2018-09-01 15:48:21 +00:00
kennytm
d0f8cf32b3
Rollup merge of #53076 - QuietMisdreavus:cfg-rustdoc, r=GuillaumeGomez
set cfg(rustdoc) when rustdoc is running on a crate

When using `#[doc(cfg)]` to document platform-specific items, it's a little cumbersome to get all the platforms' items to appear all at once. For example, the standard library adds `--cfg dox` to rustdoc's command line whenever it builds docs, and the documentation for `#![feature(doc_cfg)]` suggests using a Cargo feature to approximate the same thing. This is a little awkward, because you always need to remember to set `--features dox` whenever you build documentation.

This PR proposes making rustdoc set `#[cfg(rustdoc)]` whenever it runs on a crate, to provide an officially-sanctioned version of this that is set automatically. This way, there's a standardized way to declare that a certain version of an item is specifically when building docs.

To try to prevent the spread of this feature from happening too quickly, this PR also restricts the use of this flag to whenever `#![feature(doc_cfg)]` is active. I'm sure there are other uses for this, but right now i'm tying it to this feature. (If it makes more sense to give this its own feature, i can easily do that.)
2018-09-01 23:18:41 +08:00
kennytm
88ebbe98bb
Rollup merge of #53790 - zilbuz:issue-52060, r=nikomatsakis
Add regression test for issue #52060

Fix #52060
2018-09-01 21:14:14 +08:00
kennytm
9d80c65be2
Rollup merge of #53622 - petrochenkov:nomain, r=oli-obk
cleanup: Add main functions to some UI tests
2018-09-01 21:14:07 +08:00
Tim
cdea63058a rebase 2018-09-01 15:05:55 +02:00
bors
fea32f1b77 Auto merge of #53604 - oli-obk:min_const_fn, r=Centril,varkor
Implement the `min_const_fn` feature gate

cc @RalfJung @eddyb

r? @Centril

implements the feature gate for #53555

I added a hack so the `const_fn` feature gate also enables the `min_const_fn` feature gate. This ensures that nightly users of `const_fn` don't have to touch their code at all.

The `min_const_fn` checks are run first, and if they succeeded, the `const_fn` checks are run additionally to ensure we didn't miss anything.
2018-09-01 11:26:24 +00:00
Basile Desloges
b01550a718 Update tests 2018-09-01 12:58:18 +02:00
QuietMisdreavus
1a3bb2795b feature(doc_cfg): set cfg(rustdoc) when rustdoc is running 2018-08-31 13:29:10 -05:00
Vadim Petrochenkov
c56adf6413 cleanup: Add main functions to some UI tests 2018-08-31 18:56:15 +03:00
thedarkula
de0cd23e48 Added pointer checking to sanity checks 2018-08-31 16:25:01 +01:00
bors
163adf2860 Auto merge of #53699 - oli-obk:promotion_stability_hole, r=nikomatsakis
Fix promotion stability hole in old borrowck

r? @nikomatsakis

I screwed up the promotion stability checks. Big time. They were basically nonexistant. We had tests for it. I also screwed up said tests. This is in stable already :(

Basically stability checks of promotion only worked if you tried to use a const fn defined in the same crate.

cc @eddyb
2018-08-31 14:06:14 +00:00
bors
c2afca3667 Auto merge of #53403 - spastorino:move-out-lazily, r=nikomatsakis
Do not used Move data flow analysis, make it lazy instead

Close #53394
2018-08-31 11:25:53 +00:00
Oliver Schneider
f3e1b968e3 Add test that min const fns can't call unstable min const fns even with the feature gate active 2018-08-31 08:40:00 +02:00
Oliver Schneider
d125e904b5 Restrict most uses of const_fn to min_const_fn 2018-08-31 08:40:00 +02:00
Oliver Schneider
7b3d930ca6 Libstd only has min_const_fn const fns 2018-08-31 08:39:59 +02:00