From aec021e668ad6786d20feaadf119f5407c2b3191 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Sun, 8 Apr 2012 19:59:53 +0400 Subject: [PATCH] Implemented better rendering for parameters with default values in decompiler and descriptor renderer. #KT-1582 fixed --- .../src/org/jetbrains/jet/resolve/DescriptorRenderer.java | 6 +++++- compiler/testData/renderer/GlobalFunctions.kt | 2 +- .../jet/plugin/libraries/DecompiledDataFactory.java | 4 +++- idea/testData/libraries/decompiled/namespace.kt | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java b/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java index 3d21cefaf29..1d10cd18130 100644 --- a/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java +++ b/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java @@ -79,7 +79,11 @@ public class DescriptorRenderer implements Renderer { @Override public Void visitValueParameterDescriptor(ValueParameterDescriptor descriptor, StringBuilder builder) { - return super.visitVariableDescriptor(descriptor, builder); + super.visitVariableDescriptor(descriptor, builder); + if (descriptor.hasDefaultValue()) { + builder.append(" = ..."); + } + return null; } }; diff --git a/compiler/testData/renderer/GlobalFunctions.kt b/compiler/testData/renderer/GlobalFunctions.kt index 1dcfd0b6077..21a4d40204a 100644 --- a/compiler/testData/renderer/GlobalFunctions.kt +++ b/compiler/testData/renderer/GlobalFunctions.kt @@ -15,7 +15,7 @@ public fun Int.ext() : Int {} //internal final fun int() : jet.String defined in ..rendererTest //internal final fun int2(val ints : jet.IntArray) : jet.Int defined in ..rendererTest //value-parameter vararg val ints : jet.IntArray defined in ..rendererTest.int2 -//private final fun prv(val a : jet.String, val b : jet.Int) : jet.Int defined in ..rendererTest +//private final fun prv(val a : jet.String, val 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 \ No newline at end of file diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java b/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java index 1b45b4b1b02..9a29e15afdf 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java +++ b/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java @@ -179,7 +179,9 @@ class DecompiledDataFactory { private void appendDescriptor(DeclarationDescriptor descriptor, String indent) { int startOffset = myBuilder.length(); - myBuilder.append(DescriptorRenderer.COMPACT.render(descriptor)); + String renderedDescriptor = DescriptorRenderer.COMPACT.render(descriptor); + renderedDescriptor = renderedDescriptor.replace("= ...", "= " + DECOMPILED_COMMENT); + myBuilder.append(renderedDescriptor); int endOffset = myBuilder.length(); if (descriptor instanceof FunctionDescriptor || descriptor instanceof PropertyDescriptor) { diff --git a/idea/testData/libraries/decompiled/namespace.kt b/idea/testData/libraries/decompiled/namespace.kt index 0b9274c42a1..100819a0647 100644 --- a/idea/testData/libraries/decompiled/namespace.kt +++ b/idea/testData/libraries/decompiled/namespace.kt @@ -17,7 +17,7 @@ package testData.libraries [public final fun func(val a : jet.Int, val b : jet.Int) : Unit { /* compiled code */ }] -[public final fun func(val a : jet.Int, val b : jet.String) : Unit { /* compiled code */ }] +[public final fun func(val a : jet.Int, val b : jet.String = /* compiled code */) : Unit { /* compiled code */ }] [public final fun func(val str : jet.String) : Unit { /* compiled code */ }]