From bfbb200ba870299483e3bb800c740ddf4ddf6367 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 20 Nov 2013 16:43:43 +0400 Subject: [PATCH] Only render exact function types in special syntax --- compiler/testData/renderer/FunctionTypes.kt | 26 +++++++++++++++++++ .../jet/renderer/DescriptorRendererImpl.java | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/compiler/testData/renderer/FunctionTypes.kt b/compiler/testData/renderer/FunctionTypes.kt index 95c03c00fda..82b3870a7d1 100644 --- a/compiler/testData/renderer/FunctionTypes.kt +++ b/compiler/testData/renderer/FunctionTypes.kt @@ -7,6 +7,17 @@ var v5: Int.() -> Int var v6 : Int.(String, Int) -> Unit var v7 : ExtensionFunction1 +class F: Function0 +var v8: F + +class EF: ExtensionFunction0 +var v9: EF + +class GF: Function0 +var v10: GF + +class GEF: ExtensionFunction0 +var v11: GEF //internal var v1: () -> jet.Unit defined in root package //internal var v2: (jet.Int) -> jet.Int defined in root package @@ -16,3 +27,18 @@ var v7 : ExtensionFunction1 //internal var v5: jet.Int.() -> jet.Int defined in root package //internal var v6: jet.Int.(jet.String, jet.Int) -> jet.Unit defined in root package //internal var v7: jet.Int.(jet.String) -> jet.Boolean defined in root package +//internal final class F : () -> jet.Unit defined in root package +//public constructor F() defined in F +//internal var v8: F defined in root package +//internal final class EF defined in root package +//public constructor EF() defined in EF +//internal var v9: EF defined in root package +//internal final class GF : () -> T defined in root package +//public constructor GF() defined in GF +// defined in GF +//internal var v10: GF defined in root package +//internal final class GEF : A.() -> B defined in root package +//public constructor GEF() defined in GEF +// defined in GEF +// defined in GEF +//internal var v11: GEF defined in root package \ No newline at end of file diff --git a/core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java b/core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java index 92a168e054d..81f4c53e6ee 100644 --- a/core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java +++ b/core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java @@ -213,7 +213,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { if (type.isError()) { return type.toString(); } - if (KotlinBuiltIns.getInstance().isFunctionOrExtensionFunctionType(type) && prettyFunctionTypes) { + if (KotlinBuiltIns.getInstance().isExactFunctionOrExtensionFunctionType(type) && prettyFunctionTypes) { return renderFunctionType(type); } return renderDefaultType(type);