@Matthew Jasper left various nits on #51729, but it looks really lovely. Think you'll be able to add the comments etc + rebase? (I'm asking because I'd rather land it than wait, if that's gonna take a while — but I guess it needs rebase either way)
re: your last comment, I'm comparing scopes since the alternative was comparing spans that were only used for that. I think I might change back to comparing spans, since I think I'll need them later.
re: first comment (creating a fake temporary to ensure things are Sized). The temporary is needed to avoid an ICE from box *x where x: Box<[_]>, I don't think the linked PR changes that.