Change:
<!-- [31mICE[0m: Rustc '' 'error: internal compiler error: ForeignItem(ForeignItem { ident: lintme, kind: Fn(FnDecl { inputs: [Ty { hirid: HirId(DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme).1), kind: Path(Resolved(None, Path { span: 13:4 (), res: Def(Struct, DefId(0:13 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::Bar)), segments: [PathSegment { ident: Bar, hirid: HirId(DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme).9), res: Def(Struct, DefId(0:13 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::Bar)), args: Some(GenericArgs { args: [Type(Ty { hirid: HirId(DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme).2), kind: Path(Resolved(None, Path { span: 13:3 (), res: Err, segments: [PathSegment { ident: S, hirid: HirId(DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme).8), res: Err, args: Some(GenericArgs { args: [Const(ConstArg { value: AnonConst { hirid: HirId(DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme).3), defid: DefId(0:9 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme::{constant}), body: BodyId { hirid: HirId(DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme).4) } }, span: 13:2 (), isdesugaredfromeffects: false })], bindings: [], parenthesized: No, spanext: 13:3 () }), inferargs: false }] })), span: 13:3 () })], bindings: [], parenthesized: No, spanext: 13:4 () }), inferargs: false }] })), span: 13:4 () }], output: DefaultReturn( 13:5 ()), cvariadic: false, implicitself: None, lifetimeelisionallowed: false }, [x], Generics { params: [], predicates: [], haswhereclausepredicates: false, whereclausespan: 13:5 (), span: 10:19 () }), ownerid: DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme), span: 13:6 (), visspan: 10:8 () }) is not a valid scope for an opaque type item', 'error: internal compiler error: ForeignItem(ForeignItem { ident: lintme, kind: Fn(FnDecl { inputs: [Ty { hirid: HirId(DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme).1), kind: Path(Resolved(None, Path { span: 13:4 (), res: Def(Struct, DefId(0:13 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::Bar)), segments: [PathSegment { ident: Bar, hirid: HirId(DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme).9), res: Def(Struct, DefId(0:13 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::Bar)), args: Some(GenericArgs { args: [Type(Ty { hirid: HirId(DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme).2), kind: Path(Resolved(None, Path { span: 13:3 (), res: Err, segments: [PathSegment { ident: S, hirid: HirId(DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme).8), res: Err, args: Some(GenericArgs { args: [Const(ConstArg { value: AnonConst { hirid: HirId(DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme).3), defid: DefId(0:9 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme::{constant}), body: BodyId { hirid: HirId(DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme).4) } }, span: 13:2 (), isdesugaredfromeffects: false })], bindings: [], parenthesized: No, spanext: 13:3 () }), inferargs: false }] })), span: 13:3 () })], bindings: [], parenthesized: No, spanext: 13:4 () }), inferargs: false }] })), span: 13:4 () }], output: DefaultReturn( 13:5 ()), cvariadic: false, implicitself: None, lifetimeelisionallowed: false }, [x], Generics { params: [], predicates: [], haswhereclausepredicates: false, whereclausespan: 13:5 (), span: 10:19 () }), ownerid: DefId(0:8 ~ B9DF3250143BDECE894BA7C28AEDE89A3CB06D1B56B1195DF39AC2318DF08812[900c]::{extern}::lintme), span: 13:6 (), visspan: 10:8 () }) is not a valid scope for an opaque type item' File: --auto-reduced (treereduce-rust): original: Version information ` Command: <!-- Include a backtrace in the code block by setting in your environment. E.g. . --<details<summary<strongProgram output</strong</summary<p</p</details<!-- query stack: error: internal compiler error: ForeignItem(ForeignItem { ident: lintme, kind: Fn(FnDecl { inputs: [Ty { hirid: HirId(DefId(0:4 ~ mvce[5bf6]::{extern}::lintme).1), kind: Path(Resolved(None, Path { span: 9:10 (), res: Err, segments: [PathSegment { ident: Bar, hirid: HirId(DefId(0:4 ~ mvce[5bf6]::{extern}::lintme).8), res: Err, args: Some(GenericArgs { args: [Type(Ty { hirid: HirId(DefId(0:4 ~ mvce[5bf6]::{extern}::lintme).2), kind: Path(Resolved(None, Path { span: 8:14 (), res: Err, segments: [PathSegment { ident: S, hirid: HirId(DefId(0:4 ~ mvce[5bf6]::{extern}::lintme).7), res: Err, args: Some(GenericArgs { args: [Const(ConstArg { value: AnonConst { hirid: HirId(DefId(0:4 ~ mvce[5bf6]::{extern}::lintme).3), defid: DefId(0:5 ~ mvce[5bf6]::{extern}::lintme::{constant}), body: BodyId { hirid: HirId(DefId(0:4 ~ mvce[5bf6]::{extern}::lintme).4) } }, span: 7:18 (), isdesugaredfromeffects: false })], bindings: [], parenthesized: No, spanext: 8:14 () }), inferargs: false }] })), span: 8:14 () })], bindings: [], parenthesized: No, spanext: 9:10 () }), inferargs: false }] })), span: 9:10 () }], output: DefaultReturn( 10:6 ()), cvariadic: false, implicitself: None, lifetimeelisionallowed: false }, [x], Generics { params: [], predicates: [], haswhereclausepredicates: false, whereclausespan: 10:6 (), span: 2:19 () }), ownerid: DefId(0:4 ~ mvce[5bf6]::{extern}::lintme), span: 10:7 (), visspan: 2:8 () }) is not a valid scope for an opaque type item [typeofopaque] computing type of opaque [typeof] computing type of [checkmoditem_types] checking item types in top-level module [analysis] running analysis passes on this crate --
Regression in nightly-2019-08-04 (ouff) found 7 bors merge commits in the specified range commit[0] 2019-08-02: Auto merge of - jlevon:, r=alexcrichton commit[1] 2019-08-02: Auto merge of - Centril:rollup-x39p5ga, r=Centril commit[2] 2019-08-03: Auto merge of - varkor:trait-alias-impl-trait, r=Centril commit[3] 2019-08-03: Auto merge of - RalfJung:miritypedispatch_first, r=oli-obk commit[4] 2019-08-03: Auto merge of - Centril:rollup-h9t731z, r=Centril commit[5] 2019-08-03: Auto merge of - pietroalbini:move-azure-pipelines, r=Mark-Simulacrum commit[6] 2019-08-03: Auto merge of - Centril:sound-bind-by-move, r=matthewjasper ERROR: no CI builds available between and within last 167 days
Matthias, you should be proud of your fuzzer, this is some truly excellent horrifying code.

Discussion:
Node::Item(it) => locator.visit_item(it), Node::ImplItem(it) => locator.visit_impl_item(it), Node::TraitItem(it) => locator.visit_trait_item(it), <ins> Node::ForeignItem(it) => locator.visit_foreign_item(it), </ins> other => bug!("{:?} is not a valid scope for an opaque type item", other), } }

self.check(it.owner_id.def_id); intravisit::walk_trait_item(self, it); } <ins> fn visit_foreign_item(&mut self, it: &'tcx hir::ForeignItem<'tcx>) { trace!(?it.owner_id); assert_ne!(it.owner_id.def_id, self.def_id); // No need to call `check`, as we do not run borrowck on foreign items. intravisit::walk_foreign_item(self, it); } </ins> } pub(super) fn find_opaque_ty_constraints_for_rpit<'tcx>(

<ins> // Regression test for issue #119295. #![feature(type_alias_impl_trait)] type Bar<T> = T; type S<const A: usize> = [i32; A]; extern "C" { pub fn lint_me( x: Bar< S< { //~ ERROR mismatched types type B<Z> = impl Sized; //~^ ERROR unconstrained opaque type }, >, >, ); } fn main() {} </ins>

<ins> error: unconstrained opaque type --> $DIR/nested-in-anon-const.rs:13:33 | LL |                     type B<Z> = impl Sized; |                                 ^^^^^^^^^^ | = note: `B` must be used in combination with a concrete type within the same item error[E0308]: mismatched types --> $DIR/nested-in-anon-const.rs:12:17 | LL | /                 { LL | |                     type B<Z> = impl Sized; LL | | LL | |                 }, | |_________________^ expected `usize`, found `()` error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0308`. </ins>