-
Notifications
You must be signed in to change notification settings - Fork 13k
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
dead_code false positive for const used in definition of tuple struct #56281
Comments
I have not been able to get anywhere with this issue. I did some experiments in https://github.com/rust-lang/rust/blob/master/src/librustc/middle/dead.rs and I believe the issue is that using a tuple struct's constructor will only mark the constructor as used (which has a different DefId and NodeId than the tuple struct item). This guess has a further datapoint than my reading: Adding The reason that we are not getting a dead code warning about rust/src/librustc/middle/dead.rs Lines 467 to 468 in 041254b
I have not been able to figure out a way to go from a constructor back to its item, there only seems to be code for the other way around. We might be able to hack it by getting the function signature of the item and checking the return type, but in order to do that, we'd need to know for sure that it's a tuple struct constructor. Alternatively we can just build up a map from constructors to items by filling it in whenever we encounter a tuple struct item. ok enough rubber-ducking. I'm gonna try the sentence above now. |
Mark tuple structs as live if their constructors are used fixes rust-lang#56281
Mark tuple structs as live if their constructors are used fixes rust-lang#56281
Mark tuple structs as live if their constructors are used fixes rust-lang#56281
Mark tuple structs as live if their constructors are used fixes rust-lang#56281
Mark tuple structs as live if their constructors are used fixes rust-lang#56281
If the struct is a record struct with a named field, the false positive doesn't trigger.
The text was updated successfully, but these errors were encountered: