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 fa6935c3461..0561dbf6e90 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 @@ -27,12 +27,13 @@ class KDocConfig() { * Returns a map of the package prefix to the HTML URL for the root of the apidoc using javadoc/kdoc style * directory layouts so that this API doc report can link to external packages */ - public val packagePrefixToUrls: Map = TreeMap(LongestFirstStringComparator()) + private val mutablePackagePrefixToUrls: MutableMap = TreeMap(LongestFirstStringComparator()) + public val packagePrefixToUrls: Map = mutablePackagePrefixToUrls /** * Returns a Set of the package name prefixes to ignore from the KDoc report */ - public val ignorePackages: Set = HashSet() + public val ignorePackages: MutableSet = HashSet() /** * Returns true if a warning should be generated if there are no comments @@ -75,14 +76,15 @@ class KDocConfig() { /** * Returns a set of all the package which have been warned that were missing an external URL */ - public val missingPackageUrls: Set = TreeSet() + private val mutableMissingPackageUrls: MutableSet = TreeSet() + public val missingPackageUrls: Set = mutableMissingPackageUrls /** * Adds one or more package prefixes to the given javadoc URL */ fun addPackageLink(url: String, vararg packagePrefixes: String): Unit { for (p in packagePrefixes) { - packagePrefixToUrls.put(p, url) + mutablePackagePrefixToUrls.put(p, url) } } @@ -97,7 +99,7 @@ class KDocConfig() { return url } } - if (warn && missingPackageUrls.add(packageName)) { + if (warn && mutableMissingPackageUrls.add(packageName)) { println("Warning: could not find external link to package: $packageName") } return "" diff --git a/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KotlinModel.kt b/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KotlinModel.kt index e8fe23211b1..07a32e5fdba 100644 --- a/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KotlinModel.kt +++ b/libraries/tools/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KotlinModel.kt @@ -438,7 +438,7 @@ class KModel(val context: BindingContext, val config: KDocConfig, val sourceDirs return null } - fun addTypeParameters(answer: List, descriptors: List): Unit { + fun addTypeParameters(answer: MutableList, descriptors: List): Unit { for (typeParam in descriptors) { if (typeParam != null) { val p = createTypeParameter(typeParam) @@ -1045,7 +1045,7 @@ class KPackage(model: KModel, val descriptor: NamespaceDescriptor, fun packageProperties() = properties.filter{ it.extensionClass == null && it.isPublic() } } -class KType(val jetType: JetType, model: KModel, val klass: KClass?, val arguments: List = ArrayList()) +class KType(val jetType: JetType, model: KModel, val klass: KClass?, val arguments: MutableList = ArrayList()) : KNamed(klass?.name ?: jetType.toString().sure(), model, jetType.getConstructor().getDeclarationDescriptor().sure()) { { if (klass != null) { @@ -1056,7 +1056,7 @@ class KType(val jetType: JetType, model: KModel, val klass: KClass?, val argumen val argJetType = arg.getType() val t = model.getType(argJetType) if (t != null) { - $arguments.add(t) + arguments.add(t) } } } @@ -1077,10 +1077,10 @@ class KClass( val simpleName = descriptor.getName().getName() var group: String = "Other" var annotations: List = arrayList() - var typeParameters: List = arrayList() + var typeParameters: MutableList = arrayList() var since: String = "" var authors: List = arrayList() - var baseClasses: List = arrayList() + var baseClasses: MutableList = arrayList() var nestedClasses: List = arrayList() public override fun compareTo(other: KClass): Int = name.compareTo(other.name) @@ -1143,7 +1143,7 @@ class KClass( fun isInterface() = kind == "interface" /** Returns all of the base classes and all of their descendants */ - fun descendants(answer: Set = LinkedHashSet()): Set { + fun descendants(answer: MutableSet = LinkedHashSet()): Set { for (b in baseClasses) { val c = b.klass if (c != null) { @@ -1161,7 +1161,7 @@ class KFunction(val descriptor: CallableDescriptor, val owner: KClassOrPackage, var receiverType: KType? = null, var extensionClass: KClass? = null, var modifiers: List = arrayList(), - var typeParameters: List = arrayList(), + var typeParameters: MutableList = arrayList(), var exceptions: List = arrayList(), var annotations: List = arrayList()): KAnnotated(owner.model, descriptor), Comparable { diff --git a/libraries/tools/kdoc/src/test/kotlin/test/kotlin/kdoc/KDocTest.kt b/libraries/tools/kdoc/src/test/kotlin/test/kotlin/kdoc/KDocTest.kt index 7b5cb4b2438..35db9577a63 100644 --- a/libraries/tools/kdoc/src/test/kotlin/test/kotlin/kdoc/KDocTest.kt +++ b/libraries/tools/kdoc/src/test/kotlin/test/kotlin/kdoc/KDocTest.kt @@ -37,12 +37,15 @@ class KDocTest { val config = args.docConfig config.docOutputDir = outDir.toString()!! config.title = "Kotlin API" - config.ignorePackages.add("org.jetbrains.kotlin") - config.ignorePackages.add("java") - config.ignorePackages.add("jet") - config.ignorePackages.add("junit") - config.ignorePackages.add("sun") - config.ignorePackages.add("org") + + //todo@svtk KT-2745 + val ignorePackages = config.ignorePackages as MutableSet + ignorePackages.add("org.jetbrains.kotlin") + ignorePackages.add("java") + ignorePackages.add("jet") + ignorePackages.add("junit") + ignorePackages.add("sun") + ignorePackages.add("org") val compiler = KDocCompiler() val r = compiler.exec(System.out, args)