rust/src/librustc_parse
Dylan DPC 84b9145076
Rollup merge of #73182 - Aaron1011:feature/call-fn-span, r=matthewjasper
Track span of function in method calls, and use this in #[track_caller]

Fixes #69977

When we parse a chain of method calls like `foo.a().b().c()`, each
`MethodCallExpr` gets assigned a span that starts at the beginning of
the call chain (`foo`). While this is useful for diagnostics, it means
that `Location::caller` will return the same location for every call
in a call chain.

This PR makes us separately record the span of the function name and
arguments for a method call (e.g. `b()` in `foo.a().b().c()`). This
`Span` is passed through HIR lowering and MIR building to
`TerminatorKind::Call`, where it is used in preference to
`Terminator.source_info.span` when determining `Location::caller`.

This new span is also useful for diagnostics where we want to emphasize
a particular method call - for an example, see
https://github.com/rust-lang/rust/pull/72389#discussion_r436035990
2020-06-11 19:04:16 +02:00
..
lexer Rollup merge of #73172 - matthiaskrgr:cl9ppy, r=Dylan-DPC 2020-06-11 13:16:04 +02:00
parser Rollup merge of #73182 - Aaron1011:feature/call-fn-span, r=matthewjasper 2020-06-11 19:04:16 +02:00
Cargo.toml Revert "Fix rebase fallout" 2020-05-29 00:19:06 -04:00
lib.rs Fix missing import lost in revert 2020-05-29 01:11:00 -04:00
validate_attr.rs {rustc_parse -> rustc_expand}::config 2020-03-18 15:08:25 +01:00