`include_str!(file!())` does not work on godbolt
Open
Nobody has claimed this yet.
bug
expansion
- Dominant language
- C++
- Stars
- 2.9k
- Forks
- 231
- Avg merge
- 19h 55m
- Merged PRs (30d)
- 67
Description
as found by @liamnaddell in #1085
#![feature(rustc_attrs)]
#[rustc_builtin_macro]
macro_rules! include_str {
() => {{}};
}
#[rustc_builtin_macro]
macro_rules! file {
() => {{}};
}
fn main() {
let _ = include_str!(file!());
}
I expected to see this happen: no error
Instead, this happened: gccrs complains that it is not able to open the file at /app/<source> even though printing the result of the file!() macro shows /app/example.rs
Contributor guide
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 inline Rust snippet on godbolt and compare the paths produced by file!() with the path used by include_str!(file!()). Trace the relevant gccrs macro expansion and file lookup handling. Done means the example compiles without the /app/<source> file-open error while preserving the expected file!() result.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, rust
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100