about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSantiago Pastorino <spastorino@gmail.com>2021-08-19 18:18:34 -0300
committerSantiago Pastorino <spastorino@gmail.com>2021-08-19 18:44:53 -0300
commit2644a159c7d43bc22ed868819a01cb9646e51b14 (patch)
tree0fedd5c1e70f6f44367cd6f4911a00ed611a516e
parenta9ab2e55395013de116340e4cbfa0bb0263bb658 (diff)
Test that type alias impl trait happens in a submodule
-rw-r--r--src/test/ui/type-alias-impl-trait/defining-use-submodule.rs23
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait.rs10
2 files changed, 23 insertions, 10 deletions
diff --git a/src/test/ui/type-alias-impl-trait/defining-use-submodule.rs b/src/test/ui/type-alias-impl-trait/defining-use-submodule.rs
new file mode 100644
index 00000000000..8b51f55715e
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/defining-use-submodule.rs
@@ -0,0 +1,23 @@
+// check-pass
+
+#![feature(type_alias_impl_trait)]
+#![allow(dead_code)]
+
+// test that the type alias impl trait defining use is in a submodule
+
+fn main() {}
+
+type Foo = impl std::fmt::Display;
+type Bar = impl std::fmt::Display;
+
+mod foo {
+    pub fn foo() -> super::Foo {
+        "foo"
+    }
+
+    pub mod bar {
+        pub fn bar() -> crate::Bar {
+            1
+        }
+    }
+}
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait.rs b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait.rs
index 80192d19af9..d2c8c1f63df 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait.rs
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait.rs
@@ -11,7 +11,6 @@ fn main() {
     assert_eq!(bar2().to_string(), "bar2");
     let mut x = bar1();
     x = bar2();
-    assert_eq!(boo::boo().to_string(), "boo");
     assert_eq!(my_iter(42u8).collect::<Vec<u8>>(), vec![42u8]);
 }
 
@@ -33,15 +32,6 @@ fn bar2() -> Bar {
     "bar2"
 }
 
-// definition in submodule
-type Boo = impl std::fmt::Display;
-
-mod boo {
-    pub fn boo() -> super::Boo {
-        "boo"
-    }
-}
-
 type MyIter<T> = impl Iterator<Item = T>;
 
 fn my_iter<T>(t: T) -> MyIter<T> {