Skip to content

Rollup of 8 pull requests #70348

New issue

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

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

Already on GitHub? # to your account

Closed
wants to merge 31 commits into from
Closed

Conversation

Centril
Copy link
Contributor

@Centril Centril commented Mar 24, 2020

Successful merges:

Failed merges:

r? @ghost

ArekPiekarz and others added 30 commits March 6, 2020 22:22
I find the code easier to read if the values in `config` are all used
directly, rather than a mix of `config` values and local variables. It
will also faciliate some of the following commits.

Also, use `config.bitcode_needed()` in one place.
Because the `(true, true)` combination isn't valid.
This adds a missing `!config.obj_is_bitcode` condition to two places
that should have it.

As a result, when `obj_is_bitcode` and `no_integrated_as` are both true,
the compiler will no longer unnecessarily emit asm, convert it to an
object file, and then overwrite that object file with bitcode.
Previously, we threw away the `Span` associated with a definition's
identifier when we encoded crate metadata, causing us to lose location
and hygiene information.

We now store the identifier's `Span` in the crate metadata.
When we decode items from the metadata, we combine
the name and span back into an `Ident`.

This improves the output of several tests, which previously had messages
suppressed due to dummy spans.

This is a prerequisite for rust-lang#68686, since throwing away a `Span` means
that we lose hygiene information.
Make the `type_of` return a generic type for generators

Fixes rust-lang#67651.

r? @nikomatsakis
…ltin_traits, r=Dylan-DPC

Fix sequence of Type and Trait in optin-builtin-traits in Unstable Book

A simple fix in docs - the sequence of words in basic example of negative trait implementation was reversed.
…atthewjasper

Make `needs_drop` less pessimistic on generators

Generators only have non-trivial drop logic when they may store (in upvars or across yields) a type that does.

This prevents generation of some unnecessary MIR in simple generators. There might be some impact on compile times, but this is probably limited in real-world applications.

~~This builds off of rust-lang#69814 since that contains some fixes that are made relevant by *this* PR (see rust-lang#69814 (comment) (this has been merged)
…t, r=petrochenkov

Store idents for `DefPathData` into crate metadata

Previously, we threw away the `Span` associated with a definition's
identifier when we encoded crate metadata, causing us to lose location
and hygiene information.

We now store the identifier's `Span` in a side table, which gets encoded
into the crate metadata. When we decode items from the metadata, we
combine the name and span back into an `Ident`.

This improves the output of several tests, which previously had messages
suppressed due to dummy spans.

This is a prerequisite for rust-lang#68686, since throwing away a `Span` means
that we lose hygiene information.
…omatsakis

traits/fulfill: allow `stalled_on` to track `ty::Const::Infer(_)` (unused yet).

This PR addresses the representation side of rust-lang#70180, but only *actually collects* `ty::Infer`s via `Ty::walk` into `stalled_on` (collecting `ty::ConstKind::Infer`s requires rust-lang#70164).

However, it should be enough to handle rust-lang#70107's needs (WF obligations are stalled only on the outermost type/const being an inference variable, no `walk`-ing is involved).

This is my second attempt, see rust-lang#70181 for the previous one, which unacceptably regressed perf.

r? @nikomatsakis cc @nnethercote
Use Reveal::All in MIR optimizations

Resolves some code review feedback in rust-lang#67662.

Fixes rust-lang#68855

r? @eddyb
…r=eddyb

correctly handle const params in type_of

extends rust-lang#70223, retry of rust-lang#70276

fixes rust-lang#70273

r? @eddyb cc @varkor
Refactor `codegen`

`codegen` in `src/librustc_codegen_llvm/back/write.rs` is long and has complex control flow. These commits refactor it and make it easier to understand.
@Centril Centril added the rollup A PR which is a rollup label Mar 24, 2020
@Centril
Copy link
Contributor Author

Centril commented Mar 24, 2020

@bors r+ p=8 rollup=never

@bors
Copy link
Collaborator

bors commented Mar 24, 2020

📌 Commit 6e587a4 has been approved by Centril

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Mar 24, 2020
@bors
Copy link
Collaborator

bors commented Mar 24, 2020

⌛ Testing commit 6e587a4 with merge 38095176693235857f023640d06974bb65f3d09a...

@bors
Copy link
Collaborator

bors commented Mar 24, 2020

💔 Test failed - checks-azure

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Mar 24, 2020
@Centril Centril closed this Mar 24, 2020
@Centril Centril deleted the rollup-l48gfqy branch March 24, 2020 06:12
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
rollup A PR which is a rollup S-waiting-on-review Status: Awaiting review from the assignee but also interested parties.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants