Auto merge of #57880 - Zoxc:error-on-cycle, r=michaelwoerister

Always emit an error for a query cycle

r? @michaelwoerister

cc @nikomatsakis @wesleywiser
This commit is contained in:
bors 2019-02-15 22:22:10 +00:00
commit eac09088e1
13 changed files with 149 additions and 178 deletions

View file

@ -6,16 +6,16 @@ fn main() {
println!("{}", bar());
}
#[inline(always)]
fn foo(x: i32, y: i32) -> bool {
x == y
}
fn bar() -> bool {
let f = foo;
f(1, -1)
}
#[inline(always)]
fn foo(x: i32, y: i32) -> bool {
x == y
}
// END RUST SOURCE
// START rustc.bar.Inline.after.mir
// ...

View file

@ -6,16 +6,16 @@ fn main() {
println!("{}", bar());
}
#[inline(always)]
fn foo(x: &i32, y: &i32) -> bool {
*x == *y
}
fn bar() -> bool {
let f = foo;
f(&1, &-1)
}
#[inline(always)]
fn foo(x: &i32, y: &i32) -> bool {
*x == *y
}
// END RUST SOURCE
// START rustc.bar.Inline.after.mir
// ...

View file

@ -1,14 +1,14 @@
// compile-flags: -Z span_free_formats -Z mir-opt-level=3
fn test2(x: &dyn X) -> bool {
test(x)
}
#[inline]
fn test(x: &dyn X) -> bool {
x.y()
}
fn test2(x: &dyn X) -> bool {
test(x)
}
trait X {
fn y(&self) -> bool {
false