From d1da81afd9718a8a6170f3c54decd8bdfc4a0cdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Fri, 6 Mar 2020 18:38:06 +0100 Subject: [PATCH] Improve AbstractIterableParser to return correct node if empty iterable --- src/main/kotlin/dsl/ast/parser/AbstractIterableParser.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/dsl/ast/parser/AbstractIterableParser.kt b/src/main/kotlin/dsl/ast/parser/AbstractIterableParser.kt index 6f0a3e3..47dd51a 100644 --- a/src/main/kotlin/dsl/ast/parser/AbstractIterableParser.kt +++ b/src/main/kotlin/dsl/ast/parser/AbstractIterableParser.kt @@ -13,7 +13,7 @@ abstract class AbstractIterableParser( private val createNode: (List, TokenPosition) -> Node ) : Parser() { override fun tryToParse(input: TokenList): ParserOutput { - val emptyIterableParser = allOf(listOf(terminal(beginTokenType), terminal(endTokenType))) { object : Node(0, it[0].position) {} } + val emptyIterableParser = allOf(listOf(terminal(beginTokenType), terminal(endTokenType))) { createNode(listOf(), it[0].position) } val nonEmptyIterableParser = allOf( listOf(terminal(beginTokenType), @@ -29,7 +29,7 @@ abstract class AbstractIterableParser( object : Node(listOf(list[0]) + list[1].children, TokenPosition.NONE) {} }, terminal(endTokenType) ) - ) { createNode(it[1].children.toList() as List, it[0].position) } + ) { createNode(it[1].children.toList(), it[0].position) } return oneOf( listOf(