From 0f7964206bd8dbc70f5a30fed0b1db76bfcc1b24 Mon Sep 17 00:00:00 2001 From: Christopher Fuller Date: Fri, 19 Nov 2021 11:37:15 -0800 Subject: [PATCH] Throw error when recursion is detected in transition (#47) * Use Xcode 12.5.1 * Throw error when recursion is detected in transition * Add test for recursion detected error --- Swift/Sources/StateMachine/StateMachine.swift | 11 ++++++++++ .../StateMachineTests/StateMachineTests.swift | 22 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/Swift/Sources/StateMachine/StateMachine.swift b/Swift/Sources/StateMachine/StateMachine.swift index a213f4d..eb2faca 100644 --- a/Swift/Sources/StateMachine/StateMachine.swift +++ b/Swift/Sources/StateMachine/StateMachine.swift @@ -27,6 +27,11 @@ open class StateMachine Definition) { let definition: Definition = build() state = definition.initialState.state @@ -86,6 +93,8 @@ open class StateMachine Transition.Valid { + guard !isNotifying + else { throw StateMachineError.recursionDetected } let result: Transition.Result defer { notify(result) } do { @@ -111,6 +120,8 @@ open class StateMachine