about summary refs log tree commit diff
path: root/compiler/rustc_parse/src
diff options
context:
space:
mode:
authorNixon Enraght-Moony <nixon.emoony@gmail.com>2022-07-02 18:25:55 +0100
committerNixon Enraght-Moony <nixon.emoony@gmail.com>2022-07-02 23:30:03 +0100
commit18ca2946e0663d772079bf6f3d07d70d97369068 (patch)
treeaabc07d6b9074c7012226831b8161dccc4886856 /compiler/rustc_parse/src
parent5018181c79a6fe37913fd931005ad2a63c85be7b (diff)
downloadrust-18ca2946e0663d772079bf6f3d07d70d97369068.tar.gz
rust-18ca2946e0663d772079bf6f3d07d70d97369068.zip
ast: Add span to `Extern`
Diffstat (limited to 'compiler/rustc_parse/src')
-rw-r--r--compiler/rustc_parse/src/parser/mod.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/compiler/rustc_parse/src/parser/mod.rs b/compiler/rustc_parse/src/parser/mod.rs
index 00002f6f59b..67e6402c0ae 100644
--- a/compiler/rustc_parse/src/parser/mod.rs
+++ b/compiler/rustc_parse/src/parser/mod.rs
@@ -1353,7 +1353,16 @@ impl<'a> Parser<'a> {
 
     /// Parses `extern string_literal?`.
     fn parse_extern(&mut self) -> Extern {
-        if self.eat_keyword(kw::Extern) { Extern::from_abi(self.parse_abi()) } else { Extern::None }
+        if self.eat_keyword(kw::Extern) {
+            let mut extern_span = self.prev_token.span;
+            let abi = self.parse_abi();
+            if let Some(abi) = abi {
+                extern_span = extern_span.to(abi.span);
+            }
+            Extern::from_abi(abi, extern_span)
+        } else {
+            Extern::None
+        }
     }
 
     /// Parses a string literal as an ABI spec.