]> git.lizzy.rs Git - rust.git/commit
Rollup merge of #106248 - dtolnay:revertupcastlint, r=jackh726
authorMichael Goulet <michael@errs.io>
Sat, 31 Dec 2022 05:26:34 +0000 (21:26 -0800)
committerGitHub <noreply@github.com>
Sat, 31 Dec 2022 05:26:34 +0000 (21:26 -0800)
commit5b74a33b8d03da897553b42270cdab541d28b33f
tree416bf3006b05d1a7ba7d7067c9d4542a5ef1cd43
parentfad73392dc8659f34385f418c8f936bafa562dfb
parent4271ed48e90d40eb42030e153d3c7b403789c5be
Rollup merge of #106248 - dtolnay:revertupcastlint, r=jackh726

Revert "Implement allow-by-default `multiple_supertrait_upcastable` lint"

This is a clean revert of #105484.

I confirmed that reverting that PR fixes the regression reported in #106247. ~~I can't say I understand what this code is doing, but maybe it can be re-landed with a different implementation.~~ **Edit:** https://github.com/rust-lang/rust/issues/106247#issuecomment-1367174384 has an explanation of why #105484 ends up surfacing spurious `where_clause_object_safety` errors. The implementation of `where_clause_object_safety` assumes we only check whether a trait is object safe when somebody actually uses that trait with `dyn`. However the implementation of `multiple_supertrait_upcastable` added in the problematic PR involves checking *every* trait for whether it is object-safe.

FYI `@nbdd0121` `@compiler-errors`
library/alloc/src/lib.rs
library/core/src/lib.rs