Option for rendering types with enhancement
This commit is contained in:
@@ -182,6 +182,7 @@ interface DescriptorRendererOptions {
|
|||||||
var classWithPrimaryConstructor: Boolean
|
var classWithPrimaryConstructor: Boolean
|
||||||
var verbose: Boolean
|
var verbose: Boolean
|
||||||
var unitReturnType: Boolean
|
var unitReturnType: Boolean
|
||||||
|
var enhancedTypes: Boolean
|
||||||
var withoutReturnType: Boolean
|
var withoutReturnType: Boolean
|
||||||
var normalizedVisibilities: Boolean
|
var normalizedVisibilities: Boolean
|
||||||
var renderDefaultVisibility: Boolean
|
var renderDefaultVisibility: Boolean
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
|
|||||||
override var verbose by property(false)
|
override var verbose by property(false)
|
||||||
override var unitReturnType by property(true)
|
override var unitReturnType by property(true)
|
||||||
override var withoutReturnType by property(false)
|
override var withoutReturnType by property(false)
|
||||||
|
override var enhancedTypes by property(false)
|
||||||
override var normalizedVisibilities by property(false)
|
override var normalizedVisibilities by property(false)
|
||||||
override var renderDefaultVisibility by property(true)
|
override var renderDefaultVisibility by property(true)
|
||||||
override var uninferredTypeParameterAsName by property(false)
|
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.descriptors.annotations.Annotations
|
||||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||||
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions
|
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions
|
||||||
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
|
||||||
|
|
||||||
interface TypeWithEnhancement {
|
interface TypeWithEnhancement {
|
||||||
val origin: UnwrappedType
|
val origin: UnwrappedType
|
||||||
@@ -53,8 +52,12 @@ class FlexibleTypeWithEnhancement(
|
|||||||
override fun makeNullableAsSpecified(newNullability: Boolean): UnwrappedType
|
override fun makeNullableAsSpecified(newNullability: Boolean): UnwrappedType
|
||||||
= origin.makeNullableAsSpecified(newNullability).wrapEnhancement(enhancement.unwrap().makeNullableAsSpecified(newNullability))
|
= origin.makeNullableAsSpecified(newNullability).wrapEnhancement(enhancement.unwrap().makeNullableAsSpecified(newNullability))
|
||||||
|
|
||||||
override fun render(renderer: DescriptorRenderer, options: DescriptorRendererOptions): String
|
override fun render(renderer: DescriptorRenderer, options: DescriptorRendererOptions): String {
|
||||||
= origin.render(renderer, options)
|
if (options.enhancedTypes) {
|
||||||
|
return renderer.renderType(enhancement)
|
||||||
|
}
|
||||||
|
return origin.render(renderer, options)
|
||||||
|
}
|
||||||
|
|
||||||
override val delegate: SimpleType get() = origin.delegate
|
override val delegate: SimpleType get() = origin.delegate
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user