fixed iterating over template lines on linux

This commit is contained in:
Ilya Puchka
2017-10-08 01:53:41 +02:00
parent 97ab3cf31d
commit 5878c323a2
3 changed files with 9 additions and 7 deletions

View File

@@ -87,7 +87,7 @@ class ForNode : NodeType {
var values: [Any]
if let dictionary = resolved as? [String: Any], !dictionary.isEmpty {
values = dictionary.map { ($0.key, $0.value) }
values = dictionary.map { ($0.key, $0.value) } as [(String, Any)]
} else if let array = resolved as? [Any] {
values = array
} else if let range = resolved as? CountableClosedRange<Int> {

View File

@@ -1,3 +1,5 @@
import Foundation
struct Lexer {
let templateString: String
@@ -58,16 +60,17 @@ struct Lexer {
var lineNumber: Int = 0
var offset = 0
var lineContent = ""
templateString.enumerateLines { (line, stop) in
for line in templateString.components(separatedBy: CharacterSet.newlines) {
lineNumber += 1
lineContent = line
if let rangeOfLine = self.templateString.range(of: line), rangeOfLine.contains(lexeme.range.lowerBound) {
offset = self.templateString.distance(from: rangeOfLine.lowerBound, to:
if let rangeOfLine = templateString.range(of: line), rangeOfLine.contains(lexeme.range.lowerBound) {
offset = templateString.distance(from: rangeOfLine.lowerBound, to:
lexeme.range.lowerBound)
stop = true
break
}
}
return (lineContent, lineNumber, offset)
}

View File

@@ -39,7 +39,6 @@ func testEnvironment() {
error.lexeme = Token.block(value: token, at: template.templateString.range(of: token)!)
let context = ErrorReporterContext(template: template)
error = environment.errorReporter.contextAwareError(error, context: context) as! TemplateSyntaxError
print(error)
return error
}