[INFO] cloning repository https://github.com/Yatekii/reactor [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Yatekii/reactor" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYatekii%2Freactor", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYatekii%2Freactor'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 69903568cf5f360161f1b23e37d929e54a4885c0 [INFO] checking Yatekii/reactor against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYatekii%2Freactor" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Yatekii/reactor on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Yatekii/reactor [INFO] finished tweaking git repo https://github.com/Yatekii/reactor [INFO] tweaked toml for git repo https://github.com/Yatekii/reactor written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/Yatekii/reactor already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded syn v0.15.30 [INFO] [stderr] Downloaded proc-macro2 v0.4.27 [INFO] [stderr] Downloaded unicode-xid v0.1.0 [INFO] [stderr] Downloaded quote v0.6.11 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c14dd5bdac9446b8a72878865aefbcb1a4ad26a479c01ef8989009d37bff141b [INFO] running `Command { std: "docker" "start" "-a" "c14dd5bdac9446b8a72878865aefbcb1a4ad26a479c01ef8989009d37bff141b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c14dd5bdac9446b8a72878865aefbcb1a4ad26a479c01ef8989009d37bff141b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c14dd5bdac9446b8a72878865aefbcb1a4ad26a479c01ef8989009d37bff141b", kill_on_drop: false }` [INFO] [stdout] c14dd5bdac9446b8a72878865aefbcb1a4ad26a479c01ef8989009d37bff141b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 34fd70444b7559b5589e3a9e4c2c759351e4fe8edb24e543cf65fc93f126da98 [INFO] running `Command { std: "docker" "start" "-a" "34fd70444b7559b5589e3a9e4c2c759351e4fe8edb24e543cf65fc93f126da98", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v0.4.27 [INFO] [stderr] Compiling syn v0.15.30 [INFO] [stderr] Compiling unicode-xid v0.1.0 [INFO] [stderr] Checking reactor v0.1.0 (/opt/rustwide/workdir/reactor) [INFO] [stderr] Checking quote v0.6.11 [INFO] [stderr] Checking reactor-derive v0.1.0 (/opt/rustwide/workdir/reactor-derive) [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> reactor-derive/src/lib.rs:70:109 [INFO] [stdout] | [INFO] [stdout] 70 | let t = sub_state.sub_states.iter().map(|sub_state| assemble_from_sub_state(root, sub_state)).collect::<(Vec<_>)>(); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 70 - let t = sub_state.sub_states.iter().map(|sub_state| assemble_from_sub_state(root, sub_state)).collect::<(Vec<_>)>(); [INFO] [stdout] 70 + let t = sub_state.sub_states.iter().map(|sub_state| assemble_from_sub_state(root, sub_state)).collect::>(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> reactor-derive/src/lib.rs:70:109 [INFO] [stdout] | [INFO] [stdout] 70 | let t = sub_state.sub_states.iter().map(|sub_state| assemble_from_sub_state(root, sub_state)).collect::<(Vec<_>)>(); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 70 - let t = sub_state.sub_states.iter().map(|sub_state| assemble_from_sub_state(root, sub_state)).collect::<(Vec<_>)>(); [INFO] [stdout] 70 + let t = sub_state.sub_states.iter().map(|sub_state| assemble_from_sub_state(root, sub_state)).collect::>(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> reactor-derive/src/lib.rs:70:109 [INFO] [stdout] | [INFO] [stdout] 70 | let t = sub_state.sub_states.iter().map(|sub_state| assemble_from_sub_state(root, sub_state)).collect::<(Vec<_>)>(); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 70 - let t = sub_state.sub_states.iter().map(|sub_state| assemble_from_sub_state(root, sub_state)).collect::<(Vec<_>)>(); [INFO] [stdout] 70 + let t = sub_state.sub_states.iter().map(|sub_state| assemble_from_sub_state(root, sub_state)).collect::>(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking example v0.1.0 (/opt/rustwide/workdir/example) [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Outer2", [INFO] [stdout] span: #0 bytes(175..181), [INFO] [stdout] }, [INFO] [stdout] sub_states: [ [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Bla", [INFO] [stdout] span: #0 bytes(197..200), [INFO] [stdout] }, [INFO] [stdout] sub_states: [ [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "A1", [INFO] [stdout] span: #0 bytes(215..217), [INFO] [stdout] }, [INFO] [stdout] sub_states: [], [INFO] [stdout] }, [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "B1", [INFO] [stdout] span: #0 bytes(219..221), [INFO] [stdout] }, [INFO] [stdout] sub_states: [], [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Blo", [INFO] [stdout] span: #0 bytes(247..250), [INFO] [stdout] }, [INFO] [stdout] sub_states: [ [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "D1", [INFO] [stdout] span: #0 bytes(265..267), [INFO] [stdout] }, [INFO] [stdout] sub_states: [], [INFO] [stdout] }, [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "E1", [INFO] [stdout] span: #0 bytes(269..271), [INFO] [stdout] }, [INFO] [stdout] sub_states: [], [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "C1", [INFO] [stdout] span: #0 bytes(292..294), [INFO] [stdout] }, [INFO] [stdout] sub_states: [], [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] } [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Outer2", [INFO] [stdout] span: #0 bytes(175..181), [INFO] [stdout] }, [INFO] [stdout] sub_states: [ [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Bla", [INFO] [stdout] span: #0 bytes(197..200), [INFO] [stdout] }, [INFO] [stdout] sub_states: [ [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "A1", [INFO] [stdout] span: #0 bytes(215..217), [INFO] [stdout] }, [INFO] [stdout] sub_states: [], [INFO] [stdout] }, [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "B1", [INFO] [stdout] span: #0 bytes(219..221), [INFO] [stdout] }, [INFO] [stdout] sub_states: [], [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Blo", [INFO] [stdout] span: #0 bytes(247..250), [INFO] [stdout] }, [INFO] [stdout] sub_states: [ [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "D1", [INFO] [stdout] span: #0 bytes(265..267), [INFO] [stdout] }, [INFO] [stdout] sub_states: [], [INFO] [stdout] }, [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "E1", [INFO] [stdout] span: #0 bytes(269..271), [INFO] [stdout] }, [INFO] [stdout] sub_states: [], [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] SubState { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "C1", [INFO] [stdout] span: #0 bytes(292..294), [INFO] [stdout] }, [INFO] [stdout] sub_states: [], [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] } [INFO] [stdout] #[derive(Copy, Clone, Debug)] enum Outer2 { Bla(Bla), Blo(Blo), C1(C1) } impl [INFO] [stdout] State < Event > for Outer2 where Outer2 : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = Outer2 :: C1(C1 {}); fn [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Outer2 :: Bla(b) => [INFO] [stdout] { [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Outer2 > (); [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] }, Outer2 :: Blo(b) => [INFO] [stdout] { [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Outer2 > (); [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] }, Outer2 :: C1(b) => [INFO] [stdout] { [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Outer2 > (); [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } fn super_enter(& self, level : i32) [INFO] [stdout] { [INFO] [stdout] if level > 0 [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Outer2 :: Bla(b) => { b.super_enter(level - 1) }, Outer2 :: [INFO] [stdout] Blo(b) => { b.super_enter(level - 1) }, Outer2 :: C1(b) => [INFO] [stdout] { b.super_enter(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } else [INFO] [stdout] { [INFO] [stdout] self.enter(); match self [INFO] [stdout] { [INFO] [stdout] Outer2 :: Bla(b) => { b.super_enter(level - 1) }, Outer2 :: [INFO] [stdout] Blo(b) => { b.super_enter(level - 1) }, Outer2 :: C1(b) => [INFO] [stdout] { b.super_enter(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } fn super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] Event >> :: State > [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Outer2 :: Bla(b) => [INFO] [stdout] { [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] { [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] self.handle(event), [INFO] [stdout] } [INFO] [stdout] }, Outer2 :: Blo(b) => [INFO] [stdout] { [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] { [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] self.handle(event), [INFO] [stdout] } [INFO] [stdout] }, Outer2 :: C1(b) => [INFO] [stdout] { [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] { [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] self.handle(event), [INFO] [stdout] } [INFO] [stdout] #[derive(Copy, Clone, Debug)] enum Outer2 { Bla(Bla), Blo(Blo), C1(C1) } impl [INFO] [stdout] State < Event > for Outer2 where Outer2 : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = Outer2 :: C1(C1 {}); fn [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Outer2 :: Bla(b) => [INFO] [stdout] { [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Outer2 > (); [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] }, Outer2 :: Blo(b) => [INFO] [stdout] { [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Outer2 > (); [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] }, Outer2 :: C1(b) => [INFO] [stdout] { [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Outer2 > (); [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } fn super_enter(& self, level : i32) [INFO] [stdout] { [INFO] [stdout] if level > 0 [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Outer2 :: Bla(b) => { b.super_enter(level - 1) }, Outer2 :: [INFO] [stdout] Blo(b) => { b.super_enter(level - 1) }, Outer2 :: C1(b) => [INFO] [stdout] { b.super_enter(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } else [INFO] [stdout] { [INFO] [stdout] self.enter(); match self [INFO] [stdout] { [INFO] [stdout] Outer2 :: Bla(b) => { b.super_enter(level - 1) }, Outer2 :: [INFO] [stdout] Blo(b) => { b.super_enter(level - 1) }, Outer2 :: C1(b) => [INFO] [stdout] { b.super_enter(level - 1) }, [INFO] [stdout] } [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } fn super_exit(& self, level : i32) [INFO] [stdout] { [INFO] [stdout] if level > 0 [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Outer2 :: Bla(b) => { b.super_exit(level - 1) }, Outer2 :: [INFO] [stdout] Blo(b) => { b.super_exit(level - 1) }, Outer2 :: C1(b) => [INFO] [stdout] { b.super_exit(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } else [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Outer2 :: Bla(b) => { b.super_exit(level - 1) }, Outer2 :: [INFO] [stdout] } [INFO] [stdout] } fn super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] Event >> :: State > [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Blo(b) => { b.super_exit(level - 1) }, Outer2 :: C1(b) => [INFO] [stdout] { b.super_exit(level - 1) }, [INFO] [stdout] } self.exit(); [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } #[derive(Copy, Clone, Debug)] enum Bla { A1(A1), B1(B1) } impl State < Event [INFO] [stdout] > for Bla where Bla : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = Bla :: B1(B1 {}); fn [INFO] [stdout] Outer2 :: Bla(b) => [INFO] [stdout] { [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] { [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Bla :: A1(b) => [INFO] [stdout] { [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Bla > (); [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] }, Bla :: B1(b) => [INFO] [stdout] { [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Bla > (); [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] }, [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] } [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] self.handle(event), [INFO] [stdout] } fn super_enter(& self, level : i32) [INFO] [stdout] { [INFO] [stdout] } [INFO] [stdout] if level > 0 [INFO] [stdout] { [INFO] [stdout] }, Outer2 :: Blo(b) => [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Bla :: A1(b) => { b.super_enter(level - 1) }, Bla :: B1(b) => [INFO] [stdout] { b.super_enter(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } else [INFO] [stdout] { [INFO] [stdout] self.enter(); match self [INFO] [stdout] { [INFO] [stdout] Bla :: A1(b) => { b.super_enter(level - 1) }, Bla :: B1(b) => [INFO] [stdout] { b.super_enter(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } fn super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] Event >> :: State > [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] { [INFO] [stdout] Bla :: A1(b) => [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] { [INFO] [stdout] { [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] { [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] self.handle(event), [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] } [INFO] [stdout] }, Outer2 :: C1(b) => [INFO] [stdout] self.handle(event), [INFO] [stdout] { [INFO] [stdout] } [INFO] [stdout] }, Bla :: B1(b) => [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] { [INFO] [stdout] { [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] { [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] self.handle(event), [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] self.handle(event), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] }, [INFO] [stdout] } fn super_exit(& self, level : i32) [INFO] [stdout] { [INFO] [stdout] if level > 0 [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Outer2 :: Bla(b) => { b.super_exit(level - 1) }, Outer2 :: [INFO] [stdout] Blo(b) => { b.super_exit(level - 1) }, Outer2 :: C1(b) => [INFO] [stdout] { b.super_exit(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } fn super_exit(& self, level : i32) [INFO] [stdout] { [INFO] [stdout] if level > 0 [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Bla :: A1(b) => { b.super_exit(level - 1) }, Bla :: B1(b) => [INFO] [stdout] } else [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Outer2 :: Bla(b) => { b.super_exit(level - 1) }, Outer2 :: [INFO] [stdout] Blo(b) => { b.super_exit(level - 1) }, Outer2 :: C1(b) => [INFO] [stdout] { b.super_exit(level - 1) }, [INFO] [stdout] } self.exit(); [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } #[derive(Copy, Clone, Debug)] enum Bla { A1(A1), B1(B1) } impl State < Event [INFO] [stdout] > for Bla where Bla : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = Bla :: B1(B1 {}); fn [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Bla :: A1(b) => [INFO] [stdout] { [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Bla > (); [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] { b.super_exit(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } else [INFO] [stdout] { [INFO] [stdout] }, Bla :: B1(b) => [INFO] [stdout] { [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Bla > (); [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } fn super_enter(& self, level : i32) [INFO] [stdout] { [INFO] [stdout] if level > 0 [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Bla :: A1(b) => { b.super_exit(level - 1) }, Bla :: B1(b) => [INFO] [stdout] Bla :: A1(b) => { b.super_enter(level - 1) }, Bla :: B1(b) => [INFO] [stdout] { b.super_enter(level - 1) }, [INFO] [stdout] { b.super_exit(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } self.exit(); [INFO] [stdout] } [INFO] [stdout] } else [INFO] [stdout] } [INFO] [stdout] { [INFO] [stdout] } #[derive(Copy, Clone, Debug)] struct A1(); impl State < Event > for A1 where [INFO] [stdout] self.enter(); match self [INFO] [stdout] A1 : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] { [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = A1 {}; fn [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] Bla :: A1(b) => { b.super_enter(level - 1) }, Bla :: B1(b) => [INFO] [stdout] { levels [ptr] = core :: any :: TypeId :: of :: < A1 > (); } fn [INFO] [stdout] { b.super_enter(level - 1) }, [INFO] [stdout] super_enter(& self, level : i32) { self.enter() } fn [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] } fn super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] Event >> :: State > { self.handle(event) } fn [INFO] [stdout] Event >> :: State > [INFO] [stdout] super_exit(& self, level : i32) { self.exit() } [INFO] [stdout] { [INFO] [stdout] } #[derive(Copy, Clone, Debug)] struct B1(); impl State < Event > for B1 where [INFO] [stdout] match self [INFO] [stdout] B1 : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] { [INFO] [stdout] Bla :: A1(b) => [INFO] [stdout] { [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] { [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] self.handle(event), [INFO] [stdout] } [INFO] [stdout] }, Bla :: B1(b) => [INFO] [stdout] { [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] { [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] self.handle(event), [INFO] [stdout] } [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } fn super_exit(& self, level : i32) [INFO] [stdout] { [INFO] [stdout] if level > 0 [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = B1 {}; fn [INFO] [stdout] Bla :: A1(b) => { b.super_exit(level - 1) }, Bla :: B1(b) => [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] { b.super_exit(level - 1) }, [INFO] [stdout] { levels [ptr] = core :: any :: TypeId :: of :: < B1 > (); } fn [INFO] [stdout] } [INFO] [stdout] super_enter(& self, level : i32) { self.enter() } fn [INFO] [stdout] } else [INFO] [stdout] super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] { [INFO] [stdout] Event >> :: State > { self.handle(event) } fn [INFO] [stdout] match self [INFO] [stdout] super_exit(& self, level : i32) { self.exit() } [INFO] [stdout] { [INFO] [stdout] } #[derive(Copy, Clone, Debug)] enum Blo { D1(D1), E1(E1) } impl State < Event [INFO] [stdout] Bla :: A1(b) => { b.super_exit(level - 1) }, Bla :: B1(b) => [INFO] [stdout] > for Blo where Blo : reactor :: base :: Actor < Event > [INFO] [stdout] { b.super_exit(level - 1) }, [INFO] [stdout] { [INFO] [stdout] } self.exit(); [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = Blo :: E1(E1 {}); fn [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] { [INFO] [stdout] } #[derive(Copy, Clone, Debug)] struct A1(); impl State < Event > for A1 where [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Blo :: D1(b) => [INFO] [stdout] { [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Blo > (); [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] }, Blo :: E1(b) => [INFO] [stdout] { [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Blo > (); [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } fn super_enter(& self, level : i32) [INFO] [stdout] { [INFO] [stdout] if level > 0 [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Blo :: D1(b) => { b.super_enter(level - 1) }, Blo :: E1(b) => [INFO] [stdout] { b.super_enter(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } else [INFO] [stdout] { [INFO] [stdout] self.enter(); match self [INFO] [stdout] A1 : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] Blo :: D1(b) => { b.super_enter(level - 1) }, Blo :: E1(b) => [INFO] [stdout] { [INFO] [stdout] { b.super_enter(level - 1) }, [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = A1 {}; fn [INFO] [stdout] } [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] } [INFO] [stdout] { levels [ptr] = core :: any :: TypeId :: of :: < A1 > (); } fn [INFO] [stdout] } fn super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] Event >> :: State > [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] super_enter(& self, level : i32) { self.enter() } fn [INFO] [stdout] super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] Event >> :: State > { self.handle(event) } fn [INFO] [stdout] super_exit(& self, level : i32) { self.exit() } [INFO] [stdout] } #[derive(Copy, Clone, Debug)] struct B1(); impl State < Event > for B1 where [INFO] [stdout] B1 : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = B1 {}; fn [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] { levels [ptr] = core :: any :: TypeId :: of :: < B1 > (); } fn [INFO] [stdout] super_enter(& self, level : i32) { self.enter() } fn [INFO] [stdout] super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] Event >> :: State > { self.handle(event) } fn [INFO] [stdout] super_exit(& self, level : i32) { self.exit() } [INFO] [stdout] } #[derive(Copy, Clone, Debug)] enum Blo { D1(D1), E1(E1) } impl State < Event [INFO] [stdout] > for Blo where Blo : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = Blo :: E1(E1 {}); fn [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Blo :: D1(b) => [INFO] [stdout] { [INFO] [stdout] Blo :: D1(b) => [INFO] [stdout] { [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] { [INFO] [stdout] { [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Blo > (); [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] }, Blo :: E1(b) => [INFO] [stdout] { [INFO] [stdout] levels [ptr] = core :: any :: TypeId :: of :: < Blo > (); [INFO] [stdout] b.get_levels(levels, ptr + 1); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } fn super_enter(& self, level : i32) [INFO] [stdout] { [INFO] [stdout] if level > 0 [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Blo :: D1(b) => { b.super_enter(level - 1) }, Blo :: E1(b) => [INFO] [stdout] { b.super_enter(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } else [INFO] [stdout] { [INFO] [stdout] self.enter(); match self [INFO] [stdout] { [INFO] [stdout] Blo :: D1(b) => { b.super_enter(level - 1) }, Blo :: E1(b) => [INFO] [stdout] { b.super_enter(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } fn super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] Event >> :: State > [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Blo :: D1(b) => [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] self.handle(event), [INFO] [stdout] } [INFO] [stdout] }, Blo :: E1(b) => [INFO] [stdout] { [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] { [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] self.handle(event), [INFO] [stdout] } [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } fn super_exit(& self, level : i32) [INFO] [stdout] { [INFO] [stdout] if level > 0 [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Blo :: D1(b) => { b.super_exit(level - 1) }, Blo :: E1(b) => [INFO] [stdout] { b.super_exit(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } else [INFO] [stdout] { [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] { [INFO] [stdout] Blo :: D1(b) => { b.super_exit(level - 1) }, Blo :: E1(b) => [INFO] [stdout] { b.super_exit(level - 1) }, [INFO] [stdout] } self.exit(); [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } #[derive(Copy, Clone, Debug)] struct D1(); impl State < Event > for D1 where [INFO] [stdout] D1 : reactor :: base :: Actor < Event > [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] { [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] self.handle(event), [INFO] [stdout] } [INFO] [stdout] { [INFO] [stdout] }, Blo :: E1(b) => [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = D1 {}; fn [INFO] [stdout] { [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] match b.super_handle(event.clone()) [INFO] [stdout] { levels [ptr] = core :: any :: TypeId :: of :: < D1 > (); } fn [INFO] [stdout] { [INFO] [stdout] super_enter(& self, level : i32) { self.enter() } fn [INFO] [stdout] EventResult :: Handled => EventResult :: Handled, [INFO] [stdout] super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] EventResult :: Transition(t) => EventResult :: [INFO] [stdout] Event >> :: State > { self.handle(event) } fn [INFO] [stdout] Transition(t), EventResult :: NotHandled => [INFO] [stdout] self.handle(event), [INFO] [stdout] super_exit(& self, level : i32) { self.exit() } [INFO] [stdout] } [INFO] [stdout] }, [INFO] [stdout] } #[derive(Copy, Clone, Debug)] struct E1(); impl State < Event > for E1 where [INFO] [stdout] E1 : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] } [INFO] [stdout] } fn super_exit(& self, level : i32) [INFO] [stdout] { [INFO] [stdout] if level > 0 [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = E1 {}; fn [INFO] [stdout] { [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] Blo :: D1(b) => { b.super_exit(level - 1) }, Blo :: E1(b) => [INFO] [stdout] { b.super_exit(level - 1) }, [INFO] [stdout] } [INFO] [stdout] } else [INFO] [stdout] { levels [ptr] = core :: any :: TypeId :: of :: < E1 > (); } fn [INFO] [stdout] { [INFO] [stdout] super_enter(& self, level : i32) { self.enter() } fn [INFO] [stdout] match self [INFO] [stdout] { [INFO] [stdout] super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] Event >> :: State > { self.handle(event) } fn [INFO] [stdout] Blo :: D1(b) => { b.super_exit(level - 1) }, Blo :: E1(b) => [INFO] [stdout] super_exit(& self, level : i32) { self.exit() } [INFO] [stdout] { b.super_exit(level - 1) }, [INFO] [stdout] } #[derive(Copy, Clone, Debug)] struct C1(); impl State < Event > for C1 where [INFO] [stdout] C1 : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] } self.exit(); [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } #[derive(Copy, Clone, Debug)] struct D1(); impl State < Event > for D1 where [INFO] [stdout] D1 : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = D1 {}; fn [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] { levels [ptr] = core :: any :: TypeId :: of :: < D1 > (); } fn [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = C1 {}; fn [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] super_enter(& self, level : i32) { self.enter() } fn [INFO] [stdout] super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] Event >> :: State > { self.handle(event) } fn [INFO] [stdout] super_exit(& self, level : i32) { self.exit() } [INFO] [stdout] } #[derive(Copy, Clone, Debug)] struct E1(); impl State < Event > for E1 where [INFO] [stdout] E1 : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = E1 {}; fn [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] { levels [ptr] = core :: any :: TypeId :: of :: < E1 > (); } fn [INFO] [stdout] super_enter(& self, level : i32) { self.enter() } fn [INFO] [stdout] super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] Event >> :: State > { self.handle(event) } fn [INFO] [stdout] super_exit(& self, level : i32) { self.exit() } [INFO] [stdout] { levels [ptr] = core :: any :: TypeId :: of :: < C1 > (); } fn [INFO] [stdout] } #[derive(Copy, Clone, Debug)] struct C1(); impl State < Event > for C1 where [INFO] [stdout] super_enter(& self, level : i32) { self.enter() } fn [INFO] [stdout] C1 : reactor :: base :: Actor < Event > [INFO] [stdout] { [INFO] [stdout] super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] type State = Outer2; const INITIAL_STATE : Self = C1 {}; fn [INFO] [stdout] Event >> :: State > { self.handle(event) } fn [INFO] [stdout] get_levels(& self, levels : & mut [core :: any :: TypeId], ptr : usize) [INFO] [stdout] super_exit(& self, level : i32) { self.exit() } [INFO] [stdout] } #[derive(Debug)] pub struct Reactor { state : Outer2, } const [INFO] [stdout] { levels [ptr] = core :: any :: TypeId :: of :: < C1 > (); } fn [INFO] [stdout] REACTOR_MAX_LEVELS : usize = 3usize; impl React < Event > for Reactor [INFO] [stdout] { [INFO] [stdout] super_enter(& self, level : i32) { self.enter() } fn [INFO] [stdout] fn new() -> Self [INFO] [stdout] super_handle(& self, event : Event) -> EventResult << Self as State < [INFO] [stdout] { [INFO] [stdout] let reactor = Self { state : Outer2 :: INITIAL_STATE, }; [INFO] [stdout] Event >> :: State > { self.handle(event) } fn [INFO] [stdout] reactor.state.super_enter(0); reactor [INFO] [stdout] } fn react(& mut self, event : Event) [INFO] [stdout] { [INFO] [stdout] super_exit(& self, level : i32) { self.exit() } [INFO] [stdout] match self.state.super_handle(event) [INFO] [stdout] { [INFO] [stdout] } #[derive(Debug)] pub struct Reactor { state : Outer2, } const [INFO] [stdout] EventResult :: Transition(new_state) => [INFO] [stdout] REACTOR_MAX_LEVELS : usize = 3usize; impl React < Event > for Reactor [INFO] [stdout] { [INFO] [stdout] { [INFO] [stdout] fn new() -> Self [INFO] [stdout] { [INFO] [stdout] let reactor = Self { state : Outer2 :: INITIAL_STATE, }; [INFO] [stdout] let levels_new = & mut [INFO] [stdout] [core :: any :: TypeId :: of :: < bool > (); [INFO] [stdout] REACTOR_MAX_LEVELS]; let levels_old = & mut [INFO] [stdout] [core :: any :: TypeId :: of :: < bool > (); [INFO] [stdout] REACTOR_MAX_LEVELS]; new_state.get_levels(levels_new, 0); [INFO] [stdout] self.state.get_levels(levels_old, 0); let mut i = 0; while i < [INFO] [stdout] REACTOR_MAX_LEVELS [INFO] [stdout] { if levels_new [i] != levels_old [i] { break; } i += 1; } [INFO] [stdout] println! ("Moving {:?} -> {:?}", self, new_state); [INFO] [stdout] reactor.state.super_enter(0); reactor [INFO] [stdout] } fn react(& mut self, event : Event) [INFO] [stdout] { [INFO] [stdout] match self.state.super_handle(event) [INFO] [stdout] { [INFO] [stdout] EventResult :: Transition(new_state) => [INFO] [stdout] { [INFO] [stdout] let levels_new = & mut [INFO] [stdout] self.state.super_exit(i as i32); self.state = new_state; [INFO] [stdout] [core :: any :: TypeId :: of :: < bool > (); [INFO] [stdout] self.state.super_enter(i as i32); [INFO] [stdout] REACTOR_MAX_LEVELS]; let levels_old = & mut [INFO] [stdout] } _ => {}, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] [core :: any :: TypeId :: of :: < bool > (); [INFO] [stdout] } [INFO] [stdout] REACTOR_MAX_LEVELS]; new_state.get_levels(levels_new, 0); [INFO] [stdout] self.state.get_levels(levels_old, 0); let mut i = 0; while i < [INFO] [stdout] REACTOR_MAX_LEVELS [INFO] [stdout] { if levels_new [i] != levels_old [i] { break; } i += 1; } [INFO] [stdout] println! ("Moving {:?} -> {:?}", self, new_state); [INFO] [stdout] self.state.super_exit(i as i32); self.state = new_state; [INFO] [stdout] self.state.super_enter(i as i32); [INFO] [stdout] } _ => {}, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.92s [INFO] running `Command { std: "docker" "inspect" "34fd70444b7559b5589e3a9e4c2c759351e4fe8edb24e543cf65fc93f126da98", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "34fd70444b7559b5589e3a9e4c2c759351e4fe8edb24e543cf65fc93f126da98", kill_on_drop: false }` [INFO] [stdout] 34fd70444b7559b5589e3a9e4c2c759351e4fe8edb24e543cf65fc93f126da98