Rollup merge of #40369 - petrochenkov:segspan, r=eddyb
Give spans to individual path segments in AST And use these spans in path resolution diagnostics. The spans are spans of identifiers in segments, not whole segments. I'm not sure what spans are more useful in general, but identifier spans are a better fit for resolve errors. HIR still doesn't have spans. Fixes https://github.com/rust-lang/rust/pull/38927#discussion_r95336667 https://github.com/rust-lang/rust/pull/38890#issuecomment-271731008 r? @nrc @eddyb
This commit is contained in:
@@ -434,8 +434,9 @@ pub fn noop_fold_usize<T: Folder>(i: usize, _: &mut T) -> usize {
|
||||
|
||||
pub fn noop_fold_path<T: Folder>(Path { segments, span }: Path, fld: &mut T) -> Path {
|
||||
Path {
|
||||
segments: segments.move_map(|PathSegment {identifier, parameters}| PathSegment {
|
||||
segments: segments.move_map(|PathSegment {identifier, span, parameters}| PathSegment {
|
||||
identifier: fld.fold_ident(identifier),
|
||||
span: fld.new_span(span),
|
||||
parameters: parameters.map(|ps| ps.map(|ps| fld.fold_path_parameters(ps))),
|
||||
}),
|
||||
span: fld.new_span(span)
|
||||
|
||||
Reference in New Issue
Block a user