From 28c93f291294641bddc5cce57984eae6b6ebe635 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Thu, 27 Dec 2012 20:51:17 +0400 Subject: [PATCH] Not rendering "final" for top-level functions and properties. --- .../jet/renderer/DescriptorRendererImpl.java | 10 +++++++-- compiler/testData/renderer/ErrorType.kt | 2 +- compiler/testData/renderer/FunctionTypes.kt | 16 +++++++------- compiler/testData/renderer/GlobalFunctions.kt | 16 +++++++------- .../testData/renderer/GlobalProperties.kt | 18 +++++++-------- compiler/testData/renderer/KeywordsInNames.kt | 8 +++---- compiler/testData/renderer/TupleTypes.kt | 8 +++---- .../libraries/decompiled/namespace.kt | 22 +++++++++---------- 8 files changed, 53 insertions(+), 47 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java index e5037a6841f..4f736ac9a58 100644 --- a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java @@ -326,6 +326,12 @@ public class DescriptorRendererImpl implements DescriptorRenderer { builder.append(renderKeyword(keyword)).append(" "); } + private void renderModalityForCallable(@NotNull CallableMemberDescriptor callable, @NotNull StringBuilder builder) { + if (!(callable.getContainingDeclaration() instanceof NamespaceDescriptor) || callable.getModality() != Modality.FINAL) { + renderModality(callable.getModality(), builder); + } + } + private void renderOverrideAndMemberKind(@NotNull CallableMemberDescriptor callableMember, @NotNull StringBuilder builder) { if (verbose) { if (!callableMember.getOverriddenDescriptors().isEmpty()) { @@ -425,7 +431,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { if (!startFromName) { renderAnnotations(function, builder); renderVisibility(function.getVisibility(), builder); - renderModality(function.getModality(), builder); + renderModalityForCallable(function, builder); renderOverrideAndMemberKind(function, builder); builder.append(renderKeyword("fun")).append(" "); @@ -541,7 +547,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { if (!startFromName) { renderAnnotations(property, builder); renderVisibility(property.getVisibility(), builder); - renderModality(property.getModality(), builder); + renderModalityForCallable(property, builder); renderOverrideAndMemberKind(property, builder); renderValVarPrefix(property, builder); diff --git a/compiler/testData/renderer/ErrorType.kt b/compiler/testData/renderer/ErrorType.kt index ccfb1999ec1..fb725e8eaca 100644 --- a/compiler/testData/renderer/ErrorType.kt +++ b/compiler/testData/renderer/ErrorType.kt @@ -1,3 +1,3 @@ val a : E = 0 -//internal final val a : [ERROR : E] defined in root package +//internal val a : [ERROR : E] defined in root package diff --git a/compiler/testData/renderer/FunctionTypes.kt b/compiler/testData/renderer/FunctionTypes.kt index 86960131640..fe8f23ed933 100644 --- a/compiler/testData/renderer/FunctionTypes.kt +++ b/compiler/testData/renderer/FunctionTypes.kt @@ -8,11 +8,11 @@ var v6 : Int.(String, Int) -> Unit var v7 : ExtensionFunction1 -//internal final var v1 : () -> Unit defined in root package -//internal final var v2 : (jet.Int) -> jet.Int defined in root package -//internal final var v3 : (jet.Int, jet.String) -> jet.String defined in root package -//internal final var v4 : (jet.Int) -> jet.String defined in root package -//internal final var v4 : (() -> jet.Int, (jet.String) -> Unit) -> jet.String defined in root package -//internal final var v5 : jet.Int.() -> jet.Int defined in root package -//internal final var v6 : jet.Int.(jet.String, jet.Int) -> Unit defined in root package -//internal final var v7 : jet.Int.(jet.String) -> jet.Boolean defined in root package +//internal var v1 : () -> Unit defined in root package +//internal var v2 : (jet.Int) -> jet.Int defined in root package +//internal var v3 : (jet.Int, jet.String) -> jet.String defined in root package +//internal var v4 : (jet.Int) -> jet.String defined in root package +//internal var v4 : (() -> jet.Int, (jet.String) -> Unit) -> jet.String defined in root package +//internal var v5 : jet.Int.() -> jet.Int defined in root package +//internal var v6 : jet.Int.(jet.String, jet.Int) -> Unit defined in root package +//internal var v7 : jet.Int.(jet.String) -> jet.Boolean defined in root package diff --git a/compiler/testData/renderer/GlobalFunctions.kt b/compiler/testData/renderer/GlobalFunctions.kt index 19a4b4740ec..64aef977dd1 100644 --- a/compiler/testData/renderer/GlobalFunctions.kt +++ b/compiler/testData/renderer/GlobalFunctions.kt @@ -20,19 +20,19 @@ fun

funTypeParameterWithTwoUpperBounds() where P : Foo, P : Bar = 17 deprecated("") fun deprecatedFun() //package rendererTest defined in root package -//public final fun pub() : Unit defined in rendererTest -//internal final fun int() : jet.String defined in rendererTest -//internal final fun int2(vararg ints : jet.Int) : jet.Int defined in rendererTest +//public fun pub() : Unit defined in rendererTest +//internal fun int() : jet.String defined in rendererTest +//internal fun int2(vararg ints : jet.Int) : jet.Int defined in rendererTest //value-parameter vararg val ints : jet.Int defined in rendererTest.int2 -//private final fun prv(a : jet.String, b : jet.Int = ...) : jet.Int defined in rendererTest +//private fun prv(a : jet.String, b : jet.Int = ...) : jet.Int defined in rendererTest //value-parameter val a : jet.String defined in rendererTest.prv //value-parameter val b : jet.Int = ... defined in rendererTest.prv -//public final fun jet.Int.ext() : jet.Int defined in rendererTest -//public final fun withTypeParam(a : jet.Array) : jet.Int defined in rendererTest +//public fun jet.Int.ext() : jet.Int defined in rendererTest +//public fun withTypeParam(a : jet.Array) : jet.Int defined in rendererTest // defined in rendererTest.withTypeParam //value-parameter val a : jet.Array defined in rendererTest.withTypeParam //internal trait Foo defined in rendererTest //internal trait Bar defined in rendererTest -//internal final fun

funTypeParameterWithTwoUpperBounds() : jet.Int where P : rendererTest.Bar, P : rendererTest.Foo defined in rendererTest +//internal fun

funTypeParameterWithTwoUpperBounds() : jet.Int where P : rendererTest.Bar, P : rendererTest.Foo defined in rendererTest //

defined in rendererTest.funTypeParameterWithTwoUpperBounds -//jet.deprecated internal final fun deprecatedFun() : Unit defined in rendererTest +//jet.deprecated internal fun deprecatedFun() : Unit defined in rendererTest diff --git a/compiler/testData/renderer/GlobalProperties.kt b/compiler/testData/renderer/GlobalProperties.kt index cbbeae4187b..077a2a13812 100644 --- a/compiler/testData/renderer/GlobalProperties.kt +++ b/compiler/testData/renderer/GlobalProperties.kt @@ -17,13 +17,13 @@ public val T.extWithTwoUpperBounds: Int where T: CharSequence, T: Number get() {} //package rendererTest defined in root package -//public final val pub : jet.String defined in rendererTest -//internal final var int : jet.String defined in rendererTest -//internal final val int2 : jet.Int defined in rendererTest -//private final var private : jet.Int defined in rendererTest -//public final val jet.Int.ext : jet.Int defined in rendererTest -//public final fun jet.Int.() : jet.Int defined in rendererTest -//jet.deprecated internal final val deprecatedVal : jet.Int defined in rendererTest -//public final val T.extWithTwoUpperBounds : jet.Int where T : jet.CharSequence, T : jet.Number defined in rendererTest +//public val pub : jet.String defined in rendererTest +//internal var int : jet.String defined in rendererTest +//internal val int2 : jet.Int defined in rendererTest +//private var private : jet.Int defined in rendererTest +//public val jet.Int.ext : jet.Int defined in rendererTest +//public fun jet.Int.() : jet.Int defined in rendererTest +//jet.deprecated internal val deprecatedVal : jet.Int defined in rendererTest +//public val T.extWithTwoUpperBounds : jet.Int where T : jet.CharSequence, T : jet.Number defined in rendererTest // defined in rendererTest -//public final fun T.() : jet.Int defined in rendererTest \ No newline at end of file +//public fun T.() : jet.Int defined in rendererTest \ No newline at end of file diff --git a/compiler/testData/renderer/KeywordsInNames.kt b/compiler/testData/renderer/KeywordsInNames.kt index ac9bf0db3c5..0b866190421 100644 --- a/compiler/testData/renderer/KeywordsInNames.kt +++ b/compiler/testData/renderer/KeywordsInNames.kt @@ -15,7 +15,7 @@ fun <`in`: `trait`> `trait`.`fun`(`false`: `trait`): `trait` where `in`: Number //internal final annotation class `true` : jet.Annotation defined in root package //public constructor `true`() defined in `true` -//internal final val `val` : jet.Int defined in root package +//internal val `val` : jet.Int defined in root package //`true` internal trait `trait` defined in root package //internal final class `class`<`in`> defined in root package //public constructor `class`<`in`>(p : `in`?) defined in `class` @@ -23,8 +23,8 @@ fun <`in`: `trait`> `trait`.`fun`(`false`: `trait`): `trait` where `in`: Number //value-parameter val p : `in`? defined in `class`. //internal final class `class` defined in `class` //public constructor `class`() defined in `class`.`class` -//internal final val `is` : `class`.`class` defined in root package -//internal final val `in` : `class`<`trait`> defined in root package -//internal final fun <`in`> `trait`.`fun`(`false` : `trait`) : `trait` where `in` : `trait`, `in` : jet.Number defined in root package +//internal val `is` : `class`.`class` defined in root package +//internal val `in` : `class`<`trait`> defined in root package +//internal fun <`in`> `trait`.`fun`(`false` : `trait`) : `trait` where `in` : `trait`, `in` : jet.Number defined in root package //<`in` : `trait` & jet.Number> defined in `fun` //value-parameter val `false` : `trait` defined in `fun` \ No newline at end of file diff --git a/compiler/testData/renderer/TupleTypes.kt b/compiler/testData/renderer/TupleTypes.kt index 82b6a11e91d..51f4bbc0257 100644 --- a/compiler/testData/renderer/TupleTypes.kt +++ b/compiler/testData/renderer/TupleTypes.kt @@ -3,7 +3,7 @@ var v2 : Tuple0? var v3 : Unit var v4 : Unit? -//internal final var v1 : Unit defined in root package -//internal final var v2 : Unit? defined in root package -//internal final var v3 : Unit defined in root package -//internal final var v4 : Unit? defined in root package +//internal var v1 : Unit defined in root package +//internal var v2 : Unit? defined in root package +//internal var v3 : Unit defined in root package +//internal var v4 : Unit? defined in root package diff --git a/idea/testData/libraries/decompiled/namespace.kt b/idea/testData/libraries/decompiled/namespace.kt index 81770ac4986..244948982ec 100644 --- a/idea/testData/libraries/decompiled/namespace.kt +++ b/idea/testData/libraries/decompiled/namespace.kt @@ -3,24 +3,24 @@ package testData.libraries -[public final val globalVal : testData.libraries.Pair] /* compiled code */ +[public val globalVal : testData.libraries.Pair] /* compiled code */ -[public final val globalValWithGetter : jet.Long] /* compiled code */ +[public val globalValWithGetter : jet.Long] /* compiled code */ -[public final val jet.Int.exProp : jet.Int] /* compiled code */ +[public val jet.Int.exProp : jet.Int] /* compiled code */ -[public final val jet.String.exProp : jet.String] /* compiled code */ +[public val jet.String.exProp : jet.String] /* compiled code */ -[public final val testData.libraries.Pair.exProp : jet.String] /* compiled code */ +[public val testData.libraries.Pair.exProp : jet.String] /* compiled code */ -[public final fun func() : Unit { /* compiled code */ }] +[public fun func() : Unit { /* compiled code */ }] -[public final fun func(a : jet.Int, b : jet.Int) : Unit { /* compiled code */ }] +[public fun func(a : jet.Int, b : jet.Int) : Unit { /* compiled code */ }] -[public final fun func(a : jet.Int, b : jet.String = /* compiled code */) : Unit { /* compiled code */ }] +[public fun func(a : jet.Int, b : jet.String = /* compiled code */) : Unit { /* compiled code */ }] -[public final fun func(str : jet.String) : Unit { /* compiled code */ }] +[public fun func(str : jet.String) : Unit { /* compiled code */ }] -[public final fun main(args : jet.Array) : Unit { /* compiled code */ }] +[public fun main(args : jet.Array) : Unit { /* compiled code */ }] -[public final fun T.filter(predicate : (T) -> jet.Boolean) : T? { /* compiled code */ }] +[public fun T.filter(predicate : (T) -> jet.Boolean) : T? { /* compiled code */ }] \ No newline at end of file