@@ -336,7 +336,6 @@ where
336336 | ty:: Uint ( ..)
337337 | ty:: Float ( ..)
338338 | ty:: Str
339- | ty:: FnDef ( ..)
340339 | ty:: Pat ( ..)
341340 | ty:: FnPtr ( ..)
342341 | ty:: Array ( ..)
@@ -403,7 +402,6 @@ where
403402 // implement, so we don't use this behavior.
404403 // Addendum: Moreover, revealing the underlying type is likely to cause cycle
405404 // errors as we rely on coherence / the specialization graph during typeck.
406-
407405 self . found_non_local_ty ( ty)
408406 }
409407 }
@@ -435,31 +433,14 @@ where
435433 }
436434 }
437435 ty:: Error ( _) => ControlFlow :: Break ( OrphanCheckEarlyExit :: LocalTy ( ty) ) ,
438- ty:: Closure ( did, ..) => {
439- if self . def_id_is_local ( did) {
440- ControlFlow :: Break ( OrphanCheckEarlyExit :: LocalTy ( ty) )
441- } else {
442- self . found_non_local_ty ( ty)
443- }
444- }
445- ty:: CoroutineClosure ( did, ..) => {
446- if self . def_id_is_local ( did) {
447- ControlFlow :: Break ( OrphanCheckEarlyExit :: LocalTy ( ty) )
448- } else {
449- self . found_non_local_ty ( ty)
450- }
451- }
452- ty:: Coroutine ( did, ..) => {
453- if self . def_id_is_local ( did) {
454- ControlFlow :: Break ( OrphanCheckEarlyExit :: LocalTy ( ty) )
455- } else {
456- self . found_non_local_ty ( ty)
457- }
436+
437+ ty:: FnDef ( ..)
438+ | ty:: Closure ( ..)
439+ | ty:: CoroutineClosure ( ..)
440+ | ty:: Coroutine ( ..)
441+ | ty:: CoroutineWitness ( ..) => {
442+ unreachable ! ( "unnameable type in coherence: {ty:?}" ) ;
458443 }
459- // This should only be created when checking whether we have to check whether some
460- // auto trait impl applies. There will never be multiple impls, so we can just
461- // act as if it were a local type here.
462- ty:: CoroutineWitness ( ..) => ControlFlow :: Break ( OrphanCheckEarlyExit :: LocalTy ( ty) ) ,
463444 } ;
464445 // A bit of a hack, the `OrphanChecker` is only used to visit a `TraitRef`, so
465446 // the first type we visit is always the self type.
0 commit comments