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

apply query response: actually define opaque types #108342

Merged
merged 1 commit into from
Feb 23, 2023

Conversation

lcnr
Copy link
Contributor

@lcnr lcnr commented Feb 22, 2023

not sure whether this fixes any code considering that #107891 doesn't break anything, but this is currently wrong as the eq there should just always fail right now.

We can definitely hit this code if we remove the replace_opaque_types_with_inference_vars hack. Doing so without this PR causes a few tests to ICE, e.g.

// check-pass
fn test() -> impl Iterator<Item = impl Sized> {
Box::new(0..) as Box<dyn Iterator<Item = _>>
}
fn main() {}

r? @oli-obk

@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. labels Feb 22, 2023
@oli-obk
Copy link
Contributor

oli-obk commented Feb 22, 2023

@bors r+

Ah that explains it. We used to not run the infer var replacement for TAITs, so it worked before. But once I flipped the default to "not infer opaque types", this "regressed". I do wonder why we use the evaluate queries so little in typeck, but apparently do so for the return type

@bors r+ rollup

@bors
Copy link
Contributor

bors commented Feb 22, 2023

📌 Commit cff59f8 has been approved by oli-obk

It is now in the queue for this repository.

@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 Feb 22, 2023
@bors
Copy link
Contributor

bors commented Feb 22, 2023

💡 This pull request was already approved, no need to approve it again.

@bors
Copy link
Contributor

bors commented Feb 22, 2023

📌 Commit cff59f8 has been approved by oli-obk

It is now in the queue for this repository.

@lcnr
Copy link
Contributor Author

lcnr commented Feb 22, 2023

I do wonder why we use the evaluate queries so little in typeck, but apparently do so for the return type

we only do it during mir typeck, hir typeck never uses canonical queries atm. I expect that by using the inference var replacement for opaques in the return type and so on, we tend to not have opaque types in the types of locals or sth 🤔

bors added a commit to rust-lang-ci/rust that referenced this pull request Feb 22, 2023
…iaskrgr

Rollup of 6 pull requests

Successful merges:

 - rust-lang#107736 ( Rename atomic 'as_mut_ptr' to 'as_ptr' to match Cell (ref rust-lang#66893) )
 - rust-lang#108176 (Don't delay `ReError` bug during lexical region resolve)
 - rust-lang#108315 (Lint dead code in closures and generators)
 - rust-lang#108342 (apply query response: actually define opaque types)
 - rust-lang#108344 (Fix test filename for rust-lang#105700)
 - rust-lang#108353 (resolve: Remove `ImportResolver`)

Failed merges:

 - rust-lang#107911 (Add check for invalid #[macro_export] arguments)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 2ad6a39 into rust-lang:master Feb 23, 2023
@rustbot rustbot added this to the 1.69.0 milestone Feb 23, 2023
@lcnr lcnr deleted the opaque-tys branch February 23, 2023 08:29
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. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants