test fallout from isize/usize

This commit is contained in:
Corey Richardson 2014-12-05 18:12:25 -08:00
parent abcbe27695
commit 5a4ca31918
86 changed files with 644 additions and 642 deletions

View File

@ -834,14 +834,14 @@ impl PrimitiveTypeTable {
table.intern("f32", TyFloat(TyF32));
table.intern("f64", TyFloat(TyF64));
table.intern("int", TyInt(TyIs));
table.intern("isize", TyInt(TyIs));
table.intern("isize", TyInt(TyIs));
table.intern("i8", TyInt(TyI8));
table.intern("i16", TyInt(TyI16));
table.intern("i32", TyInt(TyI32));
table.intern("i64", TyInt(TyI64));
table.intern("str", TyStr);
table.intern("uint", TyUint(TyUs));
table.intern("usize", TyUint(TyUs));
table.intern("usize", TyUint(TyUs));
table.intern("u8", TyUint(TyU8));
table.intern("u16", TyUint(TyU16));
table.intern("u32", TyUint(TyU32));

View File

@ -141,7 +141,7 @@ pub fn int_ty_max(t: IntTy) -> u64 {
match t {
TyI8 => 0x80u64,
TyI16 => 0x8000u64,
TyIs | TyI32 => 0x80000000u64, // actually ni about TyIm
TyIs | TyI32 => 0x80000000u64, // actually ni about TyIs
TyI64 => 0x8000000000000000u64
}
}
@ -168,7 +168,7 @@ pub fn uint_ty_max(t: UintTy) -> u64 {
match t {
TyU8 => 0xffu64,
TyU16 => 0xffffu64,
TyUs | TyU32 => 0xffffffffu64, // actually ni about TyUm
TyUs | TyU32 => 0xffffffffu64, // actually ni about TyUs
TyU64 => 0xffffffffffffffffu64
}
}

View File

@ -9,8 +9,8 @@
// except according to those terms.
fn main() {
let _x: int = [1i, 2, 3]; //~ ERROR expected int, found array of 3 elements
let _x: isize = [1is, 2, 3]; //~ ERROR expected isize, found array of 3 elements
let x: &[int] = &[1, 2, 3];
let _y: &int = x; //~ ERROR expected int, found slice
let x: &[isize] = &[1, 2, 3];
let _y: &isize = x; //~ ERROR expected isize, found slice
}

View File

@ -41,6 +41,6 @@ pub fn baz(x: &Foo<A=Bar>) {
pub fn main() {
let a = 42i;
foo1(a); //~ERROR expected uint, found struct Bar
baz(&a); //~ERROR expected uint, found struct Bar
foo1(a); //~ERROR expected usize, found struct Bar
baz(&a); //~ERROR expected usize, found struct Bar
}

View File

@ -17,8 +17,8 @@ trait Foo<T> {
}
fn f<T:Foo<int>>(t: &T) {
let u: <T as Foo<uint>>::Bar = t.get_bar();
//~^ ERROR the trait `Foo<uint>` is not implemented for the type `T`
let u: <T as Foo<usize>>::Bar = t.get_bar();
//~^ ERROR the trait `Foo<usize>` is not implemented for the type `T`
}
fn main() { }

View File

@ -24,29 +24,29 @@ pub fn f2<T: Foo>(a: T) -> T::A {
}
pub fn f1_int_int() {
f1(2i, 4i);
//~^ ERROR expected uint, found int
f1(2is, 4is);
//~^ ERROR expected usize, found isize
}
pub fn f1_int_uint() {
f1(2i, 4u);
f1(2is, 4us);
}
pub fn f1_uint_uint() {
f1(2u, 4u);
f1(2us, 4us);
//~^ ERROR the trait `Foo` is not implemented
//~| ERROR the trait `Foo` is not implemented
}
pub fn f1_uint_int() {
f1(2u, 4i);
f1(2us, 4is);
//~^ ERROR the trait `Foo` is not implemented
//~| ERROR the trait `Foo` is not implemented
}
pub fn f2_int() {
let _: int = f2(2i);
//~^ ERROR expected `int`, found `uint`
let _: int = f2(2is);
//~^ ERROR expected `isize`, found `usize`
}
pub fn main() { }

View File

@ -9,24 +9,24 @@
// except according to those terms.
struct clam {
x: Box<int>,
y: Box<int>,
x: Box<isize>,
y: Box<isize>,
}
struct fish {
a: Box<int>,
a: Box<isize>,
}
fn main() {
let a: clam = clam{x: box 1, y: box 2};
let b: clam = clam{x: box 10, y: box 20};
let z: int = a.x + b.y; //~ ERROR binary operation `+` cannot be applied to type `Box<int>`
let z: isize = a.x + b.y; //~ ERROR binary operation `+` cannot be applied to type `Box<isize>`
println!("{}", z);
assert_eq!(z, 21);
let forty: fish = fish{a: box 40};
let two: fish = fish{a: box 2};
let answer: int = forty.a + two.a;
//~^ ERROR binary operation `+` cannot be applied to type `Box<int>`
//~^ ERROR binary operation `+` cannot be applied to type `Box<isize>`
println!("{}", answer);
assert_eq!(answer, 42);
}

View File

@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// error-pattern:expected `collections::string::String`, found `int`
// error-pattern:expected `collections::string::String`, found `isize`
static i: String = 10i;
static i: String = 10is;
fn main() { println!("{}", i); }

View File

@ -8,6 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// error-pattern:`&&` cannot be applied to type `int`
// error-pattern:`&&` cannot be applied to type `isize`
fn main() { let x = 1i && 2i; }
fn main() { let x = 1is && 2is; }

View File

@ -11,5 +11,5 @@
// Tests that we forbid coercion from `[T; n]` to `&[T]`
fn main() {
let _: &[int] = [0i]; //~ERROR: mismatched types: expected `&[int]`, found `[int; 1]`
let _: &[isize] = [0is]; //~ERROR: mismatched types: expected `&[isize]`, found `[isize; 1]`
}

View File

@ -18,11 +18,11 @@ struct Foo;
trait Bar {}
pub fn main() {
// With a vec of ints.
// With a vec of isize.
let f1 = Fat { ptr: [1, 2, 3] };
let f2: &Fat<[int; 3]> = &f1;
let f3: &Fat<[uint]> = f2;
//~^ ERROR mismatched types: expected `&Fat<[uint]>`, found `&Fat<[int; 3]>`
let f2: &Fat<[isize; 3]> = &f1;
let f3: &Fat<[usize]> = f2;
//~^ ERROR mismatched types: expected `&Fat<[usize]>`, found `&Fat<[isize; 3]>`
// With a trait.
let f1 = Fat { ptr: Foo };

View File

@ -15,8 +15,8 @@ struct Fat<T: ?Sized> {
}
pub fn main() {
// With a vec of ints.
let f1: &Fat<[int]> = &Fat { ptr: [1, 2, 3] };
let f2: &Fat<[int; 3]> = f1;
//~^ ERROR mismatched types: expected `&Fat<[int; 3]>`, found `&Fat<[int]>`
// With a vec of isizes.
let f1: &Fat<[isize]> = &Fat { ptr: [1, 2, 3] };
let f2: &Fat<[isize; 3]> = f1;
//~^ ERROR mismatched types: expected `&Fat<[isize; 3]>`, found `&Fat<[isize]>`
}

View File

@ -14,10 +14,10 @@
trait Foo<T> : Sized { fn take(self, x: &T) { } } // Note: T is sized
impl Foo<[int]> for uint { }
//~^ ERROR the trait `core::kinds::Sized` is not implemented for the type `[int]`
impl Foo<[isize]> for uint { }
//~^ ERROR the trait `core::kinds::Sized` is not implemented for the type `[isize]`
impl Foo<int> for [uint] { }
//~^ ERROR the trait `core::kinds::Sized` is not implemented for the type `[uint]`
impl Foo<isize> for [usize] { }
//~^ ERROR the trait `core::kinds::Sized` is not implemented for the type `[usize]`
pub fn main() { }

View File

@ -10,15 +10,15 @@
#![feature(unboxed_closures)]
fn needs_fn<F>(x: F) where F: Fn(int) -> int {}
fn needs_fn<F>(x: F) where F: Fn(isize) -> isize {}
fn main() {
let _: () = (box |:_: int| {}) as Box<FnOnce(int)>; //~ ERROR object-safe
//~^ ERROR Box<core::ops::FnOnce(int)>
let _: () = (box |&:_: int, int| {}) as Box<Fn(int, int)>;
//~^ ERROR Box<core::ops::Fn(int, int)>
let _: () = (box |&mut:| -> int unimplemented!()) as Box<FnMut() -> int>;
//~^ ERROR Box<core::ops::FnMut() -> int>
let _: () = (box |:_: isize| {}) as Box<FnOnce(isize)>; //~ ERROR object-safe
//~^ ERROR Box<core::ops::FnOnce(isize)>
let _: () = (box |&:_: isize, isize| {}) as Box<Fn(isize, isize)>;
//~^ ERROR Box<core::ops::Fn(isize, isize)>
let _: () = (box |&mut:| -> isize unimplemented!()) as Box<FnMut() -> isize>;
//~^ ERROR Box<core::ops::FnMut() -> isize>
needs_fn(1i); //~ ERROR `core::ops::Fn(int) -> int`
needs_fn(1i); //~ ERROR `core::ops::Fn(isize) -> isize`
}

View File

@ -11,7 +11,7 @@
// Test that we use fully-qualified type names in error messages.
fn main() {
let x: Option<uint>;
let x: Option<usize>;
x = 5;
//~^ ERROR mismatched types: expected `core::option::Option<uint>`
//~^ ERROR mismatched types: expected `core::option::Option<usize>`
}

View File

@ -12,9 +12,9 @@
use std::option::Option;
fn bar(x: uint) -> Option<uint> {
fn bar(x: usize) -> Option<usize> {
return x;
//~^ ERROR mismatched types: expected `core::option::Option<uint>`
//~^ ERROR mismatched types: expected `core::option::Option<usize>`
}
fn main() {

View File

@ -18,22 +18,22 @@ struct HashMap<K, V, H = Hash<K>>;
fn main() {
// Ensure that the printed type doesn't include the default type params...
let _: Foo<int> = ();
//~^ ERROR mismatched types: expected `Foo<int>`, found `()`
let _: Foo<isize> = ();
//~^ ERROR mismatched types: expected `Foo<isize>`, found `()`
// ...even when they're present, but the same types as the defaults.
let _: Foo<int, B, C> = ();
//~^ ERROR mismatched types: expected `Foo<int>`, found `()`
let _: Foo<isize, B, C> = ();
//~^ ERROR mismatched types: expected `Foo<isize>`, found `()`
// Including cases where the default is using previous type params.
let _: HashMap<String, int> = ();
//~^ ERROR mismatched types: expected `HashMap<collections::string::String, int>`, found `()`
let _: HashMap<String, int, Hash<String>> = ();
//~^ ERROR mismatched types: expected `HashMap<collections::string::String, int>`, found `()`
let _: HashMap<String, isize> = ();
//~^ ERROR mismatched types: expected `HashMap<collections::string::String, isize>`, found `()`
let _: HashMap<String, isize, Hash<String>> = ();
//~^ ERROR mismatched types: expected `HashMap<collections::string::String, isize>`, found `()`
// But not when there's a different type in between.
let _: Foo<A, int, C> = ();
//~^ ERROR mismatched types: expected `Foo<A, int>`, found `()`
let _: Foo<A, isize, C> = ();
//~^ ERROR mismatched types: expected `Foo<A, isize>`, found `()`
// And don't print <> at all when there's just defaults.
let _: Foo<A, B, C> = ();

View File

@ -16,22 +16,22 @@ trait Foo<X> {
}
fn want_hrtb<T>()
where T : for<'a> Foo<&'a int>
where T : for<'a> Foo<&'a isize>
{
}
// AnyInt implements Foo<&'a int> for any 'a, so it is a match.
// AnyInt implements Foo<&'a isize> for any 'a, so it is a match.
struct AnyInt;
impl<'a> Foo<&'a int> for AnyInt { }
impl<'a> Foo<&'a isize> for AnyInt { }
fn give_any() {
want_hrtb::<AnyInt>()
}
// StaticInt only implements Foo<&'static int>, so it is an error.
// StaticInt only implements Foo<&'static isize>, so it is an error.
struct StaticInt;
impl Foo<&'static int> for StaticInt { }
impl Foo<&'static isize> for StaticInt { }
fn give_static() {
want_hrtb::<StaticInt>() //~ ERROR `for<'a> Foo<&'a int>` is not implemented
want_hrtb::<StaticInt>() //~ ERROR `for<'a> Foo<&'a isize>` is not implemented
}
fn main() { }

View File

@ -30,36 +30,36 @@ impl<'a,X,F> Bar<X> for &'a mut F
}
fn no_hrtb<'b,T>(mut t: T)
where T : Bar<&'b int>
where T : Bar<&'b isize>
{
// OK -- `T : Bar<&'b int>`, and thus the impl above ensures that
// `&mut T : Bar<&'b int>`.
// OK -- `T : Bar<&'b isize>`, and thus the impl above ensures that
// `&mut T : Bar<&'b isize>`.
no_hrtb(&mut t);
}
fn bar_hrtb<T>(mut t: T)
where T : for<'b> Bar<&'b int>
where T : for<'b> Bar<&'b isize>
{
// OK -- `T : for<'b> Bar<&'b int>`, and thus the impl above
// ensures that `&mut T : for<'b> Bar<&'b int>`. This is an
// OK -- `T : for<'b> Bar<&'b isize>`, and thus the impl above
// ensures that `&mut T : for<'b> Bar<&'b isize>`. This is an
// example of a "perfect forwarding" impl.
bar_hrtb(&mut t);
}
fn foo_hrtb_bar_not<'b,T>(mut t: T)
where T : for<'a> Foo<&'a int> + Bar<&'b int>
where T : for<'a> Foo<&'a isize> + Bar<&'b isize>
{
// Not OK -- The forwarding impl for `Foo` requires that `Bar` also
// be implemented. Thus to satisfy `&mut T : for<'a> Foo<&'a
// int>`, we require `T : for<'a> Bar<&'a int>`, but the where
// clause only specifies `T : Bar<&'b int>`.
foo_hrtb_bar_not(&mut t); //~ ERROR `for<'a> Bar<&'a int>` is not implemented for the type `T`
// isize>`, we require `T : for<'a> Bar<&'a isize>`, but the where
// clause only specifies `T : Bar<&'b isize>`.
foo_hrtb_bar_not(&mut t); //~ ERROR `for<'a> Bar<&'a isize>` is not implemented for the type `T`
}
fn foo_hrtb_bar_hrtb<T>(mut t: T)
where T : for<'a> Foo<&'a int> + for<'b> Bar<&'b int>
where T : for<'a> Foo<&'a isize> + for<'b> Bar<&'b isize>
{
// OK -- now we have `T : for<'b> Bar&'b int>`.
// OK -- now we have `T : for<'b> Bar&'b isize>`.
foo_hrtb_bar_hrtb(&mut t);
}

View File

@ -17,7 +17,7 @@ trait Foo<X> {
}
fn want_foo<T>()
where T : for<'a> Foo<&'a int>
where T : for<'a> Foo<&'a isize>
{
}
@ -28,7 +28,7 @@ struct SomeStruct<X> {
x: X
}
impl<'a,X> Foo<&'a int> for SomeStruct<X>
impl<'a,X> Foo<&'a isize> for SomeStruct<X>
where X : 'a
{
}
@ -36,8 +36,8 @@ impl<'a,X> Foo<&'a int> for SomeStruct<X>
fn one() {
// In fact there is no good reason for this to be an error, but
// whatever, I'm mostly concerned it doesn't ICE right now:
want_foo::<SomeStruct<uint>>();
//~^ ERROR requirement `for<'a> uint : 'a` is not satisfied
want_foo::<SomeStruct<usize>>();
//~^ ERROR requirement `for<'a> usize : 'a` is not satisfied
}
///////////////////////////////////////////////////////////////////////////
@ -47,13 +47,13 @@ struct AnotherStruct<X> {
x: X
}
impl<'a,X:'a> Foo<&'a int> for AnotherStruct<X>
impl<'a,X:'a> Foo<&'a isize> for AnotherStruct<X>
{
}
fn two() {
want_foo::<AnotherStruct<uint>>();
//~^ ERROR requirement `for<'a> uint : 'a` is not satisfied
want_foo::<AnotherStruct<usize>>();
//~^ ERROR requirement `for<'a> usize : 'a` is not satisfied
}
fn main() { }

View File

@ -9,6 +9,6 @@
// except according to those terms.
fn main() {
let x = if true { 10i } else { 10u };
//~^ ERROR if and else have incompatible types: expected `int`, found `uint`
let x = if true { 10is } else { 10us };
//~^ ERROR if and else have incompatible types: expected `isize`, found `usize`
}

View File

@ -8,9 +8,9 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn f() -> int {
fn f() -> isize {
(return 1, return 2)
//~^ ERROR mismatched types: expected `int`, found `(_, _)` (expected int, found tuple)
//~^ ERROR mismatched types: expected `isize`, found `(_, _)` (expected isize, found tuple)
}
fn main() {}

View File

@ -10,5 +10,5 @@
fn main() {
let nil = ();
let _t = nil as uint; //~ ERROR: cast from nil: `()` as `uint`
let _t = nil as usize; //~ ERROR: cast from nil: `()` as `usize`
}

View File

@ -12,6 +12,6 @@
//! Test that makes sure wrongly-typed bench functions are rejected
// error-pattern:expected &-ptr, found int
// error-pattern:expected &-ptr, found isize
#[bench]
fn bar(x: int) { }
fn bar(x: isize) { }

View File

@ -12,15 +12,15 @@ use std::iter::{Range,range};
trait Itble<'r, T, I: Iterator<Item=T>> { fn iter(&'r self) -> I; }
impl<'r> Itble<'r, uint, Range<uint>> for (uint, uint) {
fn iter(&'r self) -> Range<uint> {
impl<'r> Itble<'r, usize, Range<usize>> for (usize, usize) {
fn iter(&'r self) -> Range<usize> {
let &(min, max) = self;
range(min, max)
}
}
fn check<'r, I: Iterator<Item=uint>, T: Itble<'r, uint, I>>(cont: &T) -> bool
//~^ HELP as shown: fn check<'r, I: Iterator<Item = uint>, T: Itble<'r, uint, I>>(cont: &'r T)
fn check<'r, I: Iterator<Item=usize>, T: Itble<'r, usize, I>>(cont: &T) -> bool
//~^ HELP as shown: fn check<'r, I: Iterator<Item = usize>, T: Itble<'r, usize, I>>(cont: &'r T)
{
let cont_iter = cont.iter();
//~^ ERROR cannot infer an appropriate lifetime for autoref due to conflicting requirements
@ -35,5 +35,5 @@ fn check<'r, I: Iterator<Item=uint>, T: Itble<'r, uint, I>>(cont: &T) -> bool
fn main() {
check((3u, 5u));
//~^ ERROR mismatched types: expected `&_`, found `(uint, uint)` (expected &-ptr, found tuple)
//~^ ERROR mismatched types: expected `&_`, found `(usize, usize)` (expected &-ptr, found tuple)
}

View File

@ -14,8 +14,8 @@ fn bar(_s: u32) { }
fn main() {
foo(1*(1 as int));
//~^ ERROR: mismatched types: expected `i16`, found `int` (expected i16, found int)
//~^ ERROR: mismatched types: expected `i16`, found `isize` (expected i16, found isize)
bar(1*(1 as uint));
//~^ ERROR: mismatched types: expected `u32`, found `uint` (expected u32, found uint)
//~^ ERROR: mismatched types: expected `u32`, found `usize` (expected u32, found usize)
}

View File

@ -14,8 +14,8 @@ pub fn main() {
// The expected arm type `Option<T>` has one type parameter, while
// the actual arm `Result<T, E>` has two. typeck should not be
// tricked into looking up a non-existing second type parameter.
let _x: uint = match Some(1u) {
Ok(u) => u, //~ ERROR mismatched types: expected `core::option::Option<uint>`
Err(e) => panic!(e) //~ ERROR mismatched types: expected `core::option::Option<uint>`
let _x: usize = match Some(1us) {
Ok(u) => u, //~ ERROR mismatched types: expected `core::option::Option<usize>`
Err(e) => panic!(e) //~ ERROR mismatched types: expected `core::option::Option<usize>`
};
}

View File

@ -9,7 +9,7 @@
// except according to those terms.
fn main() {
let x: Box<int> = box 0;
let x: Box<isize> = box 0;
println!("{}", x + 1); //~ ERROR binary operation `+` cannot be applied to type `Box<int>`
println!("{}", x + 1); //~ ERROR binary operation `+` cannot be applied to type `Box<isize>`
}

View File

@ -11,7 +11,7 @@
#![deny(warnings)]
extern {
pub fn foo(x: (int)); //~ ERROR found rust type `int` in foreign module
pub fn foo(x: (isize)); //~ ERROR found rust type `isize` in foreign module
}
fn main() {

View File

@ -9,16 +9,16 @@
// except according to those terms.
fn main() {
let _foo = &[1u, 2] as [uint];
//~^ ERROR cast to unsized type: `&[uint; 2]` as `[uint]`
//~^^ HELP consider using an implicit coercion to `&[uint]` instead
let _foo = &[1u, 2] as [usize];
//~^ ERROR cast to unsized type: `&[usize; 2]` as `[usize]`
//~^^ HELP consider using an implicit coercion to `&[usize]` instead
let _bar = box 1u as std::fmt::Show;
//~^ ERROR cast to unsized type: `Box<uint>` as `core::fmt::Show`
//~^ ERROR cast to unsized type: `Box<usize>` as `core::fmt::Show`
//~^^ HELP did you mean `Box<core::fmt::Show>`?
let _baz = 1u as std::fmt::Show;
//~^ ERROR cast to unsized type: `uint` as `core::fmt::Show`
//~^ ERROR cast to unsized type: `usize` as `core::fmt::Show`
//~^^ HELP consider using a box or reference as appropriate
let _quux = [1u, 2] as [uint];
//~^ ERROR cast to unsized type: `[uint; 2]` as `[uint]`
let _quux = [1u, 2] as [usize];
//~^ ERROR cast to unsized type: `[usize; 2]` as `[usize]`
//~^^ HELP consider using a box or reference as appropriate
}

View File

@ -13,6 +13,6 @@ enum Test {
}
fn main() {
let _x = Test::Foo as *const int;
//~^ ERROR illegal cast; cast through an integer first: `Test` as `*const int`
let _x = Test::Foo as *const isize;
//~^ ERROR illegal cast; cast through an integer first: `Test` as `*const isize`
}

View File

@ -12,7 +12,7 @@
// and rejected.
fn main() {
(|&:| box *[0u].as_slice())();
(|&:| box *[0us].as_slice())();
//~^ ERROR cannot move out of dereference
//~^^ ERROR cannot move a value of type [uint]
//~^^ ERROR cannot move a value of type [usize]
}

View File

@ -13,15 +13,15 @@ struct Pair<T, V> (T, V);
impl Pair<
&str, //~ ERROR missing lifetime specifier
int
isize
> {
fn say(self: &Pair<&str, int>) {
//~^ ERROR mismatched types: expected `Pair<&'static str, int>`, found `Pair<&str, int>`
fn say(self: &Pair<&str, isize>) {
//~^ ERROR mismatched types: expected `Pair<&'static str, isize>`, found `Pair<&str, isize>`
println!("{}", self);
}
}
fn main() {
let result = &Pair("shane", 1i);
let result = &Pair("shane", 1is);
result.say();
}

View File

@ -8,8 +8,8 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn add_state(op: <int as HasState>::State) {
//~^ ERROR the trait `HasState` is not implemented for the type `int`
fn add_state(op: <isize as HasState>::State) {
//~^ ERROR the trait `HasState` is not implemented for the type `isize`
}
trait HasState {

View File

@ -8,11 +8,11 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn bar(int_param: int) {}
fn bar(int_param: usize) {}
fn main() {
let foo: [u8; 4] = [1u8; 4u];
let foo: [u8; 4] = [1u8; 4us];
bar(foo);
//~^ ERROR mismatched types: expected `int`, found `[u8; 4]`
// (expected int, found vector)
//~^ ERROR mismatched types: expected `usize`, found `[u8; 4]`
// (expected usize, found vector)
}

View File

@ -10,9 +10,9 @@
// Regression test for issue #4968
const A: (int,int) = (4,2);
const A: (isize,isize) = (4,2);
fn main() {
match 42 { A => () }
//~^ ERROR mismatched types: expected `_`, found `(int, int)`
//~^ ERROR mismatched types: expected `_`, found `(isize, isize)`
// (expected integral variable, found tuple)
}

View File

@ -11,6 +11,6 @@
// Regression test for issue #5239
fn main() {
let x = |&: ref x: int| -> int { x += 1; };
//~^ ERROR binary assignment operation `+=` cannot be applied to type `&int`
let x = |&: ref x: isize| -> isize { x += 1; };
//~^ ERROR binary assignment operation `+=` cannot be applied to type `&isize`
}

View File

@ -11,43 +11,43 @@
// Test the mechanism for warning about possible missing `self` declarations.
trait CtxtFn {
fn f8(self, uint) -> uint;
fn f9(uint) -> uint; //~ NOTE candidate
fn f8(self, usize) -> usize;
fn f9(usize) -> usize; //~ NOTE candidate
}
trait OtherTrait {
fn f9(uint) -> uint; //~ NOTE candidate
fn f9(usize) -> usize; //~ NOTE candidate
}
// Note: this trait is not implemented, but we can't really tell
// whether or not an impl would match anyhow without a self
// declaration to match against, so we wind up printing it as a
// declaration to match against, so we wind up prisizeing it as a
// candidate. This seems not unreasonable -- perhaps the user meant to
// implement it, after all.
trait UnusedTrait {
fn f9(uint) -> uint; //~ NOTE candidate
fn f9(usize) -> usize; //~ NOTE candidate
}
impl CtxtFn for uint {
fn f8(self, i: uint) -> uint {
impl CtxtFn for usize {
fn f8(self, i: usize) -> usize {
i * 4u
}
fn f9(i: uint) -> uint {
fn f9(i: usize) -> usize {
i * 4u
}
}
impl OtherTrait for uint {
fn f9(i: uint) -> uint {
impl OtherTrait for usize {
fn f9(i: usize) -> usize {
i * 8u
}
}
struct MyInt(int);
struct Myisize(isize);
impl MyInt {
fn fff(i: int) -> int { //~ NOTE candidate
impl Myisize {
fn fff(i: isize) -> isize { //~ NOTE candidate
i
}
}
@ -64,17 +64,17 @@ impl ManyImplTrait for String {
}
}
impl ManyImplTrait for uint {}
impl ManyImplTrait for int {}
impl ManyImplTrait for usize {}
impl ManyImplTrait for isize {}
impl ManyImplTrait for char {}
impl ManyImplTrait for MyInt {}
impl ManyImplTrait for Myisize {}
fn no_param_bound(u: uint, m: MyInt) -> uint {
fn no_param_bound(u: usize, m: Myisize) -> usize {
u.f8(42) + u.f9(342) + m.fff(42)
//~^ ERROR type `uint` does not implement any method in scope named `f9`
//~^ ERROR type `usize` does not implement any method in scope named `f9`
//~^^ NOTE found defined static methods, maybe a `self` is missing?
//~^^^ ERROR type `MyInt` does not implement any method in scope named `fff`
//~^^^^ NOTE found defined static methods, maybe a `self` is missing?
//~^^^ ERROR type `Myisize` does not implement any method in scope named `fff`
//~^^^^ NOTE found defined static methods, maybe a `self` is missing?
}
fn param_bound<T: ManyImplTrait>(t: T) -> bool {

View File

@ -18,10 +18,10 @@ fn main() {
_ => ()
}
match &Some(42i) {
Some(x) => (), //~ ERROR expected `&core::option::Option<int>`,
match &Some(42is) {
Some(x) => (), //~ ERROR expected `&core::option::Option<isize>`,
// found `core::option::Option<_>`
None => () //~ ERROR expected `&core::option::Option<int>`,
None => () //~ ERROR expected `&core::option::Option<isize>`,
// found `core::option::Option<_>`
}
}

View File

@ -10,9 +10,9 @@
enum Foo {
A = 1i64,
//~^ ERROR mismatched types: expected `int`, found `i64`
//~^ ERROR mismatched types: expected `isize`, found `i64`
B = 2u8
//~^ ERROR mismatched types: expected `int`, found `u8`
//~^ ERROR mismatched types: expected `isize`, found `u8`
}
fn main() {}

View File

@ -9,7 +9,7 @@
// except according to those terms.
#[start]
fn start(argc: int, argv: *const *const u8, crate_map: *const u8) -> int {
fn start(argc: isize, argv: *const *const u8, crate_map: *const u8) -> isize {
//~^ ERROR incorrect number of function parameters
0
0
}

View File

@ -19,8 +19,8 @@ impl<K, V> Map<K, V> for HashMap<K, V> {}
// Test that trait types printed in error msgs include the type arguments.
fn main() {
let x: Box<HashMap<int, int>> = box HashMap::new();
let x: Box<Map<int, int>> = x;
let y: Box<Map<uint, int>> = box x;
//~^ ERROR the trait `Map<uint, int>` is not implemented
let x: Box<HashMap<isize, isize>> = box HashMap::new();
let x: Box<Map<isize, isize>> = x;
let y: Box<Map<usize, isize>> = box x;
//~^ ERROR the trait `Map<usize, isize>` is not implemented
}

View File

@ -20,5 +20,5 @@ fn main() {
let x = Foo;
Foo::bar(x); //~ERROR mismatched types: expected `&Foo`, found `Foo`
Foo::bar(&&x); //~ERROR mismatched types: expected `&Foo`, found `&&Foo`
Foo::bar(&42i); //~ERROR mismatched types: expected `&Foo`, found `&int`
Foo::bar(&42is); //~ERROR mismatched types: expected `&Foo`, found `&isize`
}

View File

@ -9,18 +9,18 @@
// except according to those terms.
fn main() {
let foo = &mut 1i;
let foo = &mut 1is;
// (separate lines to ensure the spans are accurate)
// SNAP b2085d9 uncomment this after the next snapshot
// NOTE(stage0) just in case tidy doesn't check snap's in tests
// let &_ // ~ ERROR expected `&mut int`, found `&_`
// let &_ // ~ ERROR expected `&mut isize`, found `&_`
// = foo;
let &mut _ = foo;
let bar = &1i;
let bar = &1is;
let &_ = bar;
let &mut _ //~ ERROR expected `&int`, found `&mut _`
let &mut _ //~ ERROR expected `&isize`, found `&mut _`
= bar;
}

View File

@ -18,5 +18,5 @@ fn main() {
// because the def_id associated with the type was
// not convertible to a path.
let x: int = noexporttypelib::foo();
//~^ ERROR expected `int`, found `core::option::Option<int>`
//~^ ERROR expected `isize`, found `core::option::Option<isize>`
}

View File

@ -11,9 +11,9 @@
fn let_in<T, F>(x: T, f: F) where F: FnOnce(T) {}
fn main() {
let_in(3u, |i| { assert!(i == 3i); });
//~^ ERROR expected `uint`, found `int`
let_in(3u, |i| { assert!(i == 3is); });
//~^ ERROR expected `usize`, found `isize`
let_in(3i, |i| { assert!(i == 3u); });
//~^ ERROR expected `int`, found `uint`
let_in(3i, |i| { assert!(i == 3us); });
//~^ ERROR expected `isize`, found `usize`
}

View File

@ -12,7 +12,7 @@
// Check that we correctly infer that b and c must be region
// parameterized because they reference a which requires a region.
type a<'a> = &'a int;
type a<'a> = &'a isize;
type b<'a> = Box<a<'a>>;
struct c<'a> {
@ -30,7 +30,8 @@ impl<'a> set_f<'a> for c<'a> {
}
fn set_f_bad(&mut self, b: Box<b>) {
self.f = b; //~ ERROR mismatched types: expected `Box<Box<&'a int>>`, found `Box<Box<&int>>`
self.f = b;
//~^ ERROR mismatched types: expected `Box<Box<&'a isize>>`, found `Box<Box<&isize>>`
}
}

View File

@ -15,13 +15,13 @@ fn main() {
let a = [0; n]; //~ ERROR expected constant integer for repeat count, found variable
let b = [0; ()];
//~^ ERROR expected constant integer for repeat count, found non-constant expression
//~^^ ERROR: expected `uint`, found `()`
//~^^ ERROR: expected `usize`, found `()`
let c = [0; true]; //~ ERROR expected positive integer for repeat count, found boolean
//~^ ERROR: expected `uint`, found `bool`
//~^ ERROR: expected `usize`, found `bool`
let d = [0; 0.5]; //~ ERROR expected positive integer for repeat count, found float
//~^ ERROR: expected `uint`, found `_`
//~^ ERROR: expected `usize`, found `_`
let e = [0; "foo"]; //~ ERROR expected positive integer for repeat count, found string
//~^ ERROR: expected `uint`, found `&'static str`
//~^ ERROR: expected `usize`, found `&'static str`
let f = [0; -4];
//~^ ERROR expected positive integer for repeat count, found negative integer
let f = [0u; -1];

View File

@ -24,33 +24,33 @@ type PairF<U> = Pair<f32,U>;
fn main() {
let pt = PointF {
//~^ ERROR expected f32, found int
x: 1i,
y: 2i,
//~^ ERROR expected f32, found isize
x: 1is,
y: 2is,
};
let pt2 = Point::<f32> {
//~^ ERROR expected f32, found int
x: 3i,
y: 4i,
//~^ ERROR expected f32, found isize
x: 3is,
y: 4is,
};
let pair = PairF {
//~^ ERROR expected f32, found int
x: 5i,
y: 6i,
//~^ ERROR expected f32, found isize
x: 5is,
y: 6is,
};
let pair2 = PairF::<int> {
//~^ ERROR expected f32, found int
x: 7i,
y: 8i,
let pair2 = PairF::<isize> {
//~^ ERROR expected f32, found isize
x: 7is,
y: 8is,
};
let pt3 = PointF::<int> {
let pt3 = PointF::<isize> {
//~^ ERROR wrong number of type arguments
x: 9i,
y: 10i,
x: 9is,
y: 10is,
};
}

View File

@ -29,7 +29,7 @@ trait Foo {
fn test_error8_fn<T: B>(&self);
}
impl Foo for int {
impl Foo for isize {
// invalid bound for T, was defined as Eq in trait
fn test_error1_fn<T: Ord>(&self) {}
//~^ ERROR in method `test_error1_fn`, type parameter 0 requires bound `core::cmp::Ord`
@ -66,12 +66,12 @@ impl Foo for int {
trait Getter<T> { }
trait Trait {
fn method<G:Getter<int>>();
fn method<G:Getter<isize>>();
}
impl Trait for uint {
fn method<G: Getter<uint>>() {}
//~^ ERROR in method `method`, type parameter 0 requires bound `Getter<uint>`
impl Trait for usize {
fn method<G: Getter<usize>>() {}
//~^ ERROR in method `method`, type parameter 0 requires bound `Getter<usize>`
}
fn main() {}

View File

@ -24,7 +24,7 @@ impl Trait<&'static str> for Struct {
}
fn main() {
let s: Box<Trait<int>> = box Struct { person: "Fred" };
//~^ ERROR the trait `Trait<int>` is not implemented for the type `Struct`
let s: Box<Trait<isize>> = box Struct { person: "Fred" };
//~^ ERROR the trait `Trait<isize>` is not implemented for the type `Struct`
s.f(1);
}

View File

@ -21,6 +21,6 @@ impl<'a> T+'a {
impl T for int {}
fn main() {
let x = &42i;
x.foo(); //~ERROR: type `&int` does not implement any method in scope named `foo`
let x = &42is;
x.foo(); //~ERROR: type `&isize` does not implement any method in scope named `foo`
}

View File

@ -10,12 +10,12 @@
// Issue #6155
fn first((value, _): (int, f64)) -> int { value }
fn first((value, _): (isize, f64)) -> isize { value }
fn main() {
let y = first ((1,2.0,3));
//~^ ERROR expected a tuple with 2 elements, found one with 3 elements
let y = first ((1,));
//~^ ERROR expected `(int, f64)`, found `(int,)`
//~^ ERROR expected `(isize, f64)`, found `(isize,)`
}

View File

@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
struct Point(int, int);
struct Point(isize, isize);
fn main() {
let origin = Point(0, 0);
@ -16,9 +16,9 @@ fn main() {
origin.1;
origin.2;
//~^ ERROR attempted out-of-bounds tuple index `2` on type `Point`
let tuple = (0i, 0i);
let tuple = (0is, 0is);
tuple.0;
tuple.1;
tuple.2;
//~^ ERROR attempted out-of-bounds tuple index `2` on type `(int, int)`
//~^ ERROR attempted out-of-bounds tuple index `2` on type `(isize, isize)`
}

View File

@ -21,12 +21,12 @@ fn main() {
identity_u16(y);
//~^ ERROR mismatched types: expected `u16`, found `i32`
let a = 3i;
let a = 3is;
fn identity_i(n: int) -> int { n }
fn identity_i(n: isize) -> int { n }
identity_i(a); // ok
identity_u16(a);
//~^ ERROR mismatched types: expected `u16`, found `int`
//~^ ERROR mismatched types: expected `u16`, found `isize`
}

View File

@ -10,6 +10,6 @@
// Checking that the compiler reports multiple type errors at once
// error-pattern:mismatched types: expected `bool`
// error-pattern:mismatched types: expected `int`
// error-pattern:mismatched types: expected `isize`
fn main() { let a: bool = 1i; let b: int = true; }
fn main() { let a: bool = 1is; let b: isize = true; }

View File

@ -18,12 +18,12 @@ pub fn main() {
}
fn test1() {
let x: Foo<_> = Bar::<uint>;
//~^ ERROR mismatched types: expected `Foo<_>`, found `Bar<uint>`
let y: Foo<uint> = x;
let x: Foo<_> = Bar::<usize>;
//~^ ERROR mismatched types: expected `Foo<_>`, found `Bar<usize>`
let y: Foo<usize> = x;
}
fn test2() {
let x: Foo<_> = Bar::<uint>;
//~^ ERROR mismatched types: expected `Foo<_>`, found `Bar<uint>`
let x: Foo<_> = Bar::<usize>;
//~^ ERROR mismatched types: expected `Foo<_>`, found `Bar<usize>`
}

View File

@ -13,24 +13,24 @@ extern "stdcall" {
}
extern {
fn foo(f: int, x: u8, ...);
fn foo(f: isize, x: u8, ...);
}
extern "C" fn bar(f: int, x: u8) {}
extern "C" fn bar(f: isize, x: u8) {}
fn main() {
unsafe {
foo(); //~ ERROR: this function takes at least 2 parameters but 0 parameters were supplied
foo(1); //~ ERROR: this function takes at least 2 parameters but 1 parameter was supplied
let x: unsafe extern "C" fn(f: int, x: u8) = foo;
//~^ ERROR: mismatched types: expected `unsafe extern "C" fn(int, u8)`
// , found `unsafe extern "C" fn(int, u8, ...)`
let x: unsafe extern "C" fn(f: isize, x: u8) = foo;
//~^ ERROR: mismatched types: expected `unsafe extern "C" fn(isize, u8)`
// , found `unsafe extern "C" fn(isize, u8, ...)`
// (expected non-variadic fn, found variadic function)
let y: unsafe extern "C" fn(f: int, x: u8, ...) = bar;
//~^ ERROR: mismatched types: expected `unsafe extern "C" fn(int, u8, ...)`
// , found `extern "C" extern fn(int, u8)`
let y: unsafe extern "C" fn(f: isize, x: u8, ...) = bar;
//~^ ERROR: mismatched types: expected `unsafe extern "C" fn(isize, u8, ...)`
// , found `extern "C" extern fn(isize, u8)`
// (expected variadic fn, found non-variadic function)
foo(1, 2, 3f32); //~ ERROR: can't pass an f32 to variadic function, cast to c_double

View File

@ -13,9 +13,9 @@
mod xx {
extern {
pub fn strlen(str: *const u8) -> uint; //~ ERROR found rust type `uint`
pub fn foo(x: int, y: uint); //~ ERROR found rust type `int`
//~^ ERROR found rust type `uint`
pub fn strlen(str: *const u8) -> usize; //~ ERROR found rust type `usize`
pub fn foo(x: isize, y: usize); //~ ERROR found rust type `isize`
//~^ ERROR found rust type `usize`
}
}

View File

@ -16,7 +16,7 @@
// gdb-command:whatis 'basic-types-globals-metadata::B'
// gdb-check:type = bool
// gdb-command:whatis 'basic-types-globals-metadata::I'
// gdb-check:type = int
// gdb-check:type = isize
// gdb-command:whatis 'basic-types-globals-metadata::C'
// gdb-check:type = char
// gdb-command:whatis 'basic-types-globals-metadata::I8'
@ -28,7 +28,7 @@
// gdb-command:whatis 'basic-types-globals-metadata::I64'
// gdb-check:type = i64
// gdb-command:whatis 'basic-types-globals-metadata::U'
// gdb-check:type = uint
// gdb-check:type = usize
// gdb-command:whatis 'basic-types-globals-metadata::U8'
// gdb-check:type = u8
// gdb-command:whatis 'basic-types-globals-metadata::U16'

View File

@ -18,7 +18,7 @@
// gdb-command:whatis b
// gdb-check:type = bool
// gdb-command:whatis i
// gdb-check:type = int
// gdb-check:type = isize
// gdb-command:whatis c
// gdb-check:type = char
// gdb-command:whatis i8
@ -30,7 +30,7 @@
// gdb-command:whatis i64
// gdb-check:type = i64
// gdb-command:whatis u
// gdb-check:type = uint
// gdb-check:type = usize
// gdb-command:whatis u8
// gdb-check:type = u8
// gdb-command:whatis u16
@ -53,13 +53,13 @@
fn main() {
let unit: () = ();
let b: bool = false;
let i: int = -1;
let i: isize = -1;
let c: char = 'a';
let i8: i8 = 68;
let i16: i16 = -16;
let i32: i32 = -32;
let i64: i64 = -64;
let u: uint = 1;
let u: usize = 1;
let u8: u8 = 100;
let u16: u16 = 16;
let u32: u32 = 32;

View File

@ -28,13 +28,13 @@
// gdb-check:$3 = {RUST$ENCODED$ENUM$1$Empty = {454545, 0x87654321, 9988}}
// gdb-command:print empty_gdb->discr
// gdb-check:$4 = (int *) 0x0
// gdb-check:$4 = (isize *) 0x0
// gdb-command:print droid
// gdb-check:$5 = {RUST$ENCODED$ENUM$2$Void = {id = 675675, range = 10000001, internals = 0x43218765}}
// gdb-command:print void_droid_gdb->internals
// gdb-check:$6 = (int *) 0x0
// gdb-check:$6 = (isize *) 0x0
// gdb-command:continue
@ -81,25 +81,25 @@
// this case (by casting the value to a memory-equivalent struct).
enum MoreFields<'a> {
Full(u32, &'a int, i16),
Full(u32, &'a isize, i16),
Empty
}
struct MoreFieldsRepr<'a> {
a: u32,
discr: &'a int,
discr: &'a isize,
b: i16
}
enum NamedFields<'a> {
Droid { id: i32, range: i64, internals: &'a int },
Droid { id: i32, range: i64, internals: &'a isize },
Void
}
struct NamedFieldsRepr<'a> {
id: i32,
range: i64,
internals: &'a int
internals: &'a isize
}
fn main() {

View File

@ -24,7 +24,7 @@
// gdb-check:type = struct GenericStruct<type-names::Mod1::Struct2, type-names::Mod1::Mod2::Struct3>
// gdb-command:whatis generic_struct2
// gdb-check:type = struct GenericStruct<type-names::Struct1, extern "fastcall" fn(int) -> uint>
// gdb-check:type = struct GenericStruct<type-names::Struct1, extern "fastcall" fn(isize) -> usize>
// gdb-command:whatis mod_struct
// gdb-check:type = struct Struct2
@ -79,22 +79,22 @@
// RAW POINTERS
// gdb-command:whatis mut_ptr1
// gdb-check:type = struct (*mut type-names::Struct1, int)
// gdb-check:type = struct (*mut type-names::Struct1, isize)
// gdb-command:whatis mut_ptr2
// gdb-check:type = struct (*mut int, int)
// gdb-check:type = struct (*mut isize, isize)
// gdb-command:whatis mut_ptr3
// gdb-check:type = struct (*mut type-names::Mod1::Mod2::Enum3<type-names::Struct1>, int)
// gdb-check:type = struct (*mut type-names::Mod1::Mod2::Enum3<type-names::Struct1>, isize)
// gdb-command:whatis const_ptr1
// gdb-check:type = struct (*const type-names::Struct1, int)
// gdb-check:type = struct (*const type-names::Struct1, isize)
// gdb-command:whatis const_ptr2
// gdb-check:type = struct (*const int, int)
// gdb-check:type = struct (*const isize, isize)
// gdb-command:whatis const_ptr3
// gdb-check:type = struct (*const type-names::Mod1::Mod2::Enum3<type-names::Struct1>, int)
// gdb-check:type = struct (*const type-names::Mod1::Mod2::Enum3<type-names::Struct1>, isize)
// VECTORS
@ -102,10 +102,10 @@
// gdb-check:type = struct ([type-names::Struct1; 3], i16)
// gdb-command:whatis fixed_size_vec2
// gdb-check:type = struct ([uint; 3], i16)
// gdb-check:type = struct ([usize; 3], i16)
// gdb-command:whatis slice1
// gdb-check:type = struct &[uint]
// gdb-check:type = struct &[usize]
// gdb-command:whatis slice2
// gdb-check:type = struct &[type-names::Mod1::Enum2]
@ -128,50 +128,50 @@
// gdb-check:type = struct &Trait2<type-names::Struct1, type-names::Struct1>
// gdb-command:whatis generic_mut_ref_trait
// gdb-check:type = struct &mut Trait2<type-names::Mod1::Mod2::Struct3, type-names::GenericStruct<uint, int>>
// gdb-check:type = struct &mut Trait2<type-names::Mod1::Mod2::Struct3, type-names::GenericStruct<usize, isize>>
// BARE FUNCTIONS
// gdb-command:whatis rust_fn
// gdb-check:type = struct (fn(core::option::Option<int>, core::option::Option<&type-names::Mod1::Struct2>), uint)
// gdb-check:type = struct (fn(core::option::Option<isize>, core::option::Option<&type-names::Mod1::Struct2>), usize)
// gdb-command:whatis extern_c_fn
// gdb-check:type = struct (extern "C" fn(int), uint)
// gdb-check:type = struct (extern "C" fn(isize), usize)
// gdb-command:whatis unsafe_fn
// gdb-check:type = struct (unsafe fn(core::result::Result<char, f64>), uint)
// gdb-check:type = struct (unsafe fn(core::result::Result<char, f64>), usize)
// gdb-command:whatis extern_stdcall_fn
// gdb-check:type = struct (extern "stdcall" fn(), uint)
// gdb-check:type = struct (extern "stdcall" fn(), usize)
// gdb-command:whatis rust_fn_with_return_value
// gdb-check:type = struct (fn(f64) -> uint, uint)
// gdb-check:type = struct (fn(f64) -> usize, usize)
// gdb-command:whatis extern_c_fn_with_return_value
// gdb-check:type = struct (extern "C" fn() -> type-names::Struct1, uint)
// gdb-check:type = struct (extern "C" fn() -> type-names::Struct1, usize)
// gdb-command:whatis unsafe_fn_with_return_value
// gdb-check:type = struct (unsafe fn(type-names::GenericStruct<u16, u8>) -> type-names::Mod1::Struct2, uint)
// gdb-check:type = struct (unsafe fn(type-names::GenericStruct<u16, u8>) -> type-names::Mod1::Struct2, usize)
// gdb-command:whatis extern_stdcall_fn_with_return_value
// gdb-check:type = struct (extern "stdcall" fn(Box<int>) -> uint, uint)
// gdb-check:type = struct (extern "stdcall" fn(Box<isize>) -> usize, usize)
// gdb-command:whatis generic_function_int
// gdb-check:type = struct (fn(int) -> int, uint)
// gdb-check:type = struct (fn(isize) -> isize, usize)
// gdb-command:whatis generic_function_struct3
// gdb-check:type = struct (fn(type-names::Mod1::Mod2::Struct3) -> type-names::Mod1::Mod2::Struct3, uint)
// gdb-check:type = struct (fn(type-names::Mod1::Mod2::Struct3) -> type-names::Mod1::Mod2::Struct3, usize)
// gdb-command:whatis variadic_function
// gdb-check:type = struct (unsafe extern "C" fn(*const u8, ...) -> int, uint)
// gdb-check:type = struct (unsafe extern "C" fn(*const u8, ...) -> isize, usize)
// CLOSURES
// gdb-command:whatis closure1
// gdb-check:type = struct (closure, uint)
// gdb-check:type = struct (closure, usize)
// gdb-command:whatis closure2
// gdb-check:type = struct (closure, uint)
// gdb-check:type = struct (closure, usize)
#![omit_gdb_pretty_printer_section]
@ -183,7 +183,7 @@ struct GenericStruct<T1, T2>;
enum Enum1 {
Variant1_1,
Variant1_2(int)
Variant1_2(isize)
}
mod Mod1 {
@ -209,23 +209,23 @@ mod Mod1 {
trait Trait1 { }
trait Trait2<T1, T2> { }
impl Trait1 for int {}
impl<T1, T2> Trait2<T1, T2> for int {}
impl Trait1 for isize {}
impl<T1, T2> Trait2<T1, T2> for isize {}
fn rust_fn(_: Option<int>, _: Option<&Mod1::Struct2>) {}
extern "C" fn extern_c_fn(_: int) {}
fn rust_fn(_: Option<isize>, _: Option<&Mod1::Struct2>) {}
extern "C" fn extern_c_fn(_: isize) {}
unsafe fn unsafe_fn(_: Result<char, f64>) {}
extern "stdcall" fn extern_stdcall_fn() {}
fn rust_fn_with_return_value(_: f64) -> uint { 4 }
fn rust_fn_with_return_value(_: f64) -> usize { 4 }
extern "C" fn extern_c_fn_with_return_value() -> Struct1 { Struct1 }
unsafe fn unsafe_fn_with_return_value(_: GenericStruct<u16, u8>) -> Mod1::Struct2 { Mod1::Struct2 }
extern "stdcall" fn extern_stdcall_fn_with_return_value(_: Box<int>) -> uint { 0 }
extern "stdcall" fn extern_stdcall_fn_with_return_value(_: Box<isize>) -> usize { 0 }
fn generic_function<T>(x: T) -> T { x }
extern {
fn printf(_:*const u8, ...) -> int;
fn printf(_:*const u8, ...) -> isize;
}
// In many of the cases below, the type that is actually under test is wrapped
@ -240,7 +240,7 @@ fn main() {
// Structs
let simple_struct = Struct1;
let generic_struct1: GenericStruct<Mod1::Struct2, Mod1::Mod2::Struct3> = GenericStruct;
let generic_struct2: GenericStruct<Struct1, extern "fastcall" fn(int) -> uint> = GenericStruct;
let generic_struct2: GenericStruct<Struct1, extern "fastcall" fn(isize) -> usize> = GenericStruct;
let mod_struct = Mod1::Struct2;
// Enums
@ -269,13 +269,13 @@ fn main() {
let mut_ref2 = (&mut mut_generic_struct, 0i32);
// Raw Pointers
let mut_ptr1: (*mut Struct1, int) = (ptr::null_mut(), 0);
let mut_ptr2: (*mut int, int) = (ptr::null_mut(), 0);
let mut_ptr3: (*mut Mod1::Mod2::Enum3<Struct1>, int) = (ptr::null_mut(), 0);
let mut_ptr1: (*mut Struct1, isize) = (ptr::null_mut(), 0);
let mut_ptr2: (*mut isize, isize) = (ptr::null_mut(), 0);
let mut_ptr3: (*mut Mod1::Mod2::Enum3<Struct1>, isize) = (ptr::null_mut(), 0);
let const_ptr1: (*const Struct1, int) = (ptr::null(), 0);
let const_ptr2: (*const int, int) = (ptr::null(), 0);
let const_ptr3: (*const Mod1::Mod2::Enum3<Struct1>, int) = (ptr::null(), 0);
let const_ptr1: (*const Struct1, isize) = (ptr::null(), 0);
let const_ptr2: (*const isize, isize) = (ptr::null(), 0);
let const_ptr3: (*const Mod1::Mod2::Enum3<Struct1>, isize) = (ptr::null(), 0);
// Vectors
let fixed_size_vec1 = ([Struct1, Struct1, Struct1], 0i16);
@ -297,7 +297,7 @@ fn main() {
let mut generic_mut_ref_trait_impl = 0i;
let generic_mut_ref_trait = (&mut generic_mut_ref_trait_impl) as
&mut Trait2<Mod1::Mod2::Struct3, GenericStruct<uint, int>>;
&mut Trait2<Mod1::Mod2::Struct3, GenericStruct<usize, isize>>;
// Bare Functions
let rust_fn = (rust_fn, 0u);
@ -310,7 +310,7 @@ fn main() {
let unsafe_fn_with_return_value = (unsafe_fn_with_return_value, 0u);
let extern_stdcall_fn_with_return_value = (extern_stdcall_fn_with_return_value, 0u);
let generic_function_int = (generic_function::<int>, 0u);
let generic_function_int = (generic_function::<isize>, 0u);
let generic_function_struct3 = (generic_function::<Mod1::Mod2::Struct3>, 0u);
let variadic_function = (printf, 0u);
@ -321,7 +321,7 @@ fn main() {
// how that maps to rustc's internal representation of these forms.
// Once closures have reached their 1.0 form, the tests below should
// probably be expanded.
let closure1 = (|&: x:int| {}, 0u);
let closure1 = (|&: x:isize| {}, 0u);
let closure2 = (|&: x:i8, y: f32| { (x as f32) + y }, 0u);
zzz(); // #break

View File

@ -20,18 +20,18 @@ use std::prelude::v1::*;
// #4264 fixed-length vector types
pub fn foo(_: [int; (3 as uint)]) { }
pub fn foo(_: [isize; (3 as usize)]) { }
pub fn bar() {
const FOO: uint = ((5u as uint) - (4u as uint) as uint);
let _: [(); (FOO as uint)] = ([(() as ())] as [(); 1]);
const FOO: usize = ((5us as usize) - (4us as usize) as usize);
let _: [(); (FOO as usize)] = ([(() as ())] as [(); 1]);
let _: [(); (1u as uint)] = ([(() as ())] as [(); 1]);
let _: [(); (1us as usize)] = ([(() as ())] as [(); 1]);
let _ =
(((&((([(1i as int), (2 as int), (3 as int)] as [int; 3])) as
[int; 3]) as &[int; 3]) as *const _ as *const [int; 3]) as
*const [int; (3u as uint)] as *const [int; 3]);
(((&((([(1is as isize), (2 as isize), (3 as isize)] as [isize; 3])) as
[isize; 3]) as &[isize; 3]) as *const _ as *const [isize; 3])
as *const [isize; (3us as usize)] as *const [isize; 3]);
@ -81,18 +81,19 @@ pub fn bar() {
core::fmt::Arguments<'_>))
as collections::string::String);
}
pub type Foo = [int; (3u as uint)];
pub type Foo = [isize; (3us as usize)];
pub struct Bar {
pub x: [int; (3u as uint)],
pub x: [isize; (3us as usize)],
}
pub struct TupleBar([int; (4u as uint)]);
pub enum Baz { BazVariant([int; (5u as uint)]), }
pub struct TupleBar([isize; (4us as usize)]);
pub enum Baz { BazVariant([isize; (5us as usize)]), }
pub fn id<T>(x: T) -> T { (x as T) }
pub fn use_id() {
let _ =
((id::<[int; (3u as uint)]> as
fn([int; 3]) -> [int; 3] {id})(([(1 as int), (2 as int),
(3 as int)] as [int; 3])) as
[int; 3]);
((id::<[isize; (3us as usize)]> as
fn([isize; 3]) -> [isize; 3] {id})(([(1 as isize), (2 as isize),
(3 as isize)] as
[isize; 3])) as
[isize; 3]);
}
fn main() { }

View File

@ -14,35 +14,35 @@
// #4264 fixed-length vector types
pub fn foo(_: [int; 3]) {}
pub fn foo(_: [isize; 3]) {}
pub fn bar() {
const FOO: uint = 5u - 4u;
const FOO: usize = 5us - 4us;
let _: [(); FOO] = [()];
let _ : [(); 1u] = [()];
let _ : [(); 1us] = [()];
let _ = &([1i,2,3]) as *const _ as *const [int; 3u];
let _ = &([1is,2,3]) as *const _ as *const [isize; 3us];
format!("test");
}
pub type Foo = [int; 3u];
pub type Foo = [isize; 3us];
pub struct Bar {
pub x: [int; 3u]
pub x: [isize; 3us]
}
pub struct TupleBar([int; 4u]);
pub struct TupleBar([isize; 4us]);
pub enum Baz {
BazVariant([int; 5u])
BazVariant([isize; 5us])
}
pub fn id<T>(x: T) -> T { x }
pub fn use_id() {
let _ = id::<[int; 3u]>([1,2,3]);
let _ = id::<[isize; 3us]>([1,2,3]);
}

View File

@ -1,9 +1,9 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 1i"];
N3[label="stmt 1i;"];
N4[label="block { 1i; }"];
N2[label="expr 1is"];
N3[label="stmt 1is;"];
N4[label="block { 1is; }"];
N0 -> N2;
N2 -> N3;
N3 -> N4;

View File

@ -1,11 +1,11 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 3i"];
N2[label="expr 3is"];
N3[label="expr 4"];
N4[label="expr 3i + 4"];
N5[label="stmt 3i + 4;"];
N6[label="block { 3i + 4; }"];
N4[label="expr 3is + 4"];
N5[label="stmt 3is + 4;"];
N6[label="block { 3is + 4; }"];
N0 -> N2;
N2 -> N3;
N3 -> N4;

View File

@ -1,10 +1,10 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 4i"];
N2[label="expr 4is"];
N3[label="local _x"];
N4[label="stmt let _x = 4i;"];
N5[label="block { let _x = 4i; }"];
N4[label="stmt let _x = 4is;"];
N5[label="block { let _x = 4is; }"];
N0 -> N2;
N2 -> N3;
N3 -> N4;

View File

@ -1,14 +1,14 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 5i"];
N3[label="expr 55i"];
N4[label="expr (5i, 55i)"];
N2[label="expr 5is"];
N3[label="expr 55is"];
N4[label="expr (5is, 55is)"];
N5[label="local _x"];
N6[label="local _y"];
N7[label="pat (_x, _y)"];
N8[label="stmt let (_x, _y) = (5i, 55i);"];
N9[label="block { let (_x, _y) = (5i, 55i); }"];
N8[label="stmt let (_x, _y) = (5is, 55is);"];
N9[label="block { let (_x, _y) = (5is, 55is); }"];
N0 -> N2;
N2 -> N3;
N3 -> N4;

View File

@ -1,12 +1,12 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 7i"];
N3[label="expr 77i"];
N4[label="expr 777i"];
N5[label="expr 7777i"];
N6[label="expr [7i, 77i, 777i, 7777i]"];
N7[label="expr match [7i, 77i, 777i, 7777i] { [x, y, ..] => x + y, }"];
N2[label="expr 7is"];
N3[label="expr 77is"];
N4[label="expr 777is"];
N5[label="expr 7777is"];
N6[label="expr [7is, 77is, 777is, 7777is]"];
N7[label="expr match [7is, 77is, 777is, 7777is] { [x, y, ..] => x + y, }"];
N8[label="(dummy_node)"];
N9[label="local x"];
N10[label="local y"];
@ -15,8 +15,8 @@ digraph block {
N13[label="expr x"];
N14[label="expr y"];
N15[label="expr x + y"];
N16[label="stmt match [7i, 77i, 777i, 7777i] { [x, y, ..] => x + y, };"];
N17[label="block { match [7i, 77i, 777i, 7777i] { [x, y, ..] => x + y, }; }"];
N16[label="stmt match [7is, 77is, 777is, 7777is] { [x, y, ..] => x + y, };"];
N17[label="block { match [7is, 77is, 777is, 7777is] { [x, y, ..] => x + y, }; }"];
N0 -> N2;
N2 -> N3;
N3 -> N4;

View File

@ -1,21 +1,21 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 8i"];
N2[label="expr 8is"];
N3[label="local x"];
N4[label="stmt let x = 8i;"];
N4[label="stmt let x = 8is;"];
N5[label="local _y"];
N6[label="stmt let _y;"];
N7[label="expr x"];
N8[label="expr 88i"];
N9[label="expr x > 88i"];
N10[label="expr 888i"];
N8[label="expr 88is"];
N9[label="expr x > 88is"];
N10[label="expr 888is"];
N11[label="expr _y"];
N12[label="expr _y = 888i"];
N13[label="stmt _y = 888i;"];
N14[label="block { _y = 888i; }"];
N15[label="expr if x > 88i { _y = 888i; }"];
N16[label="block { let x = 8i; let _y; if x > 88i { _y = 888i; } }"];
N12[label="expr _y = 888is"];
N13[label="stmt _y = 888is;"];
N14[label="block { _y = 888is; }"];
N15[label="expr if x > 88is { _y = 888is; }"];
N16[label="block { let x = 8is; let _y; if x > 88is { _y = 888is; } }"];
N0 -> N2;
N2 -> N3;
N3 -> N4;

View File

@ -1,29 +1,29 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 91i"];
N2[label="expr 91is"];
N3[label="local x"];
N4[label="stmt let x = 91i;"];
N4[label="stmt let x = 91is;"];
N5[label="local _y"];
N6[label="stmt let _y;"];
N7[label="expr x"];
N8[label="expr 92i"];
N9[label="expr x > 92i"];
N10[label="expr 93i"];
N8[label="expr 92is"];
N9[label="expr x > 92is"];
N10[label="expr 93is"];
N11[label="expr _y"];
N12[label="expr _y = 93i"];
N13[label="stmt _y = 93i;"];
N14[label="block { _y = 93i; }"];
N15[label="expr 94i"];
N16[label="expr 95i"];
N17[label="expr 94i + 95i"];
N12[label="expr _y = 93is"];
N13[label="stmt _y = 93is;"];
N14[label="block { _y = 93is; }"];
N15[label="expr 94is"];
N16[label="expr 95is"];
N17[label="expr 94is + 95is"];
N18[label="expr _y"];
N19[label="expr _y = 94i + 95i"];
N20[label="stmt _y = 94i + 95i;"];
N21[label="block { _y = 94i + 95i; }"];
N22[label="expr { _y = 94i + 95i; }"];
N23[label="expr if x > 92i { _y = 93i; } else { _y = 94i + 95i; }"];
N24[label="block { let x = 91i; let _y; if x > 92i { _y = 93i; } else { _y = 94i + 95i; } }"];
N19[label="expr _y = 94is + 95is"];
N20[label="stmt _y = 94is + 95is;"];
N21[label="block { _y = 94is + 95is; }"];
N22[label="expr { _y = 94is + 95is; }"];
N23[label="expr if x > 92is { _y = 93is; } else { _y = 94is + 95is; }"];
N24[label="block {\l let x = 91is;\l let _y;\l if x > 92is { _y = 93is; } else { _y = 94is + 95is; }\l}\l"];
N0 -> N2;
N2 -> N3;
N3 -> N4;

View File

@ -9,10 +9,10 @@
// except according to those terms.
pub fn expr_if_twoarm_9() {
let x = 91i; let _y;
if x > 92i {
_y = 93i;
let x = 91is; let _y;
if x > 92is {
_y = 93is;
} else {
_y = 94i+95i;
_y = 94is+95is;
}
}

View File

@ -1,20 +1,20 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 10i"];
N2[label="expr 10is"];
N3[label="local mut x"];
N4[label="stmt let mut x = 10i;"];
N4[label="stmt let mut x = 10is;"];
N5[label="(dummy_node)"];
N6[label="expr x"];
N7[label="expr 0i"];
N8[label="expr x > 0i"];
N9[label="expr while x > 0i { x -= 1i; }"];
N10[label="expr 1i"];
N7[label="expr 0is"];
N8[label="expr x > 0is"];
N9[label="expr while x > 0is { x -= 1is; }"];
N10[label="expr 1is"];
N11[label="expr x"];
N12[label="expr x -= 1i"];
N13[label="stmt x -= 1i;"];
N14[label="block { x -= 1i; }"];
N15[label="block { let mut x = 10i; while x > 0i { x -= 1i; } }"];
N12[label="expr x -= 1is"];
N13[label="stmt x -= 1is;"];
N14[label="block { x -= 1is; }"];
N15[label="block { let mut x = 10is; while x > 0is { x -= 1is; } }"];
N0 -> N2;
N2 -> N3;
N3 -> N4;

View File

@ -1,20 +1,20 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 11i"];
N2[label="expr 11is"];
N3[label="local mut _x"];
N4[label="stmt let mut _x = 11i;"];
N4[label="stmt let mut _x = 11is;"];
N5[label="(dummy_node)"];
N6[label="expr loop { _x -= 1i; }"];
N7[label="expr 1i"];
N6[label="expr loop { _x -= 1is; }"];
N7[label="expr 1is"];
N8[label="expr _x"];
N9[label="expr _x -= 1i"];
N10[label="stmt _x -= 1i;"];
N11[label="block { _x -= 1i; }"];
N12[label="stmt loop { _x -= 1i; }"];
N9[label="expr _x -= 1is"];
N10[label="stmt _x -= 1is;"];
N11[label="block { _x -= 1is; }"];
N12[label="stmt loop { _x -= 1is; }"];
N13[label="expr \"unreachable\""];
N14[label="stmt \"unreachable\";"];
N15[label="block { let mut _x = 11i; loop { _x -= 1i; } \"unreachable\"; }"];
N15[label="block { let mut _x = 11is; loop { _x -= 1is; } \"unreachable\"; }"];
N0 -> N2;
N2 -> N3;
N3 -> N4;

View File

@ -1,27 +1,27 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 12i"];
N2[label="expr 12is"];
N3[label="local mut x"];
N4[label="stmt let mut x = 12i;"];
N4[label="stmt let mut x = 12is;"];
N5[label="(dummy_node)"];
N6[label="expr loop { x -= 1i; if x == 2i { break ; \"unreachable\"; } }"];
N7[label="expr 1i"];
N6[label="expr loop { x -= 1is; if x == 2is { break ; \"unreachable\"; } }"];
N7[label="expr 1is"];
N8[label="expr x"];
N9[label="expr x -= 1i"];
N10[label="stmt x -= 1i;"];
N9[label="expr x -= 1is"];
N10[label="stmt x -= 1is;"];
N11[label="expr x"];
N12[label="expr 2i"];
N13[label="expr x == 2i"];
N12[label="expr 2is"];
N13[label="expr x == 2is"];
N14[label="expr break"];
N15[label="(dummy_node)"];
N16[label="stmt break ;"];
N17[label="expr \"unreachable\""];
N18[label="stmt \"unreachable\";"];
N19[label="block { break ; \"unreachable\"; }"];
N20[label="expr if x == 2i { break ; \"unreachable\"; }"];
N21[label="block { x -= 1i; if x == 2i { break ; \"unreachable\"; } }"];
N22[label="block { let mut x = 12i; loop { x -= 1i; if x == 2i { break ; \"unreachable\"; } } }"];
N20[label="expr if x == 2is { break ; \"unreachable\"; }"];
N21[label="block { x -= 1is; if x == 2is { break ; \"unreachable\"; } }"];
N22[label="block {\l let mut x = 12is;\l loop { x -= 1is; if x == 2is { break ; \"unreachable\"; } }\l}\l"];
N0 -> N2;
N2 -> N3;
N3 -> N4;
@ -34,7 +34,7 @@ digraph block {
N11 -> N12;
N12 -> N13;
N13 -> N14;
N14 -> N6[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if x == 2i { break ; \"unreachable\"; },\lexiting scope_4 block { x -= 1i; if x == 2i { break ; \"unreachable\"; } }"];
N14 -> N6[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if x == 2is { break ; \"unreachable\"; },\lexiting scope_4 block { x -= 1is; if x == 2is { break ; \"unreachable\"; } }"];
N15 -> N16;
N16 -> N17;
N17 -> N18;

View File

@ -1,20 +1,20 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 14i"];
N2[label="expr 14is"];
N3[label="local x"];
N4[label="stmt let x = 14i;"];
N4[label="stmt let x = 14is;"];
N5[label="expr x"];
N6[label="expr 1i"];
N7[label="expr x > 1i"];
N6[label="expr 1is"];
N7[label="expr x > 1is"];
N8[label="expr return"];
N9[label="(dummy_node)"];
N10[label="stmt return;"];
N11[label="expr \"unreachable\""];
N12[label="stmt \"unreachable\";"];
N13[label="block { return; \"unreachable\"; }"];
N14[label="expr if x > 1i { return; \"unreachable\"; }"];
N15[label="block { let x = 14i; if x > 1i { return; \"unreachable\"; } }"];
N14[label="expr if x > 1is { return; \"unreachable\"; }"];
N15[label="block { let x = 14is; if x > 1is { return; \"unreachable\"; } }"];
N0 -> N2;
N2 -> N3;
N3 -> N4;

View File

@ -1,54 +1,54 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 15i"];
N2[label="expr 15is"];
N3[label="local mut x"];
N4[label="stmt let mut x = 15i;"];
N5[label="expr 151i"];
N4[label="stmt let mut x = 15is;"];
N5[label="expr 151is"];
N6[label="local mut y"];
N7[label="stmt let mut y = 151i;"];
N7[label="stmt let mut y = 151is;"];
N8[label="(dummy_node)"];
N9[label="expr \'outer:\l loop {\l \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { break ; \"unreachable\"; }\l y -= 3i;\l }\l y -= 4i;\l x -= 5i;\l }\l"];
N9[label="expr \'outer:\l loop {\l \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { break ; \"unreachable\"; }\l y -= 3is;\l }\l y -= 4is;\l x -= 5is;\l }\l"];
N10[label="(dummy_node)"];
N11[label="expr \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { break ; \"unreachable\"; }\l y -= 3i;\l }\l"];
N11[label="expr \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { break ; \"unreachable\"; }\l y -= 3is;\l }\l"];
N12[label="expr x"];
N13[label="expr 1i"];
N14[label="expr x == 1i"];
N13[label="expr 1is"];
N14[label="expr x == 1is"];
N15[label="expr break \'outer"];
N16[label="(dummy_node)"];
N17[label="stmt break \'outer ;"];
N18[label="expr \"unreachable\""];
N19[label="stmt \"unreachable\";"];
N20[label="block { break \'outer ; \"unreachable\"; }"];
N21[label="expr if x == 1i { break \'outer ; \"unreachable\"; }"];
N22[label="stmt if x == 1i { break \'outer ; \"unreachable\"; }"];
N21[label="expr if x == 1is { break \'outer ; \"unreachable\"; }"];
N22[label="stmt if x == 1is { break \'outer ; \"unreachable\"; }"];
N23[label="expr y"];
N24[label="expr 2i"];
N25[label="expr y >= 2i"];
N24[label="expr 2is"];
N25[label="expr y >= 2is"];
N26[label="expr break"];
N27[label="(dummy_node)"];
N28[label="stmt break ;"];
N29[label="expr \"unreachable\""];
N30[label="stmt \"unreachable\";"];
N31[label="block { break ; \"unreachable\"; }"];
N32[label="expr if y >= 2i { break ; \"unreachable\"; }"];
N33[label="stmt if y >= 2i { break ; \"unreachable\"; }"];
N34[label="expr 3i"];
N32[label="expr if y >= 2is { break ; \"unreachable\"; }"];
N33[label="stmt if y >= 2is { break ; \"unreachable\"; }"];
N34[label="expr 3is"];
N35[label="expr y"];
N36[label="expr y -= 3i"];
N37[label="stmt y -= 3i;"];
N38[label="block {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { break ; \"unreachable\"; }\l y -= 3i;\l}\l"];
N39[label="stmt \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { break ; \"unreachable\"; }\l y -= 3i;\l }\l"];
N40[label="expr 4i"];
N36[label="expr y -= 3is"];
N37[label="stmt y -= 3is;"];
N38[label="block {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { break ; \"unreachable\"; }\l y -= 3is;\l}\l"];
N39[label="stmt \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { break ; \"unreachable\"; }\l y -= 3is;\l }\l"];
N40[label="expr 4is"];
N41[label="expr y"];
N42[label="expr y -= 4i"];
N43[label="stmt y -= 4i;"];
N44[label="expr 5i"];
N42[label="expr y -= 4is"];
N43[label="stmt y -= 4is;"];
N44[label="expr 5is"];
N45[label="expr x"];
N46[label="expr x -= 5i"];
N47[label="stmt x -= 5i;"];
N48[label="block {\l \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { break ; \"unreachable\"; }\l y -= 3i;\l }\l y -= 4i;\l x -= 5i;\l}\l"];
N49[label="block {\l let mut x = 15i;\l let mut y = 151i;\l \'outer:\l loop {\l \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { break ; \"unreachable\"; }\l y -= 3i;\l }\l y -= 4i;\l x -= 5i;\l }\l}\l"];
N46[label="expr x -= 5is"];
N47[label="stmt x -= 5is;"];
N48[label="block {\l \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { break ; \"unreachable\"; }\l y -= 3is;\l }\l y -= 4is;\l x -= 5is;\l}\l"];
N49[label="block {\l let mut x = 15is;\l let mut y = 151is;\l \'outer:\l loop {\l \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { break ; \"unreachable\"; }\l y -= 3is;\l }\l y -= 4is;\l x -= 5is;\l }\l}\l"];
N0 -> N2;
N2 -> N3;
N3 -> N4;
@ -61,7 +61,7 @@ digraph block {
N12 -> N13;
N13 -> N14;
N14 -> N15;
N15 -> N9[label="exiting scope_0 expr break \'outer,\lexiting scope_1 stmt break \'outer ;,\lexiting scope_2 block { break \'outer ; \"unreachable\"; },\lexiting scope_3 expr if x == 1i { break \'outer ; \"unreachable\"; },\lexiting scope_4 stmt if x == 1i { break \'outer ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { break ; \"unreachable\"; }\l y -= 3i;\l}\l,\lexiting scope_6 expr \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { break ; \"unreachable\"; }\l y -= 3i;\l }\l,\lexiting scope_7 stmt \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { break ; \"unreachable\"; }\l y -= 3i;\l }\l,\lexiting scope_8 block {\l \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { break ; \"unreachable\"; }\l y -= 3i;\l }\l y -= 4i;\l x -= 5i;\l}\l"];
N15 -> N9[label="exiting scope_0 expr break \'outer,\lexiting scope_1 stmt break \'outer ;,\lexiting scope_2 block { break \'outer ; \"unreachable\"; },\lexiting scope_3 expr if x == 1is { break \'outer ; \"unreachable\"; },\lexiting scope_4 stmt if x == 1is { break \'outer ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { break ; \"unreachable\"; }\l y -= 3is;\l}\l,\lexiting scope_6 expr \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { break ; \"unreachable\"; }\l y -= 3is;\l }\l,\lexiting scope_7 stmt \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { break ; \"unreachable\"; }\l y -= 3is;\l }\l,\lexiting scope_8 block {\l \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { break ; \"unreachable\"; }\l y -= 3is;\l }\l y -= 4is;\l x -= 5is;\l}\l"];
N16 -> N17;
N17 -> N18;
N18 -> N19;
@ -73,7 +73,7 @@ digraph block {
N23 -> N24;
N24 -> N25;
N25 -> N26;
N26 -> N11[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if y >= 2i { break ; \"unreachable\"; },\lexiting scope_4 stmt if y >= 2i { break ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { break ; \"unreachable\"; }\l y -= 3i;\l}\l"];
N26 -> N11[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if y >= 2is { break ; \"unreachable\"; },\lexiting scope_4 stmt if y >= 2is { break ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { break ; \"unreachable\"; }\l y -= 3is;\l}\l"];
N27 -> N28;
N28 -> N29;
N29 -> N30;

View File

@ -1,57 +1,57 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 16i"];
N2[label="expr 16is"];
N3[label="local mut x"];
N4[label="stmt let mut x = 16i;"];
N5[label="expr 16i"];
N4[label="stmt let mut x = 16is;"];
N5[label="expr 16is"];
N6[label="local mut y"];
N7[label="stmt let mut y = 16i;"];
N7[label="stmt let mut y = 16is;"];
N8[label="(dummy_node)"];
N9[label="expr \'outer:\l loop {\l \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\l }\l y -= 1i;\l x -= 1i;\l }\l"];
N9[label="expr \'outer:\l loop {\l \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 1is { break ; \"unreachable\"; }\l y -= 1is;\l }\l y -= 1is;\l x -= 1is;\l }\l"];
N10[label="(dummy_node)"];
N11[label="expr \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\l }\l"];
N11[label="expr \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 1is { break ; \"unreachable\"; }\l y -= 1is;\l }\l"];
N12[label="expr x"];
N13[label="expr 1i"];
N14[label="expr x == 1i"];
N13[label="expr 1is"];
N14[label="expr x == 1is"];
N15[label="expr continue \'outer"];
N16[label="(dummy_node)"];
N17[label="stmt continue \'outer ;"];
N18[label="expr \"unreachable\""];
N19[label="stmt \"unreachable\";"];
N20[label="block { continue \'outer ; \"unreachable\"; }"];
N21[label="expr if x == 1i { continue \'outer ; \"unreachable\"; }"];
N22[label="stmt if x == 1i { continue \'outer ; \"unreachable\"; }"];
N21[label="expr if x == 1is { continue \'outer ; \"unreachable\"; }"];
N22[label="stmt if x == 1is { continue \'outer ; \"unreachable\"; }"];
N23[label="expr y"];
N24[label="expr 1i"];
N25[label="expr y >= 1i"];
N24[label="expr 1is"];
N25[label="expr y >= 1is"];
N26[label="expr break"];
N27[label="(dummy_node)"];
N28[label="stmt break ;"];
N29[label="expr \"unreachable\""];
N30[label="stmt \"unreachable\";"];
N31[label="block { break ; \"unreachable\"; }"];
N32[label="expr if y >= 1i { break ; \"unreachable\"; }"];
N33[label="stmt if y >= 1i { break ; \"unreachable\"; }"];
N34[label="expr 1i"];
N32[label="expr if y >= 1is { break ; \"unreachable\"; }"];
N33[label="stmt if y >= 1is { break ; \"unreachable\"; }"];
N34[label="expr 1is"];
N35[label="expr y"];
N36[label="expr y -= 1i"];
N37[label="stmt y -= 1i;"];
N38[label="block {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\l}\l"];
N39[label="stmt \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\l }\l"];
N40[label="expr 1i"];
N36[label="expr y -= 1is"];
N37[label="stmt y -= 1is;"];
N38[label="block {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 1is { break ; \"unreachable\"; }\l y -= 1is;\l}\l"];
N39[label="stmt \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 1is { break ; \"unreachable\"; }\l y -= 1is;\l }\l"];
N40[label="expr 1is"];
N41[label="expr y"];
N42[label="expr y -= 1i"];
N43[label="stmt y -= 1i;"];
N44[label="expr 1i"];
N42[label="expr y -= 1is"];
N43[label="stmt y -= 1is;"];
N44[label="expr 1is"];
N45[label="expr x"];
N46[label="expr x -= 1i"];
N47[label="stmt x -= 1i;"];
N48[label="block {\l \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\l }\l y -= 1i;\l x -= 1i;\l}\l"];
N49[label="stmt \'outer:\l loop {\l \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\l }\l y -= 1i;\l x -= 1i;\l }\l"];
N46[label="expr x -= 1is"];
N47[label="stmt x -= 1is;"];
N48[label="block {\l \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 1is { break ; \"unreachable\"; }\l y -= 1is;\l }\l y -= 1is;\l x -= 1is;\l}\l"];
N49[label="stmt \'outer:\l loop {\l \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 1is { break ; \"unreachable\"; }\l y -= 1is;\l }\l y -= 1is;\l x -= 1is;\l }\l"];
N50[label="expr \"unreachable\""];
N51[label="stmt \"unreachable\";"];
N52[label="block {\l let mut x = 16i;\l let mut y = 16i;\l \'outer:\l loop {\l \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\l }\l y -= 1i;\l x -= 1i;\l }\l \"unreachable\";\l}\l"];
N52[label="block {\l let mut x = 16is;\l let mut y = 16is;\l \'outer:\l loop {\l \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 1is { break ; \"unreachable\"; }\l y -= 1is;\l }\l y -= 1is;\l x -= 1is;\l }\l \"unreachable\";\l}\l"];
N0 -> N2;
N2 -> N3;
N3 -> N4;
@ -64,7 +64,7 @@ digraph block {
N12 -> N13;
N13 -> N14;
N14 -> N15;
N15 -> N8[label="exiting scope_0 expr continue \'outer,\lexiting scope_1 stmt continue \'outer ;,\lexiting scope_2 block { continue \'outer ; \"unreachable\"; },\lexiting scope_3 expr if x == 1i { continue \'outer ; \"unreachable\"; },\lexiting scope_4 stmt if x == 1i { continue \'outer ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\l}\l,\lexiting scope_6 expr \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\l }\l,\lexiting scope_7 stmt \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\l }\l,\lexiting scope_8 block {\l \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\l }\l y -= 1i;\l x -= 1i;\l}\l"];
N15 -> N8[label="exiting scope_0 expr continue \'outer,\lexiting scope_1 stmt continue \'outer ;,\lexiting scope_2 block { continue \'outer ; \"unreachable\"; },\lexiting scope_3 expr if x == 1is { continue \'outer ; \"unreachable\"; },\lexiting scope_4 stmt if x == 1is { continue \'outer ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 1is { break ; \"unreachable\"; }\l y -= 1is;\l}\l,\lexiting scope_6 expr \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 1is { break ; \"unreachable\"; }\l y -= 1is;\l }\l,\lexiting scope_7 stmt \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 1is { break ; \"unreachable\"; }\l y -= 1is;\l }\l,\lexiting scope_8 block {\l \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 1is { break ; \"unreachable\"; }\l y -= 1is;\l }\l y -= 1is;\l x -= 1is;\l}\l"];
N16 -> N17;
N17 -> N18;
N18 -> N19;
@ -76,7 +76,7 @@ digraph block {
N23 -> N24;
N24 -> N25;
N25 -> N26;
N26 -> N11[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if y >= 1i { break ; \"unreachable\"; },\lexiting scope_4 stmt if y >= 1i { break ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\l}\l"];
N26 -> N11[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if y >= 1is { break ; \"unreachable\"; },\lexiting scope_4 stmt if y >= 1is { break ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 1is { break ; \"unreachable\"; }\l y -= 1is;\l}\l"];
N27 -> N28;
N28 -> N29;
N29 -> N30;

View File

@ -1,13 +1,13 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 1i"];
N3[label="expr 7i"];
N4[label="expr 17i"];
N5[label="expr [1i, 7i, 17i]"];
N2[label="expr 1is"];
N3[label="expr 7is"];
N4[label="expr 17is"];
N5[label="expr [1is, 7is, 17is]"];
N6[label="local _v"];
N7[label="stmt let _v = [1i, 7i, 17i];"];
N8[label="block { let _v = [1i, 7i, 17i]; }"];
N7[label="stmt let _v = [1is, 7is, 17is];"];
N8[label="block { let _v = [1is, 7is, 17is]; }"];
N0 -> N2;
N2 -> N3;
N3 -> N4;

View File

@ -1,17 +1,17 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 2u"];
N3[label="expr 0u"];
N4[label="expr 20u"];
N5[label="expr [2u, 0u, 20u]"];
N2[label="expr 2us"];
N3[label="expr 0us"];
N4[label="expr 20us"];
N5[label="expr [2us, 0us, 20us]"];
N6[label="local v"];
N7[label="stmt let v = [2u, 0u, 20u];"];
N7[label="stmt let v = [2us, 0us, 20us];"];
N8[label="expr v"];
N9[label="expr 20u"];
N10[label="expr v[20u]"];
N11[label="stmt v[20u];"];
N12[label="block { let v = [2u, 0u, 20u]; v[20u]; }"];
N9[label="expr 20us"];
N10[label="expr v[20us]"];
N11[label="stmt v[20us];"];
N12[label="block { let v = [2us, 0us, 20us]; v[20us]; }"];
N0 -> N2;
N2 -> N3;
N3 -> N4;

View File

@ -1,52 +1,52 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 15i"];
N2[label="expr 15is"];
N3[label="local mut x"];
N4[label="stmt let mut x = 15i;"];
N5[label="expr 151i"];
N4[label="stmt let mut x = 15is;"];
N5[label="expr 151is"];
N6[label="local mut y"];
N7[label="stmt let mut y = 151i;"];
N7[label="stmt let mut y = 151is;"];
N8[label="(dummy_node)"];
N9[label="expr \'outer:\l loop {\l \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l y -= 3i;\l x -= 5i;\l }\l \"unreachable\";\l }\l"];
N9[label="expr \'outer:\l loop {\l \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l y -= 3is;\l x -= 5is;\l }\l \"unreachable\";\l }\l"];
N10[label="(dummy_node)"];
N11[label="expr \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l y -= 3i;\l x -= 5i;\l }\l"];
N11[label="expr \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l y -= 3is;\l x -= 5is;\l }\l"];
N12[label="expr x"];
N13[label="expr 1i"];
N14[label="expr x == 1i"];
N13[label="expr 1is"];
N14[label="expr x == 1is"];
N15[label="expr break \'outer"];
N16[label="(dummy_node)"];
N17[label="stmt break \'outer ;"];
N18[label="expr \"unreachable\""];
N19[label="stmt \"unreachable\";"];
N20[label="block { break \'outer ; \"unreachable\"; }"];
N21[label="expr if x == 1i { break \'outer ; \"unreachable\"; }"];
N22[label="stmt if x == 1i { break \'outer ; \"unreachable\"; }"];
N21[label="expr if x == 1is { break \'outer ; \"unreachable\"; }"];
N22[label="stmt if x == 1is { break \'outer ; \"unreachable\"; }"];
N23[label="expr y"];
N24[label="expr 2i"];
N25[label="expr y >= 2i"];
N24[label="expr 2is"];
N25[label="expr y >= 2is"];
N26[label="expr return"];
N27[label="(dummy_node)"];
N28[label="stmt return;"];
N29[label="expr \"unreachable\""];
N30[label="stmt \"unreachable\";"];
N31[label="block { return; \"unreachable\"; }"];
N32[label="expr if y >= 2i { return; \"unreachable\"; }"];
N33[label="stmt if y >= 2i { return; \"unreachable\"; }"];
N34[label="expr 3i"];
N32[label="expr if y >= 2is { return; \"unreachable\"; }"];
N33[label="stmt if y >= 2is { return; \"unreachable\"; }"];
N34[label="expr 3is"];
N35[label="expr y"];
N36[label="expr y -= 3i"];
N37[label="stmt y -= 3i;"];
N38[label="expr 5i"];
N36[label="expr y -= 3is"];
N37[label="stmt y -= 3is;"];
N38[label="expr 5is"];
N39[label="expr x"];
N40[label="expr x -= 5i"];
N41[label="stmt x -= 5i;"];
N42[label="block {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l y -= 3i;\l x -= 5i;\l}\l"];
N43[label="stmt \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l y -= 3i;\l x -= 5i;\l }\l"];
N40[label="expr x -= 5is"];
N41[label="stmt x -= 5is;"];
N42[label="block {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l y -= 3is;\l x -= 5is;\l}\l"];
N43[label="stmt \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l y -= 3is;\l x -= 5is;\l }\l"];
N44[label="expr \"unreachable\""];
N45[label="stmt \"unreachable\";"];
N46[label="block {\l \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l y -= 3i;\l x -= 5i;\l }\l \"unreachable\";\l}\l"];
N47[label="block {\l let mut x = 15i;\l let mut y = 151i;\l \'outer:\l loop {\l \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l y -= 3i;\l x -= 5i;\l }\l \"unreachable\";\l }\l}\l"];
N46[label="block {\l \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l y -= 3is;\l x -= 5is;\l }\l \"unreachable\";\l}\l"];
N47[label="block {\l let mut x = 15is;\l let mut y = 151is;\l \'outer:\l loop {\l \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l y -= 3is;\l x -= 5is;\l }\l \"unreachable\";\l }\l}\l"];
N0 -> N2;
N2 -> N3;
N3 -> N4;
@ -59,7 +59,7 @@ digraph block {
N12 -> N13;
N13 -> N14;
N14 -> N15;
N15 -> N9[label="exiting scope_0 expr break \'outer,\lexiting scope_1 stmt break \'outer ;,\lexiting scope_2 block { break \'outer ; \"unreachable\"; },\lexiting scope_3 expr if x == 1i { break \'outer ; \"unreachable\"; },\lexiting scope_4 stmt if x == 1i { break \'outer ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l y -= 3i;\l x -= 5i;\l}\l,\lexiting scope_6 expr \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l y -= 3i;\l x -= 5i;\l }\l,\lexiting scope_7 stmt \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l y -= 3i;\l x -= 5i;\l }\l,\lexiting scope_8 block {\l \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l y -= 3i;\l x -= 5i;\l }\l \"unreachable\";\l}\l"];
N15 -> N9[label="exiting scope_0 expr break \'outer,\lexiting scope_1 stmt break \'outer ;,\lexiting scope_2 block { break \'outer ; \"unreachable\"; },\lexiting scope_3 expr if x == 1is { break \'outer ; \"unreachable\"; },\lexiting scope_4 stmt if x == 1is { break \'outer ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l y -= 3is;\l x -= 5is;\l}\l,\lexiting scope_6 expr \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l y -= 3is;\l x -= 5is;\l }\l,\lexiting scope_7 stmt \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l y -= 3is;\l x -= 5is;\l }\l,\lexiting scope_8 block {\l \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l y -= 3is;\l x -= 5is;\l }\l \"unreachable\";\l}\l"];
N16 -> N17;
N17 -> N18;
N18 -> N19;
@ -71,7 +71,7 @@ digraph block {
N23 -> N24;
N24 -> N25;
N25 -> N26;
N26 -> N1[label="exiting scope_0 expr \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l y -= 3i;\l x -= 5i;\l }\l,\lexiting scope_1 expr \'outer:\l loop {\l \'inner:\l loop {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l y -= 3i;\l x -= 5i;\l }\l \"unreachable\";\l }\l"];
N26 -> N1[label="exiting scope_0 expr \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l y -= 3is;\l x -= 5is;\l }\l,\lexiting scope_1 expr \'outer:\l loop {\l \'inner:\l loop {\l if x == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l y -= 3is;\l x -= 5is;\l }\l \"unreachable\";\l }\l"];
N27 -> N28;
N28 -> N29;
N29 -> N30;

View File

@ -1,55 +1,55 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 15i"];
N2[label="expr 15is"];
N3[label="local mut x"];
N4[label="stmt let mut x = 15i;"];
N5[label="expr 151i"];
N4[label="stmt let mut x = 15is;"];
N5[label="expr 151is"];
N6[label="local mut y"];
N7[label="stmt let mut y = 151i;"];
N7[label="stmt let mut y = 151is;"];
N8[label="(dummy_node)"];
N9[label="expr \'outer:\l loop {\l \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l }\l \"unreachable\";\l }\l"];
N9[label="expr \'outer:\l loop {\l \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l }\l \"unreachable\";\l }\l"];
N10[label="(dummy_node)"];
N11[label="expr \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l }\l"];
N11[label="expr \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l }\l"];
N12[label="expr x"];
N13[label="expr 1i"];
N14[label="expr x == 1i"];
N13[label="expr 1is"];
N14[label="expr x == 1is"];
N15[label="expr continue \'outer"];
N16[label="(dummy_node)"];
N17[label="stmt continue \'outer ;"];
N18[label="expr \"unreachable\""];
N19[label="stmt \"unreachable\";"];
N20[label="block { continue \'outer ; \"unreachable\"; }"];
N21[label="expr if x == 1i { continue \'outer ; \"unreachable\"; }"];
N22[label="stmt if x == 1i { continue \'outer ; \"unreachable\"; }"];
N21[label="expr if x == 1is { continue \'outer ; \"unreachable\"; }"];
N22[label="stmt if x == 1is { continue \'outer ; \"unreachable\"; }"];
N23[label="expr y"];
N24[label="expr 2i"];
N25[label="expr y >= 2i"];
N24[label="expr 2is"];
N25[label="expr y >= 2is"];
N26[label="expr return"];
N27[label="(dummy_node)"];
N28[label="stmt return;"];
N29[label="expr \"unreachable\""];
N30[label="stmt \"unreachable\";"];
N31[label="block { return; \"unreachable\"; }"];
N32[label="expr if y >= 2i { return; \"unreachable\"; }"];
N33[label="stmt if y >= 2i { return; \"unreachable\"; }"];
N34[label="expr 1i"];
N32[label="expr if y >= 2is { return; \"unreachable\"; }"];
N33[label="stmt if y >= 2is { return; \"unreachable\"; }"];
N34[label="expr 1is"];
N35[label="expr x"];
N36[label="expr x -= 1i"];
N37[label="stmt x -= 1i;"];
N38[label="expr 3i"];
N36[label="expr x -= 1is"];
N37[label="stmt x -= 1is;"];
N38[label="expr 3is"];
N39[label="expr y"];
N40[label="expr y -= 3i"];
N41[label="stmt y -= 3i;"];
N42[label="block {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l}\l"];
N43[label="stmt \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l }\l"];
N40[label="expr y -= 3is"];
N41[label="stmt y -= 3is;"];
N42[label="block {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l}\l"];
N43[label="stmt \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l }\l"];
N44[label="expr \"unreachable\""];
N45[label="stmt \"unreachable\";"];
N46[label="block {\l \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l }\l \"unreachable\";\l}\l"];
N47[label="stmt \'outer:\l loop {\l \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l }\l \"unreachable\";\l }\l"];
N46[label="block {\l \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l }\l \"unreachable\";\l}\l"];
N47[label="stmt \'outer:\l loop {\l \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l }\l \"unreachable\";\l }\l"];
N48[label="expr \"unreachable\""];
N49[label="stmt \"unreachable\";"];
N50[label="block {\l let mut x = 15i;\l let mut y = 151i;\l \'outer:\l loop {\l \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l }\l \"unreachable\";\l }\l \"unreachable\";\l}\l"];
N50[label="block {\l let mut x = 15is;\l let mut y = 151is;\l \'outer:\l loop {\l \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l }\l \"unreachable\";\l }\l \"unreachable\";\l}\l"];
N0 -> N2;
N2 -> N3;
N3 -> N4;
@ -62,7 +62,7 @@ digraph block {
N12 -> N13;
N13 -> N14;
N14 -> N15;
N15 -> N8[label="exiting scope_0 expr continue \'outer,\lexiting scope_1 stmt continue \'outer ;,\lexiting scope_2 block { continue \'outer ; \"unreachable\"; },\lexiting scope_3 expr if x == 1i { continue \'outer ; \"unreachable\"; },\lexiting scope_4 stmt if x == 1i { continue \'outer ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l}\l,\lexiting scope_6 expr \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l }\l,\lexiting scope_7 stmt \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l }\l,\lexiting scope_8 block {\l \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l }\l \"unreachable\";\l}\l"];
N15 -> N8[label="exiting scope_0 expr continue \'outer,\lexiting scope_1 stmt continue \'outer ;,\lexiting scope_2 block { continue \'outer ; \"unreachable\"; },\lexiting scope_3 expr if x == 1is { continue \'outer ; \"unreachable\"; },\lexiting scope_4 stmt if x == 1is { continue \'outer ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l}\l,\lexiting scope_6 expr \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l }\l,\lexiting scope_7 stmt \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l }\l,\lexiting scope_8 block {\l \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l }\l \"unreachable\";\l}\l"];
N16 -> N17;
N17 -> N18;
N18 -> N19;
@ -74,7 +74,7 @@ digraph block {
N23 -> N24;
N24 -> N25;
N25 -> N26;
N26 -> N1[label="exiting scope_0 expr \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l }\l,\lexiting scope_1 expr \'outer:\l loop {\l \'inner:\l loop {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l }\l \"unreachable\";\l }\l"];
N26 -> N1[label="exiting scope_0 expr \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l }\l,\lexiting scope_1 expr \'outer:\l loop {\l \'inner:\l loop {\l if x == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l }\l \"unreachable\";\l }\l"];
N27 -> N28;
N28 -> N29;
N29 -> N30;

View File

@ -1,57 +1,57 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 23i"];
N2[label="expr 23is"];
N3[label="local mut x"];
N4[label="stmt let mut x = 23i;"];
N5[label="expr 23i"];
N4[label="stmt let mut x = 23is;"];
N5[label="expr 23is"];
N6[label="local mut y"];
N7[label="stmt let mut y = 23i;"];
N8[label="expr 23i"];
N7[label="stmt let mut y = 23is;"];
N8[label="expr 23is"];
N9[label="local mut z"];
N10[label="stmt let mut z = 23i;"];
N10[label="stmt let mut z = 23is;"];
N11[label="(dummy_node)"];
N12[label="expr x"];
N13[label="expr 0i"];
N14[label="expr x > 0i"];
N15[label="expr while x > 0i {\l x -= 1i;\l while y > 0i {\l y -= 1i;\l while z > 0i { z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l }\l}\l"];
N16[label="expr 1i"];
N13[label="expr 0is"];
N14[label="expr x > 0is"];
N15[label="expr while x > 0is {\l x -= 1is;\l while y > 0is {\l y -= 1is;\l while z > 0is { z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l }\l}\l"];
N16[label="expr 1is"];
N17[label="expr x"];
N18[label="expr x -= 1i"];
N19[label="stmt x -= 1i;"];
N18[label="expr x -= 1is"];
N19[label="stmt x -= 1is;"];
N20[label="(dummy_node)"];
N21[label="expr y"];
N22[label="expr 0i"];
N23[label="expr y > 0i"];
N24[label="expr while y > 0i {\l y -= 1i;\l while z > 0i { z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l}\l"];
N25[label="expr 1i"];
N22[label="expr 0is"];
N23[label="expr y > 0is"];
N24[label="expr while y > 0is {\l y -= 1is;\l while z > 0is { z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l}\l"];
N25[label="expr 1is"];
N26[label="expr y"];
N27[label="expr y -= 1i"];
N28[label="stmt y -= 1i;"];
N27[label="expr y -= 1is"];
N28[label="stmt y -= 1is;"];
N29[label="(dummy_node)"];
N30[label="expr z"];
N31[label="expr 0i"];
N32[label="expr z > 0i"];
N33[label="expr while z > 0i { z -= 1i; }"];
N34[label="expr 1i"];
N31[label="expr 0is"];
N32[label="expr z > 0is"];
N33[label="expr while z > 0is { z -= 1is; }"];
N34[label="expr 1is"];
N35[label="expr z"];
N36[label="expr z -= 1i"];
N37[label="stmt z -= 1i;"];
N38[label="block { z -= 1i; }"];
N39[label="stmt while z > 0i { z -= 1i; }"];
N36[label="expr z -= 1is"];
N37[label="stmt z -= 1is;"];
N38[label="block { z -= 1is; }"];
N39[label="stmt while z > 0is { z -= 1is; }"];
N40[label="expr x"];
N41[label="expr 10i"];
N42[label="expr x > 10i"];
N41[label="expr 10is"];
N42[label="expr x > 10is"];
N43[label="expr return"];
N44[label="(dummy_node)"];
N45[label="stmt return;"];
N46[label="expr \"unreachable\""];
N47[label="stmt \"unreachable\";"];
N48[label="block { return; \"unreachable\"; }"];
N49[label="expr if x > 10i { return; \"unreachable\"; }"];
N50[label="block { y -= 1i; while z > 0i { z -= 1i; } if x > 10i { return; \"unreachable\"; } }"];
N51[label="block {\l x -= 1i;\l while y > 0i {\l y -= 1i;\l while z > 0i { z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l }\l}\l"];
N52[label="block {\l let mut x = 23i;\l let mut y = 23i;\l let mut z = 23i;\l while x > 0i {\l x -= 1i;\l while y > 0i {\l y -= 1i;\l while z > 0i { z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l }\l }\l}\l"];
N49[label="expr if x > 10is { return; \"unreachable\"; }"];
N50[label="block {\l y -= 1is;\l while z > 0is { z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l}\l"];
N51[label="block {\l x -= 1is;\l while y > 0is {\l y -= 1is;\l while z > 0is { z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l }\l}\l"];
N52[label="block {\l let mut x = 23is;\l let mut y = 23is;\l let mut z = 23is;\l while x > 0is {\l x -= 1is;\l while y > 0is {\l y -= 1is;\l while z > 0is { z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l }\l }\l}\l"];
N0 -> N2;
N2 -> N3;
N3 -> N4;
@ -95,7 +95,7 @@ digraph block {
N40 -> N41;
N41 -> N42;
N42 -> N43;
N43 -> N1[label="exiting scope_0 expr while y > 0i {\l y -= 1i;\l while z > 0i { z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l}\l,\lexiting scope_1 expr while x > 0i {\l x -= 1i;\l while y > 0i {\l y -= 1i;\l while z > 0i { z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l }\l}\l"];
N43 -> N1[label="exiting scope_0 expr while y > 0is {\l y -= 1is;\l while z > 0is { z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l}\l,\lexiting scope_1 expr while x > 0is {\l x -= 1is;\l while y > 0is {\l y -= 1is;\l while z > 0is { z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l }\l}\l"];
N44 -> N45;
N45 -> N46;
N46 -> N47;

View File

@ -1,81 +1,81 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 24i"];
N2[label="expr 24is"];
N3[label="local mut x"];
N4[label="stmt let mut x = 24i;"];
N5[label="expr 24i"];
N4[label="stmt let mut x = 24is;"];
N5[label="expr 24is"];
N6[label="local mut y"];
N7[label="stmt let mut y = 24i;"];
N8[label="expr 24i"];
N7[label="stmt let mut y = 24is;"];
N8[label="expr 24is"];
N9[label="local mut z"];
N10[label="stmt let mut z = 24i;"];
N10[label="stmt let mut z = 24is;"];
N11[label="(dummy_node)"];
N12[label="expr loop {\l if x == 0i { break ; \"unreachable\"; }\l x -= 1i;\l loop {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l }\l}\l"];
N12[label="expr loop {\l if x == 0is { break ; \"unreachable\"; }\l x -= 1is;\l loop {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l }\l}\l"];
N13[label="expr x"];
N14[label="expr 0i"];
N15[label="expr x == 0i"];
N14[label="expr 0is"];
N15[label="expr x == 0is"];
N16[label="expr break"];
N17[label="(dummy_node)"];
N18[label="stmt break ;"];
N19[label="expr \"unreachable\""];
N20[label="stmt \"unreachable\";"];
N21[label="block { break ; \"unreachable\"; }"];
N22[label="expr if x == 0i { break ; \"unreachable\"; }"];
N23[label="stmt if x == 0i { break ; \"unreachable\"; }"];
N24[label="expr 1i"];
N22[label="expr if x == 0is { break ; \"unreachable\"; }"];
N23[label="stmt if x == 0is { break ; \"unreachable\"; }"];
N24[label="expr 1is"];
N25[label="expr x"];
N26[label="expr x -= 1i"];
N27[label="stmt x -= 1i;"];
N26[label="expr x -= 1is"];
N27[label="stmt x -= 1is;"];
N28[label="(dummy_node)"];
N29[label="expr loop {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l}\l"];
N29[label="expr loop {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l}\l"];
N30[label="expr y"];
N31[label="expr 0i"];
N32[label="expr y == 0i"];
N31[label="expr 0is"];
N32[label="expr y == 0is"];
N33[label="expr break"];
N34[label="(dummy_node)"];
N35[label="stmt break ;"];
N36[label="expr \"unreachable\""];
N37[label="stmt \"unreachable\";"];
N38[label="block { break ; \"unreachable\"; }"];
N39[label="expr if y == 0i { break ; \"unreachable\"; }"];
N40[label="stmt if y == 0i { break ; \"unreachable\"; }"];
N41[label="expr 1i"];
N39[label="expr if y == 0is { break ; \"unreachable\"; }"];
N40[label="stmt if y == 0is { break ; \"unreachable\"; }"];
N41[label="expr 1is"];
N42[label="expr y"];
N43[label="expr y -= 1i"];
N44[label="stmt y -= 1i;"];
N43[label="expr y -= 1is"];
N44[label="stmt y -= 1is;"];
N45[label="(dummy_node)"];
N46[label="expr loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }"];
N46[label="expr loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }"];
N47[label="expr z"];
N48[label="expr 0i"];
N49[label="expr z == 0i"];
N48[label="expr 0is"];
N49[label="expr z == 0is"];
N50[label="expr break"];
N51[label="(dummy_node)"];
N52[label="stmt break ;"];
N53[label="expr \"unreachable\""];
N54[label="stmt \"unreachable\";"];
N55[label="block { break ; \"unreachable\"; }"];
N56[label="expr if z == 0i { break ; \"unreachable\"; }"];
N57[label="stmt if z == 0i { break ; \"unreachable\"; }"];
N58[label="expr 1i"];
N56[label="expr if z == 0is { break ; \"unreachable\"; }"];
N57[label="stmt if z == 0is { break ; \"unreachable\"; }"];
N58[label="expr 1is"];
N59[label="expr z"];
N60[label="expr z -= 1i"];
N61[label="stmt z -= 1i;"];
N62[label="block { if z == 0i { break ; \"unreachable\"; } z -= 1i; }"];
N63[label="stmt loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }"];
N60[label="expr z -= 1is"];
N61[label="stmt z -= 1is;"];
N62[label="block { if z == 0is { break ; \"unreachable\"; } z -= 1is; }"];
N63[label="stmt loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }"];
N64[label="expr x"];
N65[label="expr 10i"];
N66[label="expr x > 10i"];
N65[label="expr 10is"];
N66[label="expr x > 10is"];
N67[label="expr return"];
N68[label="(dummy_node)"];
N69[label="stmt return;"];
N70[label="expr \"unreachable\""];
N71[label="stmt \"unreachable\";"];
N72[label="block { return; \"unreachable\"; }"];
N73[label="expr if x > 10i { return; \"unreachable\"; }"];
N74[label="block {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l}\l"];
N75[label="block {\l if x == 0i { break ; \"unreachable\"; }\l x -= 1i;\l loop {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l }\l}\l"];
N76[label="block {\l let mut x = 24i;\l let mut y = 24i;\l let mut z = 24i;\l loop {\l if x == 0i { break ; \"unreachable\"; }\l x -= 1i;\l loop {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l }\l }\l}\l"];
N73[label="expr if x > 10is { return; \"unreachable\"; }"];
N74[label="block {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l}\l"];
N75[label="block {\l if x == 0is { break ; \"unreachable\"; }\l x -= 1is;\l loop {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l }\l}\l"];
N76[label="block {\l let mut x = 24is;\l let mut y = 24is;\l let mut z = 24is;\l loop {\l if x == 0is { break ; \"unreachable\"; }\l x -= 1is;\l loop {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l }\l }\l}\l"];
N0 -> N2;
N2 -> N3;
N3 -> N4;
@ -90,7 +90,7 @@ digraph block {
N13 -> N14;
N14 -> N15;
N15 -> N16;
N16 -> N12[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if x == 0i { break ; \"unreachable\"; },\lexiting scope_4 stmt if x == 0i { break ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 0i { break ; \"unreachable\"; }\l x -= 1i;\l loop {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l }\l}\l"];
N16 -> N12[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if x == 0is { break ; \"unreachable\"; },\lexiting scope_4 stmt if x == 0is { break ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 0is { break ; \"unreachable\"; }\l x -= 1is;\l loop {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l }\l}\l"];
N17 -> N18;
N18 -> N19;
N19 -> N20;
@ -107,7 +107,7 @@ digraph block {
N30 -> N31;
N31 -> N32;
N32 -> N33;
N33 -> N29[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if y == 0i { break ; \"unreachable\"; },\lexiting scope_4 stmt if y == 0i { break ; \"unreachable\"; },\lexiting scope_5 block {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l}\l"];
N33 -> N29[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if y == 0is { break ; \"unreachable\"; },\lexiting scope_4 stmt if y == 0is { break ; \"unreachable\"; },\lexiting scope_5 block {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l}\l"];
N34 -> N35;
N35 -> N36;
N36 -> N37;
@ -124,7 +124,7 @@ digraph block {
N47 -> N48;
N48 -> N49;
N49 -> N50;
N50 -> N46[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if z == 0i { break ; \"unreachable\"; },\lexiting scope_4 stmt if z == 0i { break ; \"unreachable\"; },\lexiting scope_5 block { if z == 0i { break ; \"unreachable\"; } z -= 1i; }"];
N50 -> N46[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if z == 0is { break ; \"unreachable\"; },\lexiting scope_4 stmt if z == 0is { break ; \"unreachable\"; },\lexiting scope_5 block { if z == 0is { break ; \"unreachable\"; } z -= 1is; }"];
N51 -> N52;
N52 -> N53;
N53 -> N54;
@ -143,7 +143,7 @@ digraph block {
N64 -> N65;
N65 -> N66;
N66 -> N67;
N67 -> N1[label="exiting scope_0 expr loop {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l}\l,\lexiting scope_1 expr loop {\l if x == 0i { break ; \"unreachable\"; }\l x -= 1i;\l loop {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { return; \"unreachable\"; }\l }\l}\l"];
N67 -> N1[label="exiting scope_0 expr loop {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l}\l,\lexiting scope_1 expr loop {\l if x == 0is { break ; \"unreachable\"; }\l x -= 1is;\l loop {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { return; \"unreachable\"; }\l }\l}\l"];
N68 -> N69;
N69 -> N70;
N70 -> N71;

View File

@ -1,81 +1,81 @@
digraph block {
N0[label="entry"];
N1[label="exit"];
N2[label="expr 25i"];
N2[label="expr 25is"];
N3[label="local mut x"];
N4[label="stmt let mut x = 25i;"];
N5[label="expr 25i"];
N4[label="stmt let mut x = 25is;"];
N5[label="expr 25is"];
N6[label="local mut y"];
N7[label="stmt let mut y = 25i;"];
N8[label="expr 25i"];
N7[label="stmt let mut y = 25is;"];
N8[label="expr 25is"];
N9[label="local mut z"];
N10[label="stmt let mut z = 25i;"];
N10[label="stmt let mut z = 25is;"];
N11[label="(dummy_node)"];
N12[label="expr \'a:\l loop {\l if x == 0i { break ; \"unreachable\"; }\l x -= 1i;\l \'a:\l loop {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l \'a: loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { continue \'a ; \"unreachable\"; }\l }\l }\l"];
N12[label="expr \'a:\l loop {\l if x == 0is { break ; \"unreachable\"; }\l x -= 1is;\l \'a:\l loop {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l \'a: loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { continue \'a ; \"unreachable\"; }\l }\l }\l"];
N13[label="expr x"];
N14[label="expr 0i"];
N15[label="expr x == 0i"];
N14[label="expr 0is"];
N15[label="expr x == 0is"];
N16[label="expr break"];
N17[label="(dummy_node)"];
N18[label="stmt break ;"];
N19[label="expr \"unreachable\""];
N20[label="stmt \"unreachable\";"];
N21[label="block { break ; \"unreachable\"; }"];
N22[label="expr if x == 0i { break ; \"unreachable\"; }"];
N23[label="stmt if x == 0i { break ; \"unreachable\"; }"];
N24[label="expr 1i"];
N22[label="expr if x == 0is { break ; \"unreachable\"; }"];
N23[label="stmt if x == 0is { break ; \"unreachable\"; }"];
N24[label="expr 1is"];
N25[label="expr x"];
N26[label="expr x -= 1i"];
N27[label="stmt x -= 1i;"];
N26[label="expr x -= 1is"];
N27[label="stmt x -= 1is;"];
N28[label="(dummy_node)"];
N29[label="expr \'a:\l loop {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l \'a: loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { continue \'a ; \"unreachable\"; }\l }\l"];
N29[label="expr \'a:\l loop {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l \'a: loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { continue \'a ; \"unreachable\"; }\l }\l"];
N30[label="expr y"];
N31[label="expr 0i"];
N32[label="expr y == 0i"];
N31[label="expr 0is"];
N32[label="expr y == 0is"];
N33[label="expr break"];
N34[label="(dummy_node)"];
N35[label="stmt break ;"];
N36[label="expr \"unreachable\""];
N37[label="stmt \"unreachable\";"];
N38[label="block { break ; \"unreachable\"; }"];
N39[label="expr if y == 0i { break ; \"unreachable\"; }"];
N40[label="stmt if y == 0i { break ; \"unreachable\"; }"];
N41[label="expr 1i"];
N39[label="expr if y == 0is { break ; \"unreachable\"; }"];
N40[label="stmt if y == 0is { break ; \"unreachable\"; }"];
N41[label="expr 1is"];
N42[label="expr y"];
N43[label="expr y -= 1i"];
N44[label="stmt y -= 1i;"];
N43[label="expr y -= 1is"];
N44[label="stmt y -= 1is;"];
N45[label="(dummy_node)"];
N46[label="expr \'a: loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }"];
N46[label="expr \'a: loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }"];
N47[label="expr z"];
N48[label="expr 0i"];
N49[label="expr z == 0i"];
N48[label="expr 0is"];
N49[label="expr z == 0is"];
N50[label="expr break"];
N51[label="(dummy_node)"];
N52[label="stmt break ;"];
N53[label="expr \"unreachable\""];
N54[label="stmt \"unreachable\";"];
N55[label="block { break ; \"unreachable\"; }"];
N56[label="expr if z == 0i { break ; \"unreachable\"; }"];
N57[label="stmt if z == 0i { break ; \"unreachable\"; }"];
N58[label="expr 1i"];
N56[label="expr if z == 0is { break ; \"unreachable\"; }"];
N57[label="stmt if z == 0is { break ; \"unreachable\"; }"];
N58[label="expr 1is"];
N59[label="expr z"];
N60[label="expr z -= 1i"];
N61[label="stmt z -= 1i;"];
N62[label="block { if z == 0i { break ; \"unreachable\"; } z -= 1i; }"];
N63[label="stmt \'a: loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }"];
N60[label="expr z -= 1is"];
N61[label="stmt z -= 1is;"];
N62[label="block { if z == 0is { break ; \"unreachable\"; } z -= 1is; }"];
N63[label="stmt \'a: loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }"];
N64[label="expr x"];
N65[label="expr 10i"];
N66[label="expr x > 10i"];
N65[label="expr 10is"];
N66[label="expr x > 10is"];
N67[label="expr continue \'a"];
N68[label="(dummy_node)"];
N69[label="stmt continue \'a ;"];
N70[label="expr \"unreachable\""];
N71[label="stmt \"unreachable\";"];
N72[label="block { continue \'a ; \"unreachable\"; }"];
N73[label="expr if x > 10i { continue \'a ; \"unreachable\"; }"];
N74[label="block {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l \'a: loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { continue \'a ; \"unreachable\"; }\l}\l"];
N75[label="block {\l if x == 0i { break ; \"unreachable\"; }\l x -= 1i;\l \'a:\l loop {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l \'a: loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { continue \'a ; \"unreachable\"; }\l }\l}\l"];
N76[label="block {\l let mut x = 25i;\l let mut y = 25i;\l let mut z = 25i;\l \'a:\l loop {\l if x == 0i { break ; \"unreachable\"; }\l x -= 1i;\l \'a:\l loop {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l \'a:\l loop {\l if z == 0i { break ; \"unreachable\"; }\l z -= 1i;\l }\l if x > 10i { continue \'a ; \"unreachable\"; }\l }\l }\l}\l"];
N73[label="expr if x > 10is { continue \'a ; \"unreachable\"; }"];
N74[label="block {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l \'a: loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { continue \'a ; \"unreachable\"; }\l}\l"];
N75[label="block {\l if x == 0is { break ; \"unreachable\"; }\l x -= 1is;\l \'a:\l loop {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l \'a: loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { continue \'a ; \"unreachable\"; }\l }\l}\l"];
N76[label="block {\l let mut x = 25is;\l let mut y = 25is;\l let mut z = 25is;\l \'a:\l loop {\l if x == 0is { break ; \"unreachable\"; }\l x -= 1is;\l \'a:\l loop {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l \'a:\l loop {\l if z == 0is { break ; \"unreachable\"; }\l z -= 1is;\l }\l if x > 10is { continue \'a ; \"unreachable\"; }\l }\l }\l}\l"];
N0 -> N2;
N2 -> N3;
N3 -> N4;
@ -90,7 +90,7 @@ digraph block {
N13 -> N14;
N14 -> N15;
N15 -> N16;
N16 -> N12[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if x == 0i { break ; \"unreachable\"; },\lexiting scope_4 stmt if x == 0i { break ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 0i { break ; \"unreachable\"; }\l x -= 1i;\l \'a:\l loop {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l \'a: loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { continue \'a ; \"unreachable\"; }\l }\l}\l"];
N16 -> N12[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if x == 0is { break ; \"unreachable\"; },\lexiting scope_4 stmt if x == 0is { break ; \"unreachable\"; },\lexiting scope_5 block {\l if x == 0is { break ; \"unreachable\"; }\l x -= 1is;\l \'a:\l loop {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l \'a: loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { continue \'a ; \"unreachable\"; }\l }\l}\l"];
N17 -> N18;
N18 -> N19;
N19 -> N20;
@ -107,7 +107,7 @@ digraph block {
N30 -> N31;
N31 -> N32;
N32 -> N33;
N33 -> N29[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if y == 0i { break ; \"unreachable\"; },\lexiting scope_4 stmt if y == 0i { break ; \"unreachable\"; },\lexiting scope_5 block {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l \'a: loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { continue \'a ; \"unreachable\"; }\l}\l"];
N33 -> N29[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if y == 0is { break ; \"unreachable\"; },\lexiting scope_4 stmt if y == 0is { break ; \"unreachable\"; },\lexiting scope_5 block {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l \'a: loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { continue \'a ; \"unreachable\"; }\l}\l"];
N34 -> N35;
N35 -> N36;
N36 -> N37;
@ -124,7 +124,7 @@ digraph block {
N47 -> N48;
N48 -> N49;
N49 -> N50;
N50 -> N46[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if z == 0i { break ; \"unreachable\"; },\lexiting scope_4 stmt if z == 0i { break ; \"unreachable\"; },\lexiting scope_5 block { if z == 0i { break ; \"unreachable\"; } z -= 1i; }"];
N50 -> N46[label="exiting scope_0 expr break,\lexiting scope_1 stmt break ;,\lexiting scope_2 block { break ; \"unreachable\"; },\lexiting scope_3 expr if z == 0is { break ; \"unreachable\"; },\lexiting scope_4 stmt if z == 0is { break ; \"unreachable\"; },\lexiting scope_5 block { if z == 0is { break ; \"unreachable\"; } z -= 1is; }"];
N51 -> N52;
N52 -> N53;
N53 -> N54;
@ -143,7 +143,7 @@ digraph block {
N64 -> N65;
N65 -> N66;
N66 -> N67;
N67 -> N28[label="exiting scope_0 expr continue \'a,\lexiting scope_1 stmt continue \'a ;,\lexiting scope_2 block { continue \'a ; \"unreachable\"; },\lexiting scope_3 expr if x > 10i { continue \'a ; \"unreachable\"; },\lexiting scope_4 block {\l if y == 0i { break ; \"unreachable\"; }\l y -= 1i;\l \'a: loop { if z == 0i { break ; \"unreachable\"; } z -= 1i; }\l if x > 10i { continue \'a ; \"unreachable\"; }\l}\l"];
N67 -> N28[label="exiting scope_0 expr continue \'a,\lexiting scope_1 stmt continue \'a ;,\lexiting scope_2 block { continue \'a ; \"unreachable\"; },\lexiting scope_3 expr if x > 10is { continue \'a ; \"unreachable\"; },\lexiting scope_4 block {\l if y == 0is { break ; \"unreachable\"; }\l y -= 1is;\l \'a: loop { if z == 0is { break ; \"unreachable\"; } z -= 1is; }\l if x > 10is { continue \'a ; \"unreachable\"; }\l}\l"];
N68 -> N69;
N69 -> N70;
N70 -> N71;