diff --git a/libraries/stdlib/src/kotlin/Lists.kt b/libraries/stdlib/src/kotlin/Lists.kt index e9db3773177..8c4c0dabac1 100644 --- a/libraries/stdlib/src/kotlin/Lists.kt +++ b/libraries/stdlib/src/kotlin/Lists.kt @@ -67,3 +67,16 @@ public inline fun List.reduceRight(operation: (T, T) -> T) : T { return r } + +/** + * Returns a original Iterable containing all the non-*null* elements, throwing an [[IllegalArgumentException]] if there are any null elements + */ +public inline fun List.requireNoNulls() : List { + for (element in this) { + if (element == null) { + throw IllegalArgumentException("null element found in $this") + } + } + return this as List +} + diff --git a/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDocConfig.kt b/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDocConfig.kt index 21722f99a0d..eebe743f7a9 100644 --- a/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDocConfig.kt +++ b/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDocConfig.kt @@ -1,7 +1,6 @@ package org.jetbrains.kotlin.doc import java.util.* -import org.jetbrains.kotlin.doc.model.KPackage /** * The configuration used with KDoc @@ -114,7 +113,7 @@ class KDocConfig() { private class LongestFirstStringComparator() : Comparator { public override fun compare(s1: String, s2: String): Int { - return compareBy(s1, s2, { length() }, { this }) + return compareBy(s1, s2, { length() }, { this }) } public override fun equals(obj : Any?) : Boolean { diff --git a/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KModelCompilerPlugin.kt b/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KModelCompilerPlugin.kt index 840518bba46..a8b91d4c1b6 100644 --- a/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KModelCompilerPlugin.kt +++ b/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KModelCompilerPlugin.kt @@ -3,7 +3,6 @@ package org.jetbrains.kotlin.doc.model import java.io.File import org.jetbrains.jet.cli.common.CompilerPlugin import org.jetbrains.jet.cli.common.CompilerPluginContext -import org.jetbrains.kotlin.doc.KDocArguments /** Base class for any compiler plugin which needs to process a KModel */ abstract class KModelCompilerPlugin( @@ -17,7 +16,7 @@ abstract class KModelCompilerPlugin( val bindingContext = context.getContext() val sources = context.getFiles() val sourceDirs: List = arguments.getSourceDirs().orEmpty().requireNoNulls().map { path -> File(path) } - val model = KModel(bindingContext, arguments.apply(), sourceDirs, sources.orEmpty().requireNoNulls()) + val model = KModel(bindingContext, arguments.apply(), sourceDirs, sources.requireNoNulls()) processModel(model) }