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:
committed by
Space
parent
122d04b9fa
commit
dcda47b502
+1
-1
@@ -12,7 +12,7 @@ public interface AnnotationsOnParenthesizedTypes {
|
||||
public abstract val lambdaParameterNP: (@A C) -> C
|
||||
public abstract val lambdaReceiver: (@A C).() -> C
|
||||
public abstract val lambdaReturnValue: () -> @A C
|
||||
public abstract val lambdaType: @A() () -> C
|
||||
public abstract val lambdaType: @A () -> C
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open fun parameter(/*0*/ a: @A C): kotlin.Unit
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ package
|
||||
public typealias Test0 = @A @B kotlin.Int
|
||||
public typealias Test1 = @A @A kotlin.Int
|
||||
public typealias Test2 = @A @B kotlin.Int
|
||||
public typealias Test3 = @A() (@A kotlin.Int) -> kotlin.Int
|
||||
public typealias Test3 = @A (@A kotlin.Int) -> kotlin.Int
|
||||
public typealias Test4 = @A @B kotlin.Int?
|
||||
public typealias Test5 = @A @B kotlin.Int?
|
||||
public typealias Test6 = @A @B kotlin.Int
|
||||
|
||||
+5
-5
@@ -38,11 +38,11 @@ public typealias Test1 = suspend () -> kotlin.Unit
|
||||
public typealias Test10 = suspend (suspend () -> kotlin.Unit) -> kotlin.Unit
|
||||
public typealias Test11 = suspend () -> suspend () -> kotlin.Unit
|
||||
public typealias Test12 = suspend (suspend () -> kotlin.Unit) -> kotlin.Unit
|
||||
public typealias Test13 = @A() suspend () -> kotlin.Unit
|
||||
public typealias Test14 = @A() suspend () -> kotlin.Unit
|
||||
public typealias Test15 = (@A() suspend () -> kotlin.Unit)?
|
||||
public typealias Test16 = (@A() suspend () -> kotlin.Unit)?
|
||||
public typealias Test17 = (@A() suspend RS.() -> kotlin.Unit)
|
||||
public typealias Test13 = @A suspend () -> kotlin.Unit
|
||||
public typealias Test14 = @A suspend () -> kotlin.Unit
|
||||
public typealias Test15 = (@A suspend () -> kotlin.Unit)?
|
||||
public typealias Test16 = (@A suspend () -> kotlin.Unit)?
|
||||
public typealias Test17 = (@A suspend RS.() -> kotlin.Unit)
|
||||
public typealias Test18 = (suspend () -> kotlin.Unit)?
|
||||
public typealias Test2 = suspend kotlin.Int.() -> kotlin.Unit
|
||||
public typealias Test3 = () -> kotlin.Unit
|
||||
|
||||
+15
-1
@@ -4,6 +4,8 @@ annotation class Ann3(val p: Int)
|
||||
annotation class Ann4
|
||||
annotation class Ann5
|
||||
annotation class Ann6
|
||||
annotation class Ann7(val p: Boolean = false)
|
||||
|
||||
|
||||
var v1: @Ann1(1, 2) String
|
||||
var v2: @Ann2 Int?
|
||||
@@ -11,6 +13,9 @@ var v3: @Ann3(0) (String, Int) -> Char
|
||||
var v4: @Ann4 X // currently annotations are lost for error types
|
||||
var v5: @Ann5() (String.() -> Unit)
|
||||
var v6: @Ann6() (() -> Unit)?
|
||||
fun f1(calculation: @Ann7 () -> Any)
|
||||
fun f2(calculation: @Ann7() () -> Any)
|
||||
fun f3(calculation: @Ann7(true) () -> Any)
|
||||
|
||||
//public final annotation class Ann1 : kotlin.Annotation defined in root package
|
||||
//public constructor Ann1(p1: kotlin.Int, p2: kotlin.Int) defined in Ann1
|
||||
@@ -27,9 +32,18 @@ var v6: @Ann6() (() -> Unit)?
|
||||
//public constructor Ann5() defined in Ann5
|
||||
//public final annotation class Ann6 : kotlin.Annotation defined in root package
|
||||
//public constructor Ann6() defined in Ann6
|
||||
//public final annotation class Ann7 : kotlin.Annotation defined in root package
|
||||
//public constructor Ann7(p: kotlin.Boolean = ...) defined in Ann7
|
||||
//value-parameter p: kotlin.Boolean = ... defined in Ann7.<init>
|
||||
//public var v1: @Ann1(p1 = 1, p2 = 2) kotlin.String defined in root package
|
||||
//public var v2: @Ann2 kotlin.Int? defined in root package
|
||||
//public var v3: @Ann3(p = 0) (kotlin.String, kotlin.Int) -> kotlin.Char defined in root package
|
||||
//public var v4: [ERROR : X] defined in root package
|
||||
//public var v5: @Ann5() (kotlin.String.() -> kotlin.Unit) defined in root package
|
||||
//public var v6: @Ann6() (() -> kotlin.Unit)? defined in root package
|
||||
//public var v6: @Ann6() (() -> kotlin.Unit)? defined in root package
|
||||
//public fun f1(calculation: @Ann7 () -> kotlin.Any): kotlin.Unit defined in root package
|
||||
//value-parameter calculation: @Ann7 () -> kotlin.Any defined in f1
|
||||
//public fun f2(calculation: @Ann7 () -> kotlin.Any): kotlin.Unit defined in root package
|
||||
//value-parameter calculation: @Ann7 () -> kotlin.Any defined in f2
|
||||
//public fun f3(calculation: @Ann7(p = true) () -> kotlin.Any): kotlin.Unit defined in root package
|
||||
//value-parameter calculation: @Ann7(p = true) () -> kotlin.Any defined in f3
|
||||
|
||||
@@ -38,7 +38,6 @@ internal class DescriptorRendererImpl(
|
||||
private val functionTypeAnnotationsRenderer: DescriptorRendererImpl by lazy {
|
||||
withOptions {
|
||||
excludedTypeAnnotationClasses += listOf(StandardNames.FqNames.extensionFunctionType)
|
||||
annotationArgumentsRenderingPolicy = AnnotationArgumentsRenderingPolicy.ALWAYS_PARENTHESIZED
|
||||
} as DescriptorRendererImpl
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,6 @@ org.jetbrains.kotlin.idea.decompiler.navigation.NavigateJavaToLibrarySourceTestG
|
||||
org.jetbrains.kotlin.idea.navigation.GotoWithMultipleLibrariesTest.testOneHasSourceAndOneDoesNot,,, FLAKY
|
||||
org.jetbrains.kotlin.idea.navigation.GotoWithMultipleLibrariesTest.testOneHasSourceAndManyDoNot,,, FLAKY
|
||||
org.jetbrains.kotlin.idea.navigation.GotoWithMultipleLibrariesTest.testSeveralWithSource,,, FLAKY
|
||||
org.jetbrains.kotlin.idea.resolve.ReferenceResolveTestGenerated.DelegatedPropertyAccessors.InStandardLibrary.testNotNull,,,
|
||||
org.jetbrains.kotlin.tools.projectWizard.wizard.ProjectTemplateNewWizardProjectImportTestGenerated.GradleGroovy.testMultiplatformApplication,,,
|
||||
org.jetbrains.kotlin.tools.projectWizard.wizard.ProjectTemplateNewWizardProjectImportTestGenerated.GradleKts.testMultiplatformApplication,,,
|
||||
org.jetbrains.kotlin.gradle.NewMultiplatformIT.testJavaSupportInJvmTargets,,,
|
||||
|
||||
|
Reference in New Issue
Block a user