Skip to content

Commit d2235f2

Browse files
committed
Auto merge of #49478 - Phlosioneer:fix-windows-file-not-found, r=petrochenkov
Fix escaped backslash in windows file not found message When a module is declared, but no matching file exists, rustc gives an error like `help: name the file either foo.rs or foo/mod.rs inside the directory "src/bar"`. However, at on windows, the backslash was double-escaped when naming the directory. It did this because the string was printed in debug mode (`"{:?}"`) to surround it with quotes. However, it should just be printed like any other directory in an error message and surrounded by escaped quotes, rather than relying on the debug print to add quotes (`"\"{}\""`). I also checked the test suite to see if this output is being correctly tested. It's not - it only tests up to the word "directory". Presumably this is so that the test is not dependent on its exact position in the source tree. I don't know a better way to test this, unless the test suite supports regex?
2 parents cb1f898 + 19eedf9 commit d2235f2

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/libsyntax/parse/parser.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ impl Error {
455455
ref dir_path } => {
456456
let mut err = struct_span_err!(handler, sp, E0583,
457457
"file not found for module `{}`", mod_name);
458-
err.help(&format!("name the file either {} or {} inside the directory {:?}",
458+
err.help(&format!("name the file either {} or {} inside the directory \"{}\"",
459459
default_path,
460460
secondary_path,
461461
dir_path));

0 commit comments

Comments
 (0)