Override/Implement Members: Do not expand type aliases in the generated members. Retain abbreviated types during flexible type approximation

#KT-13244 Fixed
This commit is contained in:
Alexey Sedunov
2016-08-08 16:25:22 +03:00
parent 1a4ff598e3
commit 1b546d18ff
9 changed files with 34 additions and 0 deletions
@@ -191,6 +191,7 @@ interface DescriptorRendererOptions {
var renderDefaultAnnotationArguments: Boolean
var alwaysRenderModifiers: Boolean
var renderConstructorKeyword: Boolean
var renderUnabbreviatedType: Boolean
}
object ExcludedTypeAnnotations {
@@ -128,6 +128,7 @@ internal class DescriptorRendererImpl(
if (abbreviated != null) {
// TODO nullability is lost for abbreviated type?
val abbreviatedRendered = renderNormalizedTypeAsIs(abbreviated.abbreviation)
if (!renderUnabbreviatedType) return abbreviatedRendered
val unabbreviatedRendered = renderNormalizedTypeAsIs(abbreviated.expandedType)
return "$abbreviatedRendered /* = $unabbreviatedRendered */"
}
@@ -99,4 +99,6 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
override var alwaysRenderModifiers by property(false)
override var renderConstructorKeyword by property(true)
override var renderUnabbreviatedType: Boolean by property(true)
}