From 6cc35ad6777d4ebc04df42ef100de5b6eabfa3a9 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Fri, 10 Nov 2017 17:40:41 -0800 Subject: [PATCH] [Swift] Remove pointless do block from LexerATNSimulator. Remove pointless do block from LexerATNSimulator. This is a translation from Java of a try/finally block, but we have the finally clause in a defer block so we don't need the do block. --- .../Antlr4/atn/LexerATNSimulator.swift | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/runtime/Swift/Sources/Antlr4/atn/LexerATNSimulator.swift b/runtime/Swift/Sources/Antlr4/atn/LexerATNSimulator.swift index a057aab44..9875fb3aa 100644 --- a/runtime/Swift/Sources/Antlr4/atn/LexerATNSimulator.swift +++ b/runtime/Swift/Sources/Antlr4/atn/LexerATNSimulator.swift @@ -114,24 +114,23 @@ open class LexerATNSimulator: ATNSimulator { open func match(_ input: CharStream, _ mode: Int) throws -> Int { LexerATNSimulator.match_calls += 1 + self.mode = mode var mark = input.mark() - do { - self.startIndex = input.index() - self.prevAccept.reset() - var dfa = decisionToDFA[mode] - defer { - try! input.release(mark) - } - - if dfa.s0 == nil { - return try matchATN(input) - } else { - return try execATN(input, dfa.s0!) - } + defer { + try! input.release(mark) } + self.startIndex = input.index() + self.prevAccept.reset() + let dfa = decisionToDFA[mode] + if let s0 = dfa.s0 { + return try execATN(input, s0) + } + else { + return try matchATN(input) + } } override