From 562788ceb95887d17bd56016d943558a170e40ac Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Wed, 20 May 2020 17:35:22 +0300 Subject: [PATCH] stdlib-gen: allow template function sequences --- .../kotlin-stdlib-gen/src/templates/dsl/TemplateGroups.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/TemplateGroups.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/TemplateGroups.kt index fbae43c8e11..d914817dea8 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/TemplateGroups.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/TemplateGroups.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -26,6 +26,9 @@ abstract class TemplateGroupBase : TemplateGroup { it.returnType.isSubtypeOf(typeIterableOfMemberTemplates) -> @Suppress("UNCHECKED_CAST") yieldAll(it.call(this) as Iterable) + it.returnType.isSubtypeOf(typeSequenceOfMemberTemplates) -> + @Suppress("UNCHECKED_CAST") + yieldAll(it.call(this) as Sequence) else -> error("Member $it violates naming convention") } @@ -44,6 +47,7 @@ abstract class TemplateGroupBase : TemplateGroup { companion object { private val typeMemberTemplate = MemberTemplate::class.createType() private val typeIterableOfMemberTemplates = Iterable::class.createType(arguments = listOf(KTypeProjection.invariant(typeMemberTemplate))) + private val typeSequenceOfMemberTemplates = Sequence::class.createType(arguments = listOf(KTypeProjection.invariant(typeMemberTemplate))) } } \ No newline at end of file