Commit 224387a
Merge #6606
6606: Parse unsafe extern block r=lnicola a=dtolnay
`unsafe extern` block is parsed successfully by rustc, which means it is usable in attribute macro input.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=6f805556f176d082d87255957f16b5f6
```rust
#[cfg(parse)]
unsafe extern "C++" {
fn demo();
}
```
```diff
[email protected]
- [email protected]
+ [email protected]
[email protected]
[email protected] "#"
[email protected] "["
[email protected]
[email protected]
[email protected]
[email protected] "cfg"
[email protected]
[email protected] "("
[email protected] "parse"
[email protected] ")"
[email protected] "]"
[email protected] "\n"
[email protected] "unsafe"
[email protected] " "
[email protected]
[email protected] "extern"
[email protected] " "
[email protected] "\"C++\""
- [email protected] " "
- [email protected]
- [email protected] "{"
- [email protected] "\n "
- [email protected]
- [email protected] "fn"
- [email protected] " "
- [email protected]
- [email protected] "demo"
- [email protected]
- [email protected] "("
- [email protected] ")"
- [email protected] ";"
- [email protected] "\n"
- [email protected] "}"
+ [email protected] " "
+ [email protected]
+ [email protected] "{"
+ [email protected] "\n "
+ [email protected]
+ [email protected] "fn"
+ [email protected] " "
+ [email protected]
+ [email protected] "demo"
+ [email protected]
+ [email protected] "("
+ [email protected] ")"
+ [email protected] ";"
+ [email protected] "\n"
+ [email protected] "}"
```
This is of interest for https://github.com/dtolnay/cxx.
Co-authored-by: David Tolnay <[email protected]>File tree
3 files changed
+25
-3
lines changed- crates
- parser/src/grammar
- syntax/test_data/parser/ok
3 files changed
+25
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
115 | | - | |
| 115 | + | |
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
| |||
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
184 | 192 | | |
185 | 193 | | |
186 | 194 | | |
| |||
Lines changed: 14 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
215 | 215 | | |
216 | 216 | | |
217 | 217 | | |
218 | | - | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
| 18 | + | |
0 commit comments