diagnostics for EA-86187 - KNPE: KDocElementFactory.createNameFromText

This commit is contained in:
Dmitry Jemerov
2016-08-17 15:48:07 +02:00
parent 8a22e1ed7c
commit ac6f0b5419
@@ -17,11 +17,11 @@
package org.jetbrains.kotlin.idea.kdoc package org.jetbrains.kotlin.idea.kdoc
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.kdoc.psi.api.KDoc
import org.jetbrains.kotlin.psi.KtPsiFactory
import org.jetbrains.kotlin.psi.KtFunction
import com.intellij.psi.util.PsiTreeUtil import com.intellij.psi.util.PsiTreeUtil
import org.jetbrains.kotlin.kdoc.psi.api.KDoc
import org.jetbrains.kotlin.kdoc.psi.impl.KDocName import org.jetbrains.kotlin.kdoc.psi.impl.KDocName
import org.jetbrains.kotlin.psi.KtFunction
import org.jetbrains.kotlin.psi.KtPsiFactory
import org.jetbrains.kotlin.psi.psiUtil.getChildOfType import org.jetbrains.kotlin.psi.psiUtil.getChildOfType
class KDocElementFactory(val project: Project) { class KDocElementFactory(val project: Project) {
@@ -32,10 +32,11 @@ class KDocElementFactory(val project: Project) {
} }
fun createNameFromText(text: String): KDocName { fun createNameFromText(text: String): KDocName {
val kdoc = createKDocFromText("/** @param $text foo*/") val kdocText = "/** @param $text foo*/"
val kdoc = createKDocFromText(kdocText)
val section = kdoc.getDefaultSection() val section = kdoc.getDefaultSection()
val tag = section.findTagByName("param") val tag = section.findTagByName("param")
val link = tag!!.getSubjectLink()!! val link = tag?.getSubjectLink() ?: throw IllegalArgumentException("Cannot find subject link in doc comment '$kdocText'")
return link.getChildOfType<KDocName>()!! return link.getChildOfType<KDocName>()!!
} }
} }