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("f32", TyFloat(TyF32));
table.intern("f64", TyFloat(TyF64)); table.intern("f64", TyFloat(TyF64));
table.intern("int", TyInt(TyIs)); table.intern("int", TyInt(TyIs));
table.intern("isize", TyInt(TyIs)); table.intern("isize", TyInt(TyIs));
table.intern("i8", TyInt(TyI8)); table.intern("i8", TyInt(TyI8));
table.intern("i16", TyInt(TyI16)); table.intern("i16", TyInt(TyI16));
table.intern("i32", TyInt(TyI32)); table.intern("i32", TyInt(TyI32));
table.intern("i64", TyInt(TyI64)); table.intern("i64", TyInt(TyI64));
table.intern("str", TyStr); table.intern("str", TyStr);
table.intern("uint", TyUint(TyUs)); table.intern("uint", TyUint(TyUs));
table.intern("usize", TyUint(TyUs)); table.intern("usize", TyUint(TyUs));
table.intern("u8", TyUint(TyU8)); table.intern("u8", TyUint(TyU8));
table.intern("u16", TyUint(TyU16)); table.intern("u16", TyUint(TyU16));
table.intern("u32", TyUint(TyU32)); table.intern("u32", TyUint(TyU32));

View File

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

View File

@ -9,8 +9,8 @@
// except according to those terms. // except according to those terms.
fn main() { 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 x: &[isize] = &[1, 2, 3];
let _y: &int = x; //~ ERROR expected int, found slice 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() { pub fn main() {
let a = 42i; let a = 42i;
foo1(a); //~ERROR expected uint, found struct Bar foo1(a); //~ERROR expected usize, found struct Bar
baz(&a); //~ERROR expected uint, 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) { fn f<T:Foo<int>>(t: &T) {
let u: <T as Foo<uint>>::Bar = t.get_bar(); let u: <T as Foo<usize>>::Bar = t.get_bar();
//~^ ERROR the trait `Foo<uint>` is not implemented for the type `T` //~^ ERROR the trait `Foo<usize>` is not implemented for the type `T`
} }
fn main() { } fn main() { }

View File

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

View File

@ -9,24 +9,24 @@
// except according to those terms. // except according to those terms.
struct clam { struct clam {
x: Box<int>, x: Box<isize>,
y: Box<int>, y: Box<isize>,
} }
struct fish { struct fish {
a: Box<int>, a: Box<isize>,
} }
fn main() { fn main() {
let a: clam = clam{x: box 1, y: box 2}; let a: clam = clam{x: box 1, y: box 2};
let b: clam = clam{x: box 10, y: box 20}; 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); println!("{}", z);
assert_eq!(z, 21); assert_eq!(z, 21);
let forty: fish = fish{a: box 40}; let forty: fish = fish{a: box 40};
let two: fish = fish{a: box 2}; let two: fish = fish{a: box 2};
let answer: int = forty.a + two.a; 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); println!("{}", answer);
assert_eq!(answer, 42); assert_eq!(answer, 42);
} }

View File

@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // 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); } fn main() { println!("{}", i); }

View File

@ -8,6 +8,6 @@
// option. This file may not be copied, modified, or distributed // option. This file may not be copied, modified, or distributed
// except according to those terms. // 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]` // Tests that we forbid coercion from `[T; n]` to `&[T]`
fn main() { 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 {} trait Bar {}
pub fn main() { pub fn main() {
// With a vec of ints. // With a vec of isize.
let f1 = Fat { ptr: [1, 2, 3] }; let f1 = Fat { ptr: [1, 2, 3] };
let f2: &Fat<[int; 3]> = &f1; let f2: &Fat<[isize; 3]> = &f1;
let f3: &Fat<[uint]> = f2; let f3: &Fat<[usize]> = f2;
//~^ ERROR mismatched types: expected `&Fat<[uint]>`, found `&Fat<[int; 3]>` //~^ ERROR mismatched types: expected `&Fat<[usize]>`, found `&Fat<[isize; 3]>`
// With a trait. // With a trait.
let f1 = Fat { ptr: Foo }; let f1 = Fat { ptr: Foo };

View File

@ -15,8 +15,8 @@ struct Fat<T: ?Sized> {
} }
pub fn main() { pub fn main() {
// With a vec of ints. // With a vec of isizes.
let f1: &Fat<[int]> = &Fat { ptr: [1, 2, 3] }; let f1: &Fat<[isize]> = &Fat { ptr: [1, 2, 3] };
let f2: &Fat<[int; 3]> = f1; let f2: &Fat<[isize; 3]> = f1;
//~^ ERROR mismatched types: expected `&Fat<[int; 3]>`, found `&Fat<[int]>` //~^ 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 trait Foo<T> : Sized { fn take(self, x: &T) { } } // Note: T is sized
impl Foo<[int]> for uint { } impl Foo<[isize]> for uint { }
//~^ ERROR the trait `core::kinds::Sized` is not implemented for the type `[int]` //~^ ERROR the trait `core::kinds::Sized` is not implemented for the type `[isize]`
impl Foo<int> for [uint] { } impl Foo<isize> for [usize] { }
//~^ ERROR the trait `core::kinds::Sized` is not implemented for the type `[uint]` //~^ ERROR the trait `core::kinds::Sized` is not implemented for the type `[usize]`
pub fn main() { } pub fn main() { }

View File

@ -10,15 +10,15 @@
#![feature(unboxed_closures)] #![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() { fn main() {
let _: () = (box |:_: int| {}) as Box<FnOnce(int)>; //~ ERROR object-safe let _: () = (box |:_: isize| {}) as Box<FnOnce(isize)>; //~ ERROR object-safe
//~^ ERROR Box<core::ops::FnOnce(int)> //~^ ERROR Box<core::ops::FnOnce(isize)>
let _: () = (box |&:_: int, int| {}) as Box<Fn(int, int)>; let _: () = (box |&:_: isize, isize| {}) as Box<Fn(isize, isize)>;
//~^ ERROR Box<core::ops::Fn(int, int)> //~^ ERROR Box<core::ops::Fn(isize, isize)>
let _: () = (box |&mut:| -> int unimplemented!()) as Box<FnMut() -> int>; let _: () = (box |&mut:| -> isize unimplemented!()) as Box<FnMut() -> isize>;
//~^ ERROR Box<core::ops::FnMut() -> int> //~^ 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. // Test that we use fully-qualified type names in error messages.
fn main() { fn main() {
let x: Option<uint>; let x: Option<usize>;
x = 5; 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; use std::option::Option;
fn bar(x: uint) -> Option<uint> { fn bar(x: usize) -> Option<usize> {
return x; return x;
//~^ ERROR mismatched types: expected `core::option::Option<uint>` //~^ ERROR mismatched types: expected `core::option::Option<usize>`
} }
fn main() { fn main() {

View File

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

View File

@ -16,22 +16,22 @@ trait Foo<X> {
} }
fn want_hrtb<T>() 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; struct AnyInt;
impl<'a> Foo<&'a int> for AnyInt { } impl<'a> Foo<&'a isize> for AnyInt { }
fn give_any() { fn give_any() {
want_hrtb::<AnyInt>() 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; struct StaticInt;
impl Foo<&'static int> for StaticInt { } impl Foo<&'static isize> for StaticInt { }
fn give_static() { 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() { } 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) 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 // OK -- `T : Bar<&'b isize>`, and thus the impl above ensures that
// `&mut T : Bar<&'b int>`. // `&mut T : Bar<&'b isize>`.
no_hrtb(&mut t); no_hrtb(&mut t);
} }
fn bar_hrtb<T>(mut t: 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 // OK -- `T : for<'b> Bar<&'b isize>`, and thus the impl above
// ensures that `&mut T : for<'b> Bar<&'b int>`. This is an // ensures that `&mut T : for<'b> Bar<&'b isize>`. This is an
// example of a "perfect forwarding" impl. // example of a "perfect forwarding" impl.
bar_hrtb(&mut t); bar_hrtb(&mut t);
} }
fn foo_hrtb_bar_not<'b,T>(mut t: 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 // Not OK -- The forwarding impl for `Foo` requires that `Bar` also
// be implemented. Thus to satisfy `&mut T : for<'a> Foo<&'a // be implemented. Thus to satisfy `&mut T : for<'a> Foo<&'a
// int>`, we require `T : for<'a> Bar<&'a int>`, but the where // isize>`, we require `T : for<'a> Bar<&'a isize>`, but the where
// clause only specifies `T : Bar<&'b int>`. // clause only specifies `T : Bar<&'b isize>`.
foo_hrtb_bar_not(&mut t); //~ ERROR `for<'a> Bar<&'a int>` is not implemented for the type `T` 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) 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); foo_hrtb_bar_hrtb(&mut t);
} }

View File

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

View File

@ -9,6 +9,6 @@
// except according to those terms. // except according to those terms.
fn main() { fn main() {
let x = if true { 10i } else { 10u }; let x = if true { 10is } else { 10us };
//~^ ERROR if and else have incompatible types: expected `int`, found `uint` //~^ 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 // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
fn f() -> int { fn f() -> isize {
(return 1, return 2) (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() {} fn main() {}

View File

@ -10,5 +10,5 @@
fn main() { fn main() {
let nil = (); 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 //! Test that makes sure wrongly-typed bench functions are rejected
// error-pattern:expected &-ptr, found int // error-pattern:expected &-ptr, found isize
#[bench] #[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; } trait Itble<'r, T, I: Iterator<Item=T>> { fn iter(&'r self) -> I; }
impl<'r> Itble<'r, uint, Range<uint>> for (uint, uint) { impl<'r> Itble<'r, usize, Range<usize>> for (usize, usize) {
fn iter(&'r self) -> Range<uint> { fn iter(&'r self) -> Range<usize> {
let &(min, max) = self; let &(min, max) = self;
range(min, max) range(min, max)
} }
} }
fn check<'r, I: Iterator<Item=uint>, T: Itble<'r, uint, I>>(cont: &T) -> bool fn check<'r, I: Iterator<Item=usize>, T: Itble<'r, usize, I>>(cont: &T) -> bool
//~^ HELP as shown: fn check<'r, I: Iterator<Item = uint>, T: Itble<'r, uint, I>>(cont: &'r T) //~^ HELP as shown: fn check<'r, I: Iterator<Item = usize>, T: Itble<'r, usize, I>>(cont: &'r T)
{ {
let cont_iter = cont.iter(); let cont_iter = cont.iter();
//~^ ERROR cannot infer an appropriate lifetime for autoref due to conflicting requirements //~^ 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() { fn main() {
check((3u, 5u)); 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() { fn main() {
foo(1*(1 as int)); 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)); 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 expected arm type `Option<T>` has one type parameter, while
// the actual arm `Result<T, E>` has two. typeck should not be // the actual arm `Result<T, E>` has two. typeck should not be
// tricked into looking up a non-existing second type parameter. // tricked into looking up a non-existing second type parameter.
let _x: uint = match Some(1u) { let _x: usize = match Some(1us) {
Ok(u) => u, //~ ERROR mismatched types: expected `core::option::Option<uint>` Ok(u) => u, //~ ERROR mismatched types: expected `core::option::Option<usize>`
Err(e) => panic!(e) //~ ERROR mismatched types: expected `core::option::Option<uint>` Err(e) => panic!(e) //~ ERROR mismatched types: expected `core::option::Option<usize>`
}; };
} }

View File

@ -9,7 +9,7 @@
// except according to those terms. // except according to those terms.
fn main() { 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)] #![deny(warnings)]
extern { 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() { fn main() {

View File

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

View File

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

View File

@ -12,7 +12,7 @@
// and rejected. // and rejected.
fn main() { fn main() {
(|&:| box *[0u].as_slice())(); (|&:| box *[0us].as_slice())();
//~^ ERROR cannot move out of dereference //~^ 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< impl Pair<
&str, //~ ERROR missing lifetime specifier &str, //~ ERROR missing lifetime specifier
int isize
> { > {
fn say(self: &Pair<&str, int>) { fn say(self: &Pair<&str, isize>) {
//~^ ERROR mismatched types: expected `Pair<&'static str, int>`, found `Pair<&str, int>` //~^ ERROR mismatched types: expected `Pair<&'static str, isize>`, found `Pair<&str, isize>`
println!("{}", self); println!("{}", self);
} }
} }
fn main() { fn main() {
let result = &Pair("shane", 1i); let result = &Pair("shane", 1is);
result.say(); result.say();
} }

View File

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

View File

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

View File

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

View File

@ -11,6 +11,6 @@
// Regression test for issue #5239 // Regression test for issue #5239
fn main() { fn main() {
let x = |&: ref x: int| -> int { x += 1; }; let x = |&: ref x: isize| -> isize { x += 1; };
//~^ ERROR binary assignment operation `+=` cannot be applied to type `&int` //~^ 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. // Test the mechanism for warning about possible missing `self` declarations.
trait CtxtFn { trait CtxtFn {
fn f8(self, uint) -> uint; fn f8(self, usize) -> usize;
fn f9(uint) -> uint; //~ NOTE candidate fn f9(usize) -> usize; //~ NOTE candidate
} }
trait OtherTrait { 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 // Note: this trait is not implemented, but we can't really tell
// whether or not an impl would match anyhow without a self // 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 // candidate. This seems not unreasonable -- perhaps the user meant to
// implement it, after all. // implement it, after all.
trait UnusedTrait { trait UnusedTrait {
fn f9(uint) -> uint; //~ NOTE candidate fn f9(usize) -> usize; //~ NOTE candidate
} }
impl CtxtFn for uint { impl CtxtFn for usize {
fn f8(self, i: uint) -> uint { fn f8(self, i: usize) -> usize {
i * 4u i * 4u
} }
fn f9(i: uint) -> uint { fn f9(i: usize) -> usize {
i * 4u i * 4u
} }
} }
impl OtherTrait for uint { impl OtherTrait for usize {
fn f9(i: uint) -> uint { fn f9(i: usize) -> usize {
i * 8u i * 8u
} }
} }
struct MyInt(int); struct Myisize(isize);
impl MyInt { impl Myisize {
fn fff(i: int) -> int { //~ NOTE candidate fn fff(i: isize) -> isize { //~ NOTE candidate
i i
} }
} }
@ -64,17 +64,17 @@ impl ManyImplTrait for String {
} }
} }
impl ManyImplTrait for uint {} impl ManyImplTrait for usize {}
impl ManyImplTrait for int {} impl ManyImplTrait for isize {}
impl ManyImplTrait for char {} 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) 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? //~^^ NOTE found defined static methods, maybe a `self` is missing?
//~^^^ ERROR type `MyInt` does not implement any method in scope named `fff` //~^^^ ERROR type `Myisize` does not implement any method in scope named `fff`
//~^^^^ NOTE found defined static methods, maybe a `self` is missing? //~^^^^ NOTE found defined static methods, maybe a `self` is missing?
} }
fn param_bound<T: ManyImplTrait>(t: T) -> bool { fn param_bound<T: ManyImplTrait>(t: T) -> bool {

View File

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

View File

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

View File

@ -9,7 +9,7 @@
// except according to those terms. // except according to those terms.
#[start] #[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 //~^ 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. // Test that trait types printed in error msgs include the type arguments.
fn main() { fn main() {
let x: Box<HashMap<int, int>> = box HashMap::new(); let x: Box<HashMap<isize, isize>> = box HashMap::new();
let x: Box<Map<int, int>> = x; let x: Box<Map<isize, isize>> = x;
let y: Box<Map<uint, int>> = box x; let y: Box<Map<usize, isize>> = box x;
//~^ ERROR the trait `Map<uint, int>` is not implemented //~^ ERROR the trait `Map<usize, isize>` is not implemented
} }

View File

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

View File

@ -18,5 +18,5 @@ fn main() {
// because the def_id associated with the type was // because the def_id associated with the type was
// not convertible to a path. // not convertible to a path.
let x: int = noexporttypelib::foo(); 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 let_in<T, F>(x: T, f: F) where F: FnOnce(T) {}
fn main() { fn main() {
let_in(3u, |i| { assert!(i == 3i); }); let_in(3u, |i| { assert!(i == 3is); });
//~^ ERROR expected `uint`, found `int` //~^ ERROR expected `usize`, found `isize`
let_in(3i, |i| { assert!(i == 3u); }); let_in(3i, |i| { assert!(i == 3us); });
//~^ ERROR expected `int`, found `uint` //~^ ERROR expected `isize`, found `usize`
} }

View File

@ -12,7 +12,7 @@
// Check that we correctly infer that b and c must be region // Check that we correctly infer that b and c must be region
// parameterized because they reference a which requires a 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>>; type b<'a> = Box<a<'a>>;
struct c<'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>) { 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 a = [0; n]; //~ ERROR expected constant integer for repeat count, found variable
let b = [0; ()]; let b = [0; ()];
//~^ ERROR expected constant integer for repeat count, found non-constant expression //~^ 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 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 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 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]; let f = [0; -4];
//~^ ERROR expected positive integer for repeat count, found negative integer //~^ ERROR expected positive integer for repeat count, found negative integer
let f = [0u; -1]; let f = [0u; -1];

View File

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

View File

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

View File

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

View File

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

View File

@ -10,12 +10,12 @@
// Issue #6155 // Issue #6155
fn first((value, _): (int, f64)) -> int { value } fn first((value, _): (isize, f64)) -> isize { value }
fn main() { fn main() {
let y = first ((1,2.0,3)); let y = first ((1,2.0,3));
//~^ ERROR expected a tuple with 2 elements, found one with 3 elements //~^ ERROR expected a tuple with 2 elements, found one with 3 elements
let y = first ((1,)); 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 // option. This file may not be copied, modified, or distributed
// except according to those terms. // except according to those terms.
struct Point(int, int); struct Point(isize, isize);
fn main() { fn main() {
let origin = Point(0, 0); let origin = Point(0, 0);
@ -16,9 +16,9 @@ fn main() {
origin.1; origin.1;
origin.2; origin.2;
//~^ ERROR attempted out-of-bounds tuple index `2` on type `Point` //~^ ERROR attempted out-of-bounds tuple index `2` on type `Point`
let tuple = (0i, 0i); let tuple = (0is, 0is);
tuple.0; tuple.0;
tuple.1; tuple.1;
tuple.2; 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); identity_u16(y);
//~^ ERROR mismatched types: expected `u16`, found `i32` //~^ 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_i(a); // ok
identity_u16(a); 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 // Checking that the compiler reports multiple type errors at once
// error-pattern:mismatched types: expected `bool` // 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() { fn test1() {
let x: Foo<_> = Bar::<uint>; let x: Foo<_> = Bar::<usize>;
//~^ ERROR mismatched types: expected `Foo<_>`, found `Bar<uint>` //~^ ERROR mismatched types: expected `Foo<_>`, found `Bar<usize>`
let y: Foo<uint> = x; let y: Foo<usize> = x;
} }
fn test2() { fn test2() {
let x: Foo<_> = Bar::<uint>; let x: Foo<_> = Bar::<usize>;
//~^ ERROR mismatched types: expected `Foo<_>`, found `Bar<uint>` //~^ ERROR mismatched types: expected `Foo<_>`, found `Bar<usize>`
} }

View File

@ -13,24 +13,24 @@ extern "stdcall" {
} }
extern { 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() { fn main() {
unsafe { unsafe {
foo(); //~ ERROR: this function takes at least 2 parameters but 0 parameters were supplied 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 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; let x: unsafe extern "C" fn(f: isize, x: u8) = foo;
//~^ ERROR: mismatched types: expected `unsafe extern "C" fn(int, u8)` //~^ ERROR: mismatched types: expected `unsafe extern "C" fn(isize, u8)`
// , found `unsafe extern "C" fn(int, u8, ...)` // , found `unsafe extern "C" fn(isize, u8, ...)`
// (expected non-variadic fn, found variadic function) // (expected non-variadic fn, found variadic function)
let y: unsafe extern "C" fn(f: int, x: u8, ...) = bar; let y: unsafe extern "C" fn(f: isize, x: u8, ...) = bar;
//~^ ERROR: mismatched types: expected `unsafe extern "C" fn(int, u8, ...)` //~^ ERROR: mismatched types: expected `unsafe extern "C" fn(isize, u8, ...)`
// , found `extern "C" extern fn(int, u8)` // , found `extern "C" extern fn(isize, u8)`
// (expected variadic fn, found non-variadic function) // (expected variadic fn, found non-variadic function)
foo(1, 2, 3f32); //~ ERROR: can't pass an f32 to variadic function, cast to c_double 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 { mod xx {
extern { extern {
pub fn strlen(str: *const u8) -> uint; //~ ERROR found rust type `uint` pub fn strlen(str: *const u8) -> usize; //~ ERROR found rust type `usize`
pub fn foo(x: int, y: uint); //~ ERROR found rust type `int` pub fn foo(x: isize, y: usize); //~ ERROR found rust type `isize`
//~^ ERROR found rust type `uint` //~^ ERROR found rust type `usize`
} }
} }

View File

@ -16,7 +16,7 @@
// gdb-command:whatis 'basic-types-globals-metadata::B' // gdb-command:whatis 'basic-types-globals-metadata::B'
// gdb-check:type = bool // gdb-check:type = bool
// gdb-command:whatis 'basic-types-globals-metadata::I' // 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-command:whatis 'basic-types-globals-metadata::C'
// gdb-check:type = char // gdb-check:type = char
// gdb-command:whatis 'basic-types-globals-metadata::I8' // gdb-command:whatis 'basic-types-globals-metadata::I8'
@ -28,7 +28,7 @@
// gdb-command:whatis 'basic-types-globals-metadata::I64' // gdb-command:whatis 'basic-types-globals-metadata::I64'
// gdb-check:type = i64 // gdb-check:type = i64
// gdb-command:whatis 'basic-types-globals-metadata::U' // 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-command:whatis 'basic-types-globals-metadata::U8'
// gdb-check:type = u8 // gdb-check:type = u8
// gdb-command:whatis 'basic-types-globals-metadata::U16' // gdb-command:whatis 'basic-types-globals-metadata::U16'

View File

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

View File

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

View File

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

View File

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

View File

@ -14,35 +14,35 @@
// #4264 fixed-length vector types // #4264 fixed-length vector types
pub fn foo(_: [int; 3]) {} pub fn foo(_: [isize; 3]) {}
pub fn bar() { pub fn bar() {
const FOO: uint = 5u - 4u; const FOO: usize = 5us - 4us;
let _: [(); FOO] = [()]; 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"); format!("test");
} }
pub type Foo = [int; 3u]; pub type Foo = [isize; 3us];
pub struct Bar { pub struct Bar {
pub x: [int; 3u] pub x: [isize; 3us]
} }
pub struct TupleBar([int; 4u]); pub struct TupleBar([isize; 4us]);
pub enum Baz { pub enum Baz {
BazVariant([int; 5u]) BazVariant([isize; 5us])
} }
pub fn id<T>(x: T) -> T { x } pub fn id<T>(x: T) -> T { x }
pub fn use_id() { 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 { digraph block {
N0[label="entry"]; N0[label="entry"];
N1[label="exit"]; N1[label="exit"];
N2[label="expr 1i"]; N2[label="expr 1is"];
N3[label="stmt 1i;"]; N3[label="stmt 1is;"];
N4[label="block { 1i; }"]; N4[label="block { 1is; }"];
N0 -> N2; N0 -> N2;
N2 -> N3; N2 -> N3;
N3 -> N4; N3 -> N4;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,54 +1,54 @@
digraph block { digraph block {
N0[label="entry"]; N0[label="entry"];
N1[label="exit"]; N1[label="exit"];
N2[label="expr 15i"]; N2[label="expr 15is"];
N3[label="local mut x"]; N3[label="local mut x"];
N4[label="stmt let mut x = 15i;"]; N4[label="stmt let mut x = 15is;"];
N5[label="expr 151i"]; N5[label="expr 151is"];
N6[label="local mut y"]; N6[label="local mut y"];
N7[label="stmt let mut y = 151i;"]; N7[label="stmt let mut y = 151is;"];
N8[label="(dummy_node)"]; 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)"]; 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"]; N12[label="expr x"];
N13[label="expr 1i"]; N13[label="expr 1is"];
N14[label="expr x == 1i"]; N14[label="expr x == 1is"];
N15[label="expr break \'outer"]; N15[label="expr break \'outer"];
N16[label="(dummy_node)"]; N16[label="(dummy_node)"];
N17[label="stmt break \'outer ;"]; N17[label="stmt break \'outer ;"];
N18[label="expr \"unreachable\""]; N18[label="expr \"unreachable\""];
N19[label="stmt \"unreachable\";"]; N19[label="stmt \"unreachable\";"];
N20[label="block { break \'outer ; \"unreachable\"; }"]; N20[label="block { break \'outer ; \"unreachable\"; }"];
N21[label="expr if x == 1i { break \'outer ; \"unreachable\"; }"]; N21[label="expr if x == 1is { break \'outer ; \"unreachable\"; }"];
N22[label="stmt if x == 1i { break \'outer ; \"unreachable\"; }"]; N22[label="stmt if x == 1is { break \'outer ; \"unreachable\"; }"];
N23[label="expr y"]; N23[label="expr y"];
N24[label="expr 2i"]; N24[label="expr 2is"];
N25[label="expr y >= 2i"]; N25[label="expr y >= 2is"];
N26[label="expr break"]; N26[label="expr break"];
N27[label="(dummy_node)"]; N27[label="(dummy_node)"];
N28[label="stmt break ;"]; N28[label="stmt break ;"];
N29[label="expr \"unreachable\""]; N29[label="expr \"unreachable\""];
N30[label="stmt \"unreachable\";"]; N30[label="stmt \"unreachable\";"];
N31[label="block { break ; \"unreachable\"; }"]; N31[label="block { break ; \"unreachable\"; }"];
N32[label="expr if y >= 2i { break ; \"unreachable\"; }"]; N32[label="expr if y >= 2is { break ; \"unreachable\"; }"];
N33[label="stmt if y >= 2i { break ; \"unreachable\"; }"]; N33[label="stmt if y >= 2is { break ; \"unreachable\"; }"];
N34[label="expr 3i"]; N34[label="expr 3is"];
N35[label="expr y"]; N35[label="expr y"];
N36[label="expr y -= 3i"]; N36[label="expr y -= 3is"];
N37[label="stmt y -= 3i;"]; N37[label="stmt y -= 3is;"];
N38[label="block {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { break ; \"unreachable\"; }\l y -= 3i;\l}\l"]; 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 == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { break ; \"unreachable\"; }\l y -= 3i;\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 4i"]; N40[label="expr 4is"];
N41[label="expr y"]; N41[label="expr y"];
N42[label="expr y -= 4i"]; N42[label="expr y -= 4is"];
N43[label="stmt y -= 4i;"]; N43[label="stmt y -= 4is;"];
N44[label="expr 5i"]; N44[label="expr 5is"];
N45[label="expr x"]; N45[label="expr x"];
N46[label="expr x -= 5i"]; N46[label="expr x -= 5is"];
N47[label="stmt x -= 5i;"]; N47[label="stmt x -= 5is;"];
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"]; 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 = 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"]; 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; N0 -> N2;
N2 -> N3; N2 -> N3;
N3 -> N4; N3 -> N4;
@ -61,7 +61,7 @@ digraph block {
N12 -> N13; N12 -> N13;
N13 -> N14; N13 -> N14;
N14 -> N15; 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; N16 -> N17;
N17 -> N18; N17 -> N18;
N18 -> N19; N18 -> N19;
@ -73,7 +73,7 @@ digraph block {
N23 -> N24; N23 -> N24;
N24 -> N25; N24 -> N25;
N25 -> N26; 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; N27 -> N28;
N28 -> N29; N28 -> N29;
N29 -> N30; N29 -> N30;

View File

@ -1,57 +1,57 @@
digraph block { digraph block {
N0[label="entry"]; N0[label="entry"];
N1[label="exit"]; N1[label="exit"];
N2[label="expr 16i"]; N2[label="expr 16is"];
N3[label="local mut x"]; N3[label="local mut x"];
N4[label="stmt let mut x = 16i;"]; N4[label="stmt let mut x = 16is;"];
N5[label="expr 16i"]; N5[label="expr 16is"];
N6[label="local mut y"]; N6[label="local mut y"];
N7[label="stmt let mut y = 16i;"]; N7[label="stmt let mut y = 16is;"];
N8[label="(dummy_node)"]; 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)"]; 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"]; N12[label="expr x"];
N13[label="expr 1i"]; N13[label="expr 1is"];
N14[label="expr x == 1i"]; N14[label="expr x == 1is"];
N15[label="expr continue \'outer"]; N15[label="expr continue \'outer"];
N16[label="(dummy_node)"]; N16[label="(dummy_node)"];
N17[label="stmt continue \'outer ;"]; N17[label="stmt continue \'outer ;"];
N18[label="expr \"unreachable\""]; N18[label="expr \"unreachable\""];
N19[label="stmt \"unreachable\";"]; N19[label="stmt \"unreachable\";"];
N20[label="block { continue \'outer ; \"unreachable\"; }"]; N20[label="block { continue \'outer ; \"unreachable\"; }"];
N21[label="expr if x == 1i { continue \'outer ; \"unreachable\"; }"]; N21[label="expr if x == 1is { continue \'outer ; \"unreachable\"; }"];
N22[label="stmt if x == 1i { continue \'outer ; \"unreachable\"; }"]; N22[label="stmt if x == 1is { continue \'outer ; \"unreachable\"; }"];
N23[label="expr y"]; N23[label="expr y"];
N24[label="expr 1i"]; N24[label="expr 1is"];
N25[label="expr y >= 1i"]; N25[label="expr y >= 1is"];
N26[label="expr break"]; N26[label="expr break"];
N27[label="(dummy_node)"]; N27[label="(dummy_node)"];
N28[label="stmt break ;"]; N28[label="stmt break ;"];
N29[label="expr \"unreachable\""]; N29[label="expr \"unreachable\""];
N30[label="stmt \"unreachable\";"]; N30[label="stmt \"unreachable\";"];
N31[label="block { break ; \"unreachable\"; }"]; N31[label="block { break ; \"unreachable\"; }"];
N32[label="expr if y >= 1i { break ; \"unreachable\"; }"]; N32[label="expr if y >= 1is { break ; \"unreachable\"; }"];
N33[label="stmt if y >= 1i { break ; \"unreachable\"; }"]; N33[label="stmt if y >= 1is { break ; \"unreachable\"; }"];
N34[label="expr 1i"]; N34[label="expr 1is"];
N35[label="expr y"]; N35[label="expr y"];
N36[label="expr y -= 1i"]; N36[label="expr y -= 1is"];
N37[label="stmt y -= 1i;"]; N37[label="stmt y -= 1is;"];
N38[label="block {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\l}\l"]; 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 == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 1i { break ; \"unreachable\"; }\l y -= 1i;\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 1i"]; N40[label="expr 1is"];
N41[label="expr y"]; N41[label="expr y"];
N42[label="expr y -= 1i"]; N42[label="expr y -= 1is"];
N43[label="stmt y -= 1i;"]; N43[label="stmt y -= 1is;"];
N44[label="expr 1i"]; N44[label="expr 1is"];
N45[label="expr x"]; N45[label="expr x"];
N46[label="expr x -= 1i"]; N46[label="expr x -= 1is"];
N47[label="stmt x -= 1i;"]; N47[label="stmt x -= 1is;"];
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"]; 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 == 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 == 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\""]; N50[label="expr \"unreachable\""];
N51[label="stmt \"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; N0 -> N2;
N2 -> N3; N2 -> N3;
N3 -> N4; N3 -> N4;
@ -64,7 +64,7 @@ digraph block {
N12 -> N13; N12 -> N13;
N13 -> N14; N13 -> N14;
N14 -> N15; 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; N16 -> N17;
N17 -> N18; N17 -> N18;
N18 -> N19; N18 -> N19;
@ -76,7 +76,7 @@ digraph block {
N23 -> N24; N23 -> N24;
N24 -> N25; N24 -> N25;
N25 -> N26; 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; N27 -> N28;
N28 -> N29; N28 -> N29;
N29 -> N30; N29 -> N30;

View File

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

View File

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

View File

@ -1,52 +1,52 @@
digraph block { digraph block {
N0[label="entry"]; N0[label="entry"];
N1[label="exit"]; N1[label="exit"];
N2[label="expr 15i"]; N2[label="expr 15is"];
N3[label="local mut x"]; N3[label="local mut x"];
N4[label="stmt let mut x = 15i;"]; N4[label="stmt let mut x = 15is;"];
N5[label="expr 151i"]; N5[label="expr 151is"];
N6[label="local mut y"]; N6[label="local mut y"];
N7[label="stmt let mut y = 151i;"]; N7[label="stmt let mut y = 151is;"];
N8[label="(dummy_node)"]; 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)"]; 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"]; N12[label="expr x"];
N13[label="expr 1i"]; N13[label="expr 1is"];
N14[label="expr x == 1i"]; N14[label="expr x == 1is"];
N15[label="expr break \'outer"]; N15[label="expr break \'outer"];
N16[label="(dummy_node)"]; N16[label="(dummy_node)"];
N17[label="stmt break \'outer ;"]; N17[label="stmt break \'outer ;"];
N18[label="expr \"unreachable\""]; N18[label="expr \"unreachable\""];
N19[label="stmt \"unreachable\";"]; N19[label="stmt \"unreachable\";"];
N20[label="block { break \'outer ; \"unreachable\"; }"]; N20[label="block { break \'outer ; \"unreachable\"; }"];
N21[label="expr if x == 1i { break \'outer ; \"unreachable\"; }"]; N21[label="expr if x == 1is { break \'outer ; \"unreachable\"; }"];
N22[label="stmt if x == 1i { break \'outer ; \"unreachable\"; }"]; N22[label="stmt if x == 1is { break \'outer ; \"unreachable\"; }"];
N23[label="expr y"]; N23[label="expr y"];
N24[label="expr 2i"]; N24[label="expr 2is"];
N25[label="expr y >= 2i"]; N25[label="expr y >= 2is"];
N26[label="expr return"]; N26[label="expr return"];
N27[label="(dummy_node)"]; N27[label="(dummy_node)"];
N28[label="stmt return;"]; N28[label="stmt return;"];
N29[label="expr \"unreachable\""]; N29[label="expr \"unreachable\""];
N30[label="stmt \"unreachable\";"]; N30[label="stmt \"unreachable\";"];
N31[label="block { return; \"unreachable\"; }"]; N31[label="block { return; \"unreachable\"; }"];
N32[label="expr if y >= 2i { return; \"unreachable\"; }"]; N32[label="expr if y >= 2is { return; \"unreachable\"; }"];
N33[label="stmt if y >= 2i { return; \"unreachable\"; }"]; N33[label="stmt if y >= 2is { return; \"unreachable\"; }"];
N34[label="expr 3i"]; N34[label="expr 3is"];
N35[label="expr y"]; N35[label="expr y"];
N36[label="expr y -= 3i"]; N36[label="expr y -= 3is"];
N37[label="stmt y -= 3i;"]; N37[label="stmt y -= 3is;"];
N38[label="expr 5i"]; N38[label="expr 5is"];
N39[label="expr x"]; N39[label="expr x"];
N40[label="expr x -= 5i"]; N40[label="expr x -= 5is"];
N41[label="stmt x -= 5i;"]; N41[label="stmt x -= 5is;"];
N42[label="block {\l if x == 1i { break \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l y -= 3i;\l x -= 5i;\l}\l"]; 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 == 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 == 1is { break \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l y -= 3is;\l x -= 5is;\l }\l"];
N44[label="expr \"unreachable\""]; N44[label="expr \"unreachable\""];
N45[label="stmt \"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"]; 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 = 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"]; 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; N0 -> N2;
N2 -> N3; N2 -> N3;
N3 -> N4; N3 -> N4;
@ -59,7 +59,7 @@ digraph block {
N12 -> N13; N12 -> N13;
N13 -> N14; N13 -> N14;
N14 -> N15; 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; N16 -> N17;
N17 -> N18; N17 -> N18;
N18 -> N19; N18 -> N19;
@ -71,7 +71,7 @@ digraph block {
N23 -> N24; N23 -> N24;
N24 -> N25; N24 -> N25;
N25 -> N26; 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; N27 -> N28;
N28 -> N29; N28 -> N29;
N29 -> N30; N29 -> N30;

View File

@ -1,55 +1,55 @@
digraph block { digraph block {
N0[label="entry"]; N0[label="entry"];
N1[label="exit"]; N1[label="exit"];
N2[label="expr 15i"]; N2[label="expr 15is"];
N3[label="local mut x"]; N3[label="local mut x"];
N4[label="stmt let mut x = 15i;"]; N4[label="stmt let mut x = 15is;"];
N5[label="expr 151i"]; N5[label="expr 151is"];
N6[label="local mut y"]; N6[label="local mut y"];
N7[label="stmt let mut y = 151i;"]; N7[label="stmt let mut y = 151is;"];
N8[label="(dummy_node)"]; 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)"]; 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"]; N12[label="expr x"];
N13[label="expr 1i"]; N13[label="expr 1is"];
N14[label="expr x == 1i"]; N14[label="expr x == 1is"];
N15[label="expr continue \'outer"]; N15[label="expr continue \'outer"];
N16[label="(dummy_node)"]; N16[label="(dummy_node)"];
N17[label="stmt continue \'outer ;"]; N17[label="stmt continue \'outer ;"];
N18[label="expr \"unreachable\""]; N18[label="expr \"unreachable\""];
N19[label="stmt \"unreachable\";"]; N19[label="stmt \"unreachable\";"];
N20[label="block { continue \'outer ; \"unreachable\"; }"]; N20[label="block { continue \'outer ; \"unreachable\"; }"];
N21[label="expr if x == 1i { continue \'outer ; \"unreachable\"; }"]; N21[label="expr if x == 1is { continue \'outer ; \"unreachable\"; }"];
N22[label="stmt if x == 1i { continue \'outer ; \"unreachable\"; }"]; N22[label="stmt if x == 1is { continue \'outer ; \"unreachable\"; }"];
N23[label="expr y"]; N23[label="expr y"];
N24[label="expr 2i"]; N24[label="expr 2is"];
N25[label="expr y >= 2i"]; N25[label="expr y >= 2is"];
N26[label="expr return"]; N26[label="expr return"];
N27[label="(dummy_node)"]; N27[label="(dummy_node)"];
N28[label="stmt return;"]; N28[label="stmt return;"];
N29[label="expr \"unreachable\""]; N29[label="expr \"unreachable\""];
N30[label="stmt \"unreachable\";"]; N30[label="stmt \"unreachable\";"];
N31[label="block { return; \"unreachable\"; }"]; N31[label="block { return; \"unreachable\"; }"];
N32[label="expr if y >= 2i { return; \"unreachable\"; }"]; N32[label="expr if y >= 2is { return; \"unreachable\"; }"];
N33[label="stmt if y >= 2i { return; \"unreachable\"; }"]; N33[label="stmt if y >= 2is { return; \"unreachable\"; }"];
N34[label="expr 1i"]; N34[label="expr 1is"];
N35[label="expr x"]; N35[label="expr x"];
N36[label="expr x -= 1i"]; N36[label="expr x -= 1is"];
N37[label="stmt x -= 1i;"]; N37[label="stmt x -= 1is;"];
N38[label="expr 3i"]; N38[label="expr 3is"];
N39[label="expr y"]; N39[label="expr y"];
N40[label="expr y -= 3i"]; N40[label="expr y -= 3is"];
N41[label="stmt y -= 3i;"]; N41[label="stmt y -= 3is;"];
N42[label="block {\l if x == 1i { continue \'outer ; \"unreachable\"; }\l if y >= 2i { return; \"unreachable\"; }\l x -= 1i;\l y -= 3i;\l}\l"]; 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 == 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 == 1is { continue \'outer ; \"unreachable\"; }\l if y >= 2is { return; \"unreachable\"; }\l x -= 1is;\l y -= 3is;\l }\l"];
N44[label="expr \"unreachable\""]; N44[label="expr \"unreachable\""];
N45[label="stmt \"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"]; 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 == 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 == 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\""]; N48[label="expr \"unreachable\""];
N49[label="stmt \"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; N0 -> N2;
N2 -> N3; N2 -> N3;
N3 -> N4; N3 -> N4;
@ -62,7 +62,7 @@ digraph block {
N12 -> N13; N12 -> N13;
N13 -> N14; N13 -> N14;
N14 -> N15; 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; N16 -> N17;
N17 -> N18; N17 -> N18;
N18 -> N19; N18 -> N19;
@ -74,7 +74,7 @@ digraph block {
N23 -> N24; N23 -> N24;
N24 -> N25; N24 -> N25;
N25 -> N26; 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; N27 -> N28;
N28 -> N29; N28 -> N29;
N29 -> N30; N29 -> N30;

View File

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

View File

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

View File

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