-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
ICE with type_alias_impl_trait: ty_is_local invoked on unexpected type #66580
Comments
Initial reduction (I cannot reduce more): #![feature(type_alias_impl_trait)]
type Closure = impl FnOnce();
fn closure() -> Closure {
|| {}
}
struct Wrap<T> { f: T }
impl Wrap<Closure> {}
impl<T> Wrap<T> {} |
cc @Aaron1011 @nikomatsakis (suggested by git blame) |
Something appears to have gone horribly wrong with PR #63934. In my initial commit to the PR, I make coherence checking for opaque types check the underlying type to determine whether the opaque type is local or not. After some feedback from @nikomatsakis, I changed the PR to always treat opaque types as foreign. This is what was supposed to get merged. I then added some additional tests, force-pushing due to (I think) a rebase. However, I appear to have accidentally switched back to the orignal version of the PR. It's hard to tell from looking at the first push, because I added a new commit (adding the tests). However, the parent of 4eb3d8d is not a commit with the always-foreign behavior - instead, it's a commit with the content of the original PR. Effectively, an earlier version of the PR got merged, along with some tests intended to go along with the later version of the PR (but which also happened. I sincerely apologize for this mistake. I'm opening a PR with the proper, approved fix. |
I've opened #66590 |
@rustbot modify labels: -requires-nightly ICE also appears on stable (also on 1.38) and beta without feature flag. Backport worthy? |
This code:
(playground)
Causes an ICE.
backtrace
The text was updated successfully, but these errors were encountered: