From 653d1d00de3e4855d0847a421b3cea4926137374 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Thu, 2 Aug 2018 17:11:05 +0300 Subject: [PATCH] Option for rendering types with enhancement --- .../org/jetbrains/kotlin/renderer/DescriptorRenderer.kt | 1 + .../kotlin/renderer/DescriptorRendererOptionsImpl.kt | 1 + .../org/jetbrains/kotlin/types/TypeWithEnhancement.kt | 9 ++++++--- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRenderer.kt b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRenderer.kt index 564e17ca667..c4b76d2fce3 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRenderer.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRenderer.kt @@ -182,6 +182,7 @@ interface DescriptorRendererOptions { var classWithPrimaryConstructor: Boolean var verbose: Boolean var unitReturnType: Boolean + var enhancedTypes: Boolean var withoutReturnType: Boolean var normalizedVisibilities: Boolean var renderDefaultVisibility: Boolean diff --git a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererOptionsImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererOptionsImpl.kt index 93660ace5a9..c5288ff653f 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererOptionsImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererOptionsImpl.kt @@ -78,6 +78,7 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions { override var verbose by property(false) override var unitReturnType by property(true) override var withoutReturnType by property(false) + override var enhancedTypes by property(false) override var normalizedVisibilities by property(false) override var renderDefaultVisibility by property(true) override var uninferredTypeParameterAsName by property(false) diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/TypeWithEnhancement.kt b/core/descriptors/src/org/jetbrains/kotlin/types/TypeWithEnhancement.kt index a589c334369..d1a6c5a8e60 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/TypeWithEnhancement.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/types/TypeWithEnhancement.kt @@ -19,7 +19,6 @@ package org.jetbrains.kotlin.types import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.renderer.DescriptorRendererOptions -import org.jetbrains.kotlin.resolve.scopes.MemberScope interface TypeWithEnhancement { val origin: UnwrappedType @@ -53,8 +52,12 @@ class FlexibleTypeWithEnhancement( override fun makeNullableAsSpecified(newNullability: Boolean): UnwrappedType = origin.makeNullableAsSpecified(newNullability).wrapEnhancement(enhancement.unwrap().makeNullableAsSpecified(newNullability)) - override fun render(renderer: DescriptorRenderer, options: DescriptorRendererOptions): String - = origin.render(renderer, options) + override fun render(renderer: DescriptorRenderer, options: DescriptorRendererOptions): String { + if (options.enhancedTypes) { + return renderer.renderType(enhancement) + } + return origin.render(renderer, options) + } override val delegate: SimpleType get() = origin.delegate }