diff options
| author | bors <bors@rust-lang.org> | 2018-01-12 20:28:19 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-01-12 20:28:19 +0000 |
| commit | 51b0b3734cbd0ca58c8be3512d53fce2d95f40dd (patch) | |
| tree | 0f7929e306da4893a0db5671686f08d4443d8859 /src/libsyntax/parse | |
| parent | 0b90e4e8cd068910f604f3e1fb5d03cc01f1658f (diff) | |
| parent | c12eabfb11384dfd45cab87a809aa442203dcc53 (diff) | |
| download | rust-51b0b3734cbd0ca58c8be3512d53fce2d95f40dd.tar.gz rust-51b0b3734cbd0ca58c8be3512d53fce2d95f40dd.zip | |
Auto merge of #47392 - kennytm:rollup, r=kennytm
Rollup of 24 pull requests - Successful merges: #46985, #47069, #47081, #47185, #47282, #47283, #47288, #47289, #47298, #47305, #47306, #47307, #47310, #47324, #47328, #47331, #47340, #47343, #47344, #47352, #47357, #47365, #47375, #47382 - Failed merges: #47334
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index b61c39d589b..49035203150 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -5894,10 +5894,14 @@ impl<'a> Parser<'a> { if let Some(path) = Parser::submod_path_from_attr(outer_attrs, &self.directory.path) { return Ok(ModulePathSuccess { directory_ownership: match path.file_name().and_then(|s| s.to_str()) { - Some("mod.rs") => DirectoryOwnership::Owned { relative: None }, - Some(_) => { - DirectoryOwnership::Owned { relative: Some(id) } - } + // All `#[path]` files are treated as though they are a `mod.rs` file. + // This means that `mod foo;` declarations inside `#[path]`-included + // files are siblings, + // + // Note that this will produce weirdness when a file named `foo.rs` is + // `#[path]` included and contains a `mod foo;` declaration. + // If you encounter this, it's your own darn fault :P + Some(_) => DirectoryOwnership::Owned { relative: None }, _ => DirectoryOwnership::UnownedViaMod(true), }, path, |
