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

[1.38] Regression: cannot determine resolution for the derive macro Debug #63893

Closed
petrochenkov opened this issue Aug 25, 2019 · 2 comments
Closed
Labels
regression-from-stable-to-beta Performance or correctness regression from stable to beta. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-lang Relevant to the language team, which will review and decide on the PR/issue.
Milestone

Comments

@petrochenkov
Copy link
Contributor

#63628 (comment)

cannot determine resolution for the derive macro Debug

./reg/ruroonga_command/0.3.4/beta-2019-08-13.txt:[INFO] [stderr] error: cannot determine resolution for the derive macro `Debug`

Minimized:

use Enum::Debug;

#[derive(Debug)] // Add some more derives if the error does not reproduce
enum Enum {
    Debug
}

This is a regression from #63248, and #63867 works in the same direction but hasn't landed yet.

Basically, the import is blocked until the derive is expanded and the derive is blocked until the import is resolved, so we have a deadlock.

This worked previously, because we did some things in less principled way (textual comparisons instead of resolution), which allowed us to produce the enum earlier, before resolving the Debug, but now we need to resolve it before producing the Enum.

This is fixable in principle, by making the expansion infra more fine-grained (introducing some new "resolved, but not yet ready for expansion" states), but I'm afraid that's not something that could be backported to beta.
So, I'd say wontfix. Unfortunate, but seems acceptable given the number of affected crates (one regression found).

@petrochenkov petrochenkov added regression-from-stable-to-beta Performance or correctness regression from stable to beta. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 25, 2019
@Mark-Simulacrum Mark-Simulacrum added this to the 1.38 milestone Aug 30, 2019
@nikomatsakis nikomatsakis added T-lang Relevant to the language team, which will review and decide on the PR/issue. I-nominated labels Sep 5, 2019
@nikomatsakis
Copy link
Contributor

Nominating for lang team to check-in, but recommendation from @petrochenkov is to mark this as "won't fix".

@nikomatsakis
Copy link
Contributor

In the @rust-lang/lang meeting on Sep 05, we decided that "won't fix" was an appropriate decision.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
regression-from-stable-to-beta Performance or correctness regression from stable to beta. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-lang Relevant to the language team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

3 participants