]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoRollup merge of #69205 - JohnTitor:allow-whitespaces, r=Mark-Simulacrum
Dylan DPC [Tue, 18 Feb 2020 15:07:27 +0000 (16:07 +0100)]
Rollup merge of #69205 - JohnTitor:allow-whitespaces, r=Mark-Simulacrum

Allow whitespaces in revision flags

Allow whitespaces in revision flags, like `// [foo]`.

Fixes #69183

4 years agoRollup merge of #69200 - jonas-schievink:yield-print, r=eddyb,Zoxc
Dylan DPC [Tue, 18 Feb 2020 15:07:25 +0000 (16:07 +0100)]
Rollup merge of #69200 - jonas-schievink:yield-print, r=eddyb,Zoxc

Fix printing of `Yield` terminator

Addresses the bug found in https://github.com/rust-lang/rust/issues/69039#issuecomment-586633495

4 years agoRollup merge of #69192 - JohnTitor:add-tests, r=Centril
Dylan DPC [Tue, 18 Feb 2020 15:07:24 +0000 (16:07 +0100)]
Rollup merge of #69192 - JohnTitor:add-tests, r=Centril

Add more regression tests

Closes #39618
Closes #51798
Closes #62894
Closes #63952
Closes #68653

r? @Centril

4 years agoRollup merge of #69181 - skinny121:const-eval-return, r=oli-obk
Dylan DPC [Tue, 18 Feb 2020 15:07:22 +0000 (16:07 +0100)]
Rollup merge of #69181 - skinny121:const-eval-return, r=oli-obk

Change const eval to just return the value

As discussed in https://github.com/rust-lang/rust/pull/68505#discussion_r370956535, the type of consts shouldn't be returned from const eval queries.

r? @eddyb
cc @nikomatsakis

4 years agoAuto merge of #69258 - JohnTitor:rollup-n2hljai, r=JohnTitor
bors [Tue, 18 Feb 2020 11:10:51 +0000 (11:10 +0000)]
Auto merge of #69258 - JohnTitor:rollup-n2hljai, r=JohnTitor

Rollup of 8 pull requests

Successful merges:

 - #67272 (recursion_limit parsing handles overflows)
 - #68597 (Simplify `Skip::nth` and `Skip::last` implementations)
 - #68767 (macOS: avoid calling pthread_self() twice)
 - #69175 (Do not ICE when encountering `yield` inside `async` block)
 - #69223 (Ignore GDB versions with broken str printing.)
 - #69244 (configure: set LLVM flags with a value)
 - #69249 (Stabilize {f32, f64}::{LOG2_10, LOG10_2})
 - #69252 (Clean out unused directories for extra disk space)

Failed merges:

r? @ghost

4 years agoRollup merge of #69252 - Mark-Simulacrum:disk-try, r=pietroalbini
Yuki Okushi [Tue, 18 Feb 2020 11:09:11 +0000 (20:09 +0900)]
Rollup merge of #69252 - Mark-Simulacrum:disk-try, r=pietroalbini

Clean out unused directories for extra disk space

This cleans out some of the unused (but large) directories on our linux builders to hopefully allow them to complete without running out of disk space.

4 years agoRollup merge of #69249 - LeSeulArtichaut:stabilize-logs-consts, r=sfackler
Yuki Okushi [Tue, 18 Feb 2020 11:09:09 +0000 (20:09 +0900)]
Rollup merge of #69249 - LeSeulArtichaut:stabilize-logs-consts, r=sfackler

Stabilize {f32, f64}::{LOG2_10, LOG10_2}

Following the decision to stabilize `LOG2_10` and `LOG10_2` in https://github.com/rust-lang/rust/issues/50540#issuecomment-536627588.

Closes #50540.
r? @sfackler

4 years agoRollup merge of #69244 - cuviper:llvm-flags, r=Mark-Simulacrum
Yuki Okushi [Tue, 18 Feb 2020 11:09:08 +0000 (20:09 +0900)]
Rollup merge of #69244 - cuviper:llvm-flags, r=Mark-Simulacrum

configure: set LLVM flags with a value

Rather than a boolean `--enable-cflags` etc., these options should
reflect that they are for LLVM, and that they need a value. You would
now use `./configure --llvm-cflags="..."`.

4 years agoRollup merge of #69223 - spunit262:empty-string-gdb-version, r=Dylan-DPC
Yuki Okushi [Tue, 18 Feb 2020 11:09:06 +0000 (20:09 +0900)]
Rollup merge of #69223 - spunit262:empty-string-gdb-version, r=Dylan-DPC

Ignore GDB versions with broken str printing.

https://sourceware.org/bugzilla/show_bug.cgi?id=22236

4 years agoRollup merge of #69175 - estebank:shall-not-ice, r=petrochenkov
Yuki Okushi [Tue, 18 Feb 2020 11:09:05 +0000 (20:09 +0900)]
Rollup merge of #69175 - estebank:shall-not-ice, r=petrochenkov

Do not ICE when encountering `yield` inside `async` block

Fix #67158.

4 years agoRollup merge of #68767 - kubo39:patch-macos, r=shepmaster
Yuki Okushi [Tue, 18 Feb 2020 11:09:04 +0000 (20:09 +0900)]
Rollup merge of #68767 - kubo39:patch-macos, r=shepmaster

macOS: avoid calling pthread_self() twice

4 years agoRollup merge of #68597 - ollie27:skip_nth_last, r=Amanieu
Yuki Okushi [Tue, 18 Feb 2020 11:09:02 +0000 (20:09 +0900)]
Rollup merge of #68597 - ollie27:skip_nth_last, r=Amanieu

Simplify `Skip::nth` and `Skip::last` implementations

The main improvement is to make `last` no longer recursive.

4 years agoRollup merge of #67272 - fisherdarling:master, r=varkor,hellow554
Yuki Okushi [Tue, 18 Feb 2020 11:08:59 +0000 (20:08 +0900)]
Rollup merge of #67272 - fisherdarling:master, r=varkor,hellow554

recursion_limit parsing handles overflows

This PR adds overflow handling to `#![recursion_limit]` attribute parsing. If parsing the given value results in an `IntErrorKind::Overflow`, then the recursion_limit is set to `usize::max_value()`.

closes #67265

4 years agoClean out some default-installed directories
Mark Rousskov [Tue, 18 Feb 2020 00:39:38 +0000 (19:39 -0500)]
Clean out some default-installed directories

This helps us have enough disk space for our builders to be able to complete
successfully. For now, the choices are ad-hoc and 'definitely not needed'. This
should never fail the build, as everything our build needs should be inside
Docker.

4 years agoconfigure: set LLVM flags with a value
Josh Stone [Mon, 17 Feb 2020 19:01:52 +0000 (11:01 -0800)]
configure: set LLVM flags with a value

Rather than a boolean `--enable-cflags` etc., these options should
reflect that they are for LLVM, and that they need a value. You would
now use `./configure --llvm-cflags="..."`.

4 years agoAuto merge of #69129 - Centril:macro-legacy-errors, r=petrochenkov
bors [Mon, 17 Feb 2020 11:54:49 +0000 (11:54 +0000)]
Auto merge of #69129 - Centril:macro-legacy-errors, r=petrochenkov

Transition macro_legacy_warnings into a hard error

Fixes https://github.com/rust-lang/rust/issues/67098.

r? @petrochenkov

4 years agoAuto merge of #69226 - JohnTitor:rollup-syn03oj, r=JohnTitor
bors [Mon, 17 Feb 2020 06:44:35 +0000 (06:44 +0000)]
Auto merge of #69226 - JohnTitor:rollup-syn03oj, r=JohnTitor

Rollup of 6 pull requests

Successful merges:

 - #68495 (Updating str.chars docs to mention crates.io.)
 - #68701 (Improve #Safety of various methods in core::ptr)
 - #69158 (Don't print block exit state in dataflow graphviz if unchanged)
 - #69179 (Rename `FunctionRetTy` to `FnRetTy`)
 - #69186 ([tiny] parser: `macro_rules` is a weak keyword)
 - #69188 (Clean up E0309 explanation)

Failed merges:

r? @ghost

4 years agoRollup merge of #69188 - GuillaumeGomez:clean-up-e0309, r=Dylan-DPC
Yuki Okushi [Mon, 17 Feb 2020 04:46:59 +0000 (13:46 +0900)]
Rollup merge of #69188 - GuillaumeGomez:clean-up-e0309, r=Dylan-DPC

Clean up E0309 explanation

r? @Dylan-DPC

4 years agoRollup merge of #69186 - petrochenkov:kwrules, r=Centril
Yuki Okushi [Mon, 17 Feb 2020 04:46:57 +0000 (13:46 +0900)]
Rollup merge of #69186 - petrochenkov:kwrules, r=Centril

[tiny] parser: `macro_rules` is a weak keyword

r? @Centril

4 years agoRollup merge of #69179 - JohnTitor:rename-to-fnretty, r=Centril
Yuki Okushi [Mon, 17 Feb 2020 04:46:56 +0000 (13:46 +0900)]
Rollup merge of #69179 - JohnTitor:rename-to-fnretty, r=Centril

Rename `FunctionRetTy` to `FnRetTy`

As per FIXME comment

r? @Centril

4 years agoRollup merge of #69158 - ecstatic-morse:graphviz-diff, r=matthewjasper
Yuki Okushi [Mon, 17 Feb 2020 04:46:54 +0000 (13:46 +0900)]
Rollup merge of #69158 - ecstatic-morse:graphviz-diff, r=matthewjasper

Don't print block exit state in dataflow graphviz if unchanged

A small quality-of-life improvement I was using while working on #68528. It's pretty common to have a lot of zero-statement basic blocks, especially before a `SimplifyCfg` pass is run. When the dataflow state was dense, these blocks could take up a lot of vertical space since the full flow state was printed on both entry and exit. After this PR, we only print a block's exit state if it differs from that block's entry state. Take a look at the two basic blocks on the left.

Before:

![image](https://user-images.githubusercontent.com/29463364/74505395-e2d1dd00-4eab-11ea-8006-ec8f0dc9d1b6.png)

After:
![image](https://user-images.githubusercontent.com/29463364/74505277-98506080-4eab-11ea-8d95-5190bc378331.png)

4 years agoRollup merge of #68701 - amosonn:patch-2, r=RalfJung
Yuki Okushi [Mon, 17 Feb 2020 04:46:52 +0000 (13:46 +0900)]
Rollup merge of #68701 - amosonn:patch-2, r=RalfJung

Improve #Safety of various methods in core::ptr

For `read`, `read_unaligned`,`read_volatile`, `replace`, and `drop_in_place`:

- The value they point to must be properly initialized

For `replace`, additionally:

- The pointer must be readable

4 years agoRollup merge of #68495 - sdegutis:patch-1, r=Mark-Simulacrum
Yuki Okushi [Mon, 17 Feb 2020 04:46:48 +0000 (13:46 +0900)]
Rollup merge of #68495 - sdegutis:patch-1, r=Mark-Simulacrum

Updating str.chars docs to mention crates.io.

This might spare someone else a little time searching the stdlib for unicode/grapheme support.

4 years agoAuto merge of #68781 - ssomers:btree_miri_relief, r=RalfJung
bors [Mon, 17 Feb 2020 03:24:53 +0000 (03:24 +0000)]
Auto merge of #68781 - ssomers:btree_miri_relief, r=RalfJung

BTree: lighten the load on Miri

Reduce the amount of work Miri ploughs through in btree code, in particular on `test_clone_from` (which takes up 5 minutes on my machine).

r? @crgl

4 years agoDo not ICE when encountering `yield` inside `async` block
Esteban Küber [Sat, 15 Feb 2020 01:49:16 +0000 (17:49 -0800)]
Do not ICE when encountering `yield` inside `async` block

4 years agoRename `FunctionRetTy` to `FnRetTy`
Yuki Okushi [Sat, 15 Feb 2020 03:10:59 +0000 (12:10 +0900)]
Rename `FunctionRetTy` to `FnRetTy`

4 years agoHandle recursion_limit parsing errors
Fisher Darling [Fri, 13 Dec 2019 04:18:21 +0000 (21:18 -0700)]
Handle recursion_limit parsing errors

4 years agoIgnore GDB versions with broken str printing.
spunit262 [Fri, 14 Feb 2020 06:51:47 +0000 (23:51 -0700)]
Ignore GDB versions with broken str printing.

https://sourceware.org/bugzilla/show_bug.cgi?id=22236

4 years agoAuto merge of #67953 - cjgillot:split_infer, r=Zoxc
bors [Sun, 16 Feb 2020 22:24:54 +0000 (22:24 +0000)]
Auto merge of #67953 - cjgillot:split_infer, r=Zoxc

Split librustc::{traits,infer} to a separate crate rustc_infer

This is still very much work in progress.
Three functions are between dimensions (at the end of `rustc::traits`), waiting for some dependency breaking scheme.
Please tell me if the approach seems sound, and how you would like to split this PR up.

The formatting is deliberately off, to ease rebasing.

cc #65031

4 years agoLighten tests, in particular for Miri, yet test and explain more
Stein Somers [Sun, 16 Feb 2020 19:01:41 +0000 (20:01 +0100)]
Lighten tests, in particular for Miri, yet test and explain more

4 years agoFix comments outdated during #66648
Stein Somers [Sun, 2 Feb 2020 19:30:52 +0000 (20:30 +0100)]
Fix comments outdated during #66648

4 years agoStabilize {f32, f64}::{LOG2_10, LOG10_2}
LeSeulArtichaut [Sun, 16 Feb 2020 17:53:02 +0000 (18:53 +0100)]
Stabilize {f32, f64}::{LOG2_10, LOG10_2}

4 years agoAuto merge of #67885 - tobithiel:fix_group_lint_allow_override, r=Mark-Simulacrum
bors [Sun, 16 Feb 2020 15:28:41 +0000 (15:28 +0000)]
Auto merge of #67885 - tobithiel:fix_group_lint_allow_override, r=Mark-Simulacrum

rustc_session: allow overriding lint level of individual lints from a group

Fixes #58211 and fixes rust-lang/rust-clippy#4778 and fixes rust-lang/rust-clippy#4091

Instead of hard-coding the lint level preferences (from lowest to highest precedence: `lint::Allow -> lint::Warn -> lint::Deny -> lint::Forbid`), the position of the argument in the command line gets taken into account.

Examples:
1. Passing `-D unused -A unused-variables` denies everything in the lint group `unused` **except** `unused-variables` which is explicitly allowed.
1. Passing `-A unused-variables -D unused` denies everything in the lint group `unused` **including** `unused-variables` since the allow is specified before the deny (and therefore overridden by the deny).

This matches the behavior that is already being used when specifying `allow`/`deny` in the source code.

4 years agoAllow whitespaces in revision flags
Yuki Okushi [Sun, 16 Feb 2020 08:12:03 +0000 (17:12 +0900)]
Allow whitespaces in revision flags

4 years agoAuto merge of #68997 - Zoxc:pure-node-id, r=petrochenkov
bors [Sun, 16 Feb 2020 12:16:49 +0000 (12:16 +0000)]
Auto merge of #68997 - Zoxc:pure-node-id, r=petrochenkov

Panic if NodeIds are used for incremental compilation

r? @michaelwoerister

4 years agoImprove #Safety of core::ptr::drop_in_place
Amos Onn [Fri, 14 Feb 2020 23:34:15 +0000 (00:34 +0100)]
Improve #Safety of core::ptr::drop_in_place

Added missing conditions:
- Valid for writes
- Valid for destructing

4 years agosuspend -> yield
Jonas Schievink [Sun, 16 Feb 2020 12:08:36 +0000 (13:08 +0100)]
suspend -> yield

4 years agoPrune rustc dependencies.
Camille GILLOT [Fri, 7 Feb 2020 08:06:08 +0000 (09:06 +0100)]
Prune rustc dependencies.

4 years agoGate macro use.
Camille GILLOT [Wed, 8 Jan 2020 09:18:48 +0000 (10:18 +0100)]
Gate macro use.

4 years agoPrune features.
Camille GILLOT [Wed, 8 Jan 2020 08:31:01 +0000 (09:31 +0100)]
Prune features.

4 years agoRemove librustc_infer crate re-exports.
Camille GILLOT [Tue, 7 Jan 2020 21:07:22 +0000 (22:07 +0100)]
Remove librustc_infer crate re-exports.

4 years agoOther crates.
Camille GILLOT [Mon, 6 Jan 2020 22:31:06 +0000 (23:31 +0100)]
Other crates.

4 years agoMake librustc_traits compile.
Camille GILLOT [Mon, 6 Jan 2020 22:28:45 +0000 (23:28 +0100)]
Make librustc_traits compile.

4 years agoMake librustc_mir compile.
Camille GILLOT [Mon, 6 Jan 2020 22:21:41 +0000 (23:21 +0100)]
Make librustc_mir compile.

4 years agomacOS: avoid calling pthread_self() twice
Hiroki Noda [Sun, 2 Feb 2020 12:25:38 +0000 (21:25 +0900)]
macOS: avoid calling pthread_self() twice

4 years agoMake librustc_typeck compile.
Camille GILLOT [Mon, 6 Jan 2020 22:12:31 +0000 (23:12 +0100)]
Make librustc_typeck compile.

4 years agoMake librustc_infer compile.
Camille GILLOT [Mon, 6 Jan 2020 19:13:24 +0000 (20:13 +0100)]
Make librustc_infer compile.

4 years agoMake librustc compile.
Camille GILLOT [Mon, 6 Jan 2020 19:13:24 +0000 (20:13 +0100)]
Make librustc compile.

4 years agoMove librustc/{traits,infer} to librustc_infer.
Camille GILLOT [Mon, 6 Jan 2020 19:13:24 +0000 (20:13 +0100)]
Move librustc/{traits,infer} to librustc_infer.

4 years agoAuto merge of #69156 - ecstatic-morse:unified-dataflow-impls2, r=eddyb
bors [Sun, 16 Feb 2020 05:08:08 +0000 (05:08 +0000)]
Auto merge of #69156 - ecstatic-morse:unified-dataflow-impls2, r=eddyb

Use `ResultsCursor` for `elaborate_drops`

Some cleanup after #68241. The old code was using a custom cursor-like struct called `InitializationData`.

4 years agoAuto merge of #68814 - Aaron1011:fix/proc-macro-order-two, r=petrochenkov
bors [Sun, 16 Feb 2020 01:46:05 +0000 (01:46 +0000)]
Auto merge of #68814 - Aaron1011:fix/proc-macro-order-two, r=petrochenkov

Record proc macro harness order for use during metadata deserialization

Fixes #68690

When we generate the proc macro harness, we now explicitly recorder the
order in which we generate entries. We then use this ordering data to
deserialize the correct proc-macro-data from the crate metadata.

4 years agoFix printing of `Yield` terminator
Jonas Schievink [Sat, 15 Feb 2020 23:57:48 +0000 (00:57 +0100)]
Fix printing of `Yield` terminator

4 years agoDetermine type of intrinsics instead of assuming the destination type is the same.
Ben Lewis [Sat, 15 Feb 2020 22:39:04 +0000 (11:39 +1300)]
Determine type of intrinsics instead of assuming the destination type is the same.

4 years agoAuto merge of #68668 - GuillaumeGomez:struct-variant-field-search, r=ollie27
bors [Sat, 15 Feb 2020 22:32:51 +0000 (22:32 +0000)]
Auto merge of #68668 - GuillaumeGomez:struct-variant-field-search, r=ollie27

Struct variant field search

Fixes #16017.

Reopening of #64724.

cc @tomjakubowski
cc @ollie27

r? @kinnison

4 years agoCode review changes.
Ben Lewis [Sat, 15 Feb 2020 20:59:01 +0000 (09:59 +1300)]
Code review changes.

4 years agoAdd additional comment
Aaron Hill [Sat, 15 Feb 2020 20:51:40 +0000 (15:51 -0500)]
Add additional comment

4 years agoRecord proc macro harness order for use during metadata deserialization
Aaron Hill [Mon, 3 Feb 2020 23:34:36 +0000 (18:34 -0500)]
Record proc macro harness order for use during metadata deserialization

Fixes #68690

When we generate the proc macro harness, we now explicitly recorder the
order in which we generate entries. We then use this ordering data to
deserialize the correct proc-macro-data from the crate metadata.

4 years agoAdd FIXME note
Yuki Okushi [Sat, 15 Feb 2020 19:36:44 +0000 (04:36 +0900)]
Add FIXME note

4 years agoAdd test for issue-68653
Yuki Okushi [Sat, 15 Feb 2020 17:55:03 +0000 (02:55 +0900)]
Add test for issue-68653

4 years agoAdd test for issue-63952
Yuki Okushi [Sat, 15 Feb 2020 17:54:51 +0000 (02:54 +0900)]
Add test for issue-63952

4 years agoAdd test for issue-62894
Yuki Okushi [Sat, 15 Feb 2020 17:54:33 +0000 (02:54 +0900)]
Add test for issue-62894

4 years agoAdd test for issue-51798
Yuki Okushi [Sat, 15 Feb 2020 17:54:16 +0000 (02:54 +0900)]
Add test for issue-51798

4 years agoAdd test for issue-39618
Yuki Okushi [Sat, 15 Feb 2020 17:53:58 +0000 (02:53 +0900)]
Add test for issue-39618

4 years agoPanic when hashing node IDs
John Kåre Alsaker [Sat, 15 Feb 2020 17:07:17 +0000 (18:07 +0100)]
Panic when hashing node IDs

4 years agoTreat NodeIs as pure values for incremental compilation
John Kåre Alsaker [Sun, 9 Feb 2020 14:08:31 +0000 (15:08 +0100)]
Treat NodeIs as pure values for incremental compilation

4 years agoClean up E0309 explanation
Guillaume Gomez [Sat, 15 Feb 2020 15:41:21 +0000 (16:41 +0100)]
Clean up E0309 explanation

4 years agoAuto merge of #69168 - brainlock:test-textrel-regression, r=Mark-Simulacrum,tmandry
bors [Sat, 15 Feb 2020 13:48:53 +0000 (13:48 +0000)]
Auto merge of #69168 - brainlock:test-textrel-regression, r=Mark-Simulacrum,tmandry

add regression test for issue #68794

This is a minimal regression test for the issue #68794: "TEXTREL in
i686", which was fixed with e86019c4a0968a1e393cdd0731649168624a88b8.

The test links a minimal rust static library into a shared library, and
checks that the linker didn't have to add the TEXTREL flag.

4 years agoImprove #Safety in various methods in core::ptr
Amos Onn [Fri, 31 Jan 2020 14:22:51 +0000 (15:22 +0100)]
Improve #Safety in various methods in core::ptr

For all methods which read a value of type T, `read`, `read_unaligned`,
`read_volatile` and `replace`, added missing
constraint:
The value they point to must be properly initialized

4 years agoImprove #Safety of core::ptr::replace
Amos Onn [Fri, 31 Jan 2020 14:18:27 +0000 (15:18 +0100)]
Improve #Safety of core::ptr::replace

Added missing condition:
`dst` must be readable

4 years agoImprove #Safety in various methods in core::ptr
Amos Onn [Sat, 15 Feb 2020 12:58:54 +0000 (13:58 +0100)]
Improve #Safety in various methods in core::ptr

s/for reads and writes/for both ...

4 years agoparser: `macro_rules` is a weak keyword
Vadim Petrochenkov [Sat, 15 Feb 2020 12:46:25 +0000 (15:46 +0300)]
parser: `macro_rules` is a weak keyword

4 years agoAuto merge of #69182 - Dylan-DPC:rollup-ifsa9fx, r=Dylan-DPC
bors [Sat, 15 Feb 2020 10:20:05 +0000 (10:20 +0000)]
Auto merge of #69182 - Dylan-DPC:rollup-ifsa9fx, r=Dylan-DPC

Rollup of 6 pull requests

Successful merges:

 - #64069 (Added From<Vec<NonZeroU8>> for CString)
 - #66721 (implement LowerExp and UpperExp for integers)
 - #69106 (Fix std::fs::copy on WASI target)
 - #69154 (Avoid calling `fn_sig` on closures)
 - #69166 (Check `has_typeck_tables` before calling `typeck_tables_of`)
 - #69180 (Suggest a comma if a struct initializer field fails to parse)

Failed merges:

r? @ghost

4 years agoRollup merge of #69180 - Aaron1011:feature/comma-struct-init, r=petrochenkov
Dylan DPC [Sat, 15 Feb 2020 08:45:49 +0000 (09:45 +0100)]
Rollup merge of #69180 - Aaron1011:feature/comma-struct-init, r=petrochenkov

Suggest a comma if a struct initializer field fails to parse

Currently, we emit a "try adding a comma" suggestion if a comma is
missing in a struct definition. However, we emit no such suggestion if a
comma is missing in a struct initializer.

This commit adds a "try adding a comma" suggestion when we don't find a
comma during the parsing of a struct initializer field.

The change to `src/test/ui/parser/removed-syntax-with-1.stderr` isn't
great, but I don't see a good way of avoiding it.

4 years agoRollup merge of #69166 - JohnTitor:ice-const-enum, r=matthewjasper
Dylan DPC [Sat, 15 Feb 2020 08:45:48 +0000 (09:45 +0100)]
Rollup merge of #69166 - JohnTitor:ice-const-enum, r=matthewjasper

Check `has_typeck_tables` before calling `typeck_tables_of`

Fixes #68684

r? @matthewjasper

4 years agoRollup merge of #69154 - JohnTitor:fix-macro-ices, r=petrochenkov
Dylan DPC [Sat, 15 Feb 2020 08:45:46 +0000 (09:45 +0100)]
Rollup merge of #69154 - JohnTitor:fix-macro-ices, r=petrochenkov

Avoid calling `fn_sig` on closures

Fixes #68060

r? @petrochenkov

4 years agoRollup merge of #69106 - RReverser:wasi-fs-copy, r=KodrAus
Dylan DPC [Sat, 15 Feb 2020 08:45:45 +0000 (09:45 +0100)]
Rollup merge of #69106 - RReverser:wasi-fs-copy, r=KodrAus

Fix std::fs::copy on WASI target

Previously `std::fs::copy` on wasm32-wasi would reuse code from the `sys_common` module and would successfully copy contents of the file just to fail right before closing it.

This was happening because `sys_common::copy` tries to copy permissions of the file, but permissions are not a thing in WASI (at least yet) and `set_permissions` is implemented as an unconditional runtime error.

This change instead adds a custom working implementation of `std::fs::copy` (like Rust already has on some other targets) that doesn't try to call `set_permissions` and is essentially a thin wrapper around `std::io::copy`.

Fixes #68560.

4 years agoRollup merge of #66721 - maxbla:exp-format-integers, r=KodrAus
Dylan DPC [Sat, 15 Feb 2020 08:45:43 +0000 (09:45 +0100)]
Rollup merge of #66721 - maxbla:exp-format-integers, r=KodrAus

implement LowerExp and UpperExp for integers

Addresses https://github.com/rust-lang/rust/issues/39479

This implementation is heavily based on the preexisting `macro_rules! impl_Display` in the same file. I don't like the liberal use of unsafe in that macro and would like to modify it so `unsafe` is only present where necessary. What is Rust's policy on doing such modifications?

Also, I couldn't figure out where to put tests, can I have some help with that?

4 years agoRollup merge of #64069 - danielhenrymantilla:feature/cstring_from_vec_of_nonzerou8...
Dylan DPC [Sat, 15 Feb 2020 08:45:38 +0000 (09:45 +0100)]
Rollup merge of #64069 - danielhenrymantilla:feature/cstring_from_vec_of_nonzerou8, r=KodrAus

Added From<Vec<NonZeroU8>> for CString

Added a `From<Vec<NonZeroU8>>` `impl` for `CString`

# Rationale

  - `CString::from_vec_unchecked` is a subtle function, that makes `unsafe` code harder to audit when the generated `Vec`'s creation is non-trivial. This `impl` allows to write safer `unsafe` code thanks to the very explicit semantics of the `Vec<NonZeroU8>` type.

  - One such situation is when trying to `.read()` a `CString`, see issue #59229.

      - this lead to a PR: #59314, that was closed for being too specific / narrow (it only targetted being able to `.read()` a `CString`, when this pattern could have been generalized).

     - the issue suggested another route, based on `From<Vec<NonZeroU8>>`, which is indeed a less general and more concise code pattern.

  - quoting @shnatsel:

      - >  For me the main thing about making this safe is simplifying auditing - people have spent like an hour looking at just this one unsafe block in libflate because it's not clear what exactly is unchecked, so you have to look it up when auditing anyway. This has distracted us from much more serious memory safety issues the library had.
Having this trivial impl in stdlib would turn this into safe code with compiler more or less guaranteeing that it's fine, and save anyone auditing the code a whole lot of time.

4 years agoMonomorphize const type during codegen.
Ben Lewis [Sat, 15 Feb 2020 04:43:14 +0000 (17:43 +1300)]
Monomorphize const type during codegen.

4 years agoSuggest a comma if a struct initializer field fails to parse
Aaron Hill [Sat, 15 Feb 2020 03:28:13 +0000 (22:28 -0500)]
Suggest a comma if a struct initializer field fails to parse

Currently, we emit a "try adding a comma" suggestion if a comma is
missing in a struct definition. However, we emit no such suggestion if a
comma is missing in a struct initializer.

This commit adds a "try adding a comma" suggestion when we don't find a
comma during the parsing of a struct initializer field.

The change to `src/test/ui/parser/removed-syntax-with-1.stderr` isn't
great, but I don't see a good way of avoiding it.

4 years agoimplement LowerExp and UpperExp for integers
Max Blachman [Sun, 24 Nov 2019 22:30:56 +0000 (14:30 -0800)]
implement LowerExp and UpperExp for integers

4 years agoAuto merge of #67681 - matthewjasper:infer-regions-in-borrowck, r=nikomatsakis
bors [Sat, 15 Feb 2020 02:24:04 +0000 (02:24 +0000)]
Auto merge of #67681 - matthewjasper:infer-regions-in-borrowck, r=nikomatsakis

Infer regions for opaque types in borrowck

This is a step towards the goal of typeck not doing region inference.

The commits up to `Arena allocate the result of mir_borrowck` are various bug fixes and prerequisites.
The remaining commits move opaque type inference to borrow checking.

r? @nikomatsakis

4 years agoFix emulate intrinsics return type.
Ben Lewis [Sat, 15 Feb 2020 01:45:36 +0000 (14:45 +1300)]
Fix emulate intrinsics return type.

4 years agoChange `const_field` and `const_caller_location` to return `ConstValue` instead of...
Ben Lewis [Fri, 14 Feb 2020 23:57:46 +0000 (12:57 +1300)]
Change `const_field` and `const_caller_location` to return `ConstValue` instead of `Const` as the type
in the returned const isn't needed.

4 years agoAuto merge of #69172 - JohnTitor:rollup-6cbmwcw, r=JohnTitor
bors [Fri, 14 Feb 2020 23:11:03 +0000 (23:11 +0000)]
Auto merge of #69172 - JohnTitor:rollup-6cbmwcw, r=JohnTitor

Rollup of 7 pull requests

Successful merges:

 - #68129 (Correct inference of primitive operand type behind binary operation)
 - #68475 (Use a `ParamEnvAnd<Predicate>` for caching in `ObligationForest`)
 - #68856 (typeck: clarify def_bm adjustments & add tests for or-patterns)
 - #69051 (simplify_try: address some of eddyb's comments)
 - #69128 (Fix extra subslice lowering)
 - #69150 (Follow-up to #68848)
 - #69164 (Update pulldown-cmark dependency)

Failed merges:

r? @ghost

4 years agoChange const eval to return `ConstValue`, instead of `Const` as the type inside it...
Ben Lewis [Fri, 14 Feb 2020 22:56:23 +0000 (11:56 +1300)]
Change const eval to return `ConstValue`, instead of `Const` as the type inside it shouldn't be used.

4 years agoFix tests after rebase
Matthew Jasper [Fri, 14 Feb 2020 22:39:55 +0000 (22:39 +0000)]
Fix tests after rebase

4 years agoSplit `type_of` out of collect.rs
Matthew Jasper [Fri, 17 Jan 2020 21:15:03 +0000 (21:15 +0000)]
Split `type_of` out of collect.rs

4 years agoAdd fast path to eq_opaque_type_and_type
Matthew Jasper [Fri, 17 Jan 2020 20:11:51 +0000 (20:11 +0000)]
Add fast path to eq_opaque_type_and_type

4 years agoFix and test nested impl Trait
Matthew Jasper [Sun, 12 Jan 2020 10:19:19 +0000 (10:19 +0000)]
Fix and test nested impl Trait

4 years agoUpdate tests
Matthew Jasper [Sat, 11 Jan 2020 17:18:58 +0000 (17:18 +0000)]
Update tests

4 years agoUse member constraint for most opaque types in NLL
Matthew Jasper [Sat, 11 Jan 2020 17:18:52 +0000 (17:18 +0000)]
Use member constraint for most opaque types in NLL

This ensures that NLL will infer suitable values for regions in opaque
types when it's possible.

4 years agoAlways check upper bounds when choosing member regions
Matthew Jasper [Sat, 11 Jan 2020 16:58:50 +0000 (16:58 +0000)]
Always check upper bounds when choosing member regions

Also correctly calculate what the upper bounds are.

4 years agoImprove opaque type lifetime errors
Matthew Jasper [Sat, 11 Jan 2020 14:12:39 +0000 (14:12 +0000)]
Improve opaque type lifetime errors

* Use better span for member constraint errors
* Avoid a bad suggestion
* Don't report member constraint errors if we have other universal
  region errors.

4 years agoHandle equal regions in opaque type inference
Matthew Jasper [Wed, 8 Jan 2020 21:20:38 +0000 (21:20 +0000)]
Handle equal regions in opaque type inference

4 years agoShow inferred opaque types with `#[rustc_regions]`
Matthew Jasper [Sun, 5 Jan 2020 18:27:51 +0000 (18:27 +0000)]
Show inferred opaque types with `#[rustc_regions]`

4 years agoAddress review comments
Matthew Jasper [Sun, 29 Dec 2019 14:23:20 +0000 (14:23 +0000)]
Address review comments

4 years agoUpdate tests
Matthew Jasper [Sat, 28 Dec 2019 15:54:27 +0000 (15:54 +0000)]
Update tests

4 years agoErase regions in opaque types in typeck
Matthew Jasper [Sat, 28 Dec 2019 15:52:51 +0000 (15:52 +0000)]
Erase regions in opaque types in typeck

4 years agoEnsure RPIT types get recorded in borrowck
Matthew Jasper [Sat, 28 Dec 2019 15:50:39 +0000 (15:50 +0000)]
Ensure RPIT types get recorded in borrowck