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

codegen/mir: support polymorphic InstanceDefs #69935

Merged
merged 1 commit into from
Mar 20, 2020

Conversation

davidtwco
Copy link
Member

cc #69925

This PR modifies the use of subst_and_normalize_erasing_regions on parts of the MIR bodies returned from instance_mir, so that InstanceDef::CloneShim and InstanceDef::DropGlue (where there is a type) do not perform substitutions. This avoids double substitutions and enables polymorphic InstanceDefs.

r? @eddyb
cc @nikomatsakis

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Mar 11, 2020
src/librustc/ty/instance.rs Outdated Show resolved Hide resolved
This commit modifies the use of `subst_and_normalize_erasing_regions` on
parts of the MIR bodies returned from `instance_mir`, so that
`InstanceDef::CloneShim` and `InstanceDef::DropGlue` (where there is a
type) do not perform substitutions. This avoids double substitutions and
enables polymorphic `InstanceDef`s.

Signed-off-by: David Wood <david@davidtw.co>
@nikomatsakis
Copy link
Contributor

@bors r=eddyb

if I'm not mistaken

@bors
Copy link
Contributor

bors commented Mar 13, 2020

📌 Commit bee1513 has been approved by eddyb

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 13, 2020
@davidtwco davidtwco mentioned this pull request Mar 14, 2020
Centril added a commit to Centril/rust that referenced this pull request Mar 19, 2020
codegen/mir: support polymorphic `InstanceDef`s

cc rust-lang#69925

This PR modifies the use of `subst_and_normalize_erasing_regions` on parts of the MIR bodies returned from `instance_mir`, so that `InstanceDef::CloneShim` and `InstanceDef::DropGlue` (where there is a type) do not perform substitutions. This avoids double substitutions and enables polymorphic `InstanceDef`s.

r? @eddyb
cc @nikomatsakis
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 20, 2020
Rollup of 9 pull requests

Successful merges:

 - rust-lang#69618 (Clarify the relationship between `forget()` and `ManuallyDrop`.)
 - rust-lang#69768 (Compute the correct layout for variants of uninhabited enums)
 - rust-lang#69935 (codegen/mir: support polymorphic `InstanceDef`s)
 - rust-lang#70103 (Clean up E0437 explanation)
 - rust-lang#70131 (Add regression test for TAIT lifetime inference (issue rust-lang#55099))
 - rust-lang#70133 (remove unused imports)
 - rust-lang#70145 (doc: Add quote to .init_array)
 - rust-lang#70146 (Clean up e0438 explanation)
 - rust-lang#70150 (triagebot.toml: accept cleanup-crew)

Failed merges:

r? @ghost
@bors bors merged commit 9dc6994 into rust-lang:master Mar 20, 2020
@davidtwco davidtwco deleted the issue-69925 branch April 10, 2020 19:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants