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

[crater] Normalize opaques to infer vars eagerly in AssocTypeNormalizer #120798

Closed

Conversation

compiler-errors
Copy link
Member

:forgor:

r? @ghost

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative labels Feb 8, 2024
@compiler-errors
Copy link
Member Author

@bors try

@rustbot
Copy link
Collaborator

rustbot commented Feb 8, 2024

Some changes occurred to the core trait solver

cc @rust-lang/initiative-trait-system-refactor

@compiler-errors compiler-errors changed the title Normalize opaques eagerly Normalize opaques to infer vars eagerly in AssocTypeNormalizer Feb 8, 2024
@bors
Copy link
Contributor

bors commented Feb 8, 2024

⌛ Trying commit c353df0 with merge 9b9e20b...

bors added a commit to rust-lang-ci/rust that referenced this pull request Feb 8, 2024
…=<try>

Normalize opaques to infer vars eagerly in AssocTypeNormalizer

:forgor:

r? `@ghost`
infer,
true,
)
.expect("uwu");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

owo

@compiler-errors compiler-errors changed the title Normalize opaques to infer vars eagerly in AssocTypeNormalizer [crater] Normalize opaques to infer vars eagerly in AssocTypeNormalizer Feb 8, 2024
@compiler-errors compiler-errors marked this pull request as draft February 8, 2024 17:23
@bors
Copy link
Contributor

bors commented Feb 8, 2024

☀️ Try build successful - checks-actions
Build commit: 9b9e20b (9b9e20bc79549d80ab413f49d990713851172cc1)

@compiler-errors
Copy link
Member Author

@craterbot check

@craterbot
Copy link
Collaborator

👌 Experiment pr-120798 created and queued.
🤖 Automatically detected try build 9b9e20b
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 8, 2024
@craterbot
Copy link
Collaborator

🚧 Experiment pr-120798 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🎉 Experiment pr-120798 is completed!
📊 853 regressed and 1 fixed (415336 total)
📰 Open the full report.

⚠️ If you notice any spurious failure please add them to the blacklist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. labels Feb 10, 2024
@lcnr
Copy link
Contributor

lcnr commented Feb 12, 2024

nearly all of the unknown tests are a "concrete type differs from previous defining opaque type use" where one of the hidden types is {type error}. Separate from this PR, we should not emit these errors if the opaques contain a type error.

I think that most of these errors are caused by structurally instantiating opaque types, e.g. coral-0.9.2

pub struct Message {
    pub message: String,
    pub children: Option<Vec<Message>>,
}

impl Message {
    pub fn unroll(&self) -> impl Iterator<Item = &Message> {
        let mut messages = Vec::new();
        messages.push(self);
        if let Some(ref children) = self.children {
            for child in children {
                messages.extend(child.unroll());
                // ^ the returned iter is `opaque::<'fresh>`
            }
        }
        messages.into_iter()
    }
}

unless we want to look through 800 regressions to figure out how many of them are actually the "needs eager inference progress case of recur_rpit().function()" we'd need to also change the old solver to use semantic equality for opaques

@compiler-errors
Copy link
Member Author

ok bye bye pr

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants