@@ -245,7 +245,7 @@ struct DiagnosticInfo<'a> {
245
245
item : & ' a Item ,
246
246
dox : & ' a str ,
247
247
ori_link : & ' a str ,
248
- link_range : Option < Range < usize > > ,
248
+ link_range : Range < usize > ,
249
249
}
250
250
251
251
#[ derive( Clone , Debug , Hash ) ]
@@ -982,7 +982,7 @@ impl LinkCollector<'_, '_> {
982
982
parent_node : Option < DefId > ,
983
983
krate : CrateNum ,
984
984
ori_link : String ,
985
- link_range : Option < Range < usize > > ,
985
+ link_range : Range < usize > ,
986
986
) -> Option < ItemLink > {
987
987
trace ! ( "considering link '{}'" , ori_link) ;
988
988
@@ -1628,7 +1628,7 @@ fn report_diagnostic(
1628
1628
msg : & str ,
1629
1629
item : & Item ,
1630
1630
dox : & str ,
1631
- link_range : & Option < Range < usize > > ,
1631
+ link_range : & Range < usize > ,
1632
1632
decorate : impl FnOnce ( & mut DiagnosticBuilder < ' _ > , Option < rustc_span:: Span > ) ,
1633
1633
) {
1634
1634
let hir_id = match cx. as_local_hir_id ( item. def_id ) {
@@ -1646,31 +1646,27 @@ fn report_diagnostic(
1646
1646
cx. tcx . struct_span_lint_hir ( lint, hir_id, sp, |lint| {
1647
1647
let mut diag = lint. build ( msg) ;
1648
1648
1649
- let span = link_range
1650
- . as_ref ( )
1651
- . and_then ( |range| super :: source_span_for_markdown_range ( cx, dox, range, attrs) ) ;
1649
+ let span = super :: source_span_for_markdown_range ( cx, dox, link_range, attrs) ;
1652
1650
1653
- if let Some ( link_range) = link_range {
1654
- if let Some ( sp) = span {
1655
- diag. set_span ( sp) ;
1656
- } else {
1657
- // blah blah blah\nblah\nblah [blah] blah blah\nblah blah
1658
- // ^ ~~~~
1659
- // | link_range
1660
- // last_new_line_offset
1661
- let last_new_line_offset = dox[ ..link_range. start ] . rfind ( '\n' ) . map_or ( 0 , |n| n + 1 ) ;
1662
- let line = dox[ last_new_line_offset..] . lines ( ) . next ( ) . unwrap_or ( "" ) ;
1663
-
1664
- // Print the line containing the `link_range` and manually mark it with '^'s.
1665
- diag. note ( & format ! (
1666
- "the link appears in this line:\n \n {line}\n \
1651
+ if let Some ( sp) = span {
1652
+ diag. set_span ( sp) ;
1653
+ } else {
1654
+ // blah blah blah\nblah\nblah [blah] blah blah\nblah blah
1655
+ // ^ ~~~~
1656
+ // | link_range
1657
+ // last_new_line_offset
1658
+ let last_new_line_offset = dox[ ..link_range. start ] . rfind ( '\n' ) . map_or ( 0 , |n| n + 1 ) ;
1659
+ let line = dox[ last_new_line_offset..] . lines ( ) . next ( ) . unwrap_or ( "" ) ;
1660
+
1661
+ // Print the line containing the `link_range` and manually mark it with '^'s.
1662
+ diag. note ( & format ! (
1663
+ "the link appears in this line:\n \n {line}\n \
1667
1664
{indicator: <before$}{indicator:^<found$}",
1668
- line = line,
1669
- indicator = "" ,
1670
- before = link_range. start - last_new_line_offset,
1671
- found = link_range. len( ) ,
1672
- ) ) ;
1673
- }
1665
+ line = line,
1666
+ indicator = "" ,
1667
+ before = link_range. start - last_new_line_offset,
1668
+ found = link_range. len( ) ,
1669
+ ) ) ;
1674
1670
}
1675
1671
1676
1672
decorate ( & mut diag, span) ;
@@ -1690,7 +1686,7 @@ fn resolution_failure(
1690
1686
path_str : & str ,
1691
1687
disambiguator : Option < Disambiguator > ,
1692
1688
dox : & str ,
1693
- link_range : Option < Range < usize > > ,
1689
+ link_range : Range < usize > ,
1694
1690
kinds : SmallVec < [ ResolutionFailure < ' _ > ; 3 ] > ,
1695
1691
) {
1696
1692
let tcx = collector. cx . tcx ;
@@ -1914,7 +1910,7 @@ fn anchor_failure(
1914
1910
item : & Item ,
1915
1911
path_str : & str ,
1916
1912
dox : & str ,
1917
- link_range : Option < Range < usize > > ,
1913
+ link_range : Range < usize > ,
1918
1914
failure : AnchorFailure ,
1919
1915
) {
1920
1916
let msg = match failure {
@@ -1939,7 +1935,7 @@ fn ambiguity_error(
1939
1935
item : & Item ,
1940
1936
path_str : & str ,
1941
1937
dox : & str ,
1942
- link_range : Option < Range < usize > > ,
1938
+ link_range : Range < usize > ,
1943
1939
candidates : Vec < Res > ,
1944
1940
) {
1945
1941
let mut msg = format ! ( "`{}` is " , path_str) ;
@@ -1988,13 +1984,12 @@ fn suggest_disambiguator(
1988
1984
path_str : & str ,
1989
1985
dox : & str ,
1990
1986
sp : Option < rustc_span:: Span > ,
1991
- link_range : & Option < Range < usize > > ,
1987
+ link_range : & Range < usize > ,
1992
1988
) {
1993
1989
let suggestion = disambiguator. suggestion ( ) ;
1994
1990
let help = format ! ( "to link to the {}, {}" , disambiguator. descr( ) , suggestion. descr( ) ) ;
1995
1991
1996
1992
if let Some ( sp) = sp {
1997
- let link_range = link_range. as_ref ( ) . expect ( "must have a link range if we have a span" ) ;
1998
1993
let msg = if dox. bytes ( ) . nth ( link_range. start ) == Some ( b'`' ) {
1999
1994
format ! ( "`{}`" , suggestion. as_help( path_str) )
2000
1995
} else {
@@ -2013,7 +2008,7 @@ fn privacy_error(
2013
2008
item : & Item ,
2014
2009
path_str : & str ,
2015
2010
dox : & str ,
2016
- link_range : Option < Range < usize > > ,
2011
+ link_range : Range < usize > ,
2017
2012
) {
2018
2013
let sym;
2019
2014
let item_name = match item. name {
0 commit comments