rust/compiler
bors 1151ea6006 Auto merge of #109002 - michaelvanstraten:master, r=petrochenkov
Added byte position range for `proc_macro::Span`

Currently, the [`Debug`](https://doc.rust-lang.org/beta/proc_macro/struct.Span.html#impl-Debug-for-Span) implementation for [`proc_macro::Span`](https://doc.rust-lang.org/beta/proc_macro/struct.Span.html#) calls the debug function implemented in the trait implementation of `server::Span` for the type `Rustc` in the `rustc-expand` crate.

The current implementation, of the referenced function, looks something like this:
```rust
fn debug(&mut self, span: Self::Span) -> String {
    if self.ecx.ecfg.span_debug {
        format!("{:?}", span)
    } else {
        format!("{:?} bytes({}..{})", span.ctxt(), span.lo().0, span.hi().0)
    }
}
```

It returns the byte position of the [`Span`](https://doc.rust-lang.org/beta/proc_macro/struct.Span.html#) as an interpolated string.

Because this is currently the only way to get a spans position in the file, I might lead someone, who is interested in this information, to parsing this interpolated string back into a range of bytes, which I think is a very non-rusty way.

The proposed `position()`, method implemented in this PR, gives the ability to directly get this info.
It returns a [`std::ops::Range`](https://doc.rust-lang.org/std/ops/struct.Range.html#) wrapping the lowest and highest byte of the [`Span`](https://doc.rust-lang.org/beta/proc_macro/struct.Span.html#).

I put it behind the `proc_macro_span` feature flag because many of the other functions that have a similar footprint also are annotated with it, I don't actually know if this is right.

It would be great if somebody could take a look at this, thank you very much in advanced.
2023-04-21 10:47:27 +00:00
..
rustc fix link 2023-03-11 10:53:47 -06:00
rustc_abi Store hashes in special types so they aren't accidentally encoded as numbers 2023-04-18 10:52:47 -04:00
rustc_apfloat compiler: remove unnecessary imports and qualified paths 2022-12-10 18:45:34 +01:00
rustc_arena Allow clippy::from_mut_ref 2023-04-09 22:29:56 +02:00
rustc_ast Auto merge of #110393 - fee1-dead-contrib:rm-const-traits, r=oli-obk 2023-04-19 13:03:40 +00:00
rustc_ast_lowering Update comments in format args lowering. 2023-04-20 18:09:32 +02:00
rustc_ast_passes Auto merge of #110407 - Nilstrieb:fluent-macro, r=davidtwco 2023-04-19 08:26:47 +00:00
rustc_ast_pretty Remove .. from return type notation 2023-04-10 22:19:46 +00:00
rustc_attr Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_baked_icu_data update ICU4X to 1.1.0 2023-02-04 22:28:59 +01:00
rustc_borrowck Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_builtin_macros Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_codegen_cranelift Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_codegen_gcc Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_codegen_llvm Rollup merge of #110545 - WaffleLapkin:generic_arg_as_x, r=cjgillot 2023-04-20 14:36:54 +02:00
rustc_codegen_ssa Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_const_eval Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_data_structures deny(unsafe_op_in_unsafe_fn) in rustc_data_structures 2023-04-19 18:00:48 +00:00
rustc_driver Remove unneeded extern crate 2023-02-02 07:47:39 +01:00
rustc_driver_impl Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_error_codes Spelling - compiler 2023-04-17 16:09:18 -04:00
rustc_error_messages Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_errors Rollup merge of #110578 - bvanjoi:fix-issue-110547, r=jackh726 2023-04-21 06:44:30 +02:00
rustc_expand Auto merge of #109002 - michaelvanstraten:master, r=petrochenkov 2023-04-21 10:47:27 +00:00
rustc_feature Spelling - compiler 2023-04-17 16:09:18 -04:00
rustc_fluent_macro Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_fs_util Add try_canonicalize to rustc_fs_util and use it over fs::canonicalize 2023-03-16 21:50:23 +01:00
rustc_graphviz Fix uninlined_format_args for some compiler crates 2023-01-05 19:01:12 +01:00
rustc_hir Auto merge of #110061 - WaffleLapkin:duality_of_myself_and_this, r=cjgillot 2023-04-19 23:39:03 +00:00
rustc_hir_analysis Auto merge of #96840 - cjgillot:query-feed, r=oli-obk 2023-04-21 08:04:58 +00:00
rustc_hir_pretty Remove identity casts 2023-04-09 23:22:14 +02:00
rustc_hir_typeck Auto merge of #96840 - cjgillot:query-feed, r=oli-obk 2023-04-21 08:04:58 +00:00
rustc_incremental Auto merge of #110407 - Nilstrieb:fluent-macro, r=davidtwco 2023-04-19 08:26:47 +00:00
rustc_index Don't allocate it IndexVec::remove 2023-04-18 12:55:54 +00:00
rustc_infer Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_interface Auto merge of #96840 - cjgillot:query-feed, r=oli-obk 2023-04-21 08:04:58 +00:00
rustc_lexer Revert "Don't recover lifetimes/labels containing emojis as character literals" 2023-04-10 06:52:41 +00:00
rustc_lint Rollup merge of #110545 - WaffleLapkin:generic_arg_as_x, r=cjgillot 2023-04-20 14:36:54 +02:00
rustc_lint_defs Spelling - compiler 2023-04-17 16:09:18 -04:00
rustc_llvm Recognize AIX style archive kind 2023-04-19 11:10:47 +08:00
rustc_log Stabilize IsTerminal 2023-04-10 17:24:23 +09:00
rustc_macros Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_metadata Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_middle Auto merge of #96840 - cjgillot:query-feed, r=oli-obk 2023-04-21 08:04:58 +00:00
rustc_mir_build Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_mir_dataflow Auto merge of #110407 - Nilstrieb:fluent-macro, r=davidtwco 2023-04-19 08:26:47 +00:00
rustc_mir_transform Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_monomorphize Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_parse Auto merge of #110407 - Nilstrieb:fluent-macro, r=davidtwco 2023-04-19 08:26:47 +00:00
rustc_parse_format Fix typos in compiler 2023-04-10 22:02:52 +02:00
rustc_passes Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_plugin_impl Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_privacy Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
rustc_query_impl Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_query_system Add info for no_hash panic. 2023-04-20 18:56:12 +00:00
rustc_resolve Auto merge of #110407 - Nilstrieb:fluent-macro, r=davidtwco 2023-04-19 08:26:47 +00:00
rustc_serialize Remove f32 & f64 from MemDecoder/MemEncoder 2023-04-06 00:54:07 -07:00
rustc_session Auto merge of #109999 - m-ou-se:flatten-format-args, r=oli-obk 2023-04-20 23:19:19 +00:00
rustc_smir Add Call terminator to SMIR 2023-04-20 12:00:41 -03:00
rustc_span Rollup merge of #110548 - kpreid:span, r=WaffleLapkin 2023-04-20 17:03:25 +09:00
rustc_symbol_mangling Add GenericArgKind::as_{type,const,region} 2023-04-19 14:54:31 +00:00
rustc_target Rollup merge of #108795 - thomcc:x86_64h-target, r=wesleywiser 2023-04-20 17:59:53 +02:00
rustc_trait_selection Auto merge of #96840 - cjgillot:query-feed, r=oli-obk 2023-04-21 08:04:58 +00:00
rustc_traits Don't transmute &List<GenericArg> <-> &List<Ty> 2023-04-18 17:42:30 +00:00
rustc_transmute Erase regions when confirming transmutability candidate 2023-04-16 19:12:34 +00:00
rustc_ty_utils Remove WithOptconstParam. 2023-04-20 17:48:32 +00:00
rustc_type_ir Rollup merge of #110386 - nnethercote:clean-up-traversal-macros, r=lcnr 2023-04-17 18:13:35 +02:00