Ensure that Decompiler and IDE agree on rendered function types with parameterized annotations

findDecompiledDeclaration.kt: Use same DescriptorRenderer options as Decompiler

DescriptorRendererImpl.kt: not enforce different AnnotationArgumentsRenderingPolicy for function type annotations

This will fix KTIJ-563 where rendered Descriptors are used as Keys
for GOTO navigation into decompiled sources.

^KTIJ-563 fixed
This commit is contained in:
sebastian.sellmair
2021-01-25 09:07:23 +01:00
committed by Space
parent 122d04b9fa
commit dcda47b502
7 changed files with 25 additions and 12 deletions
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.idea.caches.project.BinaryModuleInfo
import org.jetbrains.kotlin.idea.caches.resolve.LOG
import org.jetbrains.kotlin.idea.decompiler.KtDecompiledFile
import org.jetbrains.kotlin.idea.decompiler.textBuilder.DecompiledTextIndexer
import org.jetbrains.kotlin.idea.decompiler.textBuilder.defaultDecompilerRendererOptions
import org.jetbrains.kotlin.idea.stubindex.*
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.psi.KtCallableDeclaration
@@ -189,8 +190,8 @@ object ByDescriptorIndexer : DecompiledTextIndexer<String> {
return descriptorRendererForKeys.render(this)
}
private val descriptorRendererForKeys = DescriptorRenderer.COMPACT_WITH_MODIFIERS.withOptions {
modifiers = DescriptorRendererModifier.ALL
private val descriptorRendererForKeys = DescriptorRenderer.withOptions {
defaultDecompilerRendererOptions()
withDefinedIn = true
}
}