don't crash if we don't have a descriptor for the declaration under caret (EA-86248 - KNPE: KDocNameCompletionSession.doComplete)
This commit is contained in:
+2
-2
@@ -26,8 +26,8 @@ import com.intellij.util.ProcessingContext
|
|||||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.idea.core.ExpectedInfo
|
import org.jetbrains.kotlin.idea.core.ExpectedInfo
|
||||||
import org.jetbrains.kotlin.idea.kdoc.getParamDescriptors
|
|
||||||
import org.jetbrains.kotlin.idea.kdoc.getKDocLinkResolutionScope
|
import org.jetbrains.kotlin.idea.kdoc.getKDocLinkResolutionScope
|
||||||
|
import org.jetbrains.kotlin.idea.kdoc.getParamDescriptors
|
||||||
import org.jetbrains.kotlin.idea.util.CallType
|
import org.jetbrains.kotlin.idea.util.CallType
|
||||||
import org.jetbrains.kotlin.idea.util.substituteExtensionIfCallable
|
import org.jetbrains.kotlin.idea.util.substituteExtensionIfCallable
|
||||||
import org.jetbrains.kotlin.kdoc.lexer.KDocTokens
|
import org.jetbrains.kotlin.kdoc.lexer.KDocTokens
|
||||||
@@ -80,7 +80,7 @@ class KDocNameCompletionSession(
|
|||||||
val position = parameters.position.getParentOfType<KDocName>(false) ?: return
|
val position = parameters.position.getParentOfType<KDocName>(false) ?: return
|
||||||
val declaration = position.getContainingDoc().getOwner() ?: return
|
val declaration = position.getContainingDoc().getOwner() ?: return
|
||||||
val kdocLink = position.getStrictParentOfType<KDocLink>()!!
|
val kdocLink = position.getStrictParentOfType<KDocLink>()!!
|
||||||
val declarationDescriptor = bindingContext[BindingContext.DECLARATION_TO_DESCRIPTOR, declaration]!!
|
val declarationDescriptor = bindingContext[BindingContext.DECLARATION_TO_DESCRIPTOR, declaration] ?: return
|
||||||
if (kdocLink.getTagIfSubject()?.knownTag == KDocKnownTag.PARAM) {
|
if (kdocLink.getTagIfSubject()?.knownTag == KDocKnownTag.PARAM) {
|
||||||
addParamCompletions(position, declarationDescriptor)
|
addParamCompletions(position, declarationDescriptor)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user