Allow builtin macros to be used more than once.
This removes E0773 "A builtin-macro was defined more than once."
This commit is contained in:
parent
1370611c0a
commit
6c865c1e14
13 changed files with 40 additions and 149 deletions
|
@ -1,40 +1,4 @@
|
|||
A builtin-macro was defined more than once.
|
||||
#### this error code is no longer emitted by the compiler.
|
||||
|
||||
Erroneous code example:
|
||||
|
||||
```compile_fail,E0773
|
||||
#![feature(decl_macro)]
|
||||
#![feature(rustc_attrs)]
|
||||
#![allow(internal_features)]
|
||||
|
||||
#[rustc_builtin_macro]
|
||||
pub macro test($item:item) {
|
||||
/* compiler built-in */
|
||||
}
|
||||
|
||||
mod inner {
|
||||
#[rustc_builtin_macro]
|
||||
pub macro test($item:item) {
|
||||
/* compiler built-in */
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
To fix the issue, remove the duplicate declaration:
|
||||
|
||||
```
|
||||
#![feature(decl_macro)]
|
||||
#![feature(rustc_attrs)]
|
||||
#![allow(internal_features)]
|
||||
|
||||
#[rustc_builtin_macro]
|
||||
pub macro test($item:item) {
|
||||
/* compiler built-in */
|
||||
}
|
||||
```
|
||||
|
||||
In very rare edge cases, this may happen when loading `core` or `std` twice,
|
||||
once with `check` metadata and once with `build` metadata.
|
||||
For more information, see [#75176].
|
||||
|
||||
[#75176]: https://github.com/rust-lang/rust/pull/75176#issuecomment-683234468
|
||||
This was triggered when multiple macro definitions used the same
|
||||
`#[rustc_builtin_macro(..)]`. This is no longer an error.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue