From 61919c5e8eb0e8fc496a1f663e0b1aedd4ee1f95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuczborski?= Date: Fri, 9 Apr 2021 23:21:46 +0200 Subject: [PATCH] PR fixes --- CHANGELOG.md | 3 +++ Sources/Variable.swift | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0d6a05..0ae78a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,9 @@ _None_ - Throw syntax error on empty variable tags (`{{ }}`) instead `fatalError`. [Ilya Puchka](https://github.com/ilyapuchka) [#263](https://github.com/stencilproject/Stencil/pull/263) +- Fix for crashing range indexes when variable length is 1. + [Ɓukasz Kuczborski](https://github.com/lkuczborski) + [#306](https://github.com/stencilproject/Stencil/pull/306) ### Internal Changes diff --git a/Sources/Variable.swift b/Sources/Variable.swift index 9d47651..b0180b1 100644 --- a/Sources/Variable.swift +++ b/Sources/Variable.swift @@ -48,10 +48,11 @@ public struct Variable: Equatable, Resolvable { /// Resolve the variable in the given context public func resolve(_ context: Context) throws -> Any? { - if (variable.hasPrefix("'") && variable.hasSuffix("'")) || (variable.hasPrefix("\"") && variable.hasSuffix("\"")) { + if variable.count > 1 && (variable.hasPrefix("'") && variable.hasSuffix("'")) || (variable.hasPrefix("\"") && variable.hasSuffix("\"")) { // String literal - guard variable.count > 1 else { return "" } return String(variable[variable.index(after: variable.startIndex) ..< variable.index(before: variable.endIndex)]) + } else { + return "" } // Number literal