@@ -15,7 +15,6 @@ use std::iter::{self, once};
15
15
use itertools::Either;
16
16
use rustc_abi::ExternAbi;
17
17
use rustc_attr_parsing::{ConstStability, StabilityLevel, StableSince};
18
- use rustc_data_structures::captures::Captures;
19
18
use rustc_data_structures::fx::FxHashSet;
20
19
use rustc_hir as hir;
21
20
use rustc_hir::def::DefKind;
@@ -41,10 +40,10 @@ pub(crate) fn write_str(s: &mut String, f: fmt::Arguments<'_>) {
41
40
s.write_fmt(f).unwrap();
42
41
}
43
42
44
- pub(crate) fn print_generic_bounds<'a, 'tcx: 'a> (
45
- bounds: &'a [clean::GenericBound],
46
- cx: &'a Context<'tcx >,
47
- ) -> impl Display + 'a + Captures<'tcx> {
43
+ pub(crate) fn print_generic_bounds(
44
+ bounds: &[clean::GenericBound],
45
+ cx: &Context<'_ >,
46
+ ) -> impl Display {
48
47
fmt::from_fn(move |f| {
49
48
let mut bounds_dup = FxHashSet::default();
50
49
@@ -57,10 +56,7 @@ pub(crate) fn print_generic_bounds<'a, 'tcx: 'a>(
57
56
}
58
57
59
58
impl clean::GenericParamDef {
60
- pub(crate) fn print<'a, 'tcx: 'a>(
61
- &'a self,
62
- cx: &'a Context<'tcx>,
63
- ) -> impl Display + 'a + Captures<'tcx> {
59
+ pub(crate) fn print(&self, cx: &Context<'_>) -> impl Display {
64
60
fmt::from_fn(move |f| match &self.kind {
65
61
clean::GenericParamDefKind::Lifetime { outlives } => {
66
62
write!(f, "{}", self.name)?;
@@ -107,10 +103,7 @@ impl clean::GenericParamDef {
107
103
}
108
104
109
105
impl clean::Generics {
110
- pub(crate) fn print<'a, 'tcx: 'a>(
111
- &'a self,
112
- cx: &'a Context<'tcx>,
113
- ) -> impl Display + 'a + Captures<'tcx> {
106
+ pub(crate) fn print(&self, cx: &Context<'_>) -> impl Display {
114
107
fmt::from_fn(move |f| {
115
108
let mut real_params = self.params.iter().filter(|p| !p.is_synthetic_param()).peekable();
116
109
if real_params.peek().is_none() {
@@ -134,10 +127,7 @@ pub(crate) enum Ending {
134
127
NoNewline,
135
128
}
136
129
137
- fn print_where_predicate<'a, 'tcx: 'a>(
138
- predicate: &'a clean::WherePredicate,
139
- cx: &'a Context<'tcx>,
140
- ) -> impl Display + 'a + Captures<'tcx> {
130
+ fn print_where_predicate(predicate: &clean::WherePredicate, cx: &Context<'_>) -> impl Display {
141
131
fmt::from_fn(move |f| {
142
132
match predicate {
143
133
clean::WherePredicate::BoundPredicate { ty, bounds, bound_params } => {
@@ -173,12 +163,12 @@ fn print_where_predicate<'a, 'tcx: 'a>(
173
163
/// * The Generics from which to emit a where-clause.
174
164
/// * The number of spaces to indent each line with.
175
165
/// * Whether the where-clause needs to add a comma and newline after the last bound.
176
- pub(crate) fn print_where_clause<'a, 'tcx: 'a> (
177
- gens: &'a clean::Generics,
178
- cx: &'a Context<'tcx >,
166
+ pub(crate) fn print_where_clause(
167
+ gens: &clean::Generics,
168
+ cx: &Context<'_ >,
179
169
indent: usize,
180
170
ending: Ending,
181
- ) -> Option<impl Display + 'a + Captures<'tcx> > {
171
+ ) -> Option<impl Display> {
182
172
if gens.where_predicates.is_empty() {
183
173
return None;
184
174
}
@@ -250,13 +240,13 @@ pub(crate) fn print_where_clause<'a, 'tcx: 'a>(
250
240
}
251
241
252
242
impl clean::Lifetime {
253
- pub(crate) fn print(&self) -> impl Display + '_ {
243
+ pub(crate) fn print(&self) -> impl Display {
254
244
self.0.as_str()
255
245
}
256
246
}
257
247
258
248
impl clean::ConstantKind {
259
- pub(crate) fn print(&self, tcx: TyCtxt<'_>) -> impl Display + '_ {
249
+ pub(crate) fn print(&self, tcx: TyCtxt<'_>) -> impl Display {
260
250
let expr = self.expr(tcx);
261
251
fmt::from_fn(move |f| {
262
252
if f.alternate() { f.write_str(&expr) } else { write!(f, "{}", Escape(&expr)) }
@@ -265,7 +255,7 @@ impl clean::ConstantKind {
265
255
}
266
256
267
257
impl clean::PolyTrait {
268
- fn print<'a, 'tcx: 'a>(&'a self, cx: &'a Context<'tcx >) -> impl Display + 'a + Captures<'tcx> {
258
+ fn print(& self, cx: &Context<'_ >) -> impl Display {
269
259
fmt::from_fn(move |f| {
270
260
print_higher_ranked_params_with_space(&self.generic_params, cx, "for").fmt(f)?;
271
261
self.trait_.print(cx).fmt(f)
@@ -274,10 +264,7 @@ impl clean::PolyTrait {
274
264
}
275
265
276
266
impl clean::GenericBound {
277
- pub(crate) fn print<'a, 'tcx: 'a>(
278
- &'a self,
279
- cx: &'a Context<'tcx>,
280
- ) -> impl Display + 'a + Captures<'tcx> {
267
+ pub(crate) fn print(&self, cx: &Context<'_>) -> impl Display {
281
268
fmt::from_fn(move |f| match self {
282
269
clean::GenericBound::Outlives(lt) => write!(f, "{}", lt.print()),
283
270
clean::GenericBound::TraitBound(ty, modifiers) => {
@@ -304,7 +291,7 @@ impl clean::GenericBound {
304
291
}
305
292
306
293
impl clean::GenericArgs {
307
- fn print<'a, 'tcx: 'a>(&'a self, cx: &'a Context<'tcx >) -> impl Display + 'a + Captures<'tcx> {
294
+ fn print(& self, cx: &Context<'_ >) -> impl Display {
308
295
fmt::from_fn(move |f| {
309
296
match self {
310
297
clean::GenericArgs::AngleBracketed { args, constraints } => {
@@ -809,11 +796,11 @@ fn primitive_link_fragment(
809
796
Ok(())
810
797
}
811
798
812
- fn tybounds<'a, 'tcx: 'a> (
813
- bounds: &'a [clean::PolyTrait],
814
- lt: &'a Option<clean::Lifetime>,
815
- cx: &'a Context<'tcx >,
816
- ) -> impl Display + 'a + Captures<'tcx> {
799
+ fn tybounds(
800
+ bounds: &[clean::PolyTrait],
801
+ lt: &Option<clean::Lifetime>,
802
+ cx: &Context<'_ >,
803
+ ) -> impl Display {
817
804
fmt::from_fn(move |f| {
818
805
bounds.iter().map(|bound| bound.print(cx)).joined(" + ", f)?;
819
806
if let Some(lt) = lt {
@@ -825,11 +812,11 @@ fn tybounds<'a, 'tcx: 'a>(
825
812
})
826
813
}
827
814
828
- fn print_higher_ranked_params_with_space<'a, 'tcx: 'a> (
829
- params: &'a [clean::GenericParamDef],
830
- cx: &'a Context<'tcx >,
815
+ fn print_higher_ranked_params_with_space(
816
+ params: &[clean::GenericParamDef],
817
+ cx: &Context<'_ >,
831
818
keyword: &'static str,
832
- ) -> impl Display + 'a + Captures<'tcx> {
819
+ ) -> impl Display {
833
820
fmt::from_fn(move |f| {
834
821
if !params.is_empty() {
835
822
f.write_str(keyword)?;
@@ -841,11 +828,7 @@ fn print_higher_ranked_params_with_space<'a, 'tcx: 'a>(
841
828
})
842
829
}
843
830
844
- pub(crate) fn anchor<'a: 'cx, 'cx>(
845
- did: DefId,
846
- text: Symbol,
847
- cx: &'cx Context<'a>,
848
- ) -> impl Display + Captures<'a> + 'cx {
831
+ pub(crate) fn anchor(did: DefId, text: Symbol, cx: &Context<'_>) -> impl Display {
849
832
fmt::from_fn(move |f| {
850
833
let parts = href(did, cx);
851
834
if let Ok((url, short_ty, fqp)) = parts {
@@ -1121,29 +1104,19 @@ fn fmt_type(
1121
1104
}
1122
1105
1123
1106
impl clean::Type {
1124
- pub(crate) fn print<'b, 'a: 'b, 'tcx: 'a>(
1125
- &'a self,
1126
- cx: &'a Context<'tcx>,
1127
- ) -> impl Display + 'b + Captures<'tcx> {
1107
+ pub(crate) fn print(&self, cx: &Context<'_>) -> impl Display {
1128
1108
fmt::from_fn(move |f| fmt_type(self, f, false, cx))
1129
1109
}
1130
1110
}
1131
1111
1132
1112
impl clean::Path {
1133
- pub(crate) fn print<'b, 'a: 'b, 'tcx: 'a>(
1134
- &'a self,
1135
- cx: &'a Context<'tcx>,
1136
- ) -> impl Display + 'b + Captures<'tcx> {
1113
+ pub(crate) fn print(&self, cx: &Context<'_>) -> impl Display {
1137
1114
fmt::from_fn(move |f| resolved_path(f, self.def_id(), self, false, false, cx))
1138
1115
}
1139
1116
}
1140
1117
1141
1118
impl clean::Impl {
1142
- pub(crate) fn print<'a, 'tcx: 'a>(
1143
- &'a self,
1144
- use_absolute: bool,
1145
- cx: &'a Context<'tcx>,
1146
- ) -> impl Display + 'a + Captures<'tcx> {
1119
+ pub(crate) fn print(&self, use_absolute: bool, cx: &Context<'_>) -> impl Display {
1147
1120
fmt::from_fn(move |f| {
1148
1121
f.write_str("impl")?;
1149
1122
self.generics.print(cx).fmt(f)?;
@@ -1182,12 +1155,12 @@ impl clean::Impl {
1182
1155
print_where_clause(&self.generics, cx, 0, Ending::Newline).maybe_display().fmt(f)
1183
1156
})
1184
1157
}
1185
- fn print_type<'a, 'tcx: 'a> (
1158
+ fn print_type(
1186
1159
&self,
1187
1160
type_: &clean::Type,
1188
1161
f: &mut fmt::Formatter<'_>,
1189
1162
use_absolute: bool,
1190
- cx: &'a Context<'tcx >,
1163
+ cx: &Context<'_ >,
1191
1164
) -> Result<(), fmt::Error> {
1192
1165
if let clean::Type::Tuple(types) = type_
1193
1166
&& let [clean::Type::Generic(name)] = &types[..]
@@ -1258,10 +1231,7 @@ impl clean::Impl {
1258
1231
}
1259
1232
1260
1233
impl clean::Arguments {
1261
- pub(crate) fn print<'a, 'tcx: 'a>(
1262
- &'a self,
1263
- cx: &'a Context<'tcx>,
1264
- ) -> impl Display + 'a + Captures<'tcx> {
1234
+ pub(crate) fn print(&self, cx: &Context<'_>) -> impl Display {
1265
1235
fmt::from_fn(move |f| {
1266
1236
self.values
1267
1237
.iter()
@@ -1301,10 +1271,7 @@ impl Display for Indent {
1301
1271
}
1302
1272
1303
1273
impl clean::FnDecl {
1304
- pub(crate) fn print<'b, 'a: 'b, 'tcx: 'a>(
1305
- &'a self,
1306
- cx: &'a Context<'tcx>,
1307
- ) -> impl Display + 'b + Captures<'tcx> {
1274
+ pub(crate) fn print(&self, cx: &Context<'_>) -> impl Display {
1308
1275
fmt::from_fn(move |f| {
1309
1276
let ellipsis = if self.c_variadic { ", ..." } else { "" };
1310
1277
if f.alternate() {
@@ -1333,12 +1300,12 @@ impl clean::FnDecl {
1333
1300
/// are preserved.
1334
1301
/// * `indent`: The number of spaces to indent each successive line with, if line-wrapping is
1335
1302
/// necessary.
1336
- pub(crate) fn full_print<'a, 'tcx: 'a> (
1337
- &'a self,
1303
+ pub(crate) fn full_print(
1304
+ &self,
1338
1305
header_len: usize,
1339
1306
indent: usize,
1340
- cx: &'a Context<'tcx >,
1341
- ) -> impl Display + 'a + Captures<'tcx> {
1307
+ cx: &Context<'_ >,
1308
+ ) -> impl Display {
1342
1309
fmt::from_fn(move |f| {
1343
1310
// First, generate the text form of the declaration, with no line wrapping, and count the bytes.
1344
1311
let mut counter = WriteCounter(0);
@@ -1420,10 +1387,7 @@ impl clean::FnDecl {
1420
1387
self.print_output(cx).fmt(f)
1421
1388
}
1422
1389
1423
- fn print_output<'a, 'tcx: 'a>(
1424
- &'a self,
1425
- cx: &'a Context<'tcx>,
1426
- ) -> impl Display + 'a + Captures<'tcx> {
1390
+ fn print_output(&self, cx: &Context<'_>) -> impl Display {
1427
1391
fmt::from_fn(move |f| match &self.output {
1428
1392
clean::Tuple(tys) if tys.is_empty() => Ok(()),
1429
1393
ty if f.alternate() => {
@@ -1434,10 +1398,7 @@ impl clean::FnDecl {
1434
1398
}
1435
1399
}
1436
1400
1437
- pub(crate) fn visibility_print_with_space<'a, 'tcx: 'a>(
1438
- item: &clean::Item,
1439
- cx: &'a Context<'tcx>,
1440
- ) -> impl Display + 'a + Captures<'tcx> {
1401
+ pub(crate) fn visibility_print_with_space(item: &clean::Item, cx: &Context<'_>) -> impl Display {
1441
1402
use std::fmt::Write as _;
1442
1403
let vis: Cow<'static, str> = match item.visibility(cx.tcx()) {
1443
1404
None => "".into(),
@@ -1546,10 +1507,7 @@ pub(crate) fn print_constness_with_space(
1546
1507
}
1547
1508
1548
1509
impl clean::Import {
1549
- pub(crate) fn print<'a, 'tcx: 'a>(
1550
- &'a self,
1551
- cx: &'a Context<'tcx>,
1552
- ) -> impl Display + 'a + Captures<'tcx> {
1510
+ pub(crate) fn print(&self, cx: &Context<'_>) -> impl Display {
1553
1511
fmt::from_fn(move |f| match self.kind {
1554
1512
clean::ImportKind::Simple(name) => {
1555
1513
if name == self.source.path.last() {
@@ -1570,10 +1528,7 @@ impl clean::Import {
1570
1528
}
1571
1529
1572
1530
impl clean::ImportSource {
1573
- pub(crate) fn print<'a, 'tcx: 'a>(
1574
- &'a self,
1575
- cx: &'a Context<'tcx>,
1576
- ) -> impl Display + 'a + Captures<'tcx> {
1531
+ pub(crate) fn print(&self, cx: &Context<'_>) -> impl Display {
1577
1532
fmt::from_fn(move |f| match self.did {
1578
1533
Some(did) => resolved_path(f, did, &self.path, true, false, cx),
1579
1534
_ => {
@@ -1593,10 +1548,7 @@ impl clean::ImportSource {
1593
1548
}
1594
1549
1595
1550
impl clean::AssocItemConstraint {
1596
- pub(crate) fn print<'a, 'tcx: 'a>(
1597
- &'a self,
1598
- cx: &'a Context<'tcx>,
1599
- ) -> impl Display + 'a + Captures<'tcx> {
1551
+ pub(crate) fn print(&self, cx: &Context<'_>) -> impl Display {
1600
1552
fmt::from_fn(move |f| {
1601
1553
f.write_str(self.assoc.name.as_str())?;
1602
1554
self.assoc.args.print(cx).fmt(f)?;
@@ -1627,15 +1579,12 @@ pub(crate) fn print_abi_with_space(abi: ExternAbi) -> impl Display {
1627
1579
})
1628
1580
}
1629
1581
1630
- pub(crate) fn print_default_space<'a> (v: bool) -> &'a str {
1582
+ pub(crate) fn print_default_space(v: bool) -> &'static str {
1631
1583
if v { "default " } else { "" }
1632
1584
}
1633
1585
1634
1586
impl clean::GenericArg {
1635
- pub(crate) fn print<'a, 'tcx: 'a>(
1636
- &'a self,
1637
- cx: &'a Context<'tcx>,
1638
- ) -> impl Display + 'a + Captures<'tcx> {
1587
+ pub(crate) fn print(&self, cx: &Context<'_>) -> impl Display {
1639
1588
fmt::from_fn(move |f| match self {
1640
1589
clean::GenericArg::Lifetime(lt) => lt.print().fmt(f),
1641
1590
clean::GenericArg::Type(ty) => ty.print(cx).fmt(f),
@@ -1646,10 +1595,7 @@ impl clean::GenericArg {
1646
1595
}
1647
1596
1648
1597
impl clean::Term {
1649
- pub(crate) fn print<'a, 'tcx: 'a>(
1650
- &'a self,
1651
- cx: &'a Context<'tcx>,
1652
- ) -> impl Display + 'a + Captures<'tcx> {
1598
+ pub(crate) fn print(&self, cx: &Context<'_>) -> impl Display {
1653
1599
fmt::from_fn(move |f| match self {
1654
1600
clean::Term::Type(ty) => ty.print(cx).fmt(f),
1655
1601
clean::Term::Constant(ct) => ct.print(cx.tcx()).fmt(f),
0 commit comments