From 6389478d7030f1d807a46599dfb7a0a2ba97a240 Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Thu, 21 Mar 2019 23:36:50 +0300 Subject: [PATCH] Move one test from run-make-fulldeps to ui --- .../run-make-fulldeps/extern-prelude/Makefile | 11 ------- .../run-make-fulldeps/extern-prelude/basic.rs | 6 ---- .../extern-prelude/relative-only.rs | 9 ------ .../extern-prelude/shadow-mod.rs | 14 --------- .../extern-prelude/shadow-prelude.rs | 7 ----- .../auxiliary/extern-prelude-vec.rs} | 2 +- .../auxiliary/extern-prelude.rs} | 2 -- src/test/ui/extern-prelude-fail.rs | 9 ++++++ src/test/ui/extern-prelude-fail.stderr | 16 ++++++++++ src/test/ui/extern-prelude.rs | 31 +++++++++++++++++++ 10 files changed, 57 insertions(+), 50 deletions(-) delete mode 100644 src/test/run-make-fulldeps/extern-prelude/Makefile delete mode 100644 src/test/run-make-fulldeps/extern-prelude/basic.rs delete mode 100644 src/test/run-make-fulldeps/extern-prelude/relative-only.rs delete mode 100644 src/test/run-make-fulldeps/extern-prelude/shadow-mod.rs delete mode 100644 src/test/run-make-fulldeps/extern-prelude/shadow-prelude.rs rename src/test/{run-make-fulldeps/extern-prelude/ep-vec.rs => ui/auxiliary/extern-prelude-vec.rs} (60%) rename src/test/{run-make-fulldeps/extern-prelude/ep-lib.rs => ui/auxiliary/extern-prelude.rs} (69%) create mode 100644 src/test/ui/extern-prelude-fail.rs create mode 100644 src/test/ui/extern-prelude-fail.stderr create mode 100644 src/test/ui/extern-prelude.rs diff --git a/src/test/run-make-fulldeps/extern-prelude/Makefile b/src/test/run-make-fulldeps/extern-prelude/Makefile deleted file mode 100644 index 69af01ccf0369..0000000000000 --- a/src/test/run-make-fulldeps/extern-prelude/Makefile +++ /dev/null @@ -1,11 +0,0 @@ --include ../tools.mk - -all: - $(RUSTC) ep-lib.rs - $(RUSTC) ep-vec.rs - - $(RUSTC) basic.rs --extern ep_lib=$(TMPDIR)/libep_lib.rlib - $(RUSTC) shadow-mod.rs --extern ep_lib=$(TMPDIR)/libep_lib.rlib - $(RUSTC) shadow-prelude.rs --extern Vec=$(TMPDIR)/libep_vec.rlib - $(RUSTC) relative-only.rs --extern ep_lib=$(TMPDIR)/libep_lib.rlib 2>&1 | $(CGREP) "unresolved import" - $(RUSTC) relative-only.rs --extern ep_lib=$(TMPDIR)/libep_lib.rlib 2>&1 | $(CGREP) "failed to resolve" diff --git a/src/test/run-make-fulldeps/extern-prelude/basic.rs b/src/test/run-make-fulldeps/extern-prelude/basic.rs deleted file mode 100644 index dc7cc1f27b6f6..0000000000000 --- a/src/test/run-make-fulldeps/extern-prelude/basic.rs +++ /dev/null @@ -1,6 +0,0 @@ -#![feature(extern_prelude)] - -fn main() { - let s = ep_lib::S; // It works - s.external(); -} diff --git a/src/test/run-make-fulldeps/extern-prelude/relative-only.rs b/src/test/run-make-fulldeps/extern-prelude/relative-only.rs deleted file mode 100644 index 0fdf3b49d96b4..0000000000000 --- a/src/test/run-make-fulldeps/extern-prelude/relative-only.rs +++ /dev/null @@ -1,9 +0,0 @@ -// Extern prelude names are not available by absolute paths - -#![feature(extern_prelude)] - -use ep_lib::S; - -fn main() { - let s = ::ep_lib::S; -} diff --git a/src/test/run-make-fulldeps/extern-prelude/shadow-mod.rs b/src/test/run-make-fulldeps/extern-prelude/shadow-mod.rs deleted file mode 100644 index 69411aaf57c71..0000000000000 --- a/src/test/run-make-fulldeps/extern-prelude/shadow-mod.rs +++ /dev/null @@ -1,14 +0,0 @@ -// Local module shadows `ep_lib` from extern prelude - -mod ep_lib { - pub struct S; - - impl S { - pub fn internal(&self) {} - } -} - -fn main() { - let s = ep_lib::S; - s.internal(); // OK -} diff --git a/src/test/run-make-fulldeps/extern-prelude/shadow-prelude.rs b/src/test/run-make-fulldeps/extern-prelude/shadow-prelude.rs deleted file mode 100644 index 6c6ce12708d79..0000000000000 --- a/src/test/run-make-fulldeps/extern-prelude/shadow-prelude.rs +++ /dev/null @@ -1,7 +0,0 @@ -// Extern prelude shadows standard library prelude - -#![feature(extern_prelude)] - -fn main() { - let x = Vec::new(0f32, ()); // OK -} diff --git a/src/test/run-make-fulldeps/extern-prelude/ep-vec.rs b/src/test/ui/auxiliary/extern-prelude-vec.rs similarity index 60% rename from src/test/run-make-fulldeps/extern-prelude/ep-vec.rs rename to src/test/ui/auxiliary/extern-prelude-vec.rs index 148a4a987266f..a643c8889109a 100644 --- a/src/test/run-make-fulldeps/extern-prelude/ep-vec.rs +++ b/src/test/ui/auxiliary/extern-prelude-vec.rs @@ -1,3 +1,3 @@ -#![crate_type = "rlib"] +#![crate_name = "Vec"] pub fn new(arg1: f32, arg2: ()) {} diff --git a/src/test/run-make-fulldeps/extern-prelude/ep-lib.rs b/src/test/ui/auxiliary/extern-prelude.rs similarity index 69% rename from src/test/run-make-fulldeps/extern-prelude/ep-lib.rs rename to src/test/ui/auxiliary/extern-prelude.rs index f5e129eca6631..2fdfd85a1da30 100644 --- a/src/test/run-make-fulldeps/extern-prelude/ep-lib.rs +++ b/src/test/ui/auxiliary/extern-prelude.rs @@ -1,5 +1,3 @@ -#![crate_type = "rlib"] - pub struct S; impl S { diff --git a/src/test/ui/extern-prelude-fail.rs b/src/test/ui/extern-prelude-fail.rs new file mode 100644 index 0000000000000..7d387025ad44d --- /dev/null +++ b/src/test/ui/extern-prelude-fail.rs @@ -0,0 +1,9 @@ +// compile-flags:--extern extern_prelude +// aux-build:extern-prelude.rs + +// Extern prelude names are not available by absolute paths + +fn main() { + use extern_prelude::S; //~ ERROR unresolved import `extern_prelude` + let s = ::extern_prelude::S; //~ ERROR failed to resolve +} diff --git a/src/test/ui/extern-prelude-fail.stderr b/src/test/ui/extern-prelude-fail.stderr new file mode 100644 index 0000000000000..ad148c04d08af --- /dev/null +++ b/src/test/ui/extern-prelude-fail.stderr @@ -0,0 +1,16 @@ +error[E0432]: unresolved import `extern_prelude` + --> $DIR/extern-prelude-fail.rs:7:9 + | +LL | use extern_prelude::S; + | ^^^^^^^^^^^^^^ maybe a missing `extern crate extern_prelude;`? + +error[E0433]: failed to resolve: maybe a missing `extern crate extern_prelude;`? + --> $DIR/extern-prelude-fail.rs:8:15 + | +LL | let s = ::extern_prelude::S; + | ^^^^^^^^^^^^^^ maybe a missing `extern crate extern_prelude;`? + +error: aborting due to 2 previous errors + +Some errors occurred: E0432, E0433. +For more information about an error, try `rustc --explain E0432`. diff --git a/src/test/ui/extern-prelude.rs b/src/test/ui/extern-prelude.rs new file mode 100644 index 0000000000000..0e52f2c5158d4 --- /dev/null +++ b/src/test/ui/extern-prelude.rs @@ -0,0 +1,31 @@ +// compile-pass +// compile-flags:--extern extern_prelude --extern Vec +// aux-build:extern-prelude.rs +// aux-build:extern-prelude-vec.rs + +fn basic() { + // It works + let s = extern_prelude::S; + s.external(); +} + +fn shadow_mod() { + // Local module shadows `extern_prelude` from extern prelude + mod extern_prelude { + pub struct S; + + impl S { + pub fn internal(&self) {} + } + } + + let s = extern_prelude::S; + s.internal(); // OK +} + +fn shadow_prelude() { + // Extern prelude shadows standard library prelude + let x = Vec::new(0f32, ()); // OK +} + +fn main() {}