Commit Graph

92623 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
3a907cee97
Rollup merge of #60284 - varkor:const-param-of-type-param, r=cramertj
Do not allow const generics to depend on type parameters

Fixes https://github.com/rust-lang/rust/issues/60264. In b534cf992d (diff-aeb0880081a991f34aef2ab889e1fb7a), it was suggested that there might be a better place for this error, but as this bug already affects stable, it's probably worth merging this now, and refactoring afterwards (I can open an issue for this).
2019-04-26 03:50:24 +02:00
Mazdak Farrokhzad
4387f99fc5
Rollup merge of #60267 - gnzlbg:f16c_target_feature, r=alexcrichton
Add feature-gate for f16c target feature

r? @alexcrichton
2019-04-26 03:50:22 +02:00
Mazdak Farrokhzad
1738273ac3
Rollup merge of #60259 - sd234678:60181-derive-default-lints, r=Centril
Derive Default instead of new in applicable lint

Closes #60181

As far as I can see, at least within the `src/librustc_lint` directory this is the only place this is applicable.
2019-04-26 03:50:21 +02:00
Mazdak Farrokhzad
4d9d84999e
Rollup merge of #60247 - spastorino:place2_3, r=oli-obk
Implement Debug for Place using Place::iterate

r? @oli-obk
2019-04-26 03:50:20 +02:00
Mazdak Farrokhzad
7560c158f6
Rollup merge of #60225 - Centril:hir-exprkind-use-in-for-loops, r=oli-obk
Introduce hir::ExprKind::Use and employ in for loop desugaring.

In the `for $pat in $expr $block` desugaring we end with a `{ let _result = $match_expr; _result }` construct which makes `for` loops into a terminating scope and affects drop order. The construct was introduced in year 2015 by @pnkfelix in https://github.com/rust-lang/rust/pull/21984.

This PR replaces the construct with `hir::ExprKind::Use(P<hir::Expr>)` which is equivalent semantically but should hopefully be less costly in terms of compile time performance (to be determined).

This is extracted out of 91b0abdfb2 from https://github.com/rust-lang/rust/pull/59288 for easier review and so that the perf implications wrt. `for`-loops can be measured.

r? @oli-obk
2019-04-26 03:50:18 +02:00
Mazdak Farrokhzad
77c5f557cc
Rollup merge of #60183 - tmandry:chalk-builtin-copy-clone, r=scalexm
Chalkify: Add builtin Copy/Clone

r? @nikomatsakis
2019-04-26 03:50:17 +02:00
Mazdak Farrokhzad
8bdb91d9ff
Rollup merge of #60165 - Nemo157:pin-into-inner, r=cramertj
Add Pin::{into_inner,into_inner_unchecked}

These functions are useful for unsafe code that needs to temporarily pull smart pointers out of the `Pin`, e.g. [the change that inspired them](b4361780fa (diff-1a4e0ba4d1b539412ca576411ec6c7c2R258)) is taking a `Pin<Box<dyn Future>>`, turning it into a `*mut dyn Future` via `Box::into_raw(unsafe { Pin::into_inner_unchecked(pin) })` then later dropping this via `drop(Pin::from(Box::from_raw(ptr)))`. This can be accomplished today via `{ let ptr = unsafe { Pin::get_unchecked_mut(pin.as_mut()) } as *mut dyn Future; mem::forget(pin); ptr }`, but this is far more complicated and loses out on the symmetry of using `Box::into_raw` and `Box::from_raw`.

I'll extend the documentation on what guarantees `into_inner_unchecked` needs to uphold once I get some feedback on whether this API is wanted or not.

r? @withoutboats
2019-04-26 03:50:16 +02:00
Mazdak Farrokhzad
878a7d6ea5
Rollup merge of #60134 - GuillaumeGomez:fix-index-page, r=Manishearth
Fix index-page generation

Fixes #60096.

The minifier was minifying crates name in `searchIndex` key position, which was a bit problematic for multiple reasons.

r? @rust-lang/rustdoc
2019-04-26 03:50:14 +02:00
Mazdak Farrokhzad
09a7051d28
Rollup merge of #59940 - GuillaumeGomez:rustdoc-test, r=ollie27
Set cfg(test) when rustdoc is running with --test option

Following a [discussion on twitter](https://twitter.com/burntsushi5/status/1117091914199785473), I proposed this change. What do you think about it?

r? @QuietMisdreavus

cc @BurntSushi
2019-04-26 03:50:13 +02:00
Mazdak Farrokhzad
294e89d5fa
Rollup merge of #59734 - GuillaumeGomez:improve-rustdoc-failure, r=ollie27
Prevent failure in case no space left on device in rustdoc

Fixes #59703.

r? @QuietMisdreavus
2019-04-26 03:50:11 +02:00
varkor
6d7c7940b5 Add comment explaining restriction 2019-04-25 23:29:58 +01:00
varkor
8f78736fee Fix error code description 2019-04-25 23:19:36 +01:00
Tyler Mandry
0a26789af9 Make -Z allow-features work for stdlib features 2019-04-25 14:03:45 -07:00
varkor
8c3068784c Fix false position on style.rs itself 2019-04-25 21:54:09 +01:00
varkor
b759c2d714 Advise the user on how to suppress the file length tidy error 2019-04-25 21:39:09 +01:00
varkor
aa388f1d11 ignore-tidy-filelength on all files with greater than 3000 lines 2019-04-25 21:39:09 +01:00
varkor
949658345c Add a tidy test for line count 2019-04-25 21:38:47 +01:00
bors
3991285f55 Auto merge of #59111 - gilescope:generator-better-errors, r=nikomatsakis
Improved error message when type must be bound due to generator.

Fixes #58930.

Keen to get some feedback - is this as minimal as we can get it or is there an existing visitor I could repurpose?
2019-04-25 20:27:16 +00:00
Esteban Küber
6b190d6de5 Do not ICE when checking types against foreign fn 2019-04-25 13:16:21 -07:00
varkor
908a6399bc Add a test for const parameters with type parameters as types 2019-04-25 21:12:17 +01:00
varkor
102f7a8b26 Make sure const params with type params don't cause errors without a feature gate 2019-04-25 21:12:03 +01:00
varkor
976b3d1d9e Prevent const parameters having type parameters as types 2019-04-25 21:11:46 +01:00
bors
c32171bd5e Auto merge of #60192 - t-rapp:tr-saturating-funcs, r=alexcrichton
Implement saturating_abs() and saturating_neg() functions for signed integer types

Similar to wrapping_abs() / wrapping_neg() functions but saturating at the numeric bounds instead of wrapping around. Complements the existing set of functions with saturation mechanics.

cc #59983
2019-04-25 17:26:20 +00:00
John Kåre Alsaker
53269c7f6e Update trait queries 2019-04-25 18:23:36 +02:00
John Kåre Alsaker
b164a2da63 Update trait_impls_of 2019-04-25 18:23:35 +02:00
John Kåre Alsaker
1fe0d4e383 Update mir_const_qualif 2019-04-25 18:23:34 +02:00
John Kåre Alsaker
d56d2fbaea Update rvalue_promotable_map 2019-04-25 18:23:33 +02:00
John Kåre Alsaker
b8b4ad597a Update region_scope_tree 2019-04-25 18:23:32 +02:00
Alex Crichton
955f283e11 rustc: Flag metadata compatible with multiple CGUs
It looks like the `OutputType::Metadata` kind in the compiler was
misclassified in #38571 long ago by accident as incompatible with
codegen units and a single output file. This means that if you emit both
a linkable artifact and metadata it silently turns off multiple codegen
units unintentionally!

This commit corrects the situation to ensure that if `--emit metadata`
is used it doesn't implicitly disable multiple codegen units. This will
ensure we don't accidentally regress compiler performance when striving
to implement pipelined compilation!
2019-04-25 09:06:38 -07:00
Giles Cope
66e41bc675 Improved error message when type must be bound due to generator.
Error now mentions type var name and span is highlighted.
2019-04-25 16:42:59 +01:00
Tobias Rapp
c7d47c8cf4 Add tests for saturating_abs() and saturating_neg functions 2019-04-25 17:04:17 +02:00
Tobias Rapp
8234ac32bd Add saturating_abs() and saturating_neg() functions to signed integer types
Similar to wrapping_abs() / wrapping_neg() functions but saturating at
the numeric bounds instead of wrapping around. Complements the existing
set of functions with saturation mechanics.
2019-04-25 17:04:11 +02:00
bors
bd31c392f2 Auto merge of #60257 - matthiaskrgr:submodule_upd, r=oli-obk
submodules: update clippy from 9897442f to 8c0e038f

Should fix clippy/rls toolstate breakage

Changes:
````
Rustup for https://github.com/rust-lang/rust/pull/59042
Update pulldown_cmark to 0.5
Only run AppVeyor on r+, try and the master branch
Remove approx_constant known problems
Suppress let_and_return if let has attributes
Add test for or_fun_call macro suggestion
UI test cleanup: Extract needless_range_loop tests
Change "if types change" to "if you later change the type"
````

r? @oli-obk
2019-04-25 14:10:19 +00:00
gnzlbg
d37f3fc1ec Add feature-gate for f16c target feature 2019-04-25 15:44:22 +02:00
Santiago Pastorino
72cda98e48 Implement Debug for Place using Place::iterate 2019-04-25 14:45:59 +02:00
Guillaume Gomez
6aa5a5df96 Improvement comment explanations 2019-04-25 13:20:43 +02:00
Matthias Krüger
f9945f58e2 submodules: update clippy from 9897442f to 8c0e038f
Changes:
````
Rustup for https://github.com/rust-lang/rust/pull/59042
Update pulldown_cmark to 0.5
Only run AppVeyor on r+, try and the master branch
Remove approx_constant known problems
Suppress let_and_return if let has attributes
Add test for or_fun_call macro suggestion
UI test cleanup: Extract needless_range_loop tests
Change "if types change" to "if you later change the type"
````
2019-04-25 13:18:44 +02:00
Mazdak Farrokhzad
4bd36ab64c Introduce hir::ExprKind::Use and employ in for loop desugaring.
Here, ExprKind::Use(P<Expr>) tweaks the drop order to act the
same way as '{ let _tmp = expr; _tmp }' does.
2019-04-25 11:51:53 +02:00
bors
112f7e9ac5 Auto merge of #60248 - estebank:macro-comma, r=oli-obk
Add guard for missing comma in macro call suggestion

Fix #60233. Follow up to #58796.

r? @oli-obk
2019-04-25 09:22:30 +00:00
bors
3d720d7e61 Auto merge of #60162 - gnzlbg:uss, r=alexcrichton
Breaking update of stdsimd

This commit updates stdsimd and contains two breaking changes:

* https://github.com/rust-lang-nursery/stdsimd/pull/733
* https://github.com/rust-lang-nursery/stdsimd/pull/586

We already did a crater run of 586 but we should do another one here.

r? @alexcrichton
2019-04-25 06:34:07 +00:00
bors
9aea1163df Auto merge of #60250 - Centril:rollup-d9tehhr, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #59560 (MIR generation cleanup)
 - #59697 (tweak unresolved label suggestion)
 - #60038 (Add codegen test for PGO instrumentation.)
 - #60160 (Fix #58270, fix off-by-one error in error diagnostics.)
 - #60185 (Reexport IntErrorKind in std)
 - #60243 (Add regression test for #53249.)

Failed merges:

r? @ghost
2019-04-25 03:44:22 +00:00
Mazdak Farrokhzad
1443f3b4e0
Rollup merge of #60243 - davidtwco:issue-53249, r=cramertj
Add regression test for #53249.

Fixes #53249.

r? @cramertj
2019-04-25 03:05:26 +02:00
Mazdak Farrokhzad
3fffcd3314
Rollup merge of #60185 - NieDzejkob:int-error-kind-reexport, r=rkruppe
Reexport IntErrorKind in std

Currently `IntErrorKind` can only be found in `core`. @Centril confirmed on Discord that this is unintentional (should I r? him in this situation?).

Should there be a test for this? As far as this *specific* situation goes, I don't think so, I'll risk it and say that there's no way this regresses. However, it might be a good idea to have some tool detect public items in `core` that are not reexported in `std`. Does this belong in tidy, or should that be a separate tool? Is there some rustc-specific *linter*? Unless that's entirely a dumb idea, this should probably get an issue.

Note: My local build hasn't finished yet, but it's well past the point where I would expect problems.
2019-04-25 03:05:25 +02:00
Mazdak Farrokhzad
a4ef188ab6
Rollup merge of #60160 - xldenis:fix-overlapping-zero-width-annotation, r=estebank
Fix #58270, fix off-by-one error in error diagnostics.

This fixes #58270 by checking if two diagnostics overlap completely when we're calculating the line offset for each message.
2019-04-25 03:05:24 +02:00
Mazdak Farrokhzad
bb892be98e
Rollup merge of #60038 - michaelwoerister:pgo-updates-2, r=alexcrichton
Add codegen test for PGO instrumentation.

This PR adds a codegen test that makes sure that LLVM actually generates instrumentation code when we enable PGO instrumentation in `rustc`.

The second commit updates a test case to the new commandline option syntax introduced in #59874. Without the fix the test still works, but it confusingly creates a directory called `test.profraw`, which usually is the name of the _file_ where profiling data is collected.
2019-04-25 03:05:22 +02:00
Mazdak Farrokhzad
a552bebaf6
Rollup merge of #59697 - euclio:label-fixes, r=zackmdavis
tweak unresolved label suggestion

Only suggest label names in the same hygiene context, and use a
structured suggestion.

Question for reviewer: Is this the right way to check for label hygiene?
2019-04-25 03:05:20 +02:00
Mazdak Farrokhzad
5440cf1cb6
Rollup merge of #59560 - matthewjasper:mir-generation-cleanup, r=oli-obk
MIR generation cleanup

* Handle the case where the body of a constant is a subtype of the type of the constant (see `mir_static_subtype.rs`).
* Move the evaluation of `ExprKind::Use` into `into.rs`, saving an unnecessary copy.
2019-04-25 03:05:19 +02:00
bors
3d21124839 Auto merge of #59042 - ljedrz:HirIdification_rework_map, r=Zoxc
HirIdification: rework Map

The next iteration of HirIdification (#57578).

- remove `NodeId` from `Entry`
- change `Map::map` to an `FxHashMap<HirId, Entry>`
- base the `NodeId` `Map` methods on `HirId` ones (reverses the current state)
- HirIdify `librustdoc` a little bit (some `NodeId` `Map` methods were converted to work on `HirId`s)

The second change might have performance implications, so I'd do a perf run to be sure it's fine; it simplifies the codebase and shouldn't have an impact as long as the `Map` searches are cached (which is now possible thanks to using `HirId`s).

r? @Zoxc
2019-04-25 00:53:28 +00:00
Esteban Küber
0e505d427a Add guard for missing comma in macro call suggestion 2019-04-24 16:45:29 -07:00
John Kåre Alsaker
5d67618d4c Update inferred_outlives_of 2019-04-25 01:38:54 +02:00