summaryrefslogtreecommitdiffstats
path: root/tests/ui/imports
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/imports')
-rw-r--r--tests/ui/imports/import-after-macro-expand-10.rs17
-rw-r--r--tests/ui/imports/import-after-macro-expand-11.rs21
-rw-r--r--tests/ui/imports/import-after-macro-expand-12.rs34
-rw-r--r--tests/ui/imports/import-after-macro-expand-13.rs22
-rw-r--r--tests/ui/imports/import-after-macro-expand-14.rs22
-rw-r--r--tests/ui/imports/import-after-macro-expand-2.rs4
-rw-r--r--tests/ui/imports/import-after-macro-expand-4.rs11
-rw-r--r--tests/ui/imports/import-after-macro-expand-4.stderr53
-rw-r--r--tests/ui/imports/import-after-macro-expand-6.rs4
-rw-r--r--tests/ui/imports/import-after-macro-expand-9.rs17
10 files changed, 136 insertions, 69 deletions
diff --git a/tests/ui/imports/import-after-macro-expand-10.rs b/tests/ui/imports/import-after-macro-expand-10.rs
new file mode 100644
index 000000000..b3520c42d
--- /dev/null
+++ b/tests/ui/imports/import-after-macro-expand-10.rs
@@ -0,0 +1,17 @@
+// check-pass
+
+mod b {
+ pub mod http {
+ pub struct HeaderMap;
+ }
+
+ pub use self::http::*;
+ #[derive(Debug)]
+ pub struct HeaderMap;
+}
+
+use crate::b::*;
+
+fn main() {
+ let h: crate::b::HeaderMap = HeaderMap;
+}
diff --git a/tests/ui/imports/import-after-macro-expand-11.rs b/tests/ui/imports/import-after-macro-expand-11.rs
new file mode 100644
index 000000000..2b81dfc23
--- /dev/null
+++ b/tests/ui/imports/import-after-macro-expand-11.rs
@@ -0,0 +1,21 @@
+// check-pass
+
+#[derive(Debug)]
+struct H;
+
+mod p {
+ use super::*;
+
+ #[derive(Clone)]
+ struct H;
+
+ mod t {
+ use super::*;
+
+ fn f() {
+ let h: crate::p::H = H;
+ }
+ }
+}
+
+fn main() {}
diff --git a/tests/ui/imports/import-after-macro-expand-12.rs b/tests/ui/imports/import-after-macro-expand-12.rs
new file mode 100644
index 000000000..f92e8c12f
--- /dev/null
+++ b/tests/ui/imports/import-after-macro-expand-12.rs
@@ -0,0 +1,34 @@
+// check-pass
+// https://github.com/rust-lang/rust/issues/115377
+
+use module::*;
+
+mod module {
+ pub enum B {}
+ impl B {
+ pub const ASSOC: u8 = 0;
+ }
+}
+
+#[derive()]
+pub enum B {}
+impl B {
+ pub const ASSOC: u16 = 0;
+}
+
+macro_rules! m {
+ ($right:expr) => {
+ $right
+ };
+}
+
+fn main() {
+ let a: u16 = {
+ use self::*;
+ B::ASSOC
+ };
+ let b: u16 = m!({
+ use self::*;
+ B::ASSOC
+ });
+}
diff --git a/tests/ui/imports/import-after-macro-expand-13.rs b/tests/ui/imports/import-after-macro-expand-13.rs
new file mode 100644
index 000000000..fd640002c
--- /dev/null
+++ b/tests/ui/imports/import-after-macro-expand-13.rs
@@ -0,0 +1,22 @@
+// check-pass
+// similar as `import-after-macro-expand-6.rs`
+
+use crate::a::HeaderMap;
+
+mod b {
+ pub mod http {
+ pub struct HeaderMap;
+ }
+
+ pub use self::http::*;
+ #[derive(Debug)]
+ pub struct HeaderMap;
+}
+
+mod a {
+ pub use crate::b::*;
+}
+
+fn main() {
+ let h: crate::b::HeaderMap = HeaderMap;
+}
diff --git a/tests/ui/imports/import-after-macro-expand-14.rs b/tests/ui/imports/import-after-macro-expand-14.rs
new file mode 100644
index 000000000..4d461a0e2
--- /dev/null
+++ b/tests/ui/imports/import-after-macro-expand-14.rs
@@ -0,0 +1,22 @@
+// check-pass
+
+use crate::a::HeaderMap;
+
+mod b {
+ pub mod http {
+ #[derive(Clone)]
+ pub struct HeaderMap;
+ }
+
+ pub use self::http::*;
+ #[derive(Debug)]
+ pub struct HeaderMap;
+}
+
+mod a {
+ pub use crate::b::*;
+}
+
+fn main() {
+ let h: crate::b::HeaderMap = HeaderMap;
+}
diff --git a/tests/ui/imports/import-after-macro-expand-2.rs b/tests/ui/imports/import-after-macro-expand-2.rs
index b3996d488..ff773fc82 100644
--- a/tests/ui/imports/import-after-macro-expand-2.rs
+++ b/tests/ui/imports/import-after-macro-expand-2.rs
@@ -12,9 +12,7 @@ mod tests {
use super::*;
fn test_thing() {
- let thing: crate::thing::Thing = Thing::Bar;
- // FIXME: `thing` should refer to `crate::Thing`,
- // FIXME: but doesn't currently refer to it due to backward compatibility
+ let thing: crate::Thing = Thing::Foo;
}
}
diff --git a/tests/ui/imports/import-after-macro-expand-4.rs b/tests/ui/imports/import-after-macro-expand-4.rs
index 02cc3f01a..fc0a232a9 100644
--- a/tests/ui/imports/import-after-macro-expand-4.rs
+++ b/tests/ui/imports/import-after-macro-expand-4.rs
@@ -1,3 +1,4 @@
+// check-pass
// https://github.com/rust-lang/rust/pull/113242#issuecomment-1616034904
// similar with `import-after-macro-expand-2.rs`
@@ -10,16 +11,6 @@ pub use a::*;
mod c {
use crate::*;
pub struct S(Vec<P>);
- //~^ ERROR the size for values of type
- //~| WARNING trait objects without an explicit
- //~| WARNING this is accepted in the current edition
- //~| WARNING trait objects without an explicit
- //~| WARNING this is accepted in the current edition
- //~| WARNING trait objects without an explicit
- //~| WARNING this is accepted in the current edition
-
- // FIXME: should works, but doesn't currently refer
- // to it due to backward compatibility
}
#[derive(Clone)]
diff --git a/tests/ui/imports/import-after-macro-expand-4.stderr b/tests/ui/imports/import-after-macro-expand-4.stderr
deleted file mode 100644
index 01f70cfc5..000000000
--- a/tests/ui/imports/import-after-macro-expand-4.stderr
+++ /dev/null
@@ -1,53 +0,0 @@
-warning: trait objects without an explicit `dyn` are deprecated
- --> $DIR/import-after-macro-expand-4.rs:12:22
- |
-LL | pub struct S(Vec<P>);
- | ^
- |
- = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
- = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
- = note: `#[warn(bare_trait_objects)]` on by default
-help: use `dyn`
- |
-LL | pub struct S(Vec<dyn P>);
- | +++
-
-warning: trait objects without an explicit `dyn` are deprecated
- --> $DIR/import-after-macro-expand-4.rs:12:22
- |
-LL | pub struct S(Vec<P>);
- | ^
- |
- = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
- = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
-help: use `dyn`
- |
-LL | pub struct S(Vec<dyn P>);
- | +++
-
-warning: trait objects without an explicit `dyn` are deprecated
- --> $DIR/import-after-macro-expand-4.rs:12:22
- |
-LL | pub struct S(Vec<P>);
- | ^
- |
- = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
- = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
-help: use `dyn`
- |
-LL | pub struct S(Vec<dyn P>);
- | +++
-
-error[E0277]: the size for values of type `(dyn a::P + 'static)` cannot be known at compilation time
- --> $DIR/import-after-macro-expand-4.rs:12:18
- |
-LL | pub struct S(Vec<P>);
- | ^^^^^^ doesn't have a size known at compile-time
- |
- = help: the trait `Sized` is not implemented for `(dyn a::P + 'static)`
-note: required by a bound in `Vec`
- --> $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
-
-error: aborting due to previous error; 3 warnings emitted
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/imports/import-after-macro-expand-6.rs b/tests/ui/imports/import-after-macro-expand-6.rs
index ab5bb37a1..bff8efebc 100644
--- a/tests/ui/imports/import-after-macro-expand-6.rs
+++ b/tests/ui/imports/import-after-macro-expand-6.rs
@@ -18,7 +18,5 @@ mod b {
use crate::a::HeaderMap;
fn main() {
- let h: crate::b::http::HeaderMap = HeaderMap;
- // FIXME: should refer to `crate::b::HeaderMap`,
- // FIXME: but doesn't currently refer to it due to backward compatibility
+ let h: crate::b::HeaderMap = HeaderMap;
}
diff --git a/tests/ui/imports/import-after-macro-expand-9.rs b/tests/ui/imports/import-after-macro-expand-9.rs
new file mode 100644
index 000000000..deee42c3b
--- /dev/null
+++ b/tests/ui/imports/import-after-macro-expand-9.rs
@@ -0,0 +1,17 @@
+// check-pass
+
+use crate::b::*;
+
+mod b {
+ pub mod http {
+ pub struct HeaderMap;
+ }
+
+ pub use self::http::*;
+ #[derive(Debug)]
+ pub struct HeaderMap;
+}
+
+fn main() {
+ let h: crate::b::HeaderMap = HeaderMap;
+}