Change:
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), } }

Discussion:
<!-- [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.