mirror of
https://github.com/rust-lang/cargo.git
synced 2025-09-25 11:14:46 +00:00
docs(embedded): Note the shebang deviation
rustc considers the following valid and without a shebang: ```rust // Hello [allow(dead_code)] fn main() { println!("Hello, world!"); } ``` and ```rustc [allow(dead_code)] fn main() { println!("Hello, world!"); } ``` In both cases, we consider it to have a shebang. This commit documents that intention. We could add our own heuristics (e.g. `#!` with only whitespace is not a shebang) but we should either be a subset or intentionally different than rustc (e.g. require a non `[`-prefixes interpreter) rather than do both. This will be reflected in the tracking issue which will handle the final decision for the team on this matter. Fixes #15170
This commit is contained in:
parent
b64750d83d
commit
48224c19c6
@ -147,6 +147,9 @@ impl<'s> ScriptSource<'s> {
|
||||
if let Some(rest) = source.content.strip_prefix("#!") {
|
||||
// Ok, this is a shebang but if the next non-whitespace token is `[`,
|
||||
// then it may be valid Rust code, so consider it Rust code.
|
||||
//
|
||||
// NOTE: rustc considers line and block comments to be whitespace but to avoid
|
||||
// any more awareness of Rust grammar, we are excluding it.
|
||||
if rest.trim_start().starts_with('[') {
|
||||
return Ok(source);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user