Skip to content

Commit

Permalink
Auto merge of rust-lang#40620 - laumann:slash-in-diagnostics-path, r=…
Browse files Browse the repository at this point in the history
…BurntSushi

Replace hardcoded forward slash with path::MAIN_SEPARATOR

Fixes rust-lang#40149
  • Loading branch information
bors committed Mar 31, 2017
2 parents 5c94997 + b376386 commit 474f7a9
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 6 deletions.
4 changes: 2 additions & 2 deletions src/libstd/sys_common/backtrace.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ use io;
use libc;
use str;
use sync::atomic::{self, Ordering};
use path::Path;
use path::{self, Path};
use sys::mutex::Mutex;
use ptr;

Expand Down Expand Up @@ -262,7 +262,7 @@ fn output_fileline(w: &mut Write, file: &[u8], line: libc::c_int,
if let Ok(cwd) = env::current_dir() {
if let Ok(stripped) = file_path.strip_prefix(&cwd) {
if let Some(s) = stripped.to_str() {
write!(w, " at ./{}:{}", s, line)?;
write!(w, " at .{}{}:{}", path::MAIN_SEPARATOR, s, line)?;
already_printed = true;
}
}
Expand Down
9 changes: 5 additions & 4 deletions src/libsyntax/parse/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ use util::ThinVec;

use std::collections::HashSet;
use std::{cmp, mem, slice};
use std::path::{Path, PathBuf};
use std::path::{self, Path, PathBuf};

bitflags! {
flags Restrictions: u8 {
Expand Down Expand Up @@ -5146,7 +5146,7 @@ impl<'a> Parser<'a> {
pub fn default_submod_path(id: ast::Ident, dir_path: &Path, codemap: &CodeMap) -> ModulePath {
let mod_name = id.to_string();
let default_path_str = format!("{}.rs", mod_name);
let secondary_path_str = format!("{}/mod.rs", mod_name);
let secondary_path_str = format!("{}{}mod.rs", mod_name, path::MAIN_SEPARATOR);
let default_path = dir_path.join(&default_path_str);
let secondary_path = dir_path.join(&secondary_path_str);
let default_exists = codemap.file_exists(&default_path);
Expand Down Expand Up @@ -5224,8 +5224,9 @@ impl<'a> Parser<'a> {
};
err.span_note(id_sp,
&format!("maybe move this module `{0}` to its own directory \
via `{0}/mod.rs`",
this_module));
via `{0}{1}mod.rs`",
this_module,
path::MAIN_SEPARATOR));
if paths.path_exists {
err.span_note(id_sp,
&format!("... or maybe `use` the module `{}` instead \
Expand Down
2 changes: 2 additions & 0 deletions src/test/parse-fail/mod_file_not_exist.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

// ignore-windows

// compile-flags: -Z parse-only

mod not_a_real_file; //~ ERROR file not found for module `not_a_real_file`
Expand Down
32 changes: 32 additions & 0 deletions src/test/parse-fail/mod_file_not_exist_windows.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

// ignore-gnu
// ignore-android
// ignore-bitrig
// ignore-macos
// ignore-dragonfly
// ignore-freebsd
// ignore-haiku
// ignore-ios
// ignore-linux
// ignore-netbsd
// ignore-openbsd
// ignore-solaris
// ignore-emscripten

// compile-flags: -Z parse-only

mod not_a_real_file; //~ ERROR file not found for module `not_a_real_file`
//~^ HELP name the file either not_a_real_file.rs or not_a_real_file\mod.rs inside the directory

fn main() {
assert_eq!(mod_file_aux::bar(), 10);
}

0 comments on commit 474f7a9

Please sign in to comment.