         self.atnStartState = atnStartState
         self.decision = decision
 
-        var precedenceDfa: Bool = false
-        if atnStartState is StarLoopEntryState {
-            if (atnStartState as! StarLoopEntryState).precedenceRuleDecision {
-                precedenceDfa = true
-                let precedenceState: DFAState = DFAState(ATNConfigSet())
-                precedenceState.edges = [DFAState]() //new DFAState[0];
-                precedenceState.isAcceptState = false
-                precedenceState.requiresFullContext = false
-                self.s0 = precedenceState
-            }
+        if let starLoopState = atnStartState as? StarLoopEntryState, starLoopState.precedenceRuleDecision {
+            let precedenceState = DFAState(ATNConfigSet())
+            precedenceState.edges = [DFAState]()
+            precedenceState.isAcceptState = false
+            precedenceState.requiresFullContext = false
+
+            precedenceDfa = true
+            s0 = precedenceState
         }
-
-        self.precedenceDfa = precedenceDfa
+        else {
+            precedenceDfa = false
+            s0 = nil
+        }
     }
 
     /// 

    /// `true` if this DFA is for a precedence decision; otherwise,
    /// `false`. This is the backing field for _#isPrecedenceDfa_.
    /// 
    private final var precedenceDfa: Bool
    
    /// 
    /// mutex for DFAState changes.

        }
    }

    ///
    /// Return a list of all states in this DFA, ordered by state number.
    /// 
    public func getStates() -> Array<DFAState> {
