() {
- @Override
- public JetType invoke(JetType type) {
- return UtilPackage.approximateFlexibleTypes(type, false);
- }
- };
-
- public static final DescriptorRenderer SOURCE_CODE = commonBuilder()
- .setNameShortness(NameShortness.SOURCE_CODE_QUALIFIED)
- .setTypeNormalizer(APPROXIMATE_FLEXIBLE_TYPES)
- .build();
-
- public static final DescriptorRenderer SOURCE_CODE_FOR_TYPE_ARGUMENTS = commonBuilder()
- .setNameShortness(NameShortness.SOURCE_CODE_QUALIFIED)
- .setTypeNormalizer(APPROXIMATE_FLEXIBLE_TYPES_IN_ARGUMENTS)
- .build();
-
- public static final DescriptorRenderer SOURCE_CODE_SHORT_NAMES_IN_TYPES = commonBuilder()
- .setNameShortness(NameShortness.SHORT)
- .setTypeNormalizer(APPROXIMATE_FLEXIBLE_TYPES)
- .build();
-
- private static DescriptorRendererBuilder commonBuilder() {
- return new DescriptorRendererBuilder()
- .setNormalizedVisibilities(true)
- .setWithDefinedIn(false)
- .setShowInternalKeyword(false)
- .setOverrideRenderingPolicy(DescriptorRenderer.OverrideRenderingPolicy.RENDER_OVERRIDE)
- .setUnitReturnType(false);
- }
-}
diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/IdeDescriptorRenderers.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/IdeDescriptorRenderers.kt
new file mode 100644
index 00000000000..7a9ae3943dc
--- /dev/null
+++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/IdeDescriptorRenderers.kt
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2010-2015 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jetbrains.kotlin.idea.util
+
+import org.jetbrains.kotlin.renderer.DescriptorRenderer
+import org.jetbrains.kotlin.renderer.NameShortness
+import org.jetbrains.kotlin.types.JetType
+
+public object IdeDescriptorRenderers {
+ public val APPROXIMATE_FLEXIBLE_TYPES: (JetType) -> JetType = { approximateFlexibleTypes(it, true) }
+
+ public val APPROXIMATE_FLEXIBLE_TYPES_IN_ARGUMENTS: (JetType) -> JetType = { approximateFlexibleTypes(it, false) }
+
+ private val BASE: DescriptorRenderer = DescriptorRenderer.withOptions {
+ normalizedVisibilities = true
+ withDefinedIn = false
+ showInternalKeyword = false
+ overrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OVERRIDE
+ unitReturnType = false
+ }
+
+ public val SOURCE_CODE: DescriptorRenderer = BASE.withOptions {
+ nameShortness = NameShortness.SOURCE_CODE_QUALIFIED
+ typeNormalizer = APPROXIMATE_FLEXIBLE_TYPES
+ }
+
+ public val SOURCE_CODE_FOR_TYPE_ARGUMENTS: DescriptorRenderer = BASE.withOptions {
+ nameShortness = NameShortness.SOURCE_CODE_QUALIFIED
+ typeNormalizer = APPROXIMATE_FLEXIBLE_TYPES_IN_ARGUMENTS
+ }
+
+ public val SOURCE_CODE_SHORT_NAMES_IN_TYPES: DescriptorRenderer = BASE.withOptions {
+ nameShortness = NameShortness.SHORT
+ typeNormalizer = APPROXIMATE_FLEXIBLE_TYPES
+ }
+}
diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/DecompiledTextFactory.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/DecompiledTextFactory.kt
index d8ee4df543e..191cd9b47c6 100644
--- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/DecompiledTextFactory.kt
+++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/textBuilder/DecompiledTextFactory.kt
@@ -26,7 +26,6 @@ import org.jetbrains.kotlin.load.kotlin.header.isCompatibleClassKind
import org.jetbrains.kotlin.load.kotlin.header.isCompatiblePackageFacadeKind
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.renderer.DescriptorRenderer
-import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder
import org.jetbrains.kotlin.resolve.DescriptorUtils.isEnumEntry
import org.jetbrains.kotlin.resolve.dataClassUtils.isComponentLike
import org.jetbrains.kotlin.resolve.descriptorUtil.secondaryConstructors
@@ -93,26 +92,18 @@ private val DECOMPILED_CODE_COMMENT = "/* compiled code */"
private val DECOMPILED_COMMENT_FOR_PARAMETER = "/* = compiled code */"
private val FLEXIBLE_TYPE_COMMENT = "/* platform type */"
-private val descriptorRendererForDecompiler = DescriptorRendererBuilder()
- .setWithDefinedIn(false)
- .setClassWithPrimaryConstructor(true)
- .setTypeNormalizer {
- type ->
- if (type.isFlexible()) {
- type.flexibility().lowerBound
- }
- else type
-
- }
- .setSecondaryConstructorsAsPrimary(false)
- .build()
-
-private val descriptorRendererForKotlinJavascriptDecompiler = DescriptorRendererBuilder()
- .setWithDefinedIn(false)
- .setClassWithPrimaryConstructor(true)
- .setSecondaryConstructorsAsPrimary(false)
- .build()
+private val descriptorRendererForDecompiler = DescriptorRenderer.withOptions {
+ withDefinedIn = false
+ classWithPrimaryConstructor = true
+ typeNormalizer = { type -> if (type.isFlexible()) type.flexibility().lowerBound else type }
+ secondaryConstructorsAsPrimary = false
+}
+private val descriptorRendererForKotlinJavascriptDecompiler = DescriptorRenderer.withOptions {
+ withDefinedIn = false
+ classWithPrimaryConstructor = true
+ secondaryConstructorsAsPrimary = false
+}
private val descriptorRendererForKeys = DescriptorRenderer.COMPACT_WITH_MODIFIERS
diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/HtmlTabledDescriptorRenderer.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/HtmlTabledDescriptorRenderer.java
index d9508f0ec45..e6692a49375 100644
--- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/HtmlTabledDescriptorRenderer.java
+++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/HtmlTabledDescriptorRenderer.java
@@ -17,6 +17,8 @@
package org.jetbrains.kotlin.idea.highlighter;
import com.google.common.base.Predicate;
+import kotlin.Unit;
+import kotlin.jvm.functions.Function1;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.descriptors.FunctionDescriptor;
@@ -26,11 +28,12 @@ import org.jetbrains.kotlin.diagnostics.rendering.TabledDescriptorRenderer.Table
import org.jetbrains.kotlin.diagnostics.rendering.TabledDescriptorRenderer.TableRenderer.FunctionArgumentsRow;
import org.jetbrains.kotlin.diagnostics.rendering.TabledDescriptorRenderer.TableRenderer.TableRow;
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
-import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder;
+import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import org.jetbrains.kotlin.renderer.Renderer;
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPosition;
import org.jetbrains.kotlin.types.JetType;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -166,44 +169,50 @@ public class HtmlTabledDescriptorRenderer extends TabledDescriptorRenderer {
private static final DescriptorRenderer.ValueParametersHandler VALUE_PARAMETERS_HANDLER = new DescriptorRenderer.ValueParametersHandler() {
@Override
- public void appendBeforeValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder stringBuilder) {
- stringBuilder.append("| ");
+ public void appendBeforeValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder builder) {
+ builder.append(" | ");
}
@Override
- public void appendAfterValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder stringBuilder) {
+ public void appendAfterValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder builder) {
boolean last = ((FunctionDescriptor) parameter.getContainingDeclaration()).getValueParameters().size() - 1 == parameter.getIndex();
if (!last) {
- stringBuilder.append(",");
+ builder.append(",");
}
- stringBuilder.append(" | ");
+ builder.append("");
}
@Override
- public void appendBeforeValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder stringBuilder) {
- stringBuilder.append("");
+ public void appendBeforeValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder builder) {
+ builder.append("");
if (function.getValueParameters().isEmpty()) {
- tdBold(stringBuilder, "( )");
+ tdBold(builder, "( )");
}
else {
- tdBold(stringBuilder, "(");
+ tdBold(builder, "(");
}
}
@Override
- public void appendAfterValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder stringBuilder) {
+ public void appendAfterValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder builder) {
if (!function.getValueParameters().isEmpty()) {
- tdBold(stringBuilder, ")");
+ tdBold(builder, ")");
}
- stringBuilder.append("");
+ builder.append(" | ");
}
};
- public static final DescriptorRenderer DESCRIPTOR_IN_TABLE = new DescriptorRendererBuilder()
- .setWithDefinedIn(false)
- .setModifiers()
- .setValueParametersHandler(VALUE_PARAMETERS_HANDLER)
- .setTextFormat(DescriptorRenderer.TextFormat.HTML).build();
+ public static final DescriptorRenderer DESCRIPTOR_IN_TABLE = DescriptorRenderer.Companion.withOptions(
+ new Function1() {
+ @Override
+ public Unit invoke(DescriptorRendererOptions options) {
+ options.setWithDefinedIn(false);
+ options.setModifiers(Collections.emptySet());
+ options.setValueParametersHandler(VALUE_PARAMETERS_HANDLER);
+ options.setTextFormat(DescriptorRenderer.TextFormat.HTML);
+ return Unit.INSTANCE$;
+ }
+ });
private static void td(StringBuilder builder, String text) {
builder.append("| ").append(text).append(" | ");
diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/DescriptorClassMember.java b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/DescriptorClassMember.java
index 45af87b181d..3b28bf1c385 100644
--- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/DescriptorClassMember.java
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/DescriptorClassMember.java
@@ -24,6 +24,8 @@ import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiMember;
import com.intellij.psi.util.PsiTreeUtil;
+import kotlin.Unit;
+import kotlin.jvm.functions.Function1;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
@@ -32,12 +34,13 @@ import org.jetbrains.kotlin.psi.JetClass;
import org.jetbrains.kotlin.psi.JetDeclaration;
import org.jetbrains.kotlin.psi.JetNamedDeclaration;
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
-import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder;
+import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import org.jetbrains.kotlin.renderer.NameShortness;
import org.jetbrains.kotlin.renderer.RendererPackage;
import org.jetbrains.kotlin.resolve.DescriptorUtils;
import javax.swing.*;
+import java.util.Collections;
public class DescriptorClassMember extends MemberChooserObjectBase implements ClassMemberWithElement {
@@ -47,12 +50,18 @@ public class DescriptorClassMember extends MemberChooserObjectBase implements Cl
@NotNull
private final PsiElement myPsiElement;
- private static final DescriptorRenderer MEMBER_RENDERER = new DescriptorRendererBuilder()
- .setWithDefinedIn(false)
- .setModifiers()
- .setStartFromName(true)
- .setNameShortness(NameShortness.SHORT)
- .build();
+ private static final DescriptorRenderer MEMBER_RENDERER = DescriptorRenderer.Companion.withOptions(
+ new Function1() {
+ @Override
+ public Unit invoke(DescriptorRendererOptions options) {
+ options.setWithDefinedIn(false);
+ options.setModifiers(Collections.emptySet());
+ options.setStartFromName(true);
+ options.setNameShortness(NameShortness.SHORT);
+ return Unit.INSTANCE$;
+ }
+ }
+ );
public DescriptorClassMember(@NotNull PsiElement element, @NotNull DeclarationDescriptor descriptor) {
super(getText(descriptor), getIcon(element, descriptor));
diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/OverrideImplementMethodsHandler.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/OverrideImplementMethodsHandler.kt
index 1e4f89a6fbc..af0b32804b7 100644
--- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/OverrideImplementMethodsHandler.kt
+++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/codeInsight/OverrideImplementMethodsHandler.kt
@@ -39,7 +39,6 @@ import org.jetbrains.kotlin.idea.util.ShortenReferences
import org.jetbrains.kotlin.idea.util.application.runWriteAction
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.renderer.DescriptorRenderer
-import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder
import org.jetbrains.kotlin.renderer.NameShortness
import org.jetbrains.kotlin.types.JetType
@@ -118,15 +117,15 @@ public abstract class OverrideImplementMethodsHandler : LanguageCodeInsightActio
override fun startInWriteAction(): Boolean = false
companion object {
- private val OVERRIDE_RENDERER = DescriptorRendererBuilder()
- .setRenderDefaultValues(false)
- .setModifiers(DescriptorRenderer.Modifier.OVERRIDE)
- .setWithDefinedIn(false)
- .setNameShortness(NameShortness.SOURCE_CODE_QUALIFIED)
- .setOverrideRenderingPolicy(DescriptorRenderer.OverrideRenderingPolicy.RENDER_OVERRIDE)
- .setUnitReturnType(false)
- .setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES)
- .build()
+ private val OVERRIDE_RENDERER = DescriptorRenderer.withOptions {
+ renderDefaultValues = false
+ modifiers = setOf(DescriptorRenderer.Modifier.OVERRIDE)
+ withDefinedIn = false
+ nameShortness = NameShortness.SOURCE_CODE_QUALIFIED
+ overrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OVERRIDE
+ unitReturnType = false
+ typeNormalizer = IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES
+ }
private val LOG = Logger.getInstance(javaClass().getCanonicalName())
diff --git a/idea/src/org/jetbrains/kotlin/idea/KotlinQuickDocumentationProvider.kt b/idea/src/org/jetbrains/kotlin/idea/KotlinQuickDocumentationProvider.kt
index 1b03631993e..f492a195ffe 100644
--- a/idea/src/org/jetbrains/kotlin/idea/KotlinQuickDocumentationProvider.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/KotlinQuickDocumentationProvider.kt
@@ -38,7 +38,6 @@ import org.jetbrains.kotlin.psi.JetReferenceExpression
import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
import org.jetbrains.kotlin.renderer.DescriptorRenderer
-import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder
import org.jetbrains.kotlin.renderer.NameShortness
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
@@ -83,12 +82,12 @@ public class KotlinQuickDocumentationProvider : AbstractDocumentationProvider()
companion object {
private val LOG = Logger.getInstance(javaClass())
- val quickDocNameFormat = DescriptorRendererBuilder()
- .setWithDefinedIn(true)
- .setNameShortness(NameShortness.SHORT)
- .setRenderCompanionObjectName(true)
- .setTextFormat(DescriptorRenderer.TextFormat.HTML)
- .build()
+ val quickDocNameFormat = DescriptorRenderer.withOptions {
+ withDefinedIn = true
+ nameShortness = NameShortness.SHORT
+ renderCompanionObjectName = true
+ textFormat = DescriptorRenderer.TextFormat.HTML
+ }
private fun getText(element: PsiElement, originalElement: PsiElement?, quickNavigation: Boolean): String? {
diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/SuperDeclarationMarker.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/SuperDeclarationMarker.kt
index 45b26ee08bc..26b43f6f081 100644
--- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/SuperDeclarationMarker.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/SuperDeclarationMarker.kt
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.resolve.OverrideResolver
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.renderer.DescriptorRenderer
-import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder
import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import com.intellij.psi.NavigatablePsiElement
@@ -45,12 +44,12 @@ object SuperDeclarationMarkerTooltip: Function {
val isAbstract = elementDescriptor!!.getModality() == Modality.ABSTRACT
- val renderer = DescriptorRendererBuilder()
- .setTextFormat(DescriptorRenderer.TextFormat.HTML)
- .setWithDefinedIn(false)
- .setStartFromName(true)
- .setWithoutSuperTypes(true)
- .build()
+ val renderer = DescriptorRenderer.withOptions {
+ textFormat = DescriptorRenderer.TextFormat.HTML
+ withDefinedIn = false
+ startFromName = true
+ withoutSuperTypes = true
+ }
val containingStrings = overriddenDescriptors.map {
val declaration = it.getContainingDeclaration()
diff --git a/idea/src/org/jetbrains/kotlin/idea/ktSignature/KotlinSignatureAnnotationIntention.java b/idea/src/org/jetbrains/kotlin/idea/ktSignature/KotlinSignatureAnnotationIntention.java
index f5fcc6e7313..80f608cce44 100644
--- a/idea/src/org/jetbrains/kotlin/idea/ktSignature/KotlinSignatureAnnotationIntention.java
+++ b/idea/src/org/jetbrains/kotlin/idea/ktSignature/KotlinSignatureAnnotationIntention.java
@@ -31,6 +31,8 @@ import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.messages.MessageBusConnection;
+import kotlin.Unit;
+import kotlin.jvm.functions.Function1;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.descriptors.ConstructorDescriptor;
@@ -45,20 +47,28 @@ import org.jetbrains.kotlin.load.java.structure.impl.JavaConstructorImpl;
import org.jetbrains.kotlin.load.java.structure.impl.JavaFieldImpl;
import org.jetbrains.kotlin.load.java.structure.impl.JavaMethodImpl;
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
-import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder;
+import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import org.jetbrains.kotlin.renderer.NameShortness;
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver;
import javax.swing.*;
+import java.util.Collections;
import static org.jetbrains.kotlin.load.java.JvmAnnotationNames.KOTLIN_SIGNATURE;
public class KotlinSignatureAnnotationIntention extends BaseIntentionAction implements Iconable {
- private static final DescriptorRenderer RENDERER = new DescriptorRendererBuilder()
- .setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES)
- .setNameShortness(NameShortness.SHORT)
- .setModifiers()
- .setWithDefinedIn(false).build();
+ private static final DescriptorRenderer RENDERER = DescriptorRenderer.Companion.withOptions(
+ new Function1() {
+ @Override
+ public Unit invoke(DescriptorRendererOptions options) {
+ options.setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES);
+ options.setNameShortness(NameShortness.SHORT);
+ options.setModifiers(Collections.emptySet());
+ options.setWithDefinedIn(false);
+ return Unit.INSTANCE$;
+ }
+ }
+ );
@NotNull
@Override
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.java
index 1498f60d09a..0c8e86b70c5 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.java
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeMemberFunctionSignatureFix.java
@@ -34,6 +34,8 @@ import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.PlatformIcons;
+import kotlin.Unit;
+import kotlin.jvm.functions.Function1;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.descriptors.*;
@@ -46,7 +48,7 @@ import org.jetbrains.kotlin.idea.util.ShortenReferences;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.*;
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
-import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder;
+import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import org.jetbrains.kotlin.renderer.NameShortness;
import org.jetbrains.kotlin.resolve.FunctionDescriptorUtil;
import org.jetbrains.kotlin.resolve.VisibilityUtil;
@@ -62,12 +64,19 @@ import java.util.*;
* Fix that changes member function's signature to match one of super functions' signatures.
*/
public class ChangeMemberFunctionSignatureFix extends JetHintAction {
- private static final DescriptorRenderer SIGNATURE_RENDERER = new DescriptorRendererBuilder()
- .setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES)
- .setWithDefinedIn(false)
- .setModifiers()
- .setNameShortness(NameShortness.SHORT)
- .setUnitReturnType(false).build();
+ private static final DescriptorRenderer SIGNATURE_RENDERER = DescriptorRenderer.Companion.withOptions(
+ new Function1() {
+ @Override
+ public Unit invoke(DescriptorRendererOptions options) {
+ options.setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES);
+ options.setWithDefinedIn(false);
+ options.setModifiers(Collections.emptySet());
+ options.setNameShortness(NameShortness.SHORT);
+ options.setUnitReturnType(false);
+ return Unit.INSTANCE$;
+ }
+ }
+ );
private final List possibleSignatures;
diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/DeprecatedSymbolUsageInWholeProjectFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/DeprecatedSymbolUsageInWholeProjectFix.kt
index 905dff21510..aaeb10313b6 100644
--- a/idea/src/org/jetbrains/kotlin/idea/quickfix/DeprecatedSymbolUsageInWholeProjectFix.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/DeprecatedSymbolUsageInWholeProjectFix.kt
@@ -45,7 +45,6 @@ import org.jetbrains.kotlin.psi.JetNamedFunction
import org.jetbrains.kotlin.psi.JetProperty
import org.jetbrains.kotlin.psi.JetSimpleNameExpression
import org.jetbrains.kotlin.renderer.DescriptorRenderer
-import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder
import org.jetbrains.kotlin.renderer.NameShortness
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
@@ -149,17 +148,16 @@ public class DeprecatedSymbolUsageInWholeProjectFix(
companion object : JetSingleIntentionActionFactory() {
//TODO: better rendering needed
- private val RENDERER = DescriptorRendererBuilder()
- .setModifiers()
- .setNameShortness(NameShortness.SHORT)
-// .setWithoutTypeParameters(true)
- .setParameterNameRenderingPolicy(DescriptorRenderer.ParameterNameRenderingPolicy.NONE)
- .setReceiverAfterName(true)
- .setRenderCompanionObjectName(true)
- .setWithoutSuperTypes(true)
- .setStartFromName(true)
- .setWithDefinedIn(false)
- .build()
+ private val RENDERER = DescriptorRenderer.withOptions {
+ modifiers = emptySet()
+ nameShortness = NameShortness.SHORT
+ parameterNameRenderingPolicy = DescriptorRenderer.ParameterNameRenderingPolicy.NONE
+ receiverAfterName = true
+ renderCompanionObjectName = true
+ withoutSuperTypes = true
+ startFromName = true
+ withDefinedIn = false
+ }
override fun createAction(diagnostic: Diagnostic): IntentionAction? {
val nameExpression = diagnostic.getPsiElement() as? JetSimpleNameExpression ?: return null
|