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
|
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 {
|
public enum class RenderingFormat {
|
||||||
PLAIN,
|
PLAIN,
|
||||||
HTML
|
HTML
|
||||||
|
|||||||
@@ -107,12 +107,7 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
|
|||||||
|
|
||||||
override var excludedAnnotationClasses by property(emptySet<FqName>())
|
override var excludedAnnotationClasses by property(emptySet<FqName>())
|
||||||
|
|
||||||
override var excludedTypeAnnotationClasses by property(setOf(
|
override var excludedTypeAnnotationClasses by property(
|
||||||
FqName("org.jetbrains.annotations.ReadOnly"),
|
ExcludedTypeAnnotations.annotationsForNullabilityAndMutability
|
||||||
FqName("org.jetbrains.annotations.Mutable"),
|
+ ExcludedTypeAnnotations.internalAnnotationsForResolve)
|
||||||
FqName("org.jetbrains.annotations.NotNull"),
|
|
||||||
FqName("org.jetbrains.annotations.Nullable"),
|
|
||||||
FqName("kotlin.internal.NoInfer"),
|
|
||||||
FqName("kotlin.internal.Exact")
|
|
||||||
))
|
|
||||||
}
|
}
|
||||||
+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.isCompatibleMultifileClassKind
|
||||||
import org.jetbrains.kotlin.load.kotlin.header.isCompatiblePackageFacadeKind
|
import org.jetbrains.kotlin.load.kotlin.header.isCompatiblePackageFacadeKind
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
import org.jetbrains.kotlin.renderer.*
|
||||||
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier
|
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils.isEnumEntry
|
import org.jetbrains.kotlin.resolve.DescriptorUtils.isEnumEntry
|
||||||
import org.jetbrains.kotlin.resolve.dataClassUtils.isComponentLike
|
import org.jetbrains.kotlin.resolve.dataClassUtils.isComponentLike
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.secondaryConstructors
|
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 }
|
typeNormalizer = { type -> if (type.isFlexible()) type.flexibility().lowerBound else type }
|
||||||
secondaryConstructorsAsPrimary = false
|
secondaryConstructorsAsPrimary = false
|
||||||
modifiers = DescriptorRendererModifier.ALL
|
modifiers = DescriptorRendererModifier.ALL
|
||||||
|
excludedTypeAnnotationClasses = ExcludedTypeAnnotations.annotationsForNullabilityAndMutability
|
||||||
}
|
}
|
||||||
|
|
||||||
private val descriptorRendererForKotlinJavascriptDecompiler = DescriptorRenderer.withOptions {
|
private val descriptorRendererForKotlinJavascriptDecompiler = DescriptorRenderer.withOptions {
|
||||||
@@ -120,6 +120,7 @@ private val descriptorRendererForKotlinJavascriptDecompiler = DescriptorRenderer
|
|||||||
classWithPrimaryConstructor = true
|
classWithPrimaryConstructor = true
|
||||||
secondaryConstructorsAsPrimary = false
|
secondaryConstructorsAsPrimary = false
|
||||||
modifiers = DescriptorRendererModifier.ALL
|
modifiers = DescriptorRendererModifier.ALL
|
||||||
|
excludedTypeAnnotationClasses = ExcludedTypeAnnotations.annotationsForNullabilityAndMutability
|
||||||
}
|
}
|
||||||
|
|
||||||
private val descriptorRendererForKeys = DescriptorRenderer.COMPACT_WITH_MODIFIERS.withOptions {
|
private val descriptorRendererForKeys = DescriptorRenderer.COMPACT_WITH_MODIFIERS.withOptions {
|
||||||
|
|||||||
Reference in New Issue
Block a user