include! macro fails if included file has top-level inner attributes
Nobody has claimed this yet.
- Dominant language
- Markdown
- Stars
- 6.6k
- Forks
- 1.7k
- Avg merge
- 16h 14m
- Merged PRs (30d)
- 1
Description
Issue by dwrensha
Sunday Nov 09, 2014 at 14:25 GMT
For earlier discussion, see https://github.com/rust-lang/rust/issues/18810
This issue was labelled with: in the Rust repository
// test.rs
pub mod included {
include!("test_included.rs")
}
fn main() {}
// test_included.rs
#![allow(dead_code)]
pub fn foo() {}
$ rustc test.rs
test_included.rs:3:3: 3:4 error: an inner attribute is not permitted in this context
test_included.rs:3 #![allow(dead_code)]
^
error: aborting due to previous error
I at first thought that the problem was due to the implicit insert of the prelude in the included module. However, adding a #[no_implicit_prelude] attribute does not help.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the failure with the issue's test.rs and test_included.rs files, then inspect how rustc handles include! inside a module and top-level inner attributes. Use the linked earlier discussion in issue 18810 as context. Done means the included file's #![allow(dead_code)] is accepted in this example without the reported compiler error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100