diff --git a/src/test/compile-fail/issue-34222-1.rs b/src/test/compile-fail/issue-34222-1.rs new file mode 100644 index 0000000000000..6c85414860f33 --- /dev/null +++ b/src/test/compile-fail/issue-34222-1.rs @@ -0,0 +1,13 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +fn main() { + /// comment //~ ERROR found a documentation comment that doesn't document anything +} diff --git a/src/test/compile-fail/issue-34222.rs b/src/test/compile-fail/issue-34222.rs new file mode 100644 index 0000000000000..4609c0ccb1cfb --- /dev/null +++ b/src/test/compile-fail/issue-34222.rs @@ -0,0 +1,18 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(rustc_attrs)] +#![allow(warnings)] + +#[rustc_error] +fn main() { //~ ERROR compilation successful + /// crash + let x = 0; +} diff --git a/src/test/compile-fail/issue-34373.rs b/src/test/compile-fail/issue-34373.rs new file mode 100644 index 0000000000000..7bbc680197e84 --- /dev/null +++ b/src/test/compile-fail/issue-34373.rs @@ -0,0 +1,21 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![allow(warnings)] + +trait Trait { + fn foo(_: T) {} +} + +pub struct Foo>>; +type DefaultFoo = Foo; //~ ERROR unsupported cyclic reference + +fn main() { +} diff --git a/src/test/compile-fail/issue-35570.rs b/src/test/compile-fail/issue-35570.rs new file mode 100644 index 0000000000000..092bf00ddd6a4 --- /dev/null +++ b/src/test/compile-fail/issue-35570.rs @@ -0,0 +1,40 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(rustc_attrs)] + +use std::mem; + +trait Trait1 {} +trait Trait2<'a> { + type Ty; +} + +fn _ice(param: Box Trait1<<() as Trait2<'a>>::Ty>>) { + let _e: (usize, usize) = unsafe{mem::transmute(param)}; +} + +trait Lifetime<'a> { + type Out; +} +impl<'a> Lifetime<'a> for () { + type Out = &'a (); +} +fn foo<'a>(x: &'a ()) -> <() as Lifetime<'a>>::Out { + x +} + +fn takes_lifetime(_f: for<'a> fn(&'a ()) -> <() as Lifetime<'a>>::Out) { +} + +#[rustc_error] +fn main() { //~ ERROR compilation successful + takes_lifetime(foo); +} diff --git a/src/test/compile-fail/issue-36839.rs b/src/test/compile-fail/issue-36839.rs new file mode 100644 index 0000000000000..3e34b25067279 --- /dev/null +++ b/src/test/compile-fail/issue-36839.rs @@ -0,0 +1,32 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(rustc_attrs)] + +pub trait Foo { + type Bar; +} + +pub trait Broken { + type Assoc; + fn broken(&self) where Self::Assoc: Foo; +} + +impl Broken for T { + type Assoc = (); + fn broken(&self) where Self::Assoc: Foo { + let _x: ::Bar; + } +} + +#[rustc_error] +fn main() { //~ ERROR compilation successful + let _m: &Broken = &(); +} diff --git a/src/test/compile-fail/issue-37051.rs b/src/test/compile-fail/issue-37051.rs new file mode 100644 index 0000000000000..ab08e1899a0ee --- /dev/null +++ b/src/test/compile-fail/issue-37051.rs @@ -0,0 +1,29 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(rustc_attrs, associated_type_defaults)] +#![allow(warnings)] + +trait State: Sized { + type NextState: State = StateMachineEnded; + fn execute(self) -> Option; +} + +struct StateMachineEnded; + +impl State for StateMachineEnded { + fn execute(self) -> Option { + None + } +} + +#[rustc_error] +fn main() { //~ ERROR compilation successful +} diff --git a/src/test/compile-fail/issue-37323.rs b/src/test/compile-fail/issue-37323.rs new file mode 100644 index 0000000000000..98806cdd1b9af --- /dev/null +++ b/src/test/compile-fail/issue-37323.rs @@ -0,0 +1,28 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(rustc_attrs)] +#![allow(warnings)] + +#[derive(Debug)] +struct Point { +} + +struct NestedA<'a, 'b> { + x: &'a NestedB<'b> + //~^ ERROR E0491 +} + +struct NestedB<'a> { + x: &'a i32, +} + +fn main() { +} diff --git a/src/test/compile-fail/issue-37366.rs b/src/test/compile-fail/issue-37366.rs new file mode 100644 index 0000000000000..2a4808fb186bb --- /dev/null +++ b/src/test/compile-fail/issue-37366.rs @@ -0,0 +1,26 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// ignore-emscripten + +#![feature(rustc_attrs, asm)] + +macro_rules! interrupt_handler { + () => { + unsafe fn _interrupt_handler() { + asm!("pop eax" :::: "intel"); + } + } +} +interrupt_handler!{} + +#[rustc_error] +fn main() { //~ ERROR compilation successful +} diff --git a/src/test/compile-fail/issue-37510.rs b/src/test/compile-fail/issue-37510.rs new file mode 100644 index 0000000000000..53c91f323d081 --- /dev/null +++ b/src/test/compile-fail/issue-37510.rs @@ -0,0 +1,25 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(rustc_attrs)] + +fn foo(_: &mut i32) -> bool { true } + +#[rustc_error] +fn main() { //~ ERROR compilation successful + let opt = Some(92); + let mut x = 62; + + if let Some(_) = opt { + + } else if foo(&mut x) { + + } +} diff --git a/src/test/compile-fail/issue-37515.rs b/src/test/compile-fail/issue-37515.rs new file mode 100644 index 0000000000000..fa452d6e74a05 --- /dev/null +++ b/src/test/compile-fail/issue-37515.rs @@ -0,0 +1,18 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(rustc_attrs)] + +type Z = for<'x> Send; +//~^ WARN type alias is never used + +#[rustc_error] +fn main() { //~ ERROR compilation successful +} diff --git a/src/test/compile-fail/issue-38381.rs b/src/test/compile-fail/issue-38381.rs new file mode 100644 index 0000000000000..6b7dde117dfd6 --- /dev/null +++ b/src/test/compile-fail/issue-38381.rs @@ -0,0 +1,18 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(rustc_attrs)] + +use std::ops::Deref; + +#[rustc_error] +fn main() { //~ ERROR compilation successful + let _x: fn(&i32) -> <&i32 as Deref>::Target = unimplemented!(); +} diff --git a/src/test/compile-fail/issue-41998.rs b/src/test/compile-fail/issue-41998.rs new file mode 100644 index 0000000000000..406aadcd2129d --- /dev/null +++ b/src/test/compile-fail/issue-41998.rs @@ -0,0 +1,20 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(rustc_attrs)] + +#[rustc_error] +fn main() { //~ ERROR compilation successful + if ('x' as char) < ('y' as char) { + print!("x"); + } else { + print!("y"); + } +}