diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
commit | 698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch) | |
tree | 173a775858bd501c378080a10dca74132f05bc50 /src/test/ui/issues/auxiliary | |
parent | Initial commit. (diff) | |
download | rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip |
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/issues/auxiliary')
100 files changed, 1065 insertions, 0 deletions
diff --git a/src/test/ui/issues/auxiliary/cgu_test.rs b/src/test/ui/issues/auxiliary/cgu_test.rs new file mode 100644 index 000000000..5ed973164 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/cgu_test_a.rs b/src/test/ui/issues/auxiliary/cgu_test_a.rs new file mode 100644 index 000000000..a3dcd9201 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/cgu_test_b.rs b/src/test/ui/issues/auxiliary/cgu_test_b.rs new file mode 100644 index 000000000..a3dcd9201 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/i8.rs b/src/test/ui/issues/auxiliary/i8.rs new file mode 100644 index 000000000..889a9c4eb --- /dev/null +++ b/src/test/ui/issues/auxiliary/i8.rs @@ -0,0 +1,3 @@ +// A crate named after a built-in type. + +pub struct Test; diff --git a/src/test/ui/issues/auxiliary/iss.rs b/src/test/ui/issues/auxiliary/iss.rs new file mode 100644 index 000000000..cf32f6c2d --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-11224.rs b/src/test/ui/issues/auxiliary/issue-11224.rs new file mode 100644 index 000000000..63543621a --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-11225-1.rs b/src/test/ui/issues/auxiliary/issue-11225-1.rs new file mode 100644 index 000000000..2c6f899a0 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-11225-1.rs @@ -0,0 +1,18 @@ +mod inner { + pub trait Trait { + fn f(&self) { f(); } + fn f_ufcs(&self) { f_ufcs(); } + } + + impl Trait for isize {} + + fn f() {} + fn f_ufcs() {} +} + +pub fn foo<T: inner::Trait>(t: T) { + t.f(); +} +pub fn foo_ufcs<T: inner::Trait>(t: T) { + T::f_ufcs(&t); +} diff --git a/src/test/ui/issues/auxiliary/issue-11225-2.rs b/src/test/ui/issues/auxiliary/issue-11225-2.rs new file mode 100644 index 000000000..4381f0a4e --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-11225-2.rs @@ -0,0 +1,28 @@ +use inner::Trait; + +mod inner { + pub struct Foo; + pub trait Trait { + fn f(&self); + fn f_ufcs(&self); + } + + impl Trait for Foo { + fn f(&self) { } + fn f_ufcs(&self) { } + } +} + +pub trait Outer { + fn foo<T: Trait>(&self, t: T) { t.f(); } + fn foo_ufcs<T: Trait>(&self, t: T) { T::f(&t); } +} + +impl Outer for isize {} + +pub fn foo<T: Outer>(t: T) { + t.foo(inner::Foo); +} +pub fn foo_ufcs<T: Outer>(t: T) { + T::foo_ufcs(&t, inner::Foo) +} diff --git a/src/test/ui/issues/auxiliary/issue-11225-3.rs b/src/test/ui/issues/auxiliary/issue-11225-3.rs new file mode 100644 index 000000000..266e42a10 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-11225-3.rs @@ -0,0 +1,28 @@ +trait PrivateTrait { + fn private_trait_method(&self); + fn private_trait_method_ufcs(&self); +} + +struct PrivateStruct; + +impl PrivateStruct { + fn private_inherent_method(&self) { } + fn private_inherent_method_ufcs(&self) { } +} + +impl PrivateTrait for PrivateStruct { + fn private_trait_method(&self) { } + fn private_trait_method_ufcs(&self) { } +} + +#[inline] +pub fn public_inlinable_function() { + PrivateStruct.private_trait_method(); + PrivateStruct.private_inherent_method(); +} + +#[inline] +pub fn public_inlinable_function_ufcs() { + PrivateStruct::private_trait_method(&PrivateStruct); + PrivateStruct::private_inherent_method(&PrivateStruct); +} diff --git a/src/test/ui/issues/auxiliary/issue-11508.rs b/src/test/ui/issues/auxiliary/issue-11508.rs new file mode 100644 index 000000000..16bfc65c2 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-11529.rs b/src/test/ui/issues/auxiliary/issue-11529.rs new file mode 100644 index 000000000..dd3ef4387 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-11529.rs @@ -0,0 +1 @@ +pub struct A<'a>(pub &'a isize); diff --git a/src/test/ui/issues/auxiliary/issue-11680.rs b/src/test/ui/issues/auxiliary/issue-11680.rs new file mode 100644 index 000000000..74abbf0bf --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-11680.rs @@ -0,0 +1,9 @@ +enum Foo { + Bar(isize) +} + +pub mod test { + enum Foo { + Bar(isize) + } +} diff --git a/src/test/ui/issues/auxiliary/issue-12133-dylib.rs b/src/test/ui/issues/auxiliary/issue-12133-dylib.rs new file mode 100644 index 000000000..8bd2b3353 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-12133-dylib.rs @@ -0,0 +1 @@ +#![crate_type = "dylib"] diff --git a/src/test/ui/issues/auxiliary/issue-12133-dylib2.rs b/src/test/ui/issues/auxiliary/issue-12133-dylib2.rs new file mode 100644 index 000000000..30de74006 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-12133-rlib.rs b/src/test/ui/issues/auxiliary/issue-12133-rlib.rs new file mode 100644 index 000000000..39c261e11 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-12133-rlib.rs @@ -0,0 +1,3 @@ +// no-prefer-dynamic + +#![crate_type = "rlib"] diff --git a/src/test/ui/issues/auxiliary/issue-12612-1.rs b/src/test/ui/issues/auxiliary/issue-12612-1.rs new file mode 100644 index 000000000..01f5a784b --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-12612-1.rs @@ -0,0 +1,3 @@ +pub mod bar { + pub fn foo() {} +} diff --git a/src/test/ui/issues/auxiliary/issue-12612-2.rs b/src/test/ui/issues/auxiliary/issue-12612-2.rs new file mode 100644 index 000000000..2c7247871 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-12612-2.rs @@ -0,0 +1 @@ +pub fn baz() {} diff --git a/src/test/ui/issues/auxiliary/issue-12660-aux.rs b/src/test/ui/issues/auxiliary/issue-12660-aux.rs new file mode 100644 index 000000000..6dea8662d --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-13507.rs b/src/test/ui/issues/auxiliary/issue-13507.rs new file mode 100644 index 000000000..c91013043 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-13620-1.rs b/src/test/ui/issues/auxiliary/issue-13620-1.rs new file mode 100644 index 000000000..a77aa5a71 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-13620-2.rs b/src/test/ui/issues/auxiliary/issue-13620-2.rs new file mode 100644 index 000000000..7efd24407 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-13872-1.rs b/src/test/ui/issues/auxiliary/issue-13872-1.rs new file mode 100644 index 000000000..fa9258834 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-13872-1.rs @@ -0,0 +1 @@ +pub enum A { B } diff --git a/src/test/ui/issues/auxiliary/issue-13872-2.rs b/src/test/ui/issues/auxiliary/issue-13872-2.rs new file mode 100644 index 000000000..8c64f16e3 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-13872-3.rs b/src/test/ui/issues/auxiliary/issue-13872-3.rs new file mode 100644 index 000000000..d31d52eb8 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-14344-1.rs b/src/test/ui/issues/auxiliary/issue-14344-1.rs new file mode 100644 index 000000000..954a1e554 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-14344-1.rs @@ -0,0 +1,5 @@ +// no-prefer-dynamic + +#![crate_type = "rlib"] + +pub fn foo() {} diff --git a/src/test/ui/issues/auxiliary/issue-14344-2.rs b/src/test/ui/issues/auxiliary/issue-14344-2.rs new file mode 100644 index 000000000..c47b8c0ea --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-14344-2.rs @@ -0,0 +1,3 @@ +extern crate issue_14344_1; + +pub fn bar() {} diff --git a/src/test/ui/issues/auxiliary/issue-14421.rs b/src/test/ui/issues/auxiliary/issue-14421.rs new file mode 100644 index 000000000..5fe4b24cf --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-14422.rs b/src/test/ui/issues/auxiliary/issue-14422.rs new file mode 100644 index 000000000..a6026c1d0 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-15562.rs b/src/test/ui/issues/auxiliary/issue-15562.rs new file mode 100644 index 000000000..6ff26b47e --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-15562.rs @@ -0,0 +1,5 @@ +#![crate_type = "lib"] + +extern "C" { + pub fn transmute(); +} diff --git a/src/test/ui/issues/auxiliary/issue-16643.rs b/src/test/ui/issues/auxiliary/issue-16643.rs new file mode 100644 index 000000000..7808e0119 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-16725.rs b/src/test/ui/issues/auxiliary/issue-16725.rs new file mode 100644 index 000000000..9f9abd575 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-16725.rs @@ -0,0 +1,3 @@ +extern "C" { + fn bar(); +} diff --git a/src/test/ui/issues/auxiliary/issue-17662.rs b/src/test/ui/issues/auxiliary/issue-17662.rs new file mode 100644 index 000000000..75efe110c --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-17718-const-privacy.rs b/src/test/ui/issues/auxiliary/issue-17718-const-privacy.rs new file mode 100644 index 000000000..93cf4bf3e --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-17718-const-privacy.rs @@ -0,0 +1,8 @@ +pub use foo::FOO2; + +pub const FOO: usize = 3; +const BAR: usize = 3; + +mod foo { + pub const FOO2: usize = 3; +} diff --git a/src/test/ui/issues/auxiliary/issue-18501.rs b/src/test/ui/issues/auxiliary/issue-18501.rs new file mode 100644 index 000000000..dd914b464 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-18514.rs b/src/test/ui/issues/auxiliary/issue-18514.rs new file mode 100644 index 000000000..20c8e60ee --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-18711.rs b/src/test/ui/issues/auxiliary/issue-18711.rs new file mode 100644 index 000000000..5cb1f9c43 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-18913-1.rs b/src/test/ui/issues/auxiliary/issue-18913-1.rs new file mode 100644 index 000000000..053c5ada5 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-18913-2.rs b/src/test/ui/issues/auxiliary/issue-18913-2.rs new file mode 100644 index 000000000..54747b45f --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-1920.rs b/src/test/ui/issues/auxiliary/issue-1920.rs new file mode 100644 index 000000000..1548cb995 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-19293.rs b/src/test/ui/issues/auxiliary/issue-19293.rs new file mode 100644 index 000000000..31359e865 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-19293.rs @@ -0,0 +1,4 @@ +pub struct Foo (pub isize); +pub enum MyEnum { + Foo(Foo), +} diff --git a/src/test/ui/issues/auxiliary/issue-19340-1.rs b/src/test/ui/issues/auxiliary/issue-19340-1.rs new file mode 100644 index 000000000..39ee36b8b --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-19340-1.rs @@ -0,0 +1,3 @@ +pub enum Homura { + Madoka { name: String }, +} diff --git a/src/test/ui/issues/auxiliary/issue-20389.rs b/src/test/ui/issues/auxiliary/issue-20389.rs new file mode 100644 index 000000000..ae6d44eeb --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-20389.rs @@ -0,0 +1,4 @@ +pub trait T { + type C; + fn dummy(&self) { } +} diff --git a/src/test/ui/issues/auxiliary/issue-21202.rs b/src/test/ui/issues/auxiliary/issue-21202.rs new file mode 100644 index 000000000..e3daa1ba0 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-21202.rs @@ -0,0 +1,6 @@ +pub mod A { + pub struct Foo; + impl Foo { + fn foo(&self) { } + } +} diff --git a/src/test/ui/issues/auxiliary/issue-2170-lib.rs b/src/test/ui/issues/auxiliary/issue-2170-lib.rs new file mode 100644 index 000000000..a99385a83 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-2316-a.rs b/src/test/ui/issues/auxiliary/issue-2316-a.rs new file mode 100644 index 000000000..418ddc0b0 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-2316-a.rs @@ -0,0 +1,3 @@ +enum cat { + tabby, calico, tortoiseshell +} diff --git a/src/test/ui/issues/auxiliary/issue-2316-b.rs b/src/test/ui/issues/auxiliary/issue-2316-b.rs new file mode 100644 index 000000000..550c2d6eb --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-2380.rs b/src/test/ui/issues/auxiliary/issue-2380.rs new file mode 100644 index 000000000..9a51a73c9 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-2380.rs @@ -0,0 +1,15 @@ +#![crate_name="a"] +#![crate_type = "lib"] + +#![feature(box_syntax)] + +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 () as Box<i<T>+'static> +} diff --git a/src/test/ui/issues/auxiliary/issue-2414-a.rs b/src/test/ui/issues/auxiliary/issue-2414-a.rs new file mode 100644 index 000000000..b90ab32dd --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-2414-b.rs b/src/test/ui/issues/auxiliary/issue-2414-b.rs new file mode 100644 index 000000000..fc018349d --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-2414-b.rs @@ -0,0 +1,4 @@ +#![crate_name="b"] +#![crate_type = "lib"] + +extern crate a; diff --git a/src/test/ui/issues/auxiliary/issue-2472-b.rs b/src/test/ui/issues/auxiliary/issue-2472-b.rs new file mode 100644 index 000000000..0d151520f --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-25185-1.rs b/src/test/ui/issues/auxiliary/issue-25185-1.rs new file mode 100644 index 000000000..e957be9c1 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-25185-2.rs b/src/test/ui/issues/auxiliary/issue-25185-2.rs new file mode 100644 index 000000000..7ce3df255 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-2526.rs b/src/test/ui/issues/auxiliary/issue-2526.rs new file mode 100644 index 000000000..3b27f658c --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-25467.rs b/src/test/ui/issues/auxiliary/issue-25467.rs new file mode 100644 index 000000000..ca9b3097c --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-2631-a.rs b/src/test/ui/issues/auxiliary/issue-2631-a.rs new file mode 100644 index 000000000..1e8211bfa --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-2723-a.rs b/src/test/ui/issues/auxiliary/issue-2723-a.rs new file mode 100644 index 000000000..661b46d82 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-29181.rs b/src/test/ui/issues/auxiliary/issue-29181.rs new file mode 100644 index 000000000..bd1a9be4e --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-29181.rs @@ -0,0 +1,5 @@ +#![crate_type="lib"] + +pub mod foo { + pub use super::*; +} diff --git a/src/test/ui/issues/auxiliary/issue-29265.rs b/src/test/ui/issues/auxiliary/issue-29265.rs new file mode 100644 index 000000000..6d26002a2 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-29485.rs b/src/test/ui/issues/auxiliary/issue-29485.rs new file mode 100644 index 000000000..1e8891c51 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-3012-1.rs b/src/test/ui/issues/auxiliary/issue-3012-1.rs new file mode 100644 index 000000000..509af2a8d --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-30123-aux.rs b/src/test/ui/issues/auxiliary/issue-30123-aux.rs new file mode 100644 index 000000000..07c743eb2 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-30535.rs b/src/test/ui/issues/auxiliary/issue-30535.rs new file mode 100644 index 000000000..3608d4a2f --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-30535.rs @@ -0,0 +1,5 @@ +#![crate_type="lib"] + +pub enum Foo { + FooV { data: () } +} diff --git a/src/test/ui/issues/auxiliary/issue-3136-a.rc b/src/test/ui/issues/auxiliary/issue-3136-a.rc new file mode 100644 index 000000000..cd5fd3145 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-3136-a.rs b/src/test/ui/issues/auxiliary/issue-3136-a.rs new file mode 100644 index 000000000..9bb546ab3 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-31702-1.rs b/src/test/ui/issues/auxiliary/issue-31702-1.rs new file mode 100644 index 000000000..a48d0dc2c --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-31702-2.rs b/src/test/ui/issues/auxiliary/issue-31702-2.rs new file mode 100644 index 000000000..d360ae0ca --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-34796-aux.rs b/src/test/ui/issues/auxiliary/issue-34796-aux.rs new file mode 100644 index 000000000..09c69b903 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-36954.rs b/src/test/ui/issues/auxiliary/issue-36954.rs new file mode 100644 index 000000000..bc444a381 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-38190.rs b/src/test/ui/issues/auxiliary/issue-38190.rs new file mode 100644 index 000000000..373e646ba --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-38190.rs @@ -0,0 +1,2 @@ +#[macro_export] +macro_rules! m { ([$i:item]) => {} } diff --git a/src/test/ui/issues/auxiliary/issue-38226-aux.rs b/src/test/ui/issues/auxiliary/issue-38226-aux.rs new file mode 100644 index 000000000..f96801719 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-3979-traits.rs b/src/test/ui/issues/auxiliary/issue-3979-traits.rs new file mode 100644 index 000000000..5d03a0e9e --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-41053.rs b/src/test/ui/issues/auxiliary/issue-41053.rs new file mode 100644 index 000000000..ae73c3e78 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-41053.rs @@ -0,0 +1 @@ +pub struct Test; diff --git a/src/test/ui/issues/auxiliary/issue-41394.rs b/src/test/ui/issues/auxiliary/issue-41394.rs new file mode 100644 index 000000000..2e650efc7 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-41549.rs b/src/test/ui/issues/auxiliary/issue-41549.rs new file mode 100644 index 000000000..b7bd37525 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-41549.rs @@ -0,0 +1,3 @@ +pub trait Trait { + const CONST: u32; +} diff --git a/src/test/ui/issues/auxiliary/issue-42007-s.rs b/src/test/ui/issues/auxiliary/issue-42007-s.rs new file mode 100644 index 000000000..95119a589 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-42007-s.rs @@ -0,0 +1,4 @@ +#[repr(u8)] +pub enum E { + B = 1 as u8, +} diff --git a/src/test/ui/issues/auxiliary/issue-4208-cc.rs b/src/test/ui/issues/auxiliary/issue-4208-cc.rs new file mode 100644 index 000000000..7b4c8b01a --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-4545.rs b/src/test/ui/issues/auxiliary/issue-4545.rs new file mode 100644 index 000000000..2f6094750 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-48984-aux.rs b/src/test/ui/issues/auxiliary/issue-48984-aux.rs new file mode 100644 index 000000000..7cc888cd4 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-49544.rs b/src/test/ui/issues/auxiliary/issue-49544.rs new file mode 100644 index 000000000..f8b3a3fba --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-51798.rs b/src/test/ui/issues/auxiliary/issue-51798.rs new file mode 100644 index 000000000..fef5213db --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-51798.rs @@ -0,0 +1,3 @@ +#![crate_type = "lib"] + +pub fn vec() -> Vec<u8> { vec![] } diff --git a/src/test/ui/issues/auxiliary/issue-52489.rs b/src/test/ui/issues/auxiliary/issue-52489.rs new file mode 100644 index 000000000..f53bf7db5 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-5518.rs b/src/test/ui/issues/auxiliary/issue-5518.rs new file mode 100644 index 000000000..bfe96552a --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-5521.rs b/src/test/ui/issues/auxiliary/issue-5521.rs new file mode 100644 index 000000000..c2f81779b --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-5521.rs @@ -0,0 +1,3 @@ +use std::collections::HashMap; + +pub type map = Box<HashMap<usize, usize>>; diff --git a/src/test/ui/issues/auxiliary/issue-56943.rs b/src/test/ui/issues/auxiliary/issue-56943.rs new file mode 100644 index 000000000..65b9beb91 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-57271-lib.rs b/src/test/ui/issues/auxiliary/issue-57271-lib.rs new file mode 100644 index 000000000..ff625668a --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-5844-aux.rs b/src/test/ui/issues/auxiliary/issue-5844-aux.rs new file mode 100644 index 000000000..ea83378ca --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-5844-aux.rs @@ -0,0 +1,3 @@ +extern "C" { + pub fn rand() -> u32; +} diff --git a/src/test/ui/issues/auxiliary/issue-7178.rs b/src/test/ui/issues/auxiliary/issue-7178.rs new file mode 100644 index 000000000..56ae5139a --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-73112.rs b/src/test/ui/issues/auxiliary/issue-73112.rs new file mode 100644 index 000000000..6210c29bb --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-75907.rs b/src/test/ui/issues/auxiliary/issue-75907.rs new file mode 100644 index 000000000..389c9c351 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-75907.rs @@ -0,0 +1,17 @@ +pub struct Bar(pub u8, u8, u8); + +pub fn make_bar() -> Bar { + Bar(1, 12, 10) +} + +mod inner { + pub struct Foo(u8, pub u8, u8); + + impl Foo { + pub fn new() -> Foo { + Foo(1, 12, 10) + } + } +} + +pub use inner::Foo; diff --git a/src/test/ui/issues/auxiliary/issue-7899.rs b/src/test/ui/issues/auxiliary/issue-7899.rs new file mode 100644 index 000000000..3af6e8716 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-7899.rs @@ -0,0 +1 @@ +pub struct V2<T>(pub T, pub T); diff --git a/src/test/ui/issues/auxiliary/issue-8044.rs b/src/test/ui/issues/auxiliary/issue-8044.rs new file mode 100644 index 000000000..2ec25f51c --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-8259.rs b/src/test/ui/issues/auxiliary/issue-8259.rs new file mode 100644 index 000000000..891aee099 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-8259.rs @@ -0,0 +1,4 @@ +pub enum Foo<'a> { + A, + B(&'a str), +} diff --git a/src/test/ui/issues/auxiliary/issue-8401.rs b/src/test/ui/issues/auxiliary/issue-8401.rs new file mode 100644 index 000000000..e35dbbfab --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-9123.rs b/src/test/ui/issues/auxiliary/issue-9123.rs new file mode 100644 index 000000000..60af53359 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-9155.rs b/src/test/ui/issues/auxiliary/issue-9155.rs new file mode 100644 index 000000000..049a96a65 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-9188.rs b/src/test/ui/issues/auxiliary/issue-9188.rs new file mode 100644 index 000000000..3bc5697a1 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-9906.rs b/src/test/ui/issues/auxiliary/issue-9906.rs new file mode 100644 index 000000000..8a3eea790 --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/issue-9968.rs b/src/test/ui/issues/auxiliary/issue-9968.rs new file mode 100644 index 000000000..8d795b59e --- /dev/null +++ b/src/test/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/src/test/ui/issues/auxiliary/private-trait-xc.rs b/src/test/ui/issues/auxiliary/private-trait-xc.rs new file mode 100644 index 000000000..481a48a7c --- /dev/null +++ b/src/test/ui/issues/auxiliary/private-trait-xc.rs @@ -0,0 +1 @@ +trait Foo {} diff --git a/src/test/ui/issues/auxiliary/reexported-trait.rs b/src/test/ui/issues/auxiliary/reexported-trait.rs new file mode 100644 index 000000000..51a991bef --- /dev/null +++ b/src/test/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 {} |