Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix ICE in MIR pretty printing #59036

Merged
merged 1 commit into from Mar 16, 2019

Conversation

Projects
None yet
6 participants
@dlrobertson
Copy link
Contributor

dlrobertson commented Mar 9, 2019

A Def::Variant should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

pub enum TestMe {
    X(usize),
}

We will need to generate a constructor for the variant X with a
signature that looks something like the following:

fn TestMe::X(_1: usize) -> TestMe;

Fixes: #59021

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Mar 9, 2019

r? @estebank

(rust_highfive has picked a reviewer for you, use r? to override)

@estebank
Copy link
Contributor

estebank left a comment

Please tests

@@ -597,7 +597,8 @@ fn write_mir_sig(
trace!("write_mir_sig: {:?}", src.instance);
let descr = tcx.describe_def(src.def_id());
let is_function = match descr {
Some(Def::Fn(_)) | Some(Def::Method(_)) | Some(Def::StructCtor(..)) => true,
Some(Def::Fn(_)) | Some(Def::Method(_)) |
Some(Def::StructCtor(..)) | Some(Def::Variant(..)) => true,

This comment has been minimized.

Copy link
@estebank

estebank Mar 9, 2019

Contributor

Have you tested this with a strict style variant?

@dlrobertson

This comment has been minimized.

Copy link
Contributor Author

dlrobertson commented Mar 9, 2019

Please tests

Are there MIR pretty-print tests?

Have you tested this with a strict style variant?

You mean one without a constructor? E.g. pub enum Test { X }

@matthewjasper

This comment has been minimized.

Copy link
Contributor

matthewjasper commented Mar 9, 2019

Are there MIR pretty-print tests?

Yes, can you add this to src/test/mir-opt/unusual-item-types.rs?

@@ -597,7 +597,8 @@ fn write_mir_sig(
trace!("write_mir_sig: {:?}", src.instance);
let descr = tcx.describe_def(src.def_id());
let is_function = match descr {
Some(Def::Fn(_)) | Some(Def::Method(_)) | Some(Def::StructCtor(..)) => true,
Some(Def::Fn(_)) | Some(Def::Method(_)) |
Some(Def::StructCtor(..)) | Some(Def::Variant(..)) => true,

This comment has been minimized.

Copy link
@petrochenkov

petrochenkov Mar 9, 2019

Contributor

You need Def::VariantCtor here rather than Def::Variant, Def::Variant is the "variant type" from type namespace.
Also, only Def::VariantCtor(_, CtorKind::Fn) is a function, same applies to Def::StructCtor.

This comment has been minimized.

Copy link
@dlrobertson

dlrobertson Mar 9, 2019

Author Contributor

Ah, you're right. Good catch

This comment has been minimized.

Copy link
@dlrobertson

dlrobertson Mar 9, 2019

Author Contributor

@petrochenkov Actually I spoke too soon. The ICE is still hit when Def::VariantCtor is used.

I think we end up with the Def::Variant here because in tcx.describe_def there is no arm that will return a VariantCtor. I think we use the same DefId for the ctor and the variant.

This comment has been minimized.

Copy link
@petrochenkov

petrochenkov Mar 10, 2019

Contributor

in tcx.describe_def there is no arm that will return a VariantCtor. I think we use the same DefId for the ctor and the variant.

Sigh, ok.
This is not a good situation, but variants sharing def-ids with their constructors is a long standing issue.

@dlrobertson dlrobertson force-pushed the dlrobertson:fix_59021 branch from ce25598 to 2d18cb9 Mar 9, 2019

@dlrobertson

This comment has been minimized.

Copy link
Contributor Author

dlrobertson commented Mar 9, 2019

Added a test and ensures it fails without the patch.

@@ -1,12 +1,18 @@
// Test that we don't ICE when trying to dump MIR for unusual item types and
// that we don't create filenames containing `<` and `>`
// compile-flags: --emit mir

This comment has been minimized.

Copy link
@matthewjasper

matthewjasper Mar 9, 2019

Contributor

This shouldn't be needed

This comment has been minimized.

Copy link
@matthewjasper

matthewjasper Mar 9, 2019

Contributor

Apparently we don't automatically generate this MIR. Could you add let _ = Test::X as fn(usize) -> Test; to main instead?

This comment has been minimized.

Copy link
@dlrobertson

dlrobertson Mar 10, 2019

Author Contributor

👍 Thanks for the suggestion. This is much cleaner.

// See #59021
pub enum Test {
X(usize),
}

This comment has been minimized.

Copy link
@matthewjasper

matthewjasper Mar 9, 2019

Contributor

Can you add the output mir below? It should be in a file with a name like build/x86_64-unknown-linux-gnu/test/mir-opt/unusual-item-types/rustc/Test-X.mir_map.0.mir

This comment has been minimized.

Copy link
@estebank

estebank Mar 9, 2019

Contributor

Also add the following to verify that we won't ICE with struct-like variants.

pub enum Test2 {
    X { a: usize },
}

This comment has been minimized.

Copy link
@dlrobertson

dlrobertson Mar 10, 2019

Author Contributor

👍 Added the tests

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Mar 9, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:02feb64e:start=1552168304930864865,finish=1552168379302959201,duration=74372094336
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
Setting environment variables from .travis.yml
---
[01:18:51] ...................................F...
[01:18:51] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:496:22
[01:18:51] failures:
[01:18:51] 
[01:18:51] ---- [mir-opt] mir-opt/unusual-item-types.rs stdout ----
[01:18:51] thread '[mir-opt] mir-opt/unusual-item-types.rs' panicked at 'failed to exec `"/checkout/obj/build/x86_64-unknown-linux-gnu/test/mir-opt/unusual-item-types/a"`: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }', src/libcore/result.rs:997:5
[01:18:51] 
[01:18:51] 
[01:18:51] failures:
[01:18:51]     [mir-opt] mir-opt/unusual-item-types.rs
[01:18:51]     [mir-opt] mir-opt/unusual-item-types.rs
[01:18:51] 
[01:18:51] test result: FAILED. 38 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
[01:18:51] 
[01:18:51] 
[01:18:51] 
[01:18:51] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/mir-opt" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/mir-opt" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "mir-opt" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:18:51] 
[01:18:51] 
[01:18:51] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:18:51] Build completed unsuccessfully in 0:11:22
[01:18:51] Build completed unsuccessfully in 0:11:22
[01:18:51] make: *** [check] Error 1
[01:18:51] Makefile:48: recipe for target 'check' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:06526bfa
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Sat Mar  9 23:12:00 UTC 2019

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@dlrobertson dlrobertson force-pushed the dlrobertson:fix_59021 branch from 2d18cb9 to 55be811 Mar 9, 2019

Fix ICE in MIR pretty printing
A `Def::Variant` should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

```
pub enum TestMe {
    X(usize),
}
```

We will need to generate a constructor for the variant `X` with a
signature that looks something like the following:

```
fn TestMe::X(_1: usize) -> TestMe;
```

@dlrobertson dlrobertson force-pushed the dlrobertson:fix_59021 branch from 55be811 to 3a83cb2 Mar 10, 2019

@estebank

This comment has been minimized.

Copy link
Contributor

estebank commented Mar 10, 2019

@bors r+

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Mar 10, 2019

📌 Commit 3a83cb2 has been approved by estebank

Centril added a commit to Centril/rust that referenced this pull request Mar 10, 2019

Rollup merge of rust-lang#59036 - dlrobertson:fix_59021, r=estebank
Fix ICE in MIR pretty printing

A `Def::Variant` should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

```rust
pub enum TestMe {
    X(usize),
}
```

We will need to generate a constructor for the variant `X` with a
signature that looks something like the following:

```
fn TestMe::X(_1: usize) -> TestMe;
```

Fixes: rust-lang#59021

Centril added a commit to Centril/rust that referenced this pull request Mar 10, 2019

Rollup merge of rust-lang#59036 - dlrobertson:fix_59021, r=estebank
Fix ICE in MIR pretty printing

A `Def::Variant` should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

```rust
pub enum TestMe {
    X(usize),
}
```

We will need to generate a constructor for the variant `X` with a
signature that looks something like the following:

```
fn TestMe::X(_1: usize) -> TestMe;
```

Fixes: rust-lang#59021

bors added a commit that referenced this pull request Mar 10, 2019

Auto merge of #59067 - Centril:rollup, r=Centril
Rollup of 17 pull requests

Successful merges:

 - #58021 (Fix fallout from #57667)
 - #58330 (Add rustdoc JS non-std tests)
 - #58788 (Make migrate mode work at item level granularity)
 - #58789 (Update compiler_builtins to 0.1.7 to get windows/arm fix)
 - #58803 (fs::copy() linux: set file mode early)
 - #58829 (librustc_interface: Update scoped-tls to 1.0)
 - #58848 (Prevent cache issues on version updates)
 - #58855 (std: Spin for a global malloc lock on wasm32)
 - #58872 (Adds help message in error for invalid `impl for T` syntax)
 - #58876 (Parse lifetimes that start with a number and give specific error)
 - #58901 (Change `std::fs::copy` to use `copyfile` on MacOS and iOS)
 - #58938 (core: ensure VaList passes improper_ctypes lint)
 - #58941 (MIPS: add r6 support)
 - #59035 (When encountetring `||{}()`, suggest the likely intended `(||{})()`)
 - #59036 (Fix ICE in MIR pretty printing)
 - #59047 (resolve: Account for new importable entities)
 - #59056 (Use lifetime contravariance to elide more lifetimes in core+alloc+std)

Failed merges:

r? @ghost

Centril added a commit to Centril/rust that referenced this pull request Mar 10, 2019

Rollup merge of rust-lang#59036 - dlrobertson:fix_59021, r=estebank
Fix ICE in MIR pretty printing

A `Def::Variant` should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

```rust
pub enum TestMe {
    X(usize),
}
```

We will need to generate a constructor for the variant `X` with a
signature that looks something like the following:

```
fn TestMe::X(_1: usize) -> TestMe;
```

Fixes: rust-lang#59021

bors added a commit that referenced this pull request Mar 10, 2019

Auto merge of #59069 - Centril:rollup, r=Centril
Rollup of 16 pull requests

Successful merges:

 - #58021 (Fix fallout from #57667)
 - #58330 (Add rustdoc JS non-std tests)
 - #58789 (Update compiler_builtins to 0.1.7 to get windows/arm fix)
 - #58803 (fs::copy() linux: set file mode early)
 - #58829 (librustc_interface: Update scoped-tls to 1.0)
 - #58848 (Prevent cache issues on version updates)
 - #58855 (std: Spin for a global malloc lock on wasm32)
 - #58872 (Adds help message in error for invalid `impl for T` syntax)
 - #58876 (Parse lifetimes that start with a number and give specific error)
 - #58901 (Change `std::fs::copy` to use `copyfile` on MacOS and iOS)
 - #58938 (core: ensure VaList passes improper_ctypes lint)
 - #58941 (MIPS: add r6 support)
 - #59035 (When encountetring `||{}()`, suggest the likely intended `(||{})()`)
 - #59036 (Fix ICE in MIR pretty printing)
 - #59047 (resolve: Account for new importable entities)
 - #59056 (Use lifetime contravariance to elide more lifetimes in core+alloc+std)

Failed merges:

r? @ghost

Centril added a commit to Centril/rust that referenced this pull request Mar 10, 2019

Rollup merge of rust-lang#59036 - dlrobertson:fix_59021, r=estebank
Fix ICE in MIR pretty printing

A `Def::Variant` should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

```rust
pub enum TestMe {
    X(usize),
}
```

We will need to generate a constructor for the variant `X` with a
signature that looks something like the following:

```
fn TestMe::X(_1: usize) -> TestMe;
```

Fixes: rust-lang#59021

bors added a commit that referenced this pull request Mar 10, 2019

Auto merge of #59075 - Centril:rollup, r=Centril
Rollup of 17 pull requests

Successful merges:

 - #58021 (Fix fallout from #57667)
 - #58788 (Make migrate mode work at item level granularity)
 - #58789 (Update compiler_builtins to 0.1.7 to get windows/arm fix)
 - #58803 (fs::copy() linux: set file mode early)
 - #58829 (librustc_interface: Update scoped-tls to 1.0)
 - #58848 (Prevent cache issues on version updates)
 - #58855 (std: Spin for a global malloc lock on wasm32)
 - #58872 (Adds help message in error for invalid `impl for T` syntax)
 - #58876 (Parse lifetimes that start with a number and give specific error)
 - #58901 (Change `std::fs::copy` to use `copyfile` on MacOS and iOS)
 - #58938 (core: ensure VaList passes improper_ctypes lint)
 - #58941 (MIPS: add r6 support)
 - #59035 (When encountetring `||{}()`, suggest the likely intended `(||{})()`)
 - #59036 (Fix ICE in MIR pretty printing)
 - #59047 (resolve: Account for new importable entities)
 - #59056 (Use lifetime contravariance to elide more lifetimes in core+alloc+std)
 - #59072 (we can now skip should_panic tests with the libtest harness)

Failed merges:

r? @ghost

Centril added a commit to Centril/rust that referenced this pull request Mar 11, 2019

Rollup merge of rust-lang#59036 - dlrobertson:fix_59021, r=estebank
Fix ICE in MIR pretty printing

A `Def::Variant` should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

```rust
pub enum TestMe {
    X(usize),
}
```

We will need to generate a constructor for the variant `X` with a
signature that looks something like the following:

```
fn TestMe::X(_1: usize) -> TestMe;
```

Fixes: rust-lang#59021

bors added a commit that referenced this pull request Mar 11, 2019

Auto merge of #59081 - Centril:rollup, r=Centril
Rollup of 15 pull requests

Successful merges:

 - #58021 (Fix fallout from #57667)
 - #58788 (Make migrate mode work at item level granularity)
 - #58789 (Update compiler_builtins to 0.1.7 to get windows/arm fix)
 - #58829 (librustc_interface: Update scoped-tls to 1.0)
 - #58848 (Prevent cache issues on version updates)
 - #58855 (std: Spin for a global malloc lock on wasm32)
 - #58872 (Adds help message in error for invalid `impl for T` syntax)
 - #58876 (Parse lifetimes that start with a number and give specific error)
 - #58938 (core: ensure VaList passes improper_ctypes lint)
 - #58941 (MIPS: add r6 support)
 - #59035 (When encountetring `||{}()`, suggest the likely intended `(||{})()`)
 - #59036 (Fix ICE in MIR pretty printing)
 - #59047 (resolve: Account for new importable entities)
 - #59056 (Use lifetime contravariance to elide more lifetimes in core+alloc+std)
 - #59072 (we can now skip should_panic tests with the libtest harness)

Failed merges:

r? @ghost

kennytm added a commit to kennytm/rust that referenced this pull request Mar 11, 2019

Rollup merge of rust-lang#59036 - dlrobertson:fix_59021, r=estebank
Fix ICE in MIR pretty printing

A `Def::Variant` should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

```rust
pub enum TestMe {
    X(usize),
}
```

We will need to generate a constructor for the variant `X` with a
signature that looks something like the following:

```
fn TestMe::X(_1: usize) -> TestMe;
```

Fixes: rust-lang#59021

pietroalbini added a commit to pietroalbini/rust that referenced this pull request Mar 13, 2019

Rollup merge of rust-lang#59036 - dlrobertson:fix_59021, r=estebank
Fix ICE in MIR pretty printing

A `Def::Variant` should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

```rust
pub enum TestMe {
    X(usize),
}
```

We will need to generate a constructor for the variant `X` with a
signature that looks something like the following:

```
fn TestMe::X(_1: usize) -> TestMe;
```

Fixes: rust-lang#59021

kennytm added a commit to kennytm/rust that referenced this pull request Mar 15, 2019

Rollup merge of rust-lang#59036 - dlrobertson:fix_59021, r=estebank
Fix ICE in MIR pretty printing

A `Def::Variant` should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

```rust
pub enum TestMe {
    X(usize),
}
```

We will need to generate a constructor for the variant `X` with a
signature that looks something like the following:

```
fn TestMe::X(_1: usize) -> TestMe;
```

Fixes: rust-lang#59021

bors added a commit that referenced this pull request Mar 15, 2019

Auto merge of #59207 - kennytm:rollup, r=kennytm
Rollup of 31 pull requests

Successful merges:

 - #58803 (fs::copy() unix: set file mode early)
 - #58854 (appveyor: Use VS2017 for all our images)
 - #58855 (std: Spin for a global malloc lock on wasm32)
 - #58873 (Fix "Auto-hide item methods documentation" setting)
 - #58933 (Move alloc::prelude::* to alloc::prelude::v1, make alloc a subset of std)
 - #58938 (core: ensure VaList passes improper_ctypes lint)
 - #58941 (MIPS: add r6 support)
 - #58949 (SGX target: Expose thread id function in os module)
 - #58976 (Default to integrated `rust-lld` linker for UEFI targets)
 - #58986 ([CI] Update binutils for powerpc64 and powerpc64le)
 - #59009 (Fix SGX implementations of read/write_vectored.)
 - #59025 (Fix generic argument lookup for Self)
 - #59036 (Fix ICE in MIR pretty printing)
 - #59037 (Avoid some common false positives in intra doc link checking)
 - #59038 (Track embedded-book in the toolstate)
 - #59072 (we can now skip should_panic tests with the libtest harness)
 - #59079 (add suggestions to invalid macro item error)
 - #59082 (A few improvements to comments in user-facing crates)
 - #59102 (Consistent naming for duration_float methods and additional f32 methods)
 - #59106 (Add peer_addr function to UdpSocket)
 - #59118 (rustc: fix ICE when trait alias has bare Self)
 - #59139 (Unregress using scalar unions in constants.)
 - #59146 (Suggest return lifetime when there's only one named lifetime)
 - #59147 (Make std time tests more robust for platform differences)
 - #59152 (Stabilize Range*::contains.)
 - #59156 ([wg-async-await] Add regression test for #55809.)
 - #59158 (Revert "Don't generate minification variable if minification disabled")
 - #59169 (Add `-Z allow_features=...` flag)
 - #59175 (Don't run test launching `echo` since that doesn't exist on Windows)
 - #59180 (Use try blocks in rustc_codegen_ssa)
 - #59185 (No old chestnuts in iter::repeat docs)

Failed merges:

 - #58901 (Change `std::fs::copy` to use `copyfile` on MacOS and iOS)
 - #59055 (CI: Set job names.)

r? @ghost

kennytm added a commit to kennytm/rust that referenced this pull request Mar 16, 2019

Rollup merge of rust-lang#59036 - dlrobertson:fix_59021, r=estebank
Fix ICE in MIR pretty printing

A `Def::Variant` should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

```rust
pub enum TestMe {
    X(usize),
}
```

We will need to generate a constructor for the variant `X` with a
signature that looks something like the following:

```
fn TestMe::X(_1: usize) -> TestMe;
```

Fixes: rust-lang#59021

bors added a commit that referenced this pull request Mar 16, 2019

Auto merge of #59226 - kennytm:rollup, r=kennytm
Rollup of 37 pull requests

Successful merges:

 - #58854 (appveyor: Use VS2017 for all our images)
 - #58855 (std: Spin for a global malloc lock on wasm32)
 - #58873 (Fix "Auto-hide item methods documentation" setting)
 - #58901 (Change `std::fs::copy` to use `copyfile` on MacOS and iOS)
 - #58933 (Move alloc::prelude::* to alloc::prelude::v1, make alloc a subset of std)
 - #58938 (core: ensure VaList passes improper_ctypes lint)
 - #58941 (MIPS: add r6 support)
 - #58949 (SGX target: Expose thread id function in os module)
 - #58976 (Default to integrated `rust-lld` linker for UEFI targets)
 - #58986 ([CI] Update binutils for powerpc64 and powerpc64le)
 - #59009 (Fix SGX implementations of read/write_vectored.)
 - #59025 (Fix generic argument lookup for Self)
 - #59036 (Fix ICE in MIR pretty printing)
 - #59037 (Avoid some common false positives in intra doc link checking)
 - #59038 (Track embedded-book in the toolstate)
 - #59072 (we can now skip should_panic tests with the libtest harness)
 - #59079 (add suggestions to invalid macro item error)
 - #59082 (A few improvements to comments in user-facing crates)
 - #59102 (Consistent naming for duration_float methods and additional f32 methods)
 - #59118 (rustc: fix ICE when trait alias has bare Self)
 - #59139 (Unregress using scalar unions in constants.)
 - #59146 (Suggest return lifetime when there's only one named lifetime)
 - #59147 (Make std time tests more robust for platform differences)
 - #59152 (Stabilize Range*::contains.)
 - #59156 ([wg-async-await] Add regression test for #55809.)
 - #59158 (Revert "Don't generate minification variable if minification disabled")
 - #59169 (Add `-Z allow_features=...` flag)
 - #59173 (bootstrap: Default to a sensible llvm-suffix.)
 - #59175 (Don't run test launching `echo` since that doesn't exist on Windows)
 - #59180 (Use try blocks in rustc_codegen_ssa)
 - #59185 (No old chestnuts in iter::repeat docs)
 - #59201 (Remove restriction on isize/usize in repr(simd))
 - #59204 (Output diagnostic information for rustdoc)
 - #59206 (Improved test output)
 - #59208 (Reduce a Code Repetition Related to Bit Operation)
 - #59212 (Add x86_64 musl host to the manifest)
 - #59221 (Option and Result: Add references to documentation of as_ref and as_mut)

Failed merges:

 - #59055 (CI: Set job names.)

r? @ghost

bors added a commit that referenced this pull request Mar 16, 2019

Auto merge of #59226 - kennytm:rollup, r=kennytm
Rollup of 37 pull requests

Successful merges:

 - #58854 (appveyor: Use VS2017 for all our images)
 - #58855 (std: Spin for a global malloc lock on wasm32)
 - #58873 (Fix "Auto-hide item methods documentation" setting)
 - #58901 (Change `std::fs::copy` to use `copyfile` on MacOS and iOS)
 - #58933 (Move alloc::prelude::* to alloc::prelude::v1, make alloc a subset of std)
 - #58938 (core: ensure VaList passes improper_ctypes lint)
 - #58941 (MIPS: add r6 support)
 - #58949 (SGX target: Expose thread id function in os module)
 - #58976 (Default to integrated `rust-lld` linker for UEFI targets)
 - #58986 ([CI] Update binutils for powerpc64 and powerpc64le)
 - #59009 (Fix SGX implementations of read/write_vectored.)
 - #59025 (Fix generic argument lookup for Self)
 - #59036 (Fix ICE in MIR pretty printing)
 - #59037 (Avoid some common false positives in intra doc link checking)
 - #59038 (Track embedded-book in the toolstate)
 - #59072 (we can now skip should_panic tests with the libtest harness)
 - #59079 (add suggestions to invalid macro item error)
 - #59082 (A few improvements to comments in user-facing crates)
 - #59102 (Consistent naming for duration_float methods and additional f32 methods)
 - #59118 (rustc: fix ICE when trait alias has bare Self)
 - #59139 (Unregress using scalar unions in constants.)
 - #59146 (Suggest return lifetime when there's only one named lifetime)
 - #59147 (Make std time tests more robust for platform differences)
 - #59152 (Stabilize Range*::contains.)
 - #59156 ([wg-async-await] Add regression test for #55809.)
 - #59158 (Revert "Don't generate minification variable if minification disabled")
 - #59169 (Add `-Z allow_features=...` flag)
 - #59173 (bootstrap: Default to a sensible llvm-suffix.)
 - #59175 (Don't run test launching `echo` since that doesn't exist on Windows)
 - #59180 (Use try blocks in rustc_codegen_ssa)
 - #59185 (No old chestnuts in iter::repeat docs)
 - #59201 (Remove restriction on isize/usize in repr(simd))
 - #59204 (Output diagnostic information for rustdoc)
 - #59206 (Improved test output)
 - #59208 (Reduce a Code Repetition Related to Bit Operation)
 - #59212 (Add x86_64 musl host to the manifest)
 - #59221 (Option and Result: Add references to documentation of as_ref and as_mut)

Failed merges:

 - #59055 (CI: Set job names.)

r? @ghost

kennytm added a commit to kennytm/rust that referenced this pull request Mar 16, 2019

Rollup merge of rust-lang#59036 - dlrobertson:fix_59021, r=estebank
Fix ICE in MIR pretty printing

A `Def::Variant` should be considered as a function in mir pretty
printing. Each variant has a constructor that we must print.

Given the following enum definition:

```rust
pub enum TestMe {
    X(usize),
}
```

We will need to generate a constructor for the variant `X` with a
signature that looks something like the following:

```
fn TestMe::X(_1: usize) -> TestMe;
```

Fixes: rust-lang#59021

bors added a commit that referenced this pull request Mar 16, 2019

Auto merge of #59226 - kennytm:rollup, r=kennytm
Rollup of 37 pull requests

Successful merges:

 - #58854 (appveyor: Use VS2017 for all our images)
 - #58855 (std: Spin for a global malloc lock on wasm32)
 - #58873 (Fix "Auto-hide item methods documentation" setting)
 - #58901 (Change `std::fs::copy` to use `copyfile` on MacOS and iOS)
 - #58933 (Move alloc::prelude::* to alloc::prelude::v1, make alloc a subset of std)
 - #58938 (core: ensure VaList passes improper_ctypes lint)
 - #58941 (MIPS: add r6 support)
 - #58949 (SGX target: Expose thread id function in os module)
 - #58959 (Add release notes for PR #56243)
 - #58976 (Default to integrated `rust-lld` linker for UEFI targets)
 - #59009 (Fix SGX implementations of read/write_vectored.)
 - #59025 (Fix generic argument lookup for Self)
 - #59036 (Fix ICE in MIR pretty printing)
 - #59037 (Avoid some common false positives in intra doc link checking)
 - #59072 (we can now skip should_panic tests with the libtest harness)
 - #59079 (add suggestions to invalid macro item error)
 - #59082 (A few improvements to comments in user-facing crates)
 - #59102 (Consistent naming for duration_float methods and additional f32 methods)
 - #59118 (rustc: fix ICE when trait alias has bare Self)
 - #59139 (Unregress using scalar unions in constants.)
 - #59146 (Suggest return lifetime when there's only one named lifetime)
 - #59147 (Make std time tests more robust for platform differences)
 - #59152 (Stabilize Range*::contains.)
 - #59156 ([wg-async-await] Add regression test for #55809.)
 - #59158 (Revert "Don't generate minification variable if minification disabled")
 - #59169 (Add `-Z allow_features=...` flag)
 - #59173 (bootstrap: Default to a sensible llvm-suffix.)
 - #59175 (Don't run test launching `echo` since that doesn't exist on Windows)
 - #59180 (Use try blocks in rustc_codegen_ssa)
 - #59185 (No old chestnuts in iter::repeat docs)
 - #59201 (Remove restriction on isize/usize in repr(simd))
 - #59204 (Output diagnostic information for rustdoc)
 - #59206 (Improved test output)
 - #59208 (Reduce a Code Repetition Related to Bit Operation)
 - #59212 (Add x86_64 musl host to the manifest)
 - #59221 (Option and Result: Add references to documentation of as_ref and as_mut)
 - #59231 (Stabilize Option::copied)

@bors bors merged commit 3a83cb2 into rust-lang:master Mar 16, 2019

@dlrobertson dlrobertson deleted the dlrobertson:fix_59021 branch Mar 16, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.