diff options
| author | David Wood <david@davidtw.co> | 2019-05-09 19:10:27 +0100 |
|---|---|---|
| committer | David Wood <david@davidtw.co> | 2019-05-09 19:10:27 +0100 |
| commit | dcd3cf70177f5af115d4799fc7fff836b3bcf649 (patch) | |
| tree | f0eace511ce62de70a92df6e41c9330bd39bee74 /src/libsyntax/source_map.rs | |
| parent | e57c7b859d3d60ee9c1ed63ac87234e83b088f82 (diff) | |
| download | rust-dcd3cf70177f5af115d4799fc7fff836b3bcf649.tar.gz rust-dcd3cf70177f5af115d4799fc7fff836b3bcf649.zip | |
Do not modify mutability of simple bindings.
This commit removes the modification of the mutability of simple bindings. While the mutability isn't used, it is important that it is kept so that the input to procedural macros matches what the user wrote. This commit also modifies the span of the binding mode so that it is considered a compiler desugaring and won't be linted against for being unused..
Diffstat (limited to 'src/libsyntax/source_map.rs')
| -rw-r--r-- | src/libsyntax/source_map.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/libsyntax/source_map.rs b/src/libsyntax/source_map.rs index 08abbf5e8a4..215618bd09c 100644 --- a/src/libsyntax/source_map.rs +++ b/src/libsyntax/source_map.rs @@ -930,6 +930,27 @@ impl SourceMap { None } + + /// Reuses the span but adds information like the kind of the desugaring and features that are + /// allowed inside this span. + pub fn mark_span_with_reason( + &self, + reason: hygiene::CompilerDesugaringKind, + span: Span, + allow_internal_unstable: Option<Lrc<[symbol::Symbol]>>, + ) -> Span { + let mark = Mark::fresh(Mark::root()); + mark.set_expn_info(ExpnInfo { + call_site: span, + def_site: Some(span), + format: CompilerDesugaring(reason), + allow_internal_unstable, + allow_internal_unsafe: false, + local_inner_macros: false, + edition: hygiene::default_edition(), + }); + span.with_ctxt(SyntaxContext::empty().apply_mark(mark)) + } } impl SourceMapper for SourceMap { |
