From 8a1be9942d63f0417efc1ead54dd71ff088140e3 Mon Sep 17 00:00:00 2001 From: Martin Nordholts Date: Mon, 28 Aug 2023 08:18:35 +0200 Subject: [PATCH] Allow file names to end with '>' The `rustc_span::FileName` enum already differentiates between real files and "fake" files such as ``. We do not need to artificially forbid real file names from ending in `>`. --- compiler/rustc_span/src/lib.rs | 1 - tests/run-make/silly-file-names/Makefile | 18 ++++++++++++++++++ .../silly-file-names/silly-file-names.rs | 4 ++++ .../silly-file-names.run.stdout | 2 ++ 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 tests/run-make/silly-file-names/Makefile create mode 100644 tests/run-make/silly-file-names/silly-file-names.rs create mode 100644 tests/run-make/silly-file-names/silly-file-names.run.stdout diff --git a/compiler/rustc_span/src/lib.rs b/compiler/rustc_span/src/lib.rs index 772e09291a139..36d7c7653eef9 100644 --- a/compiler/rustc_span/src/lib.rs +++ b/compiler/rustc_span/src/lib.rs @@ -305,7 +305,6 @@ pub enum FileName { impl From for FileName { fn from(p: PathBuf) -> Self { - assert!(!p.to_string_lossy().ends_with('>')); FileName::Real(RealFileName::LocalPath(p)) } } diff --git a/tests/run-make/silly-file-names/Makefile b/tests/run-make/silly-file-names/Makefile new file mode 100644 index 0000000000000..a09bdb1c5329e --- /dev/null +++ b/tests/run-make/silly-file-names/Makefile @@ -0,0 +1,18 @@ +# ignore-cross-compile we need to execute the binary +# ignore-windows we create files with < and > in their names + +include ../tools.mk + +ifdef RUSTC_BLESS_TEST + RUSTC_TEST_OP = cp +else + RUSTC_TEST_OP = $(DIFF) +endif + +all: + echo '"comes from a file with a name that begins with <"' > "$(TMPDIR)/"' > "$(TMPDIR)/trailing-gt>" + cp silly-file-names.rs "$(TMPDIR)/silly-file-names.rs" + $(RUSTC) "$(TMPDIR)/silly-file-names.rs" -o "$(TMPDIR)/silly-file-names" + "$(TMPDIR)/silly-file-names" > "$(TMPDIR)/silly-file-names.run.stdout" + $(RUSTC_TEST_OP) "$(TMPDIR)/silly-file-names.run.stdout" silly-file-names.run.stdout diff --git a/tests/run-make/silly-file-names/silly-file-names.rs b/tests/run-make/silly-file-names/silly-file-names.rs new file mode 100644 index 0000000000000..a200820914130 --- /dev/null +++ b/tests/run-make/silly-file-names/silly-file-names.rs @@ -0,0 +1,4 @@ +fn main() { + println!(include!("")); +} diff --git a/tests/run-make/silly-file-names/silly-file-names.run.stdout b/tests/run-make/silly-file-names/silly-file-names.run.stdout new file mode 100644 index 0000000000000..fbc4c89e0f017 --- /dev/null +++ b/tests/run-make/silly-file-names/silly-file-names.run.stdout @@ -0,0 +1,2 @@ +comes from a file with a name that begins with < +comes from a file with a name that ends with >