Option for rendering types with enhancement

This commit is contained in:
Nikolay Krasko
2018-08-02 17:11:05 +03:00
parent ceeeffd814
commit 653d1d00de
3 changed files with 8 additions and 3 deletions
@@ -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
@@ -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)
@@ -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
}