2256 lines
63 KiB
Text
2256 lines
63 KiB
Text
|
// WARNING: This output format is intended for human consumers only
|
||
|
// and is subject to change without notice. Knock yourself out.
|
||
|
fn main() -> () {
|
||
|
let mut _0: ();
|
||
|
let _1: winit::event_loop::EventLoop<()>;
|
||
|
let mut _2: std::result::Result<winit::event_loop::EventLoop<()>, winit::error::EventLoopError>;
|
||
|
let mut _4: std::result::Result<winit::window::Window, winit::error::OsError>;
|
||
|
let mut _5: winit::window::WindowBuilder;
|
||
|
let _6: &winit::event_loop::EventLoopWindowTarget<()>;
|
||
|
let _7: &winit::event_loop::EventLoop<()>;
|
||
|
let _8: ();
|
||
|
let _9: &winit::event_loop::EventLoopWindowTarget<()>;
|
||
|
let mut _10: &winit::event_loop::EventLoop<()>;
|
||
|
let mut _11: winit::event_loop::ControlFlow;
|
||
|
let _12: ();
|
||
|
let _13: &winit::event_loop::EventLoopWindowTarget<()>;
|
||
|
let mut _14: &winit::event_loop::EventLoop<()>;
|
||
|
let mut _15: winit::event_loop::ControlFlow;
|
||
|
let mut _17: std::result::Result<softbuffer::Context<winit::raw_window_handle::DisplayHandle<'_>>, softbuffer::SoftBufferError>;
|
||
|
let mut _18: winit::raw_window_handle::DisplayHandle<'_>;
|
||
|
let mut _19: std::result::Result<winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::HandleError>;
|
||
|
let mut _20: &winit::window::Window;
|
||
|
let mut _22: std::result::Result<softbuffer::Surface<winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::WindowHandle<'_>>, softbuffer::SoftBufferError>;
|
||
|
let _23: &softbuffer::Context<winit::raw_window_handle::DisplayHandle<'_>>;
|
||
|
let mut _24: winit::raw_window_handle::WindowHandle<'_>;
|
||
|
let mut _25: std::result::Result<winit::raw_window_handle::WindowHandle<'_>, winit::raw_window_handle::HandleError>;
|
||
|
let mut _26: &winit::window::Window;
|
||
|
let _28: ();
|
||
|
let mut _29: std::result::Result<(), winit::error::EventLoopError>;
|
||
|
let mut _30: winit::event_loop::EventLoop<()>;
|
||
|
let mut _31: {closure@src/main.rs:34:14: 34:27};
|
||
|
let mut _32: &winit::window::Window;
|
||
|
let mut _33: &mut softbuffer::Surface<winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::WindowHandle<'_>>;
|
||
|
let mut _34: &mut game::GameState;
|
||
|
let mut _35: bool;
|
||
|
let mut _36: bool;
|
||
|
scope 1 {
|
||
|
debug event_loop => _1;
|
||
|
let _3: winit::window::Window;
|
||
|
scope 2 {
|
||
|
debug window => _3;
|
||
|
let _16: softbuffer::Context<winit::raw_window_handle::DisplayHandle<'_>>;
|
||
|
scope 3 {
|
||
|
debug context => _16;
|
||
|
let mut _21: softbuffer::Surface<winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::WindowHandle<'_>>;
|
||
|
scope 4 {
|
||
|
debug surface => _21;
|
||
|
let mut _27: game::GameState;
|
||
|
scope 5 {
|
||
|
debug game => _27;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
_36 = const false;
|
||
|
_35 = const false;
|
||
|
_2 = EventLoop::<()>::new() -> [return: bb1, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_1 = Result::<EventLoop<()>, EventLoopError>::unwrap(move _2) -> [return: bb2, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_36 = const true;
|
||
|
_5 = WindowBuilder::new() -> [return: bb3, unwind: bb32];
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_35 = const true;
|
||
|
_7 = &_1;
|
||
|
_6 = <EventLoop<()> as Deref>::deref(_7) -> [return: bb4, unwind: bb30];
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
_35 = const false;
|
||
|
_4 = WindowBuilder::build::<()>(move _5, _6) -> [return: bb5, unwind: bb30];
|
||
|
}
|
||
|
|
||
|
bb5: {
|
||
|
_35 = const false;
|
||
|
_3 = Result::<Window, winit::error::OsError>::unwrap(move _4) -> [return: bb6, unwind: bb32];
|
||
|
}
|
||
|
|
||
|
bb6: {
|
||
|
_10 = &_1;
|
||
|
_9 = <EventLoop<()> as Deref>::deref(move _10) -> [return: bb7, unwind: bb27];
|
||
|
}
|
||
|
|
||
|
bb7: {
|
||
|
_11 = winit::event_loop::ControlFlow::Poll;
|
||
|
_8 = EventLoopWindowTarget::<()>::set_control_flow(_9, move _11) -> [return: bb8, unwind: bb27];
|
||
|
}
|
||
|
|
||
|
bb8: {
|
||
|
_14 = &_1;
|
||
|
_13 = <EventLoop<()> as Deref>::deref(move _14) -> [return: bb9, unwind: bb27];
|
||
|
}
|
||
|
|
||
|
bb9: {
|
||
|
_15 = winit::event_loop::ControlFlow::Wait;
|
||
|
_12 = EventLoopWindowTarget::<()>::set_control_flow(_13, move _15) -> [return: bb10, unwind: bb27];
|
||
|
}
|
||
|
|
||
|
bb10: {
|
||
|
_20 = &_3;
|
||
|
_19 = <Window as HasDisplayHandle>::display_handle(move _20) -> [return: bb11, unwind: bb27];
|
||
|
}
|
||
|
|
||
|
bb11: {
|
||
|
_18 = Result::<DisplayHandle<'_>, HandleError>::unwrap(move _19) -> [return: bb12, unwind: bb27];
|
||
|
}
|
||
|
|
||
|
bb12: {
|
||
|
_17 = softbuffer::Context::<DisplayHandle<'_>>::new(move _18) -> [return: bb13, unwind: bb27];
|
||
|
}
|
||
|
|
||
|
bb13: {
|
||
|
_16 = Result::<softbuffer::Context<DisplayHandle<'_>>, SoftBufferError>::unwrap(move _17) -> [return: bb14, unwind: bb27];
|
||
|
}
|
||
|
|
||
|
bb14: {
|
||
|
_23 = &_16;
|
||
|
_26 = &_3;
|
||
|
_25 = <Window as HasWindowHandle>::window_handle(move _26) -> [return: bb15, unwind: bb26];
|
||
|
}
|
||
|
|
||
|
bb15: {
|
||
|
_24 = Result::<WindowHandle<'_>, HandleError>::unwrap(move _25) -> [return: bb16, unwind: bb26];
|
||
|
}
|
||
|
|
||
|
bb16: {
|
||
|
_22 = Surface::<DisplayHandle<'_>, WindowHandle<'_>>::new(_23, move _24) -> [return: bb17, unwind: bb26];
|
||
|
}
|
||
|
|
||
|
bb17: {
|
||
|
_21 = Result::<Surface<DisplayHandle<'_>, WindowHandle<'_>>, SoftBufferError>::unwrap(move _22) -> [return: bb18, unwind: bb26];
|
||
|
}
|
||
|
|
||
|
bb18: {
|
||
|
_27 = GameState::init() -> [return: bb19, unwind: bb25];
|
||
|
}
|
||
|
|
||
|
bb19: {
|
||
|
_36 = const false;
|
||
|
_30 = move _1;
|
||
|
_32 = &_3;
|
||
|
_33 = &mut _21;
|
||
|
_34 = &mut _27;
|
||
|
_31 = {closure@src/main.rs:34:14: 34:27} { window: move _32, surface: move _33, game: move _34 };
|
||
|
_29 = EventLoop::<()>::run::<{closure@src/main.rs:34:14: 34:27}>(move _30, move _31) -> [return: bb20, unwind: bb25];
|
||
|
}
|
||
|
|
||
|
bb20: {
|
||
|
_28 = Result::<(), EventLoopError>::unwrap(move _29) -> [return: bb21, unwind: bb25];
|
||
|
}
|
||
|
|
||
|
bb21: {
|
||
|
drop(_21) -> [return: bb22, unwind: bb26];
|
||
|
}
|
||
|
|
||
|
bb22: {
|
||
|
drop(_16) -> [return: bb23, unwind: bb27];
|
||
|
}
|
||
|
|
||
|
bb23: {
|
||
|
drop(_3) -> [return: bb24, unwind: bb32];
|
||
|
}
|
||
|
|
||
|
bb24: {
|
||
|
_36 = const false;
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
bb25 (cleanup): {
|
||
|
drop(_21) -> [return: bb26, unwind terminate(cleanup)];
|
||
|
}
|
||
|
|
||
|
bb26 (cleanup): {
|
||
|
drop(_16) -> [return: bb27, unwind terminate(cleanup)];
|
||
|
}
|
||
|
|
||
|
bb27 (cleanup): {
|
||
|
drop(_3) -> [return: bb32, unwind terminate(cleanup)];
|
||
|
}
|
||
|
|
||
|
bb28 (cleanup): {
|
||
|
resume;
|
||
|
}
|
||
|
|
||
|
bb29 (cleanup): {
|
||
|
drop(_5) -> [return: bb32, unwind terminate(cleanup)];
|
||
|
}
|
||
|
|
||
|
bb30 (cleanup): {
|
||
|
switchInt(_35) -> [0: bb32, otherwise: bb29];
|
||
|
}
|
||
|
|
||
|
bb31 (cleanup): {
|
||
|
drop(_1) -> [return: bb28, unwind terminate(cleanup)];
|
||
|
}
|
||
|
|
||
|
bb32 (cleanup): {
|
||
|
switchInt(_36) -> [0: bb28, otherwise: bb31];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn main::{closure#0}(_1: &mut {closure@src/main.rs:34:14: 34:27}, _2: Event<()>, _3: &EventLoopWindowTarget<()>) -> () {
|
||
|
debug event => _2;
|
||
|
debug elwt => _3;
|
||
|
debug window => (*((*_1).0: &winit::window::Window));
|
||
|
debug surface => (*((*_1).1: &mut softbuffer::Surface<winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::WindowHandle<'_>>));
|
||
|
debug game => (*((*_1).2: &mut game::GameState));
|
||
|
let mut _0: ();
|
||
|
let mut _4: isize;
|
||
|
let mut _5: isize;
|
||
|
let mut _6: isize;
|
||
|
let mut _7: isize;
|
||
|
let _8: winit::window::WindowId;
|
||
|
let _9: &winit::window::WindowId;
|
||
|
let mut _10: bool;
|
||
|
let mut _11: &winit::window::WindowId;
|
||
|
let _12: winit::window::WindowId;
|
||
|
let mut _13: (std::option::Option<std::num::NonZero<u32>>, std::option::Option<std::num::NonZero<u32>>);
|
||
|
let mut _15: std::option::Option<std::num::NonZero<u32>>;
|
||
|
let mut _16: u32;
|
||
|
let mut _17: std::option::Option<std::num::NonZero<u32>>;
|
||
|
let mut _18: u32;
|
||
|
let mut _19: isize;
|
||
|
let mut _20: isize;
|
||
|
let _23: ();
|
||
|
let mut _24: std::result::Result<(), softbuffer::SoftBufferError>;
|
||
|
let mut _26: std::result::Result<softbuffer::Buffer<'_, winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::WindowHandle<'_>>, softbuffer::SoftBufferError>;
|
||
|
let _27: ();
|
||
|
let mut _28: &mut [u32];
|
||
|
let mut _29: &mut softbuffer::Buffer<'_, winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::WindowHandle<'_>>;
|
||
|
let _30: ();
|
||
|
let _31: ();
|
||
|
let mut _32: &game::GameState;
|
||
|
let mut _33: &mut softbuffer::Buffer<'_, winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::WindowHandle<'_>>;
|
||
|
let mut _34: (std::num::NonZero<u32>, std::num::NonZero<u32>);
|
||
|
let _35: ();
|
||
|
let mut _36: std::result::Result<(), softbuffer::SoftBufferError>;
|
||
|
let mut _37: softbuffer::Buffer<'_, winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::WindowHandle<'_>>;
|
||
|
let _38: winit::window::WindowId;
|
||
|
let _39: &winit::window::WindowId;
|
||
|
let mut _40: bool;
|
||
|
let mut _41: &winit::window::WindowId;
|
||
|
let mut _42: &winit::window::WindowId;
|
||
|
let _43: winit::window::WindowId;
|
||
|
let mut _44: bool;
|
||
|
let mut _45: &winit::window::WindowId;
|
||
|
let mut _46: &winit::window::WindowId;
|
||
|
let _47: winit::window::WindowId;
|
||
|
let _48: ();
|
||
|
let mut _49: &winit::window::Window;
|
||
|
let mut _50: &winit::window::Window;
|
||
|
let mut _51: &mut softbuffer::Surface<winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::WindowHandle<'_>>;
|
||
|
let mut _52: &mut softbuffer::Surface<winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::WindowHandle<'_>>;
|
||
|
let mut _53: &mut game::GameState;
|
||
|
let mut _54: &mut game::GameState;
|
||
|
let mut _55: &winit::window::Window;
|
||
|
let mut _56: &winit::window::Window;
|
||
|
let mut _57: bool;
|
||
|
scope 1 {
|
||
|
debug window_id => _8;
|
||
|
debug window_id => _9;
|
||
|
scope 2 {
|
||
|
debug width => _21;
|
||
|
debug height => _22;
|
||
|
let _14: winit::dpi::PhysicalSize<u32>;
|
||
|
let _21: std::num::NonZero<u32>;
|
||
|
let _22: std::num::NonZero<u32>;
|
||
|
let mut _25: softbuffer::Buffer<'_, winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::WindowHandle<'_>>;
|
||
|
scope 3 {
|
||
|
debug size => _14;
|
||
|
}
|
||
|
scope 4 {
|
||
|
debug buffer => _25;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
scope 5 {
|
||
|
debug window_id => _38;
|
||
|
debug window_id => _39;
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
_57 = const false;
|
||
|
_7 = discriminant(_2);
|
||
|
switchInt(move _7) -> [1: bb3, otherwise: bb32];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_5 = discriminant((((((_2 as WindowEvent).1: winit::event::WindowEvent) as KeyboardInput).1: winit::event::KeyEvent).1: winit::keyboard::Key));
|
||
|
switchInt(move _5) -> [0: bb2, otherwise: bb32];
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_4 = discriminant((((((((_2 as WindowEvent).1: winit::event::WindowEvent) as KeyboardInput).1: winit::event::KeyEvent).1: winit::keyboard::Key) as Named).0: winit::keyboard::NamedKey));
|
||
|
switchInt(move _4) -> [42: bb28, otherwise: bb32];
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_9 = &((_2 as WindowEvent).0: winit::window::WindowId);
|
||
|
_49 = deref_copy ((*_1).0: &winit::window::Window);
|
||
|
_12 = Window::id(_49) -> [return: bb4, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
_11 = &_12;
|
||
|
_10 = <WindowId as PartialEq>::eq(_9, move _11) -> [return: bb5, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb5: {
|
||
|
switchInt(move _10) -> [0: bb7, otherwise: bb6];
|
||
|
}
|
||
|
|
||
|
bb6: {
|
||
|
_8 = ((_2 as WindowEvent).0: winit::window::WindowId);
|
||
|
_50 = deref_copy ((*_1).0: &winit::window::Window);
|
||
|
_14 = Window::inner_size(_50) -> [return: bb8, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb7: {
|
||
|
_6 = discriminant(((_2 as WindowEvent).1: winit::event::WindowEvent));
|
||
|
switchInt(move _6) -> [3: bb24, 9: bb1, otherwise: bb32];
|
||
|
}
|
||
|
|
||
|
bb8: {
|
||
|
_16 = (_14.0: u32);
|
||
|
_15 = NonZero::<u32>::new(move _16) -> [return: bb9, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb9: {
|
||
|
_18 = (_14.1: u32);
|
||
|
_17 = NonZero::<u32>::new(move _18) -> [return: bb10, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb10: {
|
||
|
_13 = (move _15, move _17);
|
||
|
_20 = discriminant((_13.0: std::option::Option<std::num::NonZero<u32>>));
|
||
|
switchInt(move _20) -> [1: bb11, otherwise: bb32];
|
||
|
}
|
||
|
|
||
|
bb11: {
|
||
|
_19 = discriminant((_13.1: std::option::Option<std::num::NonZero<u32>>));
|
||
|
switchInt(move _19) -> [1: bb12, otherwise: bb32];
|
||
|
}
|
||
|
|
||
|
bb12: {
|
||
|
_21 = (((_13.0: std::option::Option<std::num::NonZero<u32>>) as Some).0: std::num::NonZero<u32>);
|
||
|
_22 = (((_13.1: std::option::Option<std::num::NonZero<u32>>) as Some).0: std::num::NonZero<u32>);
|
||
|
_51 = deref_copy ((*_1).1: &mut softbuffer::Surface<winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::WindowHandle<'_>>);
|
||
|
_24 = Surface::<DisplayHandle<'_>, WindowHandle<'_>>::resize(_51, _21, _22) -> [return: bb13, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb13: {
|
||
|
_23 = Result::<(), SoftBufferError>::unwrap(move _24) -> [return: bb14, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb14: {
|
||
|
_52 = deref_copy ((*_1).1: &mut softbuffer::Surface<winit::raw_window_handle::DisplayHandle<'_>, winit::raw_window_handle::WindowHandle<'_>>);
|
||
|
_26 = Surface::<DisplayHandle<'_>, WindowHandle<'_>>::buffer_mut(_52) -> [return: bb15, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb15: {
|
||
|
_25 = Result::<Buffer<'_, DisplayHandle<'_>, WindowHandle<'_>>, SoftBufferError>::unwrap(move _26) -> [return: bb16, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb16: {
|
||
|
_57 = const true;
|
||
|
_29 = &mut _25;
|
||
|
_28 = <Buffer<'_, DisplayHandle<'_>, WindowHandle<'_>> as DerefMut>::deref_mut(move _29) -> [return: bb17, unwind: bb37];
|
||
|
}
|
||
|
|
||
|
bb17: {
|
||
|
_27 = core::slice::<impl [u32]>::fill(_28, const 0_u32) -> [return: bb18, unwind: bb37];
|
||
|
}
|
||
|
|
||
|
bb18: {
|
||
|
_53 = deref_copy ((*_1).2: &mut game::GameState);
|
||
|
_30 = GameState::update(_53) -> [return: bb19, unwind: bb37];
|
||
|
}
|
||
|
|
||
|
bb19: {
|
||
|
_54 = deref_copy ((*_1).2: &mut game::GameState);
|
||
|
_32 = &(*_54);
|
||
|
_33 = &mut _25;
|
||
|
_34 = (_21, _22);
|
||
|
_31 = GameState::render(move _32, _33, move _34) -> [return: bb20, unwind: bb37];
|
||
|
}
|
||
|
|
||
|
bb20: {
|
||
|
_57 = const false;
|
||
|
_37 = move _25;
|
||
|
_36 = Buffer::<'_, DisplayHandle<'_>, WindowHandle<'_>>::present(move _37) -> [return: bb21, unwind: bb37];
|
||
|
}
|
||
|
|
||
|
bb21: {
|
||
|
_35 = Result::<(), SoftBufferError>::unwrap(move _36) -> [return: bb22, unwind: bb37];
|
||
|
}
|
||
|
|
||
|
bb22: {
|
||
|
_57 = const false;
|
||
|
goto -> bb32;
|
||
|
}
|
||
|
|
||
|
bb23: {
|
||
|
_48 = EventLoopWindowTarget::<()>::exit(_3) -> [return: bb38, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb24: {
|
||
|
_39 = &((_2 as WindowEvent).0: winit::window::WindowId);
|
||
|
_41 = _39;
|
||
|
_55 = deref_copy ((*_1).0: &winit::window::Window);
|
||
|
_43 = Window::id(_55) -> [return: bb25, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb25: {
|
||
|
_42 = &_43;
|
||
|
_40 = <WindowId as PartialEq>::eq(move _41, move _42) -> [return: bb26, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb26: {
|
||
|
switchInt(move _40) -> [0: bb32, otherwise: bb27];
|
||
|
}
|
||
|
|
||
|
bb27: {
|
||
|
_38 = ((_2 as WindowEvent).0: winit::window::WindowId);
|
||
|
goto -> bb23;
|
||
|
}
|
||
|
|
||
|
bb28: {
|
||
|
_39 = &((_2 as WindowEvent).0: winit::window::WindowId);
|
||
|
_45 = _39;
|
||
|
_56 = deref_copy ((*_1).0: &winit::window::Window);
|
||
|
_47 = Window::id(_56) -> [return: bb29, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb29: {
|
||
|
_46 = &_47;
|
||
|
_44 = <WindowId as PartialEq>::eq(move _45, move _46) -> [return: bb30, unwind: bb34];
|
||
|
}
|
||
|
|
||
|
bb30: {
|
||
|
switchInt(move _44) -> [0: bb32, otherwise: bb31];
|
||
|
}
|
||
|
|
||
|
bb31: {
|
||
|
_38 = ((_2 as WindowEvent).0: winit::window::WindowId);
|
||
|
goto -> bb23;
|
||
|
}
|
||
|
|
||
|
bb32: {
|
||
|
drop(_2) -> [return: bb33, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb33: {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
bb34 (cleanup): {
|
||
|
drop(_2) -> [return: bb35, unwind terminate(cleanup)];
|
||
|
}
|
||
|
|
||
|
bb35 (cleanup): {
|
||
|
resume;
|
||
|
}
|
||
|
|
||
|
bb36 (cleanup): {
|
||
|
drop(_25) -> [return: bb34, unwind terminate(cleanup)];
|
||
|
}
|
||
|
|
||
|
bb37 (cleanup): {
|
||
|
switchInt(_57) -> [0: bb34, otherwise: bb36];
|
||
|
}
|
||
|
|
||
|
bb38: {
|
||
|
goto -> bb32;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const PADDLE_SIZE: (u32, u32) = {
|
||
|
let mut _0: (u32, u32);
|
||
|
|
||
|
bb0: {
|
||
|
_0 = (const 5_u32, const 50_u32);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const BALL_RADIUS: u32 = {
|
||
|
let mut _0: u32;
|
||
|
|
||
|
bb0: {
|
||
|
_0 = const 10_u32;
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const BALL_VEC_RIGHT_UP: (i16, i16) = {
|
||
|
let mut _0: (i16, i16);
|
||
|
|
||
|
bb0: {
|
||
|
_0 = (const 8_i16, const 12_i16);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const FIELD_SIZE: (u32, u32) = {
|
||
|
let mut _0: (u32, u32);
|
||
|
|
||
|
bb0: {
|
||
|
_0 = (const 1200_u32, const 700_u32);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const FIELD_BORDER_WIDTH: u32 = {
|
||
|
let mut _0: u32;
|
||
|
|
||
|
bb0: {
|
||
|
_0 = const 5_u32;
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const TICK_LEN: f32 = {
|
||
|
let mut _0: f32;
|
||
|
|
||
|
bb0: {
|
||
|
_0 = Div(const 1000f32, const 60f32);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:102:14: 102:19>::fmt(_1: &BallDirection, _2: &mut Formatter<'_>) -> Result<(), std::fmt::Error> {
|
||
|
debug self => _1;
|
||
|
debug f => _2;
|
||
|
let mut _0: std::result::Result<(), std::fmt::Error>;
|
||
|
let mut _3: &str;
|
||
|
let mut _4: isize;
|
||
|
let _5: &str;
|
||
|
let _6: &str;
|
||
|
let _7: &str;
|
||
|
let _8: &str;
|
||
|
|
||
|
bb0: {
|
||
|
_4 = discriminant((*_1));
|
||
|
switchInt(move _4) -> [0: bb2, 1: bb3, 2: bb4, 3: bb1, otherwise: bb7];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_8 = const "LeftDown";
|
||
|
_3 = _8;
|
||
|
goto -> bb5;
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_5 = const "RightUp";
|
||
|
_3 = _5;
|
||
|
goto -> bb5;
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_6 = const "RightDown";
|
||
|
_3 = _6;
|
||
|
goto -> bb5;
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
_7 = const "LeftUp";
|
||
|
_3 = _7;
|
||
|
goto -> bb5;
|
||
|
}
|
||
|
|
||
|
bb5: {
|
||
|
_0 = Formatter::<'_>::write_str(_2, move _3) -> [return: bb6, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb6: {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
bb7: {
|
||
|
unreachable;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:102:21: 102:26>::clone(_1: &BallDirection) -> BallDirection {
|
||
|
debug self => _1;
|
||
|
let mut _0: game::BallDirection;
|
||
|
|
||
|
bb0: {
|
||
|
_0 = (*_1);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:102:34: 102:43>::eq(_1: &BallDirection, _2: &BallDirection) -> bool {
|
||
|
debug self => _1;
|
||
|
debug other => _2;
|
||
|
let mut _0: bool;
|
||
|
let _3: isize;
|
||
|
scope 1 {
|
||
|
debug __self_tag => _3;
|
||
|
let _4: isize;
|
||
|
scope 2 {
|
||
|
debug __arg1_tag => _4;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
_3 = discriminant((*_1));
|
||
|
_4 = discriminant((*_2));
|
||
|
_0 = Eq(_3, _4);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:102:45: 102:47>::assert_receiver_is_total_eq(_1: &BallDirection) -> () {
|
||
|
debug self => _1;
|
||
|
let mut _0: ();
|
||
|
|
||
|
bb0: {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:110:14: 110:19>::fmt(_1: &HorizontalCollisionCheck, _2: &mut Formatter<'_>) -> Result<(), std::fmt::Error> {
|
||
|
debug self => _1;
|
||
|
debug f => _2;
|
||
|
let mut _0: std::result::Result<(), std::fmt::Error>;
|
||
|
let mut _3: &str;
|
||
|
let mut _4: isize;
|
||
|
let _5: &str;
|
||
|
let _6: &str;
|
||
|
let _7: &str;
|
||
|
|
||
|
bb0: {
|
||
|
_4 = discriminant((*_1));
|
||
|
switchInt(move _4) -> [0: bb2, 1: bb3, 2: bb1, otherwise: bb6];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_7 = const "Right";
|
||
|
_3 = _7;
|
||
|
goto -> bb4;
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_5 = const "None";
|
||
|
_3 = _5;
|
||
|
goto -> bb4;
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_6 = const "Left";
|
||
|
_3 = _6;
|
||
|
goto -> bb4;
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
_0 = Formatter::<'_>::write_str(_2, move _3) -> [return: bb5, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb5: {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
bb6: {
|
||
|
unreachable;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:110:21: 110:26>::clone(_1: &HorizontalCollisionCheck) -> HorizontalCollisionCheck {
|
||
|
debug self => _1;
|
||
|
let mut _0: game::HorizontalCollisionCheck;
|
||
|
|
||
|
bb0: {
|
||
|
_0 = (*_1);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:110:34: 110:43>::eq(_1: &HorizontalCollisionCheck, _2: &HorizontalCollisionCheck) -> bool {
|
||
|
debug self => _1;
|
||
|
debug other => _2;
|
||
|
let mut _0: bool;
|
||
|
let _3: isize;
|
||
|
scope 1 {
|
||
|
debug __self_tag => _3;
|
||
|
let _4: isize;
|
||
|
scope 2 {
|
||
|
debug __arg1_tag => _4;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
_3 = discriminant((*_1));
|
||
|
_4 = discriminant((*_2));
|
||
|
_0 = Eq(_3, _4);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:110:45: 110:47>::assert_receiver_is_total_eq(_1: &HorizontalCollisionCheck) -> () {
|
||
|
debug self => _1;
|
||
|
let mut _0: ();
|
||
|
|
||
|
bb0: {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:117:14: 117:19>::fmt(_1: &VerticalCollisionCheck, _2: &mut Formatter<'_>) -> Result<(), std::fmt::Error> {
|
||
|
debug self => _1;
|
||
|
debug f => _2;
|
||
|
let mut _0: std::result::Result<(), std::fmt::Error>;
|
||
|
let mut _3: &str;
|
||
|
let mut _4: isize;
|
||
|
let _5: &str;
|
||
|
let _6: &str;
|
||
|
let _7: &str;
|
||
|
|
||
|
bb0: {
|
||
|
_4 = discriminant((*_1));
|
||
|
switchInt(move _4) -> [0: bb2, 1: bb3, 2: bb1, otherwise: bb6];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_7 = const "Bottom";
|
||
|
_3 = _7;
|
||
|
goto -> bb4;
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_5 = const "None";
|
||
|
_3 = _5;
|
||
|
goto -> bb4;
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_6 = const "Top";
|
||
|
_3 = _6;
|
||
|
goto -> bb4;
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
_0 = Formatter::<'_>::write_str(_2, move _3) -> [return: bb5, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb5: {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
bb6: {
|
||
|
unreachable;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:117:21: 117:26>::clone(_1: &VerticalCollisionCheck) -> VerticalCollisionCheck {
|
||
|
debug self => _1;
|
||
|
let mut _0: game::VerticalCollisionCheck;
|
||
|
|
||
|
bb0: {
|
||
|
_0 = (*_1);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:117:34: 117:43>::eq(_1: &VerticalCollisionCheck, _2: &VerticalCollisionCheck) -> bool {
|
||
|
debug self => _1;
|
||
|
debug other => _2;
|
||
|
let mut _0: bool;
|
||
|
let _3: isize;
|
||
|
scope 1 {
|
||
|
debug __self_tag => _3;
|
||
|
let _4: isize;
|
||
|
scope 2 {
|
||
|
debug __arg1_tag => _4;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
_3 = discriminant((*_1));
|
||
|
_4 = discriminant((*_2));
|
||
|
_0 = Eq(_3, _4);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:117:45: 117:47>::assert_receiver_is_total_eq(_1: &VerticalCollisionCheck) -> () {
|
||
|
debug self => _1;
|
||
|
let mut _0: ();
|
||
|
|
||
|
bb0: {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:124:14: 124:19>::fmt(_1: &CollisionCheck, _2: &mut Formatter<'_>) -> Result<(), std::fmt::Error> {
|
||
|
debug self => _1;
|
||
|
debug f => _2;
|
||
|
let mut _0: std::result::Result<(), std::fmt::Error>;
|
||
|
let _3: &str;
|
||
|
let mut _4: &dyn std::fmt::Debug;
|
||
|
let _5: &game::HorizontalCollisionCheck;
|
||
|
let mut _6: &dyn std::fmt::Debug;
|
||
|
let _7: &&game::VerticalCollisionCheck;
|
||
|
let _8: &game::VerticalCollisionCheck;
|
||
|
|
||
|
bb0: {
|
||
|
_3 = const "CollisionCheck";
|
||
|
_5 = &((*_1).0: game::HorizontalCollisionCheck);
|
||
|
_4 = _5 as &dyn std::fmt::Debug (PointerCoercion(Unsize));
|
||
|
_8 = &((*_1).1: game::VerticalCollisionCheck);
|
||
|
_7 = &_8;
|
||
|
_6 = _7 as &dyn std::fmt::Debug (PointerCoercion(Unsize));
|
||
|
_0 = Formatter::<'_>::debug_tuple_field2_finish(_2, _3, move _4, move _6) -> [return: bb1, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:124:21: 124:26>::clone(_1: &CollisionCheck) -> CollisionCheck {
|
||
|
debug self => _1;
|
||
|
let mut _0: game::CollisionCheck;
|
||
|
scope 1 {
|
||
|
scope 2 {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
_0 = (*_1);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:124:34: 124:43>::eq(_1: &CollisionCheck, _2: &CollisionCheck) -> bool {
|
||
|
debug self => _1;
|
||
|
debug other => _2;
|
||
|
let mut _0: bool;
|
||
|
let mut _3: bool;
|
||
|
let mut _4: &game::HorizontalCollisionCheck;
|
||
|
let mut _5: &game::HorizontalCollisionCheck;
|
||
|
let mut _6: &game::VerticalCollisionCheck;
|
||
|
let mut _7: &game::VerticalCollisionCheck;
|
||
|
|
||
|
bb0: {
|
||
|
_4 = &((*_1).0: game::HorizontalCollisionCheck);
|
||
|
_5 = &((*_2).0: game::HorizontalCollisionCheck);
|
||
|
_3 = <HorizontalCollisionCheck as PartialEq>::eq(move _4, move _5) -> [return: bb1, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
switchInt(move _3) -> [0: bb3, otherwise: bb2];
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_6 = &((*_1).1: game::VerticalCollisionCheck);
|
||
|
_7 = &((*_2).1: game::VerticalCollisionCheck);
|
||
|
_0 = <VerticalCollisionCheck as PartialEq>::eq(move _6, move _7) -> [return: bb4, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_0 = const false;
|
||
|
goto -> bb4;
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:124:45: 124:47>::assert_receiver_is_total_eq(_1: &CollisionCheck) -> () {
|
||
|
debug self => _1;
|
||
|
let mut _0: ();
|
||
|
scope 1 {
|
||
|
scope 2 {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:127:5: 127:24>::check_field(_1: (u32, u32), _2: (u32, u32)) -> CollisionCheck {
|
||
|
debug obj_pos => _1;
|
||
|
debug obj_size => _2;
|
||
|
let mut _0: game::CollisionCheck;
|
||
|
let _3: game::HorizontalCollisionCheck;
|
||
|
let mut _4: u32;
|
||
|
let mut _5: bool;
|
||
|
let mut _6: u32;
|
||
|
let mut _7: u32;
|
||
|
let mut _8: u32;
|
||
|
let mut _9: (u32, bool);
|
||
|
let mut _10: u32;
|
||
|
let mut _11: (u32, u32);
|
||
|
let mut _13: u32;
|
||
|
let mut _14: bool;
|
||
|
let mut _15: u32;
|
||
|
let mut _16: u32;
|
||
|
let mut _17: u32;
|
||
|
let mut _18: (u32, bool);
|
||
|
let mut _19: u32;
|
||
|
let mut _20: (u32, u32);
|
||
|
let mut _21: game::HorizontalCollisionCheck;
|
||
|
let mut _22: game::VerticalCollisionCheck;
|
||
|
scope 1 {
|
||
|
debug horizontal => _3;
|
||
|
let _12: game::VerticalCollisionCheck;
|
||
|
scope 2 {
|
||
|
debug vertical => _12;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
_4 = (_1.0: u32);
|
||
|
switchInt(move _4) -> [0: bb1, otherwise: bb2];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_3 = HorizontalCollisionCheck::Left;
|
||
|
goto -> bb6;
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_7 = (_1.0: u32);
|
||
|
_8 = (_2.0: u32);
|
||
|
_9 = CheckedAdd(_7, _8);
|
||
|
assert(!move (_9.1: bool), "attempt to compute `{} + {}`, which would overflow", move _7, move _8) -> [success: bb3, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_6 = move (_9.0: u32);
|
||
|
_11 = const _;
|
||
|
_10 = (_11.0: u32);
|
||
|
_5 = Ge(move _6, move _10);
|
||
|
switchInt(move _5) -> [0: bb5, otherwise: bb4];
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
_3 = HorizontalCollisionCheck::Right;
|
||
|
goto -> bb6;
|
||
|
}
|
||
|
|
||
|
bb5: {
|
||
|
_3 = HorizontalCollisionCheck::None;
|
||
|
goto -> bb6;
|
||
|
}
|
||
|
|
||
|
bb6: {
|
||
|
_13 = (_1.1: u32);
|
||
|
switchInt(move _13) -> [0: bb7, otherwise: bb8];
|
||
|
}
|
||
|
|
||
|
bb7: {
|
||
|
_12 = VerticalCollisionCheck::Top;
|
||
|
goto -> bb12;
|
||
|
}
|
||
|
|
||
|
bb8: {
|
||
|
_16 = (_1.1: u32);
|
||
|
_17 = (_2.1: u32);
|
||
|
_18 = CheckedAdd(_16, _17);
|
||
|
assert(!move (_18.1: bool), "attempt to compute `{} + {}`, which would overflow", move _16, move _17) -> [success: bb9, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb9: {
|
||
|
_15 = move (_18.0: u32);
|
||
|
_20 = const _;
|
||
|
_19 = (_20.1: u32);
|
||
|
_14 = Ge(move _15, move _19);
|
||
|
switchInt(move _14) -> [0: bb11, otherwise: bb10];
|
||
|
}
|
||
|
|
||
|
bb10: {
|
||
|
_12 = VerticalCollisionCheck::Bottom;
|
||
|
goto -> bb12;
|
||
|
}
|
||
|
|
||
|
bb11: {
|
||
|
_12 = VerticalCollisionCheck::None;
|
||
|
goto -> bb12;
|
||
|
}
|
||
|
|
||
|
bb12: {
|
||
|
_21 = _3;
|
||
|
_22 = _12;
|
||
|
_0 = CollisionCheck(move _21, move _22);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:127:5: 127:24>::no_collisions(_1: &CollisionCheck) -> bool {
|
||
|
debug self => _1;
|
||
|
let mut _0: bool;
|
||
|
let mut _2: isize;
|
||
|
let mut _3: isize;
|
||
|
|
||
|
bb0: {
|
||
|
_3 = discriminant(((*_1).0: game::HorizontalCollisionCheck));
|
||
|
switchInt(move _3) -> [0: bb1, otherwise: bb2];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_2 = discriminant(((*_1).1: game::VerticalCollisionCheck));
|
||
|
_0 = Eq(_2, const 0_isize);
|
||
|
goto -> bb3;
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_0 = const false;
|
||
|
goto -> bb3;
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:154:5: 154:23>::get_vec(_1: &BallDirection) -> (i16, i16) {
|
||
|
debug self => _1;
|
||
|
let mut _0: (i16, i16);
|
||
|
let mut _2: isize;
|
||
|
let mut _3: i16;
|
||
|
let mut _4: (i16, i16);
|
||
|
let mut _5: i16;
|
||
|
let mut _6: i16;
|
||
|
let mut _7: (i16, i16);
|
||
|
let mut _8: bool;
|
||
|
let mut _9: i16;
|
||
|
let mut _10: i16;
|
||
|
let mut _11: (i16, i16);
|
||
|
let mut _12: bool;
|
||
|
let mut _13: i16;
|
||
|
let mut _14: (i16, i16);
|
||
|
let mut _15: i16;
|
||
|
let mut _16: i16;
|
||
|
let mut _17: (i16, i16);
|
||
|
let mut _18: bool;
|
||
|
let mut _19: i16;
|
||
|
let mut _20: i16;
|
||
|
let mut _21: (i16, i16);
|
||
|
let mut _22: bool;
|
||
|
|
||
|
bb0: {
|
||
|
_2 = discriminant((*_1));
|
||
|
switchInt(move _2) -> [0: bb2, 1: bb3, 2: bb5, 3: bb1, otherwise: bb10];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_17 = const _;
|
||
|
_16 = (_17.0: i16);
|
||
|
_18 = Eq(_16, const i16::MIN);
|
||
|
assert(!move _18, "attempt to negate `{}`, which would overflow", _16) -> [success: bb7, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_0 = const _;
|
||
|
goto -> bb9;
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_4 = const _;
|
||
|
_3 = (_4.0: i16);
|
||
|
_7 = const _;
|
||
|
_6 = (_7.1: i16);
|
||
|
_8 = Eq(_6, const i16::MIN);
|
||
|
assert(!move _8, "attempt to negate `{}`, which would overflow", _6) -> [success: bb4, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
_5 = Neg(move _6);
|
||
|
_0 = (move _3, move _5);
|
||
|
goto -> bb9;
|
||
|
}
|
||
|
|
||
|
bb5: {
|
||
|
_11 = const _;
|
||
|
_10 = (_11.0: i16);
|
||
|
_12 = Eq(_10, const i16::MIN);
|
||
|
assert(!move _12, "attempt to negate `{}`, which would overflow", _10) -> [success: bb6, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb6: {
|
||
|
_9 = Neg(move _10);
|
||
|
_14 = const _;
|
||
|
_13 = (_14.1: i16);
|
||
|
_0 = (move _9, move _13);
|
||
|
goto -> bb9;
|
||
|
}
|
||
|
|
||
|
bb7: {
|
||
|
_15 = Neg(move _16);
|
||
|
_21 = const _;
|
||
|
_20 = (_21.1: i16);
|
||
|
_22 = Eq(_20, const i16::MIN);
|
||
|
assert(!move _22, "attempt to negate `{}`, which would overflow", _20) -> [success: bb8, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb8: {
|
||
|
_19 = Neg(move _20);
|
||
|
_0 = (move _15, move _19);
|
||
|
goto -> bb9;
|
||
|
}
|
||
|
|
||
|
bb9: {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
bb10: {
|
||
|
unreachable;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:174:5: 174:19>::init() -> GameState {
|
||
|
let mut _0: game::GameState;
|
||
|
let mut _1: (u32, u32);
|
||
|
let mut _2: u32;
|
||
|
let mut _3: u32;
|
||
|
let mut _4: (u32, u32);
|
||
|
let mut _5: bool;
|
||
|
let mut _6: u32;
|
||
|
let mut _7: u32;
|
||
|
let mut _8: (u32, u32);
|
||
|
let mut _9: bool;
|
||
|
let mut _10: u32;
|
||
|
let mut _11: u32;
|
||
|
let mut _12: (u32, u32);
|
||
|
let mut _13: bool;
|
||
|
let mut _14: u32;
|
||
|
let mut _15: u32;
|
||
|
let mut _16: (u32, u32);
|
||
|
let mut _17: bool;
|
||
|
let mut _18: game::BallDirection;
|
||
|
let mut _19: (u32, u32);
|
||
|
let mut _20: std::time::Instant;
|
||
|
|
||
|
bb0: {
|
||
|
_4 = const _;
|
||
|
_3 = (_4.0: u32);
|
||
|
_5 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _5, "attempt to divide `{}` by zero", _3) -> [success: bb1, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_2 = Div(move _3, const 2_u32);
|
||
|
_8 = const _;
|
||
|
_7 = (_8.1: u32);
|
||
|
_9 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _9, "attempt to divide `{}` by zero", _7) -> [success: bb2, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_6 = Div(move _7, const 2_u32);
|
||
|
_1 = (move _2, move _6);
|
||
|
_12 = const _;
|
||
|
_11 = (_12.0: u32);
|
||
|
_13 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _13, "attempt to divide `{}` by zero", _11) -> [success: bb3, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_10 = Div(move _11, const 2_u32);
|
||
|
_16 = const _;
|
||
|
_15 = (_16.0: u32);
|
||
|
_17 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _17, "attempt to divide `{}` by zero", _15) -> [success: bb4, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
_14 = Div(move _15, const 2_u32);
|
||
|
_18 = BallDirection::RightUp;
|
||
|
_19 = (const 0_u32, const 0_u32);
|
||
|
_20 = Instant::now() -> [return: bb5, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb5: {
|
||
|
_0 = GameState { ball_pos: move _1, ball_direction: move _18, paddle_r_pos: move _10, paddle_y_pos: move _14, scores: move _19, last_frame_time: move _20 };
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:174:5: 174:19>::render(_1: &GameState, _2: &mut Buffer<'_, DisplayHandle<'_>, WindowHandle<'_>>, _3: (NonZero<u32>, NonZero<u32>)) -> () {
|
||
|
debug self => _1;
|
||
|
debug buf => _2;
|
||
|
debug win_size => _3;
|
||
|
let mut _0: ();
|
||
|
let _4: (u32, u32);
|
||
|
let mut _5: u32;
|
||
|
let mut _6: std::num::NonZero<u32>;
|
||
|
let mut _7: u32;
|
||
|
let mut _8: std::num::NonZero<u32>;
|
||
|
let _9: ();
|
||
|
let _10: ();
|
||
|
scope 1 {
|
||
|
debug win_size => _4;
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
_6 = (_3.0: std::num::NonZero<u32>);
|
||
|
_5 = NonZero::<u32>::get(move _6) -> [return: bb1, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_8 = (_3.1: std::num::NonZero<u32>);
|
||
|
_7 = NonZero::<u32>::get(move _8) -> [return: bb2, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_4 = (move _5, move _7);
|
||
|
_9 = GameState::render_field(_1, _2, _4) -> [return: bb3, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_10 = GameState::render_ball(_1, _2, _4) -> [return: bb4, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:174:5: 174:19>::update(_1: &mut GameState) -> () {
|
||
|
debug self => _1;
|
||
|
let mut _0: ();
|
||
|
let _2: f32;
|
||
|
let mut _3: &game::GameState;
|
||
|
let mut _4: std::time::Instant;
|
||
|
let _5: ();
|
||
|
scope 1 {
|
||
|
debug delta_t => _2;
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
_3 = &(*_1);
|
||
|
_2 = GameState::delta_time(move _3) -> [return: bb1, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_4 = Instant::now() -> [return: bb2, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
((*_1).5: std::time::Instant) = move _4;
|
||
|
_5 = GameState::move_ball(_1) -> [return: bb3, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:174:5: 174:19>::move_ball(_1: &mut GameState) -> () {
|
||
|
debug self => _1;
|
||
|
let mut _0: ();
|
||
|
let _2: (i16, i16);
|
||
|
let mut _3: &game::BallDirection;
|
||
|
let mut _5: &game::GameState;
|
||
|
let mut _7: u32;
|
||
|
let mut _8: u32;
|
||
|
let mut _9: u32;
|
||
|
let mut _10: i32;
|
||
|
let mut _11: f32;
|
||
|
let mut _12: f32;
|
||
|
let mut _13: i16;
|
||
|
let mut _14: u32;
|
||
|
let mut _15: u32;
|
||
|
let mut _16: (u32, u32);
|
||
|
let mut _17: (u32, bool);
|
||
|
let mut _18: u32;
|
||
|
let mut _19: u32;
|
||
|
let mut _20: u32;
|
||
|
let mut _21: i32;
|
||
|
let mut _22: f32;
|
||
|
let mut _23: f32;
|
||
|
let mut _24: i16;
|
||
|
let mut _25: u32;
|
||
|
let mut _26: u32;
|
||
|
let mut _27: (u32, u32);
|
||
|
let mut _28: (u32, bool);
|
||
|
let _29: ();
|
||
|
let mut _30: std::fmt::Arguments<'_>;
|
||
|
let mut _31: &[&str];
|
||
|
let mut _32: &[core::fmt::rt::Argument<'_>];
|
||
|
let _33: &[core::fmt::rt::Argument<'_>; 2];
|
||
|
let _34: [core::fmt::rt::Argument<'_>; 2];
|
||
|
let mut _35: core::fmt::rt::Argument<'_>;
|
||
|
let _36: &(u32, u32);
|
||
|
let mut _37: core::fmt::rt::Argument<'_>;
|
||
|
let _38: &(u32, u32);
|
||
|
let mut _39: (u32, u32);
|
||
|
let mut _41: (u32, u32);
|
||
|
let mut _42: u32;
|
||
|
let mut _43: u32;
|
||
|
let mut _44: u32;
|
||
|
let mut _45: u32;
|
||
|
let mut _46: (u32, u32);
|
||
|
let mut _47: u32;
|
||
|
let mut _48: (u32, bool);
|
||
|
let mut _49: u32;
|
||
|
let mut _50: (u32, bool);
|
||
|
let mut _53: game::BallDirection;
|
||
|
let mut _54: (game::BallDirection, (game::HorizontalCollisionCheck, game::VerticalCollisionCheck));
|
||
|
let mut _55: game::BallDirection;
|
||
|
let mut _56: (game::HorizontalCollisionCheck, game::VerticalCollisionCheck);
|
||
|
let mut _57: isize;
|
||
|
let mut _58: isize;
|
||
|
let mut _59: isize;
|
||
|
let mut _60: isize;
|
||
|
let mut _61: isize;
|
||
|
let mut _62: isize;
|
||
|
let mut _63: isize;
|
||
|
let mut _64: isize;
|
||
|
let mut _65: isize;
|
||
|
let mut _66: isize;
|
||
|
let mut _67: isize;
|
||
|
let mut _68: isize;
|
||
|
let mut _69: isize;
|
||
|
let _71: !;
|
||
|
let mut _72: std::fmt::Arguments<'_>;
|
||
|
let mut _73: &[&str];
|
||
|
let mut _74: &[core::fmt::rt::Argument<'_>];
|
||
|
let _75: &[core::fmt::rt::Argument<'_>; 1];
|
||
|
let _76: [core::fmt::rt::Argument<'_>; 1];
|
||
|
let mut _77: core::fmt::rt::Argument<'_>;
|
||
|
let _78: &(game::BallDirection, (game::HorizontalCollisionCheck, game::VerticalCollisionCheck));
|
||
|
let mut _79: &[core::fmt::rt::Placeholder];
|
||
|
let _80: &[core::fmt::rt::Placeholder; 1];
|
||
|
let _81: [core::fmt::rt::Placeholder; 1];
|
||
|
let mut _82: core::fmt::rt::Placeholder;
|
||
|
let mut _83: core::fmt::rt::Alignment;
|
||
|
let mut _84: core::fmt::rt::Count;
|
||
|
let mut _85: core::fmt::rt::Count;
|
||
|
let mut _86: core::fmt::rt::UnsafeArg;
|
||
|
scope 1 {
|
||
|
debug vec => _2;
|
||
|
let _4: f32;
|
||
|
scope 2 {
|
||
|
debug delta_t => _4;
|
||
|
let _6: (u32, u32);
|
||
|
scope 3 {
|
||
|
debug new_pos => _6;
|
||
|
let _40: game::CollisionCheck;
|
||
|
let mut _88: &[&str; 3];
|
||
|
scope 4 {
|
||
|
debug check_res => _40;
|
||
|
let _51: game::HorizontalCollisionCheck;
|
||
|
let _52: game::VerticalCollisionCheck;
|
||
|
scope 5 {
|
||
|
debug horizontal => _51;
|
||
|
debug vertical => _52;
|
||
|
let _70: (game::BallDirection, (game::HorizontalCollisionCheck, game::VerticalCollisionCheck));
|
||
|
scope 6 {
|
||
|
debug other => _70;
|
||
|
let mut _87: &[&str; 1];
|
||
|
scope 7 {
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
_3 = &((*_1).1: game::BallDirection);
|
||
|
_2 = BallDirection::get_vec(move _3) -> [return: bb1, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_5 = &(*_1);
|
||
|
_4 = GameState::delta_time(move _5) -> [return: bb2, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_9 = (((*_1).0: (u32, u32)).0: u32);
|
||
|
_13 = (_2.0: i16);
|
||
|
_12 = move _13 as f32 (IntToFloat);
|
||
|
_11 = Mul(move _12, _4);
|
||
|
_10 = move _11 as i32 (FloatToInt);
|
||
|
_8 = core::num::<impl u32>::saturating_add_signed(move _9, move _10) -> [return: bb3, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_16 = const _;
|
||
|
_15 = (_16.0: u32);
|
||
|
_17 = CheckedSub(_15, const _);
|
||
|
assert(!move (_17.1: bool), "attempt to compute `{} - {}`, which would overflow", move _15, const _) -> [success: bb4, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
_14 = move (_17.0: u32);
|
||
|
_7 = <u32 as Ord>::clamp(move _8, const 0_u32, move _14) -> [return: bb5, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb5: {
|
||
|
_20 = (((*_1).0: (u32, u32)).1: u32);
|
||
|
_24 = (_2.1: i16);
|
||
|
_23 = move _24 as f32 (IntToFloat);
|
||
|
_22 = Mul(move _23, _4);
|
||
|
_21 = move _22 as i32 (FloatToInt);
|
||
|
_19 = core::num::<impl u32>::saturating_add_signed(move _20, move _21) -> [return: bb6, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb6: {
|
||
|
_27 = const _;
|
||
|
_26 = (_27.1: u32);
|
||
|
_28 = CheckedSub(_26, const _);
|
||
|
assert(!move (_28.1: bool), "attempt to compute `{} - {}`, which would overflow", move _26, const _) -> [success: bb7, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb7: {
|
||
|
_25 = move (_28.0: u32);
|
||
|
_18 = <u32 as Ord>::clamp(move _19, const 0_u32, move _25) -> [return: bb8, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb8: {
|
||
|
_6 = (move _7, move _18);
|
||
|
_88 = const _;
|
||
|
_31 = _88 as &[&str] (PointerCoercion(Unsize));
|
||
|
_36 = &((*_1).0: (u32, u32));
|
||
|
_35 = core::fmt::rt::Argument::<'_>::new_debug::<(u32, u32)>(_36) -> [return: bb9, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb9: {
|
||
|
_38 = &_6;
|
||
|
_37 = core::fmt::rt::Argument::<'_>::new_debug::<(u32, u32)>(_38) -> [return: bb10, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb10: {
|
||
|
_34 = [move _35, move _37];
|
||
|
_33 = &_34;
|
||
|
_32 = _33 as &[core::fmt::rt::Argument<'_>] (PointerCoercion(Unsize));
|
||
|
_30 = Arguments::<'_>::new_v1(move _31, move _32) -> [return: bb11, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb11: {
|
||
|
_29 = _print(move _30) -> [return: bb12, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb12: {
|
||
|
_39 = _6;
|
||
|
((*_1).0: (u32, u32)) = move _39;
|
||
|
_43 = (_6.0: u32);
|
||
|
_42 = core::num::<impl u32>::saturating_sub(move _43, const _) -> [return: bb13, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb13: {
|
||
|
_45 = (_6.1: u32);
|
||
|
_44 = core::num::<impl u32>::saturating_sub(move _45, const _) -> [return: bb14, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb14: {
|
||
|
_41 = (move _42, move _44);
|
||
|
_48 = CheckedMul(const _, const 2_u32);
|
||
|
assert(!move (_48.1: bool), "attempt to compute `{} * {}`, which would overflow", const _, const 2_u32) -> [success: bb15, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb15: {
|
||
|
_47 = move (_48.0: u32);
|
||
|
_50 = CheckedMul(const _, const 2_u32);
|
||
|
assert(!move (_50.1: bool), "attempt to compute `{} * {}`, which would overflow", const _, const 2_u32) -> [success: bb16, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb16: {
|
||
|
_49 = move (_50.0: u32);
|
||
|
_46 = (move _47, move _49);
|
||
|
_40 = CollisionCheck::check_field(move _41, move _46) -> [return: bb17, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb17: {
|
||
|
_51 = (_40.0: game::HorizontalCollisionCheck);
|
||
|
_52 = (_40.1: game::VerticalCollisionCheck);
|
||
|
_55 = ((*_1).1: game::BallDirection);
|
||
|
_56 = (_51, _52);
|
||
|
_54 = (move _55, move _56);
|
||
|
_69 = discriminant((_54.0: game::BallDirection));
|
||
|
switchInt(move _69) -> [0: bb18, 1: bb22, 2: bb25, 3: bb28, otherwise: bb40];
|
||
|
}
|
||
|
|
||
|
bb18: {
|
||
|
_59 = discriminant(((_54.1: (game::HorizontalCollisionCheck, game::VerticalCollisionCheck)).0: game::HorizontalCollisionCheck));
|
||
|
switchInt(move _59) -> [0: bb19, 2: bb21, otherwise: bb20];
|
||
|
}
|
||
|
|
||
|
bb19: {
|
||
|
_57 = discriminant(((_54.1: (game::HorizontalCollisionCheck, game::VerticalCollisionCheck)).1: game::VerticalCollisionCheck));
|
||
|
switchInt(move _57) -> [0: bb31, 1: bb32, otherwise: bb20];
|
||
|
}
|
||
|
|
||
|
bb20: {
|
||
|
_70 = _54;
|
||
|
_87 = const _;
|
||
|
_73 = _87 as &[&str] (PointerCoercion(Unsize));
|
||
|
_78 = &_70;
|
||
|
_77 = core::fmt::rt::Argument::<'_>::new_debug::<(BallDirection, (HorizontalCollisionCheck, VerticalCollisionCheck))>(_78) -> [return: bb35, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb21: {
|
||
|
_58 = discriminant(((_54.1: (game::HorizontalCollisionCheck, game::VerticalCollisionCheck)).1: game::VerticalCollisionCheck));
|
||
|
switchInt(move _58) -> [0: bb33, 1: bb34, otherwise: bb20];
|
||
|
}
|
||
|
|
||
|
bb22: {
|
||
|
_62 = discriminant(((_54.1: (game::HorizontalCollisionCheck, game::VerticalCollisionCheck)).0: game::HorizontalCollisionCheck));
|
||
|
switchInt(move _62) -> [0: bb23, 2: bb24, otherwise: bb20];
|
||
|
}
|
||
|
|
||
|
bb23: {
|
||
|
_60 = discriminant(((_54.1: (game::HorizontalCollisionCheck, game::VerticalCollisionCheck)).1: game::VerticalCollisionCheck));
|
||
|
switchInt(move _60) -> [0: bb32, 2: bb31, otherwise: bb20];
|
||
|
}
|
||
|
|
||
|
bb24: {
|
||
|
_61 = discriminant(((_54.1: (game::HorizontalCollisionCheck, game::VerticalCollisionCheck)).1: game::VerticalCollisionCheck));
|
||
|
switchInt(move _61) -> [0: bb34, 2: bb33, otherwise: bb20];
|
||
|
}
|
||
|
|
||
|
bb25: {
|
||
|
_65 = discriminant(((_54.1: (game::HorizontalCollisionCheck, game::VerticalCollisionCheck)).0: game::HorizontalCollisionCheck));
|
||
|
switchInt(move _65) -> [0: bb26, 1: bb27, otherwise: bb20];
|
||
|
}
|
||
|
|
||
|
bb26: {
|
||
|
_63 = discriminant(((_54.1: (game::HorizontalCollisionCheck, game::VerticalCollisionCheck)).1: game::VerticalCollisionCheck));
|
||
|
switchInt(move _63) -> [0: bb33, 1: bb34, otherwise: bb20];
|
||
|
}
|
||
|
|
||
|
bb27: {
|
||
|
_64 = discriminant(((_54.1: (game::HorizontalCollisionCheck, game::VerticalCollisionCheck)).1: game::VerticalCollisionCheck));
|
||
|
switchInt(move _64) -> [0: bb31, 1: bb32, otherwise: bb20];
|
||
|
}
|
||
|
|
||
|
bb28: {
|
||
|
_68 = discriminant(((_54.1: (game::HorizontalCollisionCheck, game::VerticalCollisionCheck)).0: game::HorizontalCollisionCheck));
|
||
|
switchInt(move _68) -> [0: bb29, 1: bb30, otherwise: bb20];
|
||
|
}
|
||
|
|
||
|
bb29: {
|
||
|
_66 = discriminant(((_54.1: (game::HorizontalCollisionCheck, game::VerticalCollisionCheck)).1: game::VerticalCollisionCheck));
|
||
|
switchInt(move _66) -> [0: bb34, 2: bb33, otherwise: bb20];
|
||
|
}
|
||
|
|
||
|
bb30: {
|
||
|
_67 = discriminant(((_54.1: (game::HorizontalCollisionCheck, game::VerticalCollisionCheck)).1: game::VerticalCollisionCheck));
|
||
|
switchInt(move _67) -> [0: bb32, 1: bb31, otherwise: bb20];
|
||
|
}
|
||
|
|
||
|
bb31: {
|
||
|
_53 = BallDirection::RightUp;
|
||
|
goto -> bb39;
|
||
|
}
|
||
|
|
||
|
bb32: {
|
||
|
_53 = BallDirection::RightDown;
|
||
|
goto -> bb39;
|
||
|
}
|
||
|
|
||
|
bb33: {
|
||
|
_53 = BallDirection::LeftUp;
|
||
|
goto -> bb39;
|
||
|
}
|
||
|
|
||
|
bb34: {
|
||
|
_53 = BallDirection::LeftDown;
|
||
|
goto -> bb39;
|
||
|
}
|
||
|
|
||
|
bb35: {
|
||
|
_76 = [move _77];
|
||
|
_75 = &_76;
|
||
|
_74 = _75 as &[core::fmt::rt::Argument<'_>] (PointerCoercion(Unsize));
|
||
|
_83 = core::fmt::rt::Alignment::Unknown;
|
||
|
_84 = core::fmt::rt::Count::Implied;
|
||
|
_85 = core::fmt::rt::Count::Implied;
|
||
|
_82 = core::fmt::rt::Placeholder::new(const 0_usize, const ' ', move _83, const 4_u32, move _84, move _85) -> [return: bb36, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb36: {
|
||
|
_81 = [move _82];
|
||
|
_80 = &_81;
|
||
|
_79 = _80 as &[core::fmt::rt::Placeholder] (PointerCoercion(Unsize));
|
||
|
_86 = core::fmt::rt::UnsafeArg::new() -> [return: bb37, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb37: {
|
||
|
_72 = Arguments::<'_>::new_v1_formatted(move _73, move _74, move _79, const core::fmt::rt::UnsafeArg {{ _private: () }}) -> [return: bb38, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb38: {
|
||
|
_71 = panic_fmt(move _72) -> unwind continue;
|
||
|
}
|
||
|
|
||
|
bb39: {
|
||
|
((*_1).1: game::BallDirection) = move _53;
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
bb40: {
|
||
|
unreachable;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
promoted[0] in game::<impl at src/main.rs:174:5: 174:19>::move_ball: &[&str; 1] = {
|
||
|
let mut _0: &[&str; 1];
|
||
|
let mut _1: [&str; 1];
|
||
|
|
||
|
bb0: {
|
||
|
_1 = [const "Invalid collision: "];
|
||
|
_0 = &_1;
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
promoted[1] in game::<impl at src/main.rs:174:5: 174:19>::move_ball: &[&str; 3] = {
|
||
|
let mut _0: &[&str; 3];
|
||
|
let mut _1: [&str; 3];
|
||
|
|
||
|
bb0: {
|
||
|
_1 = [const "", const " -> ", const "\n"];
|
||
|
_0 = &_1;
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:174:5: 174:19>::delta_time(_1: &GameState) -> f32 {
|
||
|
debug self => _1;
|
||
|
let mut _0: f32;
|
||
|
let mut _2: f32;
|
||
|
let mut _3: u128;
|
||
|
let mut _4: &std::time::Duration;
|
||
|
let _5: std::time::Duration;
|
||
|
let mut _6: &std::time::Instant;
|
||
|
let _7: std::time::Instant;
|
||
|
let mut _8: std::time::Instant;
|
||
|
|
||
|
bb0: {
|
||
|
_7 = Instant::now() -> [return: bb1, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_6 = &_7;
|
||
|
_8 = ((*_1).5: std::time::Instant);
|
||
|
_5 = Instant::duration_since(move _6, move _8) -> [return: bb2, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_4 = &_5;
|
||
|
_3 = Duration::as_millis(move _4) -> [return: bb3, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_2 = move _3 as f32 (IntToFloat);
|
||
|
_0 = Div(move _2, const _);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:174:5: 174:19>::render_field(_1: &GameState, _2: &mut Buffer<'_, DisplayHandle<'_>, WindowHandle<'_>>, _3: (u32, u32)) -> () {
|
||
|
debug self => _1;
|
||
|
debug buf => _2;
|
||
|
debug win_size => _3;
|
||
|
let mut _0: ();
|
||
|
let _4: (u32, u32);
|
||
|
let mut _5: u32;
|
||
|
let mut _6: u32;
|
||
|
let mut _7: u32;
|
||
|
let mut _8: bool;
|
||
|
let mut _9: u32;
|
||
|
let mut _10: u32;
|
||
|
let mut _11: (u32, u32);
|
||
|
let mut _12: bool;
|
||
|
let mut _13: u32;
|
||
|
let mut _14: u32;
|
||
|
let mut _15: u32;
|
||
|
let mut _16: bool;
|
||
|
let mut _17: u32;
|
||
|
let mut _18: u32;
|
||
|
let mut _19: (u32, u32);
|
||
|
let mut _20: bool;
|
||
|
let _21: ();
|
||
|
let mut _22: (u32, u32);
|
||
|
let mut _23: u32;
|
||
|
let mut _24: u32;
|
||
|
let mut _25: u32;
|
||
|
let mut _26: u32;
|
||
|
let mut _27: (u32, u32);
|
||
|
let mut _28: u32;
|
||
|
let mut _29: u32;
|
||
|
let mut _30: (u32, u32);
|
||
|
let mut _31: u32;
|
||
|
let mut _32: (u32, bool);
|
||
|
let _33: ();
|
||
|
let mut _34: (u32, u32);
|
||
|
let mut _35: u32;
|
||
|
let mut _36: u32;
|
||
|
let mut _37: u32;
|
||
|
let mut _38: (u32, u32);
|
||
|
let mut _39: u32;
|
||
|
let mut _40: (u32, u32);
|
||
|
let mut _41: u32;
|
||
|
let mut _42: (u32, u32);
|
||
|
let _43: ();
|
||
|
let mut _44: (u32, u32);
|
||
|
let mut _45: u32;
|
||
|
let mut _46: u32;
|
||
|
let mut _47: u32;
|
||
|
let mut _48: u32;
|
||
|
let mut _49: u32;
|
||
|
let mut _50: (u32, u32);
|
||
|
let mut _51: (u32, u32);
|
||
|
let mut _52: u32;
|
||
|
let mut _53: u32;
|
||
|
let mut _54: (u32, u32);
|
||
|
let mut _55: u32;
|
||
|
let mut _56: (u32, bool);
|
||
|
let _57: ();
|
||
|
let mut _58: (u32, u32);
|
||
|
let mut _59: u32;
|
||
|
let mut _60: u32;
|
||
|
let mut _61: u32;
|
||
|
let mut _62: (u32, u32);
|
||
|
let mut _63: u32;
|
||
|
let mut _64: (u32, u32);
|
||
|
let mut _65: (u32, u32);
|
||
|
let mut _66: u32;
|
||
|
let mut _67: u32;
|
||
|
let mut _68: u32;
|
||
|
let mut _69: bool;
|
||
|
let mut _70: u32;
|
||
|
let mut _71: bool;
|
||
|
let mut _72: (u32, bool);
|
||
|
let mut _73: u32;
|
||
|
let mut _74: (u32, u32);
|
||
|
let mut _75: u32;
|
||
|
let mut _76: (u32, u32);
|
||
|
scope 1 {
|
||
|
debug field_pos => _4;
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
_7 = (_3.0: u32);
|
||
|
_8 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _8, "attempt to divide `{}` by zero", _7) -> [success: bb1, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_6 = Div(move _7, const 2_u32);
|
||
|
_11 = const _;
|
||
|
_10 = (_11.0: u32);
|
||
|
_12 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _12, "attempt to divide `{}` by zero", _10) -> [success: bb2, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_9 = Div(move _10, const 2_u32);
|
||
|
_5 = core::num::<impl u32>::saturating_sub(move _6, move _9) -> [return: bb3, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_15 = (_3.1: u32);
|
||
|
_16 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _16, "attempt to divide `{}` by zero", _15) -> [success: bb4, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
_14 = Div(move _15, const 2_u32);
|
||
|
_19 = const _;
|
||
|
_18 = (_19.1: u32);
|
||
|
_20 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _20, "attempt to divide `{}` by zero", _18) -> [success: bb5, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb5: {
|
||
|
_17 = Div(move _18, const 2_u32);
|
||
|
_13 = core::num::<impl u32>::saturating_sub(move _14, move _17) -> [return: bb6, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb6: {
|
||
|
_4 = (move _5, move _13);
|
||
|
_24 = (_4.0: u32);
|
||
|
_23 = core::num::<impl u32>::saturating_sub(move _24, const _) -> [return: bb7, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb7: {
|
||
|
_26 = (_4.1: u32);
|
||
|
_25 = core::num::<impl u32>::saturating_sub(move _26, const _) -> [return: bb8, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb8: {
|
||
|
_22 = (move _23, move _25);
|
||
|
_30 = const _;
|
||
|
_29 = (_30.0: u32);
|
||
|
_32 = CheckedMul(const _, const 2_u32);
|
||
|
assert(!move (_32.1: bool), "attempt to compute `{} * {}`, which would overflow", const _, const 2_u32) -> [success: bb9, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb9: {
|
||
|
_31 = move (_32.0: u32);
|
||
|
_28 = core::num::<impl u32>::saturating_add(move _29, move _31) -> [return: bb10, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb10: {
|
||
|
_27 = (move _28, const _);
|
||
|
_21 = draw_rect(_2, _3, move _22, move _27, const 16711680_u32) -> [return: bb11, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb11: {
|
||
|
_36 = (_4.0: u32);
|
||
|
_38 = const _;
|
||
|
_37 = (_38.0: u32);
|
||
|
_35 = core::num::<impl u32>::saturating_add(move _36, move _37) -> [return: bb12, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb12: {
|
||
|
_39 = (_4.1: u32);
|
||
|
_34 = (move _35, move _39);
|
||
|
_42 = const _;
|
||
|
_41 = (_42.1: u32);
|
||
|
_40 = (const _, move _41);
|
||
|
_33 = draw_rect(_2, _3, move _34, move _40, const 65280_u32) -> [return: bb13, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb13: {
|
||
|
_46 = (_4.0: u32);
|
||
|
_45 = core::num::<impl u32>::saturating_sub(move _46, const _) -> [return: bb14, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb14: {
|
||
|
_48 = (_4.1: u32);
|
||
|
_50 = const _;
|
||
|
_49 = (_50.1: u32);
|
||
|
_47 = core::num::<impl u32>::saturating_add(move _48, move _49) -> [return: bb15, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb15: {
|
||
|
_44 = (move _45, move _47);
|
||
|
_54 = const _;
|
||
|
_53 = (_54.0: u32);
|
||
|
_56 = CheckedMul(const _, const 2_u32);
|
||
|
assert(!move (_56.1: bool), "attempt to compute `{} * {}`, which would overflow", const _, const 2_u32) -> [success: bb16, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb16: {
|
||
|
_55 = move (_56.0: u32);
|
||
|
_52 = core::num::<impl u32>::saturating_add(move _53, move _55) -> [return: bb17, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb17: {
|
||
|
_51 = (move _52, const _);
|
||
|
_43 = draw_rect(_2, _3, move _44, move _51, const 16711935_u32) -> [return: bb18, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb18: {
|
||
|
_60 = (_4.0: u32);
|
||
|
_59 = core::num::<impl u32>::saturating_sub(move _60, const _) -> [return: bb19, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb19: {
|
||
|
_61 = (_4.1: u32);
|
||
|
_58 = (move _59, move _61);
|
||
|
_64 = const _;
|
||
|
_63 = (_64.1: u32);
|
||
|
_62 = (const _, move _63);
|
||
|
_57 = draw_rect(_2, _3, move _58, move _62, const 65535_u32) -> [return: bb20, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb20: {
|
||
|
_68 = (_3.0: u32);
|
||
|
_69 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _69, "attempt to divide `{}` by zero", _68) -> [success: bb21, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb21: {
|
||
|
_67 = Div(move _68, const 2_u32);
|
||
|
_71 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _71, "attempt to divide `{}` by zero", const _) -> [success: bb22, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb22: {
|
||
|
_70 = Div(const _, const 2_u32);
|
||
|
_72 = CheckedSub(_67, _70);
|
||
|
assert(!move (_72.1: bool), "attempt to compute `{} - {}`, which would overflow", move _67, move _70) -> [success: bb23, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb23: {
|
||
|
_66 = move (_72.0: u32);
|
||
|
_73 = (_4.1: u32);
|
||
|
_65 = (move _66, move _73);
|
||
|
_76 = const _;
|
||
|
_75 = (_76.1: u32);
|
||
|
_74 = (const _, move _75);
|
||
|
_0 = draw_rect(_2, _3, move _65, move _74, const 8355711_u32) -> [return: bb24, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb24: {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:174:5: 174:19>::render_ball(_1: &GameState, _2: &mut Buffer<'_, DisplayHandle<'_>, WindowHandle<'_>>, _3: (u32, u32)) -> () {
|
||
|
debug self => _1;
|
||
|
debug buf => _2;
|
||
|
debug win_size => _3;
|
||
|
let mut _0: ();
|
||
|
let _4: (u32, u32);
|
||
|
let mut _5: u32;
|
||
|
let mut _6: u32;
|
||
|
let mut _7: u32;
|
||
|
let mut _8: bool;
|
||
|
let mut _9: u32;
|
||
|
let mut _10: u32;
|
||
|
let mut _11: (u32, u32);
|
||
|
let mut _12: bool;
|
||
|
let mut _13: u32;
|
||
|
let mut _14: u32;
|
||
|
let mut _15: u32;
|
||
|
let mut _16: bool;
|
||
|
let mut _17: u32;
|
||
|
let mut _18: u32;
|
||
|
let mut _19: (u32, u32);
|
||
|
let mut _20: bool;
|
||
|
let mut _22: u32;
|
||
|
let mut _23: u32;
|
||
|
let mut _24: u32;
|
||
|
let mut _25: u32;
|
||
|
let mut _26: (u32, bool);
|
||
|
let mut _27: u32;
|
||
|
let mut _28: u32;
|
||
|
let mut _29: u32;
|
||
|
let mut _30: u32;
|
||
|
let mut _31: (u32, bool);
|
||
|
let _32: ();
|
||
|
let mut _33: (u32, u32);
|
||
|
let mut _34: u32;
|
||
|
let mut _35: (u32, bool);
|
||
|
let mut _36: u32;
|
||
|
let mut _37: (u32, bool);
|
||
|
scope 1 {
|
||
|
debug field_pos => _4;
|
||
|
let _21: (u32, u32);
|
||
|
scope 2 {
|
||
|
debug ball_render_pos => _21;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
_7 = (_3.0: u32);
|
||
|
_8 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _8, "attempt to divide `{}` by zero", _7) -> [success: bb1, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_6 = Div(move _7, const 2_u32);
|
||
|
_11 = const _;
|
||
|
_10 = (_11.0: u32);
|
||
|
_12 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _12, "attempt to divide `{}` by zero", _10) -> [success: bb2, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_9 = Div(move _10, const 2_u32);
|
||
|
_5 = core::num::<impl u32>::saturating_sub(move _6, move _9) -> [return: bb3, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_15 = (_3.1: u32);
|
||
|
_16 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _16, "attempt to divide `{}` by zero", _15) -> [success: bb4, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
_14 = Div(move _15, const 2_u32);
|
||
|
_19 = const _;
|
||
|
_18 = (_19.1: u32);
|
||
|
_20 = Eq(const 2_u32, const 0_u32);
|
||
|
assert(!move _20, "attempt to divide `{}` by zero", _18) -> [success: bb5, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb5: {
|
||
|
_17 = Div(move _18, const 2_u32);
|
||
|
_13 = core::num::<impl u32>::saturating_sub(move _14, move _17) -> [return: bb6, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb6: {
|
||
|
_4 = (move _5, move _13);
|
||
|
_24 = (((*_1).0: (u32, u32)).0: u32);
|
||
|
_25 = (_4.0: u32);
|
||
|
_26 = CheckedAdd(_24, _25);
|
||
|
assert(!move (_26.1: bool), "attempt to compute `{} + {}`, which would overflow", move _24, move _25) -> [success: bb7, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb7: {
|
||
|
_23 = move (_26.0: u32);
|
||
|
_22 = core::num::<impl u32>::saturating_sub(move _23, const _) -> [return: bb8, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb8: {
|
||
|
_29 = (((*_1).0: (u32, u32)).1: u32);
|
||
|
_30 = (_4.1: u32);
|
||
|
_31 = CheckedAdd(_29, _30);
|
||
|
assert(!move (_31.1: bool), "attempt to compute `{} + {}`, which would overflow", move _29, move _30) -> [success: bb9, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb9: {
|
||
|
_28 = move (_31.0: u32);
|
||
|
_27 = core::num::<impl u32>::saturating_sub(move _28, const _) -> [return: bb10, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb10: {
|
||
|
_21 = (move _22, move _27);
|
||
|
_35 = CheckedMul(const _, const 2_u32);
|
||
|
assert(!move (_35.1: bool), "attempt to compute `{} * {}`, which would overflow", const _, const 2_u32) -> [success: bb11, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb11: {
|
||
|
_34 = move (_35.0: u32);
|
||
|
_37 = CheckedMul(const _, const 2_u32);
|
||
|
assert(!move (_37.1: bool), "attempt to compute `{} * {}`, which would overflow", const _, const 2_u32) -> [success: bb12, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb12: {
|
||
|
_36 = move (_37.0: u32);
|
||
|
_33 = (move _34, move _36);
|
||
|
_32 = draw_rect(_2, _3, _21, move _33, const 16777215_u32) -> [return: bb13, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb13: {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:174:5: 174:19>::render_paddles(_1: &GameState, _2: &mut Buffer<'_, DisplayHandle<'_>, WindowHandle<'_>>, _3: (u32, u32)) -> () {
|
||
|
debug self => _1;
|
||
|
debug buf => _2;
|
||
|
debug win_size => _3;
|
||
|
let mut _0: ();
|
||
|
let mut _4: !;
|
||
|
|
||
|
bb0: {
|
||
|
_4 = core::panicking::panic(const "not yet implemented") -> unwind continue;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:174:5: 174:19>::render_paddle(_1: &GameState, _2: &mut Buffer<'_, DisplayHandle<'_>, WindowHandle<'_>>, _3: (u32, u32)) -> () {
|
||
|
debug self => _1;
|
||
|
debug buf => _2;
|
||
|
debug win_size => _3;
|
||
|
let mut _0: ();
|
||
|
let mut _4: !;
|
||
|
|
||
|
bb0: {
|
||
|
_4 = core::panicking::panic(const "not yet implemented") -> unwind continue;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn game::<impl at src/main.rs:174:5: 174:19>::render_scores(_1: &GameState, _2: &mut Buffer<'_, DisplayHandle<'_>, WindowHandle<'_>>, _3: (u32, u32)) -> () {
|
||
|
debug self => _1;
|
||
|
debug buf => _2;
|
||
|
debug win_size => _3;
|
||
|
let mut _0: ();
|
||
|
let mut _4: !;
|
||
|
|
||
|
bb0: {
|
||
|
_4 = core::panicking::panic(const "not yet implemented") -> unwind continue;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn draw_rect(_1: &mut Buffer<'_, DisplayHandle<'_>, WindowHandle<'_>>, _2: (u32, u32), _3: (u32, u32), _4: (u32, u32), _5: u32) -> () {
|
||
|
debug buf => _1;
|
||
|
debug buf_size => _2;
|
||
|
debug pos => _3;
|
||
|
debug size => _4;
|
||
|
debug color => _5;
|
||
|
let mut _0: ();
|
||
|
let mut _6: std::ops::Range<u32>;
|
||
|
let mut _7: std::ops::Range<u32>;
|
||
|
let mut _8: u32;
|
||
|
let mut _9: u32;
|
||
|
let mut _10: u32;
|
||
|
let mut _11: u32;
|
||
|
let mut _12: (u32, bool);
|
||
|
let mut _13: std::ops::Range<u32>;
|
||
|
let mut _14: std::option::Option<u32>;
|
||
|
let mut _15: &mut std::ops::Range<u32>;
|
||
|
let mut _16: isize;
|
||
|
let mut _18: std::ops::Range<u32>;
|
||
|
let mut _19: std::ops::Range<u32>;
|
||
|
let mut _20: u32;
|
||
|
let mut _21: u32;
|
||
|
let mut _22: u32;
|
||
|
let mut _23: u32;
|
||
|
let mut _24: (u32, bool);
|
||
|
let mut _26: std::option::Option<u32>;
|
||
|
let mut _27: &mut std::ops::Range<u32>;
|
||
|
let mut _28: isize;
|
||
|
let mut _31: usize;
|
||
|
let mut _32: usize;
|
||
|
let mut _33: usize;
|
||
|
let mut _34: u32;
|
||
|
let mut _35: (usize, bool);
|
||
|
let mut _36: usize;
|
||
|
let mut _37: (usize, bool);
|
||
|
let mut _38: &mut [u32];
|
||
|
let mut _39: usize;
|
||
|
let mut _40: bool;
|
||
|
scope 1 {
|
||
|
debug iter => _13;
|
||
|
let _17: u32;
|
||
|
scope 2 {
|
||
|
debug y => _17;
|
||
|
let mut _25: std::ops::Range<u32>;
|
||
|
scope 3 {
|
||
|
debug iter => _25;
|
||
|
let _29: u32;
|
||
|
scope 4 {
|
||
|
debug x => _29;
|
||
|
let _30: usize;
|
||
|
scope 5 {
|
||
|
debug index => _30;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bb0: {
|
||
|
_8 = (_3.1: u32);
|
||
|
_10 = (_3.1: u32);
|
||
|
_11 = (_4.1: u32);
|
||
|
_12 = CheckedAdd(_10, _11);
|
||
|
assert(!move (_12.1: bool), "attempt to compute `{} + {}`, which would overflow", move _10, move _11) -> [success: bb1, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb1: {
|
||
|
_9 = move (_12.0: u32);
|
||
|
_7 = std::ops::Range::<u32> { start: move _8, end: move _9 };
|
||
|
_6 = <std::ops::Range<u32> as IntoIterator>::into_iter(move _7) -> [return: bb2, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb2: {
|
||
|
_13 = move _6;
|
||
|
goto -> bb3;
|
||
|
}
|
||
|
|
||
|
bb3: {
|
||
|
_15 = &mut _13;
|
||
|
_14 = <std::ops::Range<u32> as Iterator>::next(_15) -> [return: bb4, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb4: {
|
||
|
_16 = discriminant(_14);
|
||
|
switchInt(move _16) -> [0: bb6, 1: bb5, otherwise: bb16];
|
||
|
}
|
||
|
|
||
|
bb5: {
|
||
|
_17 = ((_14 as Some).0: u32);
|
||
|
_20 = (_3.0: u32);
|
||
|
_22 = (_3.0: u32);
|
||
|
_23 = (_4.0: u32);
|
||
|
_24 = CheckedAdd(_22, _23);
|
||
|
assert(!move (_24.1: bool), "attempt to compute `{} + {}`, which would overflow", move _22, move _23) -> [success: bb7, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb6: {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
bb7: {
|
||
|
_21 = move (_24.0: u32);
|
||
|
_19 = std::ops::Range::<u32> { start: move _20, end: move _21 };
|
||
|
_18 = <std::ops::Range<u32> as IntoIterator>::into_iter(move _19) -> [return: bb8, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb8: {
|
||
|
_25 = move _18;
|
||
|
goto -> bb9;
|
||
|
}
|
||
|
|
||
|
bb9: {
|
||
|
_27 = &mut _25;
|
||
|
_26 = <std::ops::Range<u32> as Iterator>::next(_27) -> [return: bb10, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb10: {
|
||
|
_28 = discriminant(_26);
|
||
|
switchInt(move _28) -> [0: bb3, 1: bb11, otherwise: bb16];
|
||
|
}
|
||
|
|
||
|
bb11: {
|
||
|
_29 = ((_26 as Some).0: u32);
|
||
|
_32 = _17 as usize (IntToInt);
|
||
|
_34 = (_2.0: u32);
|
||
|
_33 = move _34 as usize (IntToInt);
|
||
|
_35 = CheckedMul(_32, _33);
|
||
|
assert(!move (_35.1: bool), "attempt to compute `{} * {}`, which would overflow", move _32, move _33) -> [success: bb12, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb12: {
|
||
|
_31 = move (_35.0: usize);
|
||
|
_36 = _29 as usize (IntToInt);
|
||
|
_37 = CheckedAdd(_31, _36);
|
||
|
assert(!move (_37.1: bool), "attempt to compute `{} + {}`, which would overflow", move _31, move _36) -> [success: bb13, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb13: {
|
||
|
_30 = move (_37.0: usize);
|
||
|
_38 = <Buffer<'_, DisplayHandle<'_>, WindowHandle<'_>> as DerefMut>::deref_mut(_1) -> [return: bb14, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb14: {
|
||
|
_39 = Len((*_38));
|
||
|
_40 = Lt(_30, _39);
|
||
|
assert(move _40, "index out of bounds: the length is {} but the index is {}", move _39, _30) -> [success: bb15, unwind continue];
|
||
|
}
|
||
|
|
||
|
bb15: {
|
||
|
(*_38)[_30] = _5;
|
||
|
goto -> bb9;
|
||
|
}
|
||
|
|
||
|
bb16: {
|
||
|
unreachable;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn CollisionCheck(_1: HorizontalCollisionCheck, _2: VerticalCollisionCheck) -> CollisionCheck {
|
||
|
let mut _0: game::CollisionCheck;
|
||
|
|
||
|
bb0: {
|
||
|
_0 = CollisionCheck(move _1, move _2);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// MIR FOR CTFE
|
||
|
fn CollisionCheck(_1: HorizontalCollisionCheck, _2: VerticalCollisionCheck) -> CollisionCheck {
|
||
|
let mut _0: game::CollisionCheck;
|
||
|
|
||
|
bb0: {
|
||
|
_0 = CollisionCheck(move _1, move _2);
|
||
|
return;
|
||
|
}
|
||
|
}
|