summaryrefslogtreecommitdiffstats
path: root/tests/ui/issues/auxiliary
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/issues/auxiliary')
-rw-r--r--tests/ui/issues/auxiliary/cgu_test.rs6
-rw-r--r--tests/ui/issues/auxiliary/cgu_test_a.rs15
-rw-r--r--tests/ui/issues/auxiliary/cgu_test_b.rs15
-rw-r--r--tests/ui/issues/auxiliary/i8.rs3
-rw-r--r--tests/ui/issues/auxiliary/iss.rs12
-rw-r--r--tests/ui/issues/auxiliary/issue-11224.rs16
-rw-r--r--tests/ui/issues/auxiliary/issue-11508.rs10
-rw-r--r--tests/ui/issues/auxiliary/issue-11529.rs1
-rw-r--r--tests/ui/issues/auxiliary/issue-11680.rs9
-rw-r--r--tests/ui/issues/auxiliary/issue-12133-dylib.rs1
-rw-r--r--tests/ui/issues/auxiliary/issue-12133-dylib2.rs6
-rw-r--r--tests/ui/issues/auxiliary/issue-12133-rlib.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-12612-1.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-12612-2.rs1
-rw-r--r--tests/ui/issues/auxiliary/issue-12660-aux.rs11
-rw-r--r--tests/ui/issues/auxiliary/issue-13507.rs87
-rw-r--r--tests/ui/issues/auxiliary/issue-13620-1.rs9
-rw-r--r--tests/ui/issues/auxiliary/issue-13620-2.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-13872-1.rs1
-rw-r--r--tests/ui/issues/auxiliary/issue-13872-2.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-13872-3.rs9
-rw-r--r--tests/ui/issues/auxiliary/issue-14344-1.rs5
-rw-r--r--tests/ui/issues/auxiliary/issue-14344-2.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-14421.rs25
-rw-r--r--tests/ui/issues/auxiliary/issue-14422.rs25
-rw-r--r--tests/ui/issues/auxiliary/issue-15562.rs5
-rw-r--r--tests/ui/issues/auxiliary/issue-16643.rs19
-rw-r--r--tests/ui/issues/auxiliary/issue-16725.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-17662.rs12
-rw-r--r--tests/ui/issues/auxiliary/issue-18501.rs17
-rw-r--r--tests/ui/issues/auxiliary/issue-18514.rs17
-rw-r--r--tests/ui/issues/auxiliary/issue-18711.rs5
-rw-r--r--tests/ui/issues/auxiliary/issue-18913-1.rs6
-rw-r--r--tests/ui/issues/auxiliary/issue-18913-2.rs6
-rw-r--r--tests/ui/issues/auxiliary/issue-1920.rs4
-rw-r--r--tests/ui/issues/auxiliary/issue-19293.rs4
-rw-r--r--tests/ui/issues/auxiliary/issue-19340-1.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-20389.rs4
-rw-r--r--tests/ui/issues/auxiliary/issue-21202.rs6
-rw-r--r--tests/ui/issues/auxiliary/issue-2170-lib.rs18
-rw-r--r--tests/ui/issues/auxiliary/issue-2316-a.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-2316-b.rs11
-rw-r--r--tests/ui/issues/auxiliary/issue-2380.rs13
-rw-r--r--tests/ui/issues/auxiliary/issue-2414-a.rs12
-rw-r--r--tests/ui/issues/auxiliary/issue-2414-b.rs4
-rw-r--r--tests/ui/issues/auxiliary/issue-2472-b.rs13
-rw-r--r--tests/ui/issues/auxiliary/issue-25185-1.rs8
-rw-r--r--tests/ui/issues/auxiliary/issue-25185-2.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-2526.rs44
-rw-r--r--tests/ui/issues/auxiliary/issue-25467.rs10
-rw-r--r--tests/ui/issues/auxiliary/issue-2631-a.rs14
-rw-r--r--tests/ui/issues/auxiliary/issue-2723-a.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-29181.rs5
-rw-r--r--tests/ui/issues/auxiliary/issue-29265.rs9
-rw-r--r--tests/ui/issues/auxiliary/issue-29485.rs16
-rw-r--r--tests/ui/issues/auxiliary/issue-3012-1.rs20
-rw-r--r--tests/ui/issues/auxiliary/issue-30123-aux.rs23
-rw-r--r--tests/ui/issues/auxiliary/issue-3136-a.rc4
-rw-r--r--tests/ui/issues/auxiliary/issue-3136-a.rs14
-rw-r--r--tests/ui/issues/auxiliary/issue-31702-1.rs16
-rw-r--r--tests/ui/issues/auxiliary/issue-31702-2.rs20
-rw-r--r--tests/ui/issues/auxiliary/issue-34796-aux.rs20
-rw-r--r--tests/ui/issues/auxiliary/issue-36954.rs7
-rw-r--r--tests/ui/issues/auxiliary/issue-38190.rs2
-rw-r--r--tests/ui/issues/auxiliary/issue-38226-aux.rs23
-rw-r--r--tests/ui/issues/auxiliary/issue-3979-traits.rs15
-rw-r--r--tests/ui/issues/auxiliary/issue-41053.rs1
-rw-r--r--tests/ui/issues/auxiliary/issue-41394.rs16
-rw-r--r--tests/ui/issues/auxiliary/issue-41549.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-42007-s.rs4
-rw-r--r--tests/ui/issues/auxiliary/issue-4208-cc.rs10
-rw-r--r--tests/ui/issues/auxiliary/issue-4545.rs2
-rw-r--r--tests/ui/issues/auxiliary/issue-48984-aux.rs6
-rw-r--r--tests/ui/issues/auxiliary/issue-49544.rs7
-rw-r--r--tests/ui/issues/auxiliary/issue-51798.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-52489.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-5518.rs4
-rw-r--r--tests/ui/issues/auxiliary/issue-5521.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-56943.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-57271-lib.rs11
-rw-r--r--tests/ui/issues/auxiliary/issue-5844-aux.rs3
-rw-r--r--tests/ui/issues/auxiliary/issue-7178.rs7
-rw-r--r--tests/ui/issues/auxiliary/issue-73112.rs10
-rw-r--r--tests/ui/issues/auxiliary/issue-7899.rs1
-rw-r--r--tests/ui/issues/auxiliary/issue-8044.rs15
-rw-r--r--tests/ui/issues/auxiliary/issue-8259.rs4
-rw-r--r--tests/ui/issues/auxiliary/issue-8401.rs16
-rw-r--r--tests/ui/issues/auxiliary/issue-9123.rs9
-rw-r--r--tests/ui/issues/auxiliary/issue-9155.rs7
-rw-r--r--tests/ui/issues/auxiliary/issue-9188.rs13
-rw-r--r--tests/ui/issues/auxiliary/issue-9906.rs15
-rw-r--r--tests/ui/issues/auxiliary/issue-9968.rs22
-rw-r--r--tests/ui/issues/auxiliary/private-trait-xc.rs1
-rw-r--r--tests/ui/issues/auxiliary/reexported-trait.rs17
94 files changed, 959 insertions, 0 deletions
diff --git a/tests/ui/issues/auxiliary/cgu_test.rs b/tests/ui/issues/auxiliary/cgu_test.rs
new file mode 100644
index 000000000..5ed973164
--- /dev/null
+++ b/tests/ui/issues/auxiliary/cgu_test.rs
@@ -0,0 +1,6 @@
+// no-prefer-dynamic
+// compile-flags: --crate-type=lib
+
+pub fn id<T>(t: T) -> T {
+ t
+}
diff --git a/tests/ui/issues/auxiliary/cgu_test_a.rs b/tests/ui/issues/auxiliary/cgu_test_a.rs
new file mode 100644
index 000000000..a3dcd9201
--- /dev/null
+++ b/tests/ui/issues/auxiliary/cgu_test_a.rs
@@ -0,0 +1,15 @@
+// no-prefer-dynamic
+// compile-flags: -Ccodegen-units=2 --crate-type=lib
+
+extern crate cgu_test;
+
+pub mod a {
+ pub fn a() {
+ ::cgu_test::id(0);
+ }
+}
+pub mod b {
+ pub fn a() {
+ ::cgu_test::id(0);
+ }
+}
diff --git a/tests/ui/issues/auxiliary/cgu_test_b.rs b/tests/ui/issues/auxiliary/cgu_test_b.rs
new file mode 100644
index 000000000..a3dcd9201
--- /dev/null
+++ b/tests/ui/issues/auxiliary/cgu_test_b.rs
@@ -0,0 +1,15 @@
+// no-prefer-dynamic
+// compile-flags: -Ccodegen-units=2 --crate-type=lib
+
+extern crate cgu_test;
+
+pub mod a {
+ pub fn a() {
+ ::cgu_test::id(0);
+ }
+}
+pub mod b {
+ pub fn a() {
+ ::cgu_test::id(0);
+ }
+}
diff --git a/tests/ui/issues/auxiliary/i8.rs b/tests/ui/issues/auxiliary/i8.rs
new file mode 100644
index 000000000..889a9c4eb
--- /dev/null
+++ b/tests/ui/issues/auxiliary/i8.rs
@@ -0,0 +1,3 @@
+// A crate named after a built-in type.
+
+pub struct Test;
diff --git a/tests/ui/issues/auxiliary/iss.rs b/tests/ui/issues/auxiliary/iss.rs
new file mode 100644
index 000000000..cf32f6c2d
--- /dev/null
+++ b/tests/ui/issues/auxiliary/iss.rs
@@ -0,0 +1,12 @@
+#![crate_name="issue6919_3"]
+
+// part of issue-6919.rs
+
+pub struct C<K> where K: FnOnce() {
+ pub k: K,
+}
+
+fn no_op() { }
+pub const D : C<fn()> = C {
+ k: no_op as fn()
+};
diff --git a/tests/ui/issues/auxiliary/issue-11224.rs b/tests/ui/issues/auxiliary/issue-11224.rs
new file mode 100644
index 000000000..63543621a
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-11224.rs
@@ -0,0 +1,16 @@
+#![deny(dead_code)]
+
+mod inner {
+ pub trait Trait {
+ fn f(&self) { f(); }
+ }
+
+ impl Trait for isize {}
+
+ fn f() {}
+}
+
+pub fn foo() {
+ let a = &1isize as &inner::Trait;
+ a.f();
+}
diff --git a/tests/ui/issues/auxiliary/issue-11508.rs b/tests/ui/issues/auxiliary/issue-11508.rs
new file mode 100644
index 000000000..16bfc65c2
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-11508.rs
@@ -0,0 +1,10 @@
+pub struct Closed01<F>(pub F);
+
+pub trait Bar { fn new() -> Self; }
+
+impl<T: Bar> Bar for Closed01<T> {
+ fn new() -> Closed01<T> { Closed01(Bar::new()) }
+}
+impl Bar for f32 { fn new() -> f32 { 1.0 } }
+
+pub fn random<T: Bar>() -> T { Bar::new() }
diff --git a/tests/ui/issues/auxiliary/issue-11529.rs b/tests/ui/issues/auxiliary/issue-11529.rs
new file mode 100644
index 000000000..dd3ef4387
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-11529.rs
@@ -0,0 +1 @@
+pub struct A<'a>(pub &'a isize);
diff --git a/tests/ui/issues/auxiliary/issue-11680.rs b/tests/ui/issues/auxiliary/issue-11680.rs
new file mode 100644
index 000000000..74abbf0bf
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-11680.rs
@@ -0,0 +1,9 @@
+enum Foo {
+ Bar(isize)
+}
+
+pub mod test {
+ enum Foo {
+ Bar(isize)
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-12133-dylib.rs b/tests/ui/issues/auxiliary/issue-12133-dylib.rs
new file mode 100644
index 000000000..8bd2b3353
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-12133-dylib.rs
@@ -0,0 +1 @@
+#![crate_type = "dylib"]
diff --git a/tests/ui/issues/auxiliary/issue-12133-dylib2.rs b/tests/ui/issues/auxiliary/issue-12133-dylib2.rs
new file mode 100644
index 000000000..30de74006
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-12133-dylib2.rs
@@ -0,0 +1,6 @@
+// no-prefer-dynamic
+
+#![crate_type = "dylib"]
+
+extern crate issue_12133_rlib as a;
+extern crate issue_12133_dylib as b;
diff --git a/tests/ui/issues/auxiliary/issue-12133-rlib.rs b/tests/ui/issues/auxiliary/issue-12133-rlib.rs
new file mode 100644
index 000000000..39c261e11
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-12133-rlib.rs
@@ -0,0 +1,3 @@
+// no-prefer-dynamic
+
+#![crate_type = "rlib"]
diff --git a/tests/ui/issues/auxiliary/issue-12612-1.rs b/tests/ui/issues/auxiliary/issue-12612-1.rs
new file mode 100644
index 000000000..01f5a784b
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-12612-1.rs
@@ -0,0 +1,3 @@
+pub mod bar {
+ pub fn foo() {}
+}
diff --git a/tests/ui/issues/auxiliary/issue-12612-2.rs b/tests/ui/issues/auxiliary/issue-12612-2.rs
new file mode 100644
index 000000000..2c7247871
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-12612-2.rs
@@ -0,0 +1 @@
+pub fn baz() {}
diff --git a/tests/ui/issues/auxiliary/issue-12660-aux.rs b/tests/ui/issues/auxiliary/issue-12660-aux.rs
new file mode 100644
index 000000000..6dea8662d
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-12660-aux.rs
@@ -0,0 +1,11 @@
+#![crate_type="lib"]
+#![crate_name="issue12660aux"]
+
+pub use my_mod::{MyStruct, my_fn};
+
+mod my_mod {
+ pub struct MyStruct;
+
+ pub fn my_fn(my_struct: MyStruct) {
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-13507.rs b/tests/ui/issues/auxiliary/issue-13507.rs
new file mode 100644
index 000000000..c91013043
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-13507.rs
@@ -0,0 +1,87 @@
+pub mod testtypes {
+ use std::any::TypeId;
+
+ pub fn type_ids() -> Vec<TypeId> {
+ vec![
+ TypeId::of::<FooBool>(),
+ TypeId::of::<FooInt>(),
+ TypeId::of::<FooUint>(),
+ TypeId::of::<FooFloat>(),
+ TypeId::of::<FooStr>(),
+ TypeId::of::<FooArray>(),
+ TypeId::of::<FooSlice>(),
+ TypeId::of::<FooBox>(),
+ TypeId::of::<FooPtr>(),
+ TypeId::of::<FooRef>(),
+ TypeId::of::<FooFnPtr>(),
+ TypeId::of::<FooNil>(),
+ TypeId::of::<FooTuple>(),
+ TypeId::of::<FooTrait>(),
+ TypeId::of::<FooStruct>(),
+ TypeId::of::<FooEnum>()
+ ]
+ }
+
+ // Tests Bool
+ pub type FooBool = bool;
+
+ // Tests Char
+ pub type FooChar = char;
+
+ // Tests Int (does not test all variants of IntTy)
+ pub type FooInt = isize;
+
+ // Tests Uint (does not test all variants of UintTy)
+ pub type FooUint = usize;
+
+ // Tests Float (does not test all variants of FloatTy)
+ pub type FooFloat = f64;
+
+ // Tests Str
+ pub type FooStr = str;
+
+ // Tests Array
+ pub type FooArray = [u8; 1];
+
+ // Tests Slice
+ pub type FooSlice = [u8];
+
+ // Tests Box (of u8)
+ pub type FooBox = Box<u8>;
+
+ // Tests RawPtr
+ pub type FooPtr = *const u8;
+
+ // Tests Ref
+ pub type FooRef = &'static u8;
+
+ // Tests FnPtr
+ pub type FooFnPtr = fn(u8) -> bool;
+
+ // Tests Dynamic
+ pub trait FooTrait {
+ fn foo_method(&self) -> usize;
+ }
+
+ // Tests struct
+ pub struct FooStruct {
+ pub pub_foo_field: usize,
+ foo_field: usize
+ }
+
+ // Tests enum
+ pub enum FooEnum {
+ VarA(usize),
+ VarB(usize, usize)
+ }
+
+ // Tests Tuple
+ pub type FooNil = ();
+ pub type FooTuple = (u8, i8, bool);
+
+ // Skipping Param
+
+ // Skipping Infer
+
+ // Skipping Error
+}
diff --git a/tests/ui/issues/auxiliary/issue-13620-1.rs b/tests/ui/issues/auxiliary/issue-13620-1.rs
new file mode 100644
index 000000000..a77aa5a71
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-13620-1.rs
@@ -0,0 +1,9 @@
+pub struct Foo {
+ pub foo: extern "C" fn()
+}
+
+extern "C" fn the_foo() {}
+
+pub const FOO: Foo = Foo {
+ foo: the_foo
+};
diff --git a/tests/ui/issues/auxiliary/issue-13620-2.rs b/tests/ui/issues/auxiliary/issue-13620-2.rs
new file mode 100644
index 000000000..7efd24407
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-13620-2.rs
@@ -0,0 +1,3 @@
+extern crate issue_13620_1 as crate1;
+
+pub static FOO2: crate1::Foo = crate1::FOO;
diff --git a/tests/ui/issues/auxiliary/issue-13872-1.rs b/tests/ui/issues/auxiliary/issue-13872-1.rs
new file mode 100644
index 000000000..fa9258834
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-13872-1.rs
@@ -0,0 +1 @@
+pub enum A { B }
diff --git a/tests/ui/issues/auxiliary/issue-13872-2.rs b/tests/ui/issues/auxiliary/issue-13872-2.rs
new file mode 100644
index 000000000..8c64f16e3
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-13872-2.rs
@@ -0,0 +1,3 @@
+extern crate issue_13872_1 as foo;
+
+pub use foo::A::B;
diff --git a/tests/ui/issues/auxiliary/issue-13872-3.rs b/tests/ui/issues/auxiliary/issue-13872-3.rs
new file mode 100644
index 000000000..d31d52eb8
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-13872-3.rs
@@ -0,0 +1,9 @@
+extern crate issue_13872_2 as bar;
+
+use bar::B;
+
+pub fn foo() {
+ match B {
+ B => {}
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-14344-1.rs b/tests/ui/issues/auxiliary/issue-14344-1.rs
new file mode 100644
index 000000000..954a1e554
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-14344-1.rs
@@ -0,0 +1,5 @@
+// no-prefer-dynamic
+
+#![crate_type = "rlib"]
+
+pub fn foo() {}
diff --git a/tests/ui/issues/auxiliary/issue-14344-2.rs b/tests/ui/issues/auxiliary/issue-14344-2.rs
new file mode 100644
index 000000000..c47b8c0ea
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-14344-2.rs
@@ -0,0 +1,3 @@
+extern crate issue_14344_1;
+
+pub fn bar() {}
diff --git a/tests/ui/issues/auxiliary/issue-14421.rs b/tests/ui/issues/auxiliary/issue-14421.rs
new file mode 100644
index 000000000..5fe4b24cf
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-14421.rs
@@ -0,0 +1,25 @@
+#![crate_type="lib"]
+#![deny(warnings)]
+#![allow(dead_code)]
+
+pub use src::aliases::B;
+pub use src::hidden_core::make;
+
+mod src {
+ pub mod aliases {
+ use super::hidden_core::A;
+ pub type B = A<f32>;
+ }
+
+ pub mod hidden_core {
+ use super::aliases::B;
+
+ pub struct A<T> { t: T }
+
+ pub fn make() -> B { A { t: 1.0 } }
+
+ impl<T> A<T> {
+ pub fn foo(&mut self) { println!("called foo"); }
+ }
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-14422.rs b/tests/ui/issues/auxiliary/issue-14422.rs
new file mode 100644
index 000000000..a6026c1d0
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-14422.rs
@@ -0,0 +1,25 @@
+#![crate_type="lib"]
+#![deny(warnings)]
+
+pub use src::aliases::B;
+pub use src::hidden_core::make;
+
+mod src {
+ pub mod aliases {
+ use super::hidden_core::A;
+ pub type B = A;
+ }
+
+ pub mod hidden_core {
+ use super::aliases::B;
+
+ #[derive(Copy, Clone)]
+ pub struct A;
+
+ pub fn make() -> B { A }
+
+ impl A {
+ pub fn foo(&mut self) { println!("called foo"); }
+ }
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-15562.rs b/tests/ui/issues/auxiliary/issue-15562.rs
new file mode 100644
index 000000000..6ff26b47e
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-15562.rs
@@ -0,0 +1,5 @@
+#![crate_type = "lib"]
+
+extern "C" {
+ pub fn transmute();
+}
diff --git a/tests/ui/issues/auxiliary/issue-16643.rs b/tests/ui/issues/auxiliary/issue-16643.rs
new file mode 100644
index 000000000..7808e0119
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-16643.rs
@@ -0,0 +1,19 @@
+#![crate_type = "lib"]
+
+pub struct TreeBuilder<H> { pub h: H }
+
+impl<H> TreeBuilder<H> {
+ pub fn process_token(&mut self) {
+ match self {
+ _ => for _y in self.by_ref() {}
+ }
+ }
+}
+
+impl<H> Iterator for TreeBuilder<H> {
+ type Item = H;
+
+ fn next(&mut self) -> Option<H> {
+ None
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-16725.rs b/tests/ui/issues/auxiliary/issue-16725.rs
new file mode 100644
index 000000000..9f9abd575
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-16725.rs
@@ -0,0 +1,3 @@
+extern "C" {
+ fn bar();
+}
diff --git a/tests/ui/issues/auxiliary/issue-17662.rs b/tests/ui/issues/auxiliary/issue-17662.rs
new file mode 100644
index 000000000..75efe110c
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-17662.rs
@@ -0,0 +1,12 @@
+#![crate_type = "lib"]
+
+pub trait Foo<'a, T> {
+ fn foo(&'a self) -> T;
+}
+
+pub fn foo<'a, T>(x: &'a Foo<'a, T>) -> T {
+ let x: &'a Foo<T> = x;
+ // ^ the lifetime parameter of Foo is left to be inferred.
+ x.foo()
+ // ^ encoding this method call in metadata triggers an ICE.
+}
diff --git a/tests/ui/issues/auxiliary/issue-18501.rs b/tests/ui/issues/auxiliary/issue-18501.rs
new file mode 100644
index 000000000..dd914b464
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-18501.rs
@@ -0,0 +1,17 @@
+#![crate_type = "rlib"]
+struct Foo;
+
+trait Tr {
+ fn tr(&self);
+}
+
+impl Tr for Foo {
+ fn tr(&self) {}
+}
+
+fn take_method<T>(f: fn(&T), t: &T) {}
+
+#[inline]
+pub fn pass_method() {
+ take_method(Tr::tr, &Foo);
+}
diff --git a/tests/ui/issues/auxiliary/issue-18514.rs b/tests/ui/issues/auxiliary/issue-18514.rs
new file mode 100644
index 000000000..20c8e60ee
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-18514.rs
@@ -0,0 +1,17 @@
+#![crate_type = "rlib"]
+
+pub trait Tr {
+ fn tr(&self);
+}
+
+pub struct St<V>(pub Vec<V>);
+
+impl<V> Tr for St<V> {
+ fn tr(&self) {
+ match self {
+ &St(ref v) => {
+ v.iter();
+ }
+ }
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-18711.rs b/tests/ui/issues/auxiliary/issue-18711.rs
new file mode 100644
index 000000000..5cb1f9c43
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-18711.rs
@@ -0,0 +1,5 @@
+#![crate_type = "rlib"]
+
+pub fn inner<F>(f: F) -> F {
+ (move || f)()
+}
diff --git a/tests/ui/issues/auxiliary/issue-18913-1.rs b/tests/ui/issues/auxiliary/issue-18913-1.rs
new file mode 100644
index 000000000..053c5ada5
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-18913-1.rs
@@ -0,0 +1,6 @@
+// no-prefer-dynamic
+
+#![crate_type = "rlib"]
+#![crate_name = "foo"]
+
+pub fn foo() -> i32 { 0 }
diff --git a/tests/ui/issues/auxiliary/issue-18913-2.rs b/tests/ui/issues/auxiliary/issue-18913-2.rs
new file mode 100644
index 000000000..54747b45f
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-18913-2.rs
@@ -0,0 +1,6 @@
+// no-prefer-dynamic
+
+#![crate_type = "rlib"]
+#![crate_name = "foo"]
+
+pub fn foo() -> i32 { 1 }
diff --git a/tests/ui/issues/auxiliary/issue-1920.rs b/tests/ui/issues/auxiliary/issue-1920.rs
new file mode 100644
index 000000000..1548cb995
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-1920.rs
@@ -0,0 +1,4 @@
+// Just exporting some type to test for correct diagnostics when this
+// crate is pulled in at a non-root location in client crate.
+
+pub struct S;
diff --git a/tests/ui/issues/auxiliary/issue-19293.rs b/tests/ui/issues/auxiliary/issue-19293.rs
new file mode 100644
index 000000000..31359e865
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-19293.rs
@@ -0,0 +1,4 @@
+pub struct Foo (pub isize);
+pub enum MyEnum {
+ Foo(Foo),
+}
diff --git a/tests/ui/issues/auxiliary/issue-19340-1.rs b/tests/ui/issues/auxiliary/issue-19340-1.rs
new file mode 100644
index 000000000..39ee36b8b
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-19340-1.rs
@@ -0,0 +1,3 @@
+pub enum Homura {
+ Madoka { name: String },
+}
diff --git a/tests/ui/issues/auxiliary/issue-20389.rs b/tests/ui/issues/auxiliary/issue-20389.rs
new file mode 100644
index 000000000..ae6d44eeb
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-20389.rs
@@ -0,0 +1,4 @@
+pub trait T {
+ type C;
+ fn dummy(&self) { }
+}
diff --git a/tests/ui/issues/auxiliary/issue-21202.rs b/tests/ui/issues/auxiliary/issue-21202.rs
new file mode 100644
index 000000000..e3daa1ba0
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-21202.rs
@@ -0,0 +1,6 @@
+pub mod A {
+ pub struct Foo;
+ impl Foo {
+ fn foo(&self) { }
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-2170-lib.rs b/tests/ui/issues/auxiliary/issue-2170-lib.rs
new file mode 100644
index 000000000..a99385a83
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-2170-lib.rs
@@ -0,0 +1,18 @@
+fn foo(_x: i32) {
+}
+
+pub struct rsrc {
+ x: i32,
+}
+
+impl Drop for rsrc {
+ fn drop(&mut self) {
+ foo(self.x);
+ }
+}
+
+pub fn rsrc(x: i32) -> rsrc {
+ rsrc {
+ x: x
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-2316-a.rs b/tests/ui/issues/auxiliary/issue-2316-a.rs
new file mode 100644
index 000000000..418ddc0b0
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-2316-a.rs
@@ -0,0 +1,3 @@
+enum cat {
+ tabby, calico, tortoiseshell
+}
diff --git a/tests/ui/issues/auxiliary/issue-2316-b.rs b/tests/ui/issues/auxiliary/issue-2316-b.rs
new file mode 100644
index 000000000..550c2d6eb
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-2316-b.rs
@@ -0,0 +1,11 @@
+#![allow(unused_imports)]
+
+extern crate issue_2316_a;
+
+pub mod cloth {
+ use issue_2316_a::*;
+
+ pub enum fabric {
+ gingham, flannel, calico
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-2380.rs b/tests/ui/issues/auxiliary/issue-2380.rs
new file mode 100644
index 000000000..79fd62d16
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-2380.rs
@@ -0,0 +1,13 @@
+#![crate_name="a"]
+#![crate_type = "lib"]
+
+pub trait i<T>
+{
+ fn dummy(&self, t: T) -> T { panic!() }
+}
+
+pub fn f<T>() -> Box<i<T>+'static> {
+ impl<T> i<T> for () { }
+
+ Box::new(()) as Box<i<T>+'static>
+}
diff --git a/tests/ui/issues/auxiliary/issue-2414-a.rs b/tests/ui/issues/auxiliary/issue-2414-a.rs
new file mode 100644
index 000000000..b90ab32dd
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-2414-a.rs
@@ -0,0 +1,12 @@
+#![crate_name="a"]
+#![crate_type = "lib"]
+
+type t1 = usize;
+
+trait foo {
+ fn foo(&self);
+}
+
+impl foo for String {
+ fn foo(&self) {}
+}
diff --git a/tests/ui/issues/auxiliary/issue-2414-b.rs b/tests/ui/issues/auxiliary/issue-2414-b.rs
new file mode 100644
index 000000000..fc018349d
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-2414-b.rs
@@ -0,0 +1,4 @@
+#![crate_name="b"]
+#![crate_type = "lib"]
+
+extern crate a;
diff --git a/tests/ui/issues/auxiliary/issue-2472-b.rs b/tests/ui/issues/auxiliary/issue-2472-b.rs
new file mode 100644
index 000000000..0d151520f
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-2472-b.rs
@@ -0,0 +1,13 @@
+pub struct S(pub ());
+
+impl S {
+ pub fn foo(&self) { }
+}
+
+pub trait T {
+ fn bar(&self);
+}
+
+impl T for S {
+ fn bar(&self) { }
+}
diff --git a/tests/ui/issues/auxiliary/issue-25185-1.rs b/tests/ui/issues/auxiliary/issue-25185-1.rs
new file mode 100644
index 000000000..e957be9c1
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-25185-1.rs
@@ -0,0 +1,8 @@
+// no-prefer-dynamic
+
+#![crate_type = "rlib"]
+
+#[link(name = "rust_test_helpers", kind = "static")]
+extern "C" {
+ pub fn rust_dbg_extern_identity_u32(u: u32) -> u32;
+}
diff --git a/tests/ui/issues/auxiliary/issue-25185-2.rs b/tests/ui/issues/auxiliary/issue-25185-2.rs
new file mode 100644
index 000000000..7ce3df255
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-25185-2.rs
@@ -0,0 +1,3 @@
+extern crate issue_25185_1;
+
+pub use issue_25185_1::rust_dbg_extern_identity_u32;
diff --git a/tests/ui/issues/auxiliary/issue-2526.rs b/tests/ui/issues/auxiliary/issue-2526.rs
new file mode 100644
index 000000000..3b27f658c
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-2526.rs
@@ -0,0 +1,44 @@
+#![crate_name="issue_2526"]
+#![crate_type = "lib"]
+
+use std::marker;
+
+pub struct arc_destruct<T: Sync> {
+ _data: isize,
+ _marker: marker::PhantomData<T>
+}
+
+impl<T: Sync> Drop for arc_destruct<T> {
+ fn drop(&mut self) {}
+}
+
+fn arc_destruct<T: Sync>(data: isize) -> arc_destruct<T> {
+ arc_destruct {
+ _data: data,
+ _marker: marker::PhantomData
+ }
+}
+
+fn arc<T: Sync>(_data: T) -> arc_destruct<T> {
+ arc_destruct(0)
+}
+
+fn init() -> arc_destruct<context_res> {
+ arc(context_res())
+}
+
+pub struct context_res {
+ ctx : isize,
+}
+
+impl Drop for context_res {
+ fn drop(&mut self) {}
+}
+
+fn context_res() -> context_res {
+ context_res {
+ ctx: 0
+ }
+}
+
+pub type context = arc_destruct<context_res>;
diff --git a/tests/ui/issues/auxiliary/issue-25467.rs b/tests/ui/issues/auxiliary/issue-25467.rs
new file mode 100644
index 000000000..ca9b3097c
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-25467.rs
@@ -0,0 +1,10 @@
+#![crate_type="lib"]
+
+pub trait Trait {
+ // the issue is sensitive to interning order - so use names
+ // unlikely to appear in libstd.
+ type Issue25467FooT;
+ type Issue25467BarT;
+}
+
+pub type Object = Option<Box<Trait<Issue25467FooT=(),Issue25467BarT=()>>>;
diff --git a/tests/ui/issues/auxiliary/issue-2631-a.rs b/tests/ui/issues/auxiliary/issue-2631-a.rs
new file mode 100644
index 000000000..1e8211bfa
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-2631-a.rs
@@ -0,0 +1,14 @@
+#![crate_name="req"]
+#![crate_type = "lib"]
+
+use std::cell::RefCell;
+use std::collections::HashMap;
+use std::rc::Rc;
+
+pub type header_map = HashMap<String, Rc<RefCell<Vec<Rc<String>>>>>;
+
+// the unused ty param is necessary so this gets monomorphized
+pub fn request<T>(req: &header_map) {
+ let data = req[&"METHOD".to_string()].clone();
+ let _x = data.borrow().clone()[0].clone();
+}
diff --git a/tests/ui/issues/auxiliary/issue-2723-a.rs b/tests/ui/issues/auxiliary/issue-2723-a.rs
new file mode 100644
index 000000000..661b46d82
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-2723-a.rs
@@ -0,0 +1,3 @@
+pub unsafe fn f(xs: Vec<isize> ) {
+ xs.iter().map(|_x| { unsafe fn q() { panic!(); } }).collect::<Vec<()>>();
+}
diff --git a/tests/ui/issues/auxiliary/issue-29181.rs b/tests/ui/issues/auxiliary/issue-29181.rs
new file mode 100644
index 000000000..bd1a9be4e
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-29181.rs
@@ -0,0 +1,5 @@
+#![crate_type="lib"]
+
+pub mod foo {
+ pub use super::*;
+}
diff --git a/tests/ui/issues/auxiliary/issue-29265.rs b/tests/ui/issues/auxiliary/issue-29265.rs
new file mode 100644
index 000000000..6d26002a2
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-29265.rs
@@ -0,0 +1,9 @@
+#![crate_type = "lib"]
+
+pub struct SomeType {
+ pub some_member: usize,
+}
+
+pub static SOME_VALUE: SomeType = SomeType {
+ some_member: 1,
+};
diff --git a/tests/ui/issues/auxiliary/issue-29485.rs b/tests/ui/issues/auxiliary/issue-29485.rs
new file mode 100644
index 000000000..1e8891c51
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-29485.rs
@@ -0,0 +1,16 @@
+#![crate_name="a"]
+#![crate_type = "lib"]
+
+pub struct X(pub u8);
+
+impl Drop for X {
+ fn drop(&mut self) {
+ assert_eq!(self.0, 1)
+ }
+}
+
+pub fn f(x: &mut X, g: fn()) {
+ x.0 = 1;
+ g();
+ x.0 = 0;
+}
diff --git a/tests/ui/issues/auxiliary/issue-3012-1.rs b/tests/ui/issues/auxiliary/issue-3012-1.rs
new file mode 100644
index 000000000..509af2a8d
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-3012-1.rs
@@ -0,0 +1,20 @@
+#![crate_name="socketlib"]
+#![crate_type = "lib"]
+
+pub mod socket {
+ pub struct socket_handle {
+ sockfd: u32,
+ }
+
+ impl Drop for socket_handle {
+ fn drop(&mut self) {
+ /* c::close(self.sockfd); */
+ }
+ }
+
+ pub fn socket_handle(x: u32) -> socket_handle {
+ socket_handle {
+ sockfd: x
+ }
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-30123-aux.rs b/tests/ui/issues/auxiliary/issue-30123-aux.rs
new file mode 100644
index 000000000..07c743eb2
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-30123-aux.rs
@@ -0,0 +1,23 @@
+use std::marker::PhantomData;
+
+pub struct Directed;
+pub struct Undirected;
+
+pub struct Graph<N, E, Ty = Directed> {
+ nodes: Vec<PhantomData<N>>,
+ edges: Vec<PhantomData<E>>,
+ ty: PhantomData<Ty>,
+}
+
+
+impl<N, E> Graph<N, E, Directed> {
+ pub fn new() -> Self {
+ Graph{nodes: Vec::new(), edges: Vec::new(), ty: PhantomData}
+ }
+}
+
+impl<N, E> Graph<N, E, Undirected> {
+ pub fn new_undirected() -> Self {
+ Graph{nodes: Vec::new(), edges: Vec::new(), ty: PhantomData}
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-3136-a.rc b/tests/ui/issues/auxiliary/issue-3136-a.rc
new file mode 100644
index 000000000..cd5fd3145
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-3136-a.rc
@@ -0,0 +1,4 @@
+#![crate_type = "lib"]
+
+#[path = "issue-3136-a.rs"]
+pub mod issue_3136_a;
diff --git a/tests/ui/issues/auxiliary/issue-3136-a.rs b/tests/ui/issues/auxiliary/issue-3136-a.rs
new file mode 100644
index 000000000..9bb546ab3
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-3136-a.rs
@@ -0,0 +1,14 @@
+trait x {
+ fn use_x<T>(&self);
+}
+struct y(());
+impl x for y {
+ fn use_x<T>(&self) {
+ struct foo { //~ ERROR quux
+ i: ()
+ }
+ fn new_foo<T>(i: ()) -> foo {
+ foo { i: i }
+ }
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-31702-1.rs b/tests/ui/issues/auxiliary/issue-31702-1.rs
new file mode 100644
index 000000000..a48d0dc2c
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-31702-1.rs
@@ -0,0 +1,16 @@
+#[derive(Copy)]
+pub struct U256(pub [u64; 4]);
+
+impl Clone for U256 {
+ fn clone(&self) -> U256 {
+ *self
+ }
+}
+
+impl U256 {
+ pub fn new(value: u64) -> U256 {
+ let mut ret = [0; 4];
+ ret[0] = value;
+ U256(ret)
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-31702-2.rs b/tests/ui/issues/auxiliary/issue-31702-2.rs
new file mode 100644
index 000000000..d360ae0ca
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-31702-2.rs
@@ -0,0 +1,20 @@
+// compile-flags: -g
+
+extern crate issue_31702_1;
+
+use std::collections::HashMap;
+use issue_31702_1::U256;
+
+pub struct Ethash {
+ engine_params: fn() -> Option<&'static Vec<u8>>,
+ u256_params: HashMap<String, U256>,
+}
+
+impl Ethash {
+ pub fn u256_param(&mut self, name: &str) -> U256 {
+ let engine = self.engine_params;
+ *self.u256_params.entry(name.to_owned()).or_insert_with(|| {
+ engine().map_or(U256::new(0u64), |_a| loop {})
+ })
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-34796-aux.rs b/tests/ui/issues/auxiliary/issue-34796-aux.rs
new file mode 100644
index 000000000..09c69b903
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-34796-aux.rs
@@ -0,0 +1,20 @@
+#![crate_type = "lib"]
+pub trait Future {
+ type Item;
+ type Error;
+}
+
+impl Future for u32 {
+ type Item = ();
+ type Error = Box<()>;
+}
+
+fn foo() -> Box<Future<Item=(), Error=Box<()>>> {
+ Box::new(0u32)
+}
+
+pub fn bar<F, A, B>(_s: F)
+ where F: Fn(A) -> B,
+{
+ foo();
+}
diff --git a/tests/ui/issues/auxiliary/issue-36954.rs b/tests/ui/issues/auxiliary/issue-36954.rs
new file mode 100644
index 000000000..bc444a381
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-36954.rs
@@ -0,0 +1,7 @@
+#![crate_type = "lib"]
+
+const fn foo(i: i32) -> i32 {
+ i
+}
+
+pub const FOO: i32 = foo(1);
diff --git a/tests/ui/issues/auxiliary/issue-38190.rs b/tests/ui/issues/auxiliary/issue-38190.rs
new file mode 100644
index 000000000..373e646ba
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-38190.rs
@@ -0,0 +1,2 @@
+#[macro_export]
+macro_rules! m { ([$i:item]) => {} }
diff --git a/tests/ui/issues/auxiliary/issue-38226-aux.rs b/tests/ui/issues/auxiliary/issue-38226-aux.rs
new file mode 100644
index 000000000..f96801719
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-38226-aux.rs
@@ -0,0 +1,23 @@
+#![crate_type="rlib"]
+
+#[inline(never)]
+pub fn foo<T>() {
+ let _: Box<SomeTrait> = Box::new(SomeTraitImpl);
+}
+
+pub fn bar() {
+ SomeTraitImpl.bar();
+}
+
+mod submod {
+ pub trait SomeTrait {
+ fn bar(&self) {
+ panic!("NO")
+ }
+ }
+}
+
+use self::submod::SomeTrait;
+
+pub struct SomeTraitImpl;
+impl SomeTrait for SomeTraitImpl {}
diff --git a/tests/ui/issues/auxiliary/issue-3979-traits.rs b/tests/ui/issues/auxiliary/issue-3979-traits.rs
new file mode 100644
index 000000000..5d03a0e9e
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-3979-traits.rs
@@ -0,0 +1,15 @@
+#![crate_name="issue_3979_traits"]
+
+#![crate_type = "lib"]
+
+pub trait Positioned {
+ fn SetX(&mut self, _: isize);
+ fn X(&self) -> isize;
+}
+
+pub trait Movable: Positioned {
+ fn translate(&mut self, dx: isize) {
+ let x = self.X() + dx;
+ self.SetX(x);
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-41053.rs b/tests/ui/issues/auxiliary/issue-41053.rs
new file mode 100644
index 000000000..ae73c3e78
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-41053.rs
@@ -0,0 +1 @@
+pub struct Test;
diff --git a/tests/ui/issues/auxiliary/issue-41394.rs b/tests/ui/issues/auxiliary/issue-41394.rs
new file mode 100644
index 000000000..2e650efc7
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-41394.rs
@@ -0,0 +1,16 @@
+#![crate_type = "lib"]
+
+#[repr(u32)]
+pub enum Foo {
+ Foo = Private::Variant as u32
+}
+
+#[repr(u8)]
+enum Private {
+ Variant = 42
+}
+
+#[inline(always)]
+pub fn foo() -> Foo {
+ Foo::Foo
+}
diff --git a/tests/ui/issues/auxiliary/issue-41549.rs b/tests/ui/issues/auxiliary/issue-41549.rs
new file mode 100644
index 000000000..b7bd37525
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-41549.rs
@@ -0,0 +1,3 @@
+pub trait Trait {
+ const CONST: u32;
+}
diff --git a/tests/ui/issues/auxiliary/issue-42007-s.rs b/tests/ui/issues/auxiliary/issue-42007-s.rs
new file mode 100644
index 000000000..95119a589
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-42007-s.rs
@@ -0,0 +1,4 @@
+#[repr(u8)]
+pub enum E {
+ B = 1 as u8,
+}
diff --git a/tests/ui/issues/auxiliary/issue-4208-cc.rs b/tests/ui/issues/auxiliary/issue-4208-cc.rs
new file mode 100644
index 000000000..7b4c8b01a
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-4208-cc.rs
@@ -0,0 +1,10 @@
+#![crate_name="numeric"]
+#![crate_type = "lib"]
+
+pub trait Trig<T> {
+ fn sin(&self) -> T;
+}
+
+pub fn sin<T:Trig<R>, R>(theta: &T) -> R { theta.sin() }
+
+pub trait Angle<T>: Trig<T> {}
diff --git a/tests/ui/issues/auxiliary/issue-4545.rs b/tests/ui/issues/auxiliary/issue-4545.rs
new file mode 100644
index 000000000..2f6094750
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-4545.rs
@@ -0,0 +1,2 @@
+pub struct S<T>(Option<T>);
+pub fn mk<T>() -> S<T> { S(None) }
diff --git a/tests/ui/issues/auxiliary/issue-48984-aux.rs b/tests/ui/issues/auxiliary/issue-48984-aux.rs
new file mode 100644
index 000000000..7cc888cd4
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-48984-aux.rs
@@ -0,0 +1,6 @@
+#![crate_type = "lib"]
+#![crate_name = "issue48984aux"]
+
+pub trait Foo { type Item; }
+
+pub trait Bar: Foo<Item=[u8;1]> { }
diff --git a/tests/ui/issues/auxiliary/issue-49544.rs b/tests/ui/issues/auxiliary/issue-49544.rs
new file mode 100644
index 000000000..f8b3a3fba
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-49544.rs
@@ -0,0 +1,7 @@
+#![crate_type = "lib"]
+
+pub fn foo() -> Vec<String> {
+ std::env::args()
+ .skip(1)
+ .collect()
+}
diff --git a/tests/ui/issues/auxiliary/issue-51798.rs b/tests/ui/issues/auxiliary/issue-51798.rs
new file mode 100644
index 000000000..fef5213db
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-51798.rs
@@ -0,0 +1,3 @@
+#![crate_type = "lib"]
+
+pub fn vec() -> Vec<u8> { vec![] }
diff --git a/tests/ui/issues/auxiliary/issue-52489.rs b/tests/ui/issues/auxiliary/issue-52489.rs
new file mode 100644
index 000000000..f53bf7db5
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-52489.rs
@@ -0,0 +1,3 @@
+#![crate_type = "lib"]
+#![unstable(feature = "issue_52489_unstable", issue = "none")]
+#![feature(staged_api)]
diff --git a/tests/ui/issues/auxiliary/issue-5518.rs b/tests/ui/issues/auxiliary/issue-5518.rs
new file mode 100644
index 000000000..bfe96552a
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-5518.rs
@@ -0,0 +1,4 @@
+trait A<'a, T> {
+ fn f(&mut self) -> &'a mut T;
+ fn p() -> T;
+}
diff --git a/tests/ui/issues/auxiliary/issue-5521.rs b/tests/ui/issues/auxiliary/issue-5521.rs
new file mode 100644
index 000000000..c2f81779b
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-5521.rs
@@ -0,0 +1,3 @@
+use std::collections::HashMap;
+
+pub type map = Box<HashMap<usize, usize>>;
diff --git a/tests/ui/issues/auxiliary/issue-56943.rs b/tests/ui/issues/auxiliary/issue-56943.rs
new file mode 100644
index 000000000..65b9beb91
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-56943.rs
@@ -0,0 +1,3 @@
+pub struct S;
+mod m { pub struct S; }
+pub use crate::m::S as S2;
diff --git a/tests/ui/issues/auxiliary/issue-57271-lib.rs b/tests/ui/issues/auxiliary/issue-57271-lib.rs
new file mode 100644
index 000000000..ff625668a
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-57271-lib.rs
@@ -0,0 +1,11 @@
+#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)]
+pub enum BaseType {
+ Byte,
+ Char,
+ Double,
+ Float,
+ Int,
+ Long,
+ Short,
+ Boolean,
+}
diff --git a/tests/ui/issues/auxiliary/issue-5844-aux.rs b/tests/ui/issues/auxiliary/issue-5844-aux.rs
new file mode 100644
index 000000000..ea83378ca
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-5844-aux.rs
@@ -0,0 +1,3 @@
+extern "C" {
+ pub fn rand() -> u32;
+}
diff --git a/tests/ui/issues/auxiliary/issue-7178.rs b/tests/ui/issues/auxiliary/issue-7178.rs
new file mode 100644
index 000000000..56ae5139a
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-7178.rs
@@ -0,0 +1,7 @@
+pub struct Foo<'a, A:'a>(&'a A);
+
+impl<'a, A> Foo<'a, A> {
+ pub fn new(a: &'a A) -> Foo<'a, A> {
+ Foo(a)
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-73112.rs b/tests/ui/issues/auxiliary/issue-73112.rs
new file mode 100644
index 000000000..6210c29bb
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-73112.rs
@@ -0,0 +1,10 @@
+#[repr(transparent)]
+pub struct PageTableEntry {
+ entry: u64,
+}
+
+#[repr(align(4096))]
+#[repr(C)]
+pub struct PageTable {
+ entries: [PageTableEntry; 512],
+}
diff --git a/tests/ui/issues/auxiliary/issue-7899.rs b/tests/ui/issues/auxiliary/issue-7899.rs
new file mode 100644
index 000000000..3af6e8716
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-7899.rs
@@ -0,0 +1 @@
+pub struct V2<T>(pub T, pub T);
diff --git a/tests/ui/issues/auxiliary/issue-8044.rs b/tests/ui/issues/auxiliary/issue-8044.rs
new file mode 100644
index 000000000..2ec25f51c
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-8044.rs
@@ -0,0 +1,15 @@
+pub struct BTree<V> {
+ pub node: TreeItem<V>,
+}
+
+pub enum TreeItem<V> {
+ TreeLeaf { value: V },
+}
+
+pub fn leaf<V>(value: V) -> TreeItem<V> {
+ TreeItem::TreeLeaf { value: value }
+}
+
+fn main() {
+ BTree::<isize> { node: leaf(1) };
+}
diff --git a/tests/ui/issues/auxiliary/issue-8259.rs b/tests/ui/issues/auxiliary/issue-8259.rs
new file mode 100644
index 000000000..891aee099
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-8259.rs
@@ -0,0 +1,4 @@
+pub enum Foo<'a> {
+ A,
+ B(&'a str),
+}
diff --git a/tests/ui/issues/auxiliary/issue-8401.rs b/tests/ui/issues/auxiliary/issue-8401.rs
new file mode 100644
index 000000000..e35dbbfab
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-8401.rs
@@ -0,0 +1,16 @@
+// for this issue, this code must be built in a library
+
+use std::mem;
+
+trait A {
+ fn dummy(&self) { }
+}
+struct B;
+impl A for B {}
+
+fn bar<T>(_: &mut A, _: &T) {}
+
+fn foo<T>(t: &T) {
+ let mut b = B;
+ bar(&mut b as &mut A, t)
+}
diff --git a/tests/ui/issues/auxiliary/issue-9123.rs b/tests/ui/issues/auxiliary/issue-9123.rs
new file mode 100644
index 000000000..60af53359
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-9123.rs
@@ -0,0 +1,9 @@
+#![crate_type = "lib"]
+
+pub trait X {
+ fn x() {
+ fn f() { }
+ f();
+ }
+ fn dummy(&self) { }
+}
diff --git a/tests/ui/issues/auxiliary/issue-9155.rs b/tests/ui/issues/auxiliary/issue-9155.rs
new file mode 100644
index 000000000..049a96a65
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-9155.rs
@@ -0,0 +1,7 @@
+pub struct Foo<T>(T);
+
+impl<T> Foo<T> {
+ pub fn new(t: T) -> Foo<T> {
+ Foo(t)
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-9188.rs b/tests/ui/issues/auxiliary/issue-9188.rs
new file mode 100644
index 000000000..3bc5697a1
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-9188.rs
@@ -0,0 +1,13 @@
+pub fn foo<T>() -> &'static isize {
+ if false {
+ static a: isize = 4;
+ return &a;
+ } else {
+ static a: isize = 5;
+ return &a;
+ }
+}
+
+pub fn bar() -> &'static isize {
+ foo::<isize>()
+}
diff --git a/tests/ui/issues/auxiliary/issue-9906.rs b/tests/ui/issues/auxiliary/issue-9906.rs
new file mode 100644
index 000000000..8a3eea790
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-9906.rs
@@ -0,0 +1,15 @@
+pub use other::FooBar;
+pub use other::foo;
+
+mod other {
+ pub struct FooBar{value: isize}
+ impl FooBar{
+ pub fn new(val: isize) -> FooBar {
+ FooBar{value: val}
+ }
+ }
+
+ pub fn foo(){
+ 1+1;
+ }
+}
diff --git a/tests/ui/issues/auxiliary/issue-9968.rs b/tests/ui/issues/auxiliary/issue-9968.rs
new file mode 100644
index 000000000..8d795b59e
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-9968.rs
@@ -0,0 +1,22 @@
+pub use internal::core::{Trait, Struct};
+
+mod internal {
+ pub mod core {
+ pub struct Struct;
+ impl Struct {
+ pub fn init() -> Struct {
+ Struct
+ }
+ }
+
+ pub trait Trait {
+ fn test(&self) {
+ private();
+ }
+ }
+
+ impl Trait for Struct {}
+
+ fn private() { }
+ }
+}
diff --git a/tests/ui/issues/auxiliary/private-trait-xc.rs b/tests/ui/issues/auxiliary/private-trait-xc.rs
new file mode 100644
index 000000000..481a48a7c
--- /dev/null
+++ b/tests/ui/issues/auxiliary/private-trait-xc.rs
@@ -0,0 +1 @@
+trait Foo {}
diff --git a/tests/ui/issues/auxiliary/reexported-trait.rs b/tests/ui/issues/auxiliary/reexported-trait.rs
new file mode 100644
index 000000000..51a991bef
--- /dev/null
+++ b/tests/ui/issues/auxiliary/reexported-trait.rs
@@ -0,0 +1,17 @@
+mod private {
+ pub trait Trait {
+ fn trait_method(&self) {
+ }
+ }
+ pub trait TraitB {
+ fn trait_method_b(&self) {
+ }
+ }
+}
+
+pub struct FooStruct;
+pub use crate::private::Trait;
+impl crate::private::Trait for FooStruct {}
+
+pub use crate::private::TraitB as TraitBRename;
+impl crate::private::TraitB for FooStruct {}