Don't exclude internal type annotations from decompiler renderers
This commit is contained in:
@@ -192,6 +192,18 @@ public interface DescriptorRendererOptions {
|
||||
public var renderDefaultAnnotationArguments: Boolean
|
||||
}
|
||||
|
||||
object ExcludedTypeAnnotations {
|
||||
val annotationsForNullabilityAndMutability = setOf(
|
||||
FqName("org.jetbrains.annotations.ReadOnly"),
|
||||
FqName("org.jetbrains.annotations.Mutable"),
|
||||
FqName("org.jetbrains.annotations.NotNull"),
|
||||
FqName("org.jetbrains.annotations.Nullable"))
|
||||
|
||||
val internalAnnotationsForResolve = setOf(
|
||||
FqName("kotlin.internal.NoInfer"),
|
||||
FqName("kotlin.internal.Exact"))
|
||||
}
|
||||
|
||||
public enum class RenderingFormat {
|
||||
PLAIN,
|
||||
HTML
|
||||
|
||||
@@ -107,12 +107,7 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
|
||||
|
||||
override var excludedAnnotationClasses by property(emptySet<FqName>())
|
||||
|
||||
override var excludedTypeAnnotationClasses by property(setOf(
|
||||
FqName("org.jetbrains.annotations.ReadOnly"),
|
||||
FqName("org.jetbrains.annotations.Mutable"),
|
||||
FqName("org.jetbrains.annotations.NotNull"),
|
||||
FqName("org.jetbrains.annotations.Nullable"),
|
||||
FqName("kotlin.internal.NoInfer"),
|
||||
FqName("kotlin.internal.Exact")
|
||||
))
|
||||
override var excludedTypeAnnotationClasses by property(
|
||||
ExcludedTypeAnnotations.annotationsForNullabilityAndMutability
|
||||
+ ExcludedTypeAnnotations.internalAnnotationsForResolve)
|
||||
}
|
||||
+3
-2
@@ -29,8 +29,7 @@ import org.jetbrains.kotlin.load.kotlin.header.isCompatibleFileFacadeKind
|
||||
import org.jetbrains.kotlin.load.kotlin.header.isCompatibleMultifileClassKind
|
||||
import org.jetbrains.kotlin.load.kotlin.header.isCompatiblePackageFacadeKind
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier
|
||||
import org.jetbrains.kotlin.renderer.*
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils.isEnumEntry
|
||||
import org.jetbrains.kotlin.resolve.dataClassUtils.isComponentLike
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.secondaryConstructors
|
||||
@@ -113,6 +112,7 @@ private val descriptorRendererForDecompiler = DescriptorRenderer.withOptions {
|
||||
typeNormalizer = { type -> if (type.isFlexible()) type.flexibility().lowerBound else type }
|
||||
secondaryConstructorsAsPrimary = false
|
||||
modifiers = DescriptorRendererModifier.ALL
|
||||
excludedTypeAnnotationClasses = ExcludedTypeAnnotations.annotationsForNullabilityAndMutability
|
||||
}
|
||||
|
||||
private val descriptorRendererForKotlinJavascriptDecompiler = DescriptorRenderer.withOptions {
|
||||
@@ -120,6 +120,7 @@ private val descriptorRendererForKotlinJavascriptDecompiler = DescriptorRenderer
|
||||
classWithPrimaryConstructor = true
|
||||
secondaryConstructorsAsPrimary = false
|
||||
modifiers = DescriptorRendererModifier.ALL
|
||||
excludedTypeAnnotationClasses = ExcludedTypeAnnotations.annotationsForNullabilityAndMutability
|
||||
}
|
||||
|
||||
private val descriptorRendererForKeys = DescriptorRenderer.COMPACT_WITH_MODIFIERS.withOptions {
|
||||
|
||||
Reference in New Issue
Block a user