Skip to content
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

[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 (-Znext-solver) 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
Collaborator

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
Collaborator

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

# for free to join this conversation on GitHub. Already have an account? # 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 (-Znext-solver)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants