未验证 提交 4be19e36 编写于 作者: M Mazdak Farrokhzad 提交者: GitHub

Rollup merge of #59347 - petrochenkov:nomake, r=davidtwco

Move one test from run-make-fulldeps to ui

The test was written when `--extern` without path didn't exist.
-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"
#![feature(extern_prelude)]
fn main() {
let s = ep_lib::S; // It works
s.external();
}
// Extern prelude names are not available by absolute paths
#![feature(extern_prelude)]
use ep_lib::S;
fn main() {
let s = ::ep_lib::S;
}
// 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
}
// Extern prelude shadows standard library prelude
#![feature(extern_prelude)]
fn main() {
let x = Vec::new(0f32, ()); // OK
}
// 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
}
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`.
// 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() {}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册