Remove now-unnecessary blanket impl HIR check · rust-lang/rust@d90138b (original) (raw)

`@@ -101,27 +101,6 @@ impl<'a, 'tcx> BlanketImplFinder<'a, 'tcx> {

`

101

101

``

102

102

` cx.generated_synthetics.insert((ty, trait_def_id));

`

103

103

``

104

``

`-

let hir_imp = impl_def_id.as_local()

`

105

``

`-

.map(|local| cx.tcx.hir().expect_item(local))

`

106

``

`-

.and_then(|item| if let hir::ItemKind::Impl(i) = &item.kind {

`

107

``

`-

Some(i)

`

108

``

`-

} else {

`

109

``

`-

None

`

110

``

`-

});

`

111

``

-

112

``

`-

let items = match hir_imp {

`

113

``

`-

Some(imp) => imp

`

114

``

`-

.items

`

115

``

`-

.iter()

`

116

``

`-

.map(|ii| cx.tcx.hir().impl_item(ii.id).clean(cx))

`

117

``

`-

.collect::<Vec<_>>(),

`

118

``

`-

None => cx.tcx

`

119

``

`-

.associated_items(impl_def_id)

`

120

``

`-

.in_definition_order()

`

121

``

`-

.map(|x| x.clean(cx))

`

122

``

`-

.collect::<Vec<_>>(),

`

123

``

`-

};

`

124

``

-

125

104

` impls.push(Item {

`

126

105

`name: None,

`

127

106

`attrs: Default::default(),

`

`@@ -138,7 +117,11 @@ impl<'a, 'tcx> BlanketImplFinder<'a, 'tcx> {

`

138

117

`` // the post-inference trait_ref, as it's more accurate.

``

139

118

`trait_: Some(trait_ref.clean(cx)),

`

140

119

`for_: ty.clean(cx),

`

141

``

`-

items,

`

``

120

`+

items: cx.tcx

`

``

121

`+

.associated_items(impl_def_id)

`

``

122

`+

.in_definition_order()

`

``

123

`+

.map(|x| x.clean(cx))

`

``

124

`+

.collect::<Vec<_>>(),

`

142

125

`polarity: ty::ImplPolarity::Positive,

`

143

126

`kind: ImplKind::Blanket(box trait_ref.self_ty().clean(cx)),

`

144

127

`}),

`