DescriptorRenderer: moved enums out

This commit is contained in:
Valentin Kipyatkov
2015-06-05 18:15:26 +03:00
parent fcf613cf03
commit 4263c47f4d
17 changed files with 112 additions and 134 deletions
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.descriptors.PackageViewDescriptor;
import org.jetbrains.kotlin.psi.JetFile; import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.renderer.DescriptorRenderer; import org.jetbrains.kotlin.renderer.DescriptorRenderer;
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions; import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import org.jetbrains.kotlin.renderer.ParameterNameRenderingPolicy;
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil; import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil;
import org.jetbrains.kotlin.test.ConfigurationKind; import org.jetbrains.kotlin.test.ConfigurationKind;
import org.jetbrains.kotlin.test.TestCaseWithTmpdir; import org.jetbrains.kotlin.test.TestCaseWithTmpdir;
@@ -50,7 +51,7 @@ public abstract class AbstractCompileJavaAgainstKotlinTest extends TestCaseWithT
@Override @Override
public Unit invoke(DescriptorRendererOptions options) { public Unit invoke(DescriptorRendererOptions options) {
options.setWithDefinedIn(false); options.setWithDefinedIn(false);
options.setParameterNameRenderingPolicy(DescriptorRenderer.ParameterNameRenderingPolicy.NONE); options.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.NONE);
options.setVerbose(true); options.setVerbose(true);
return Unit.INSTANCE$; return Unit.INSTANCE$;
} }
@@ -31,6 +31,8 @@ import org.jetbrains.kotlin.load.kotlin.reflect.ReflectKotlinClass
import org.jetbrains.kotlin.load.kotlin.reflect.RuntimeModuleData import org.jetbrains.kotlin.load.kotlin.reflect.RuntimeModuleData
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy
import org.jetbrains.kotlin.renderer.ParameterNameRenderingPolicy
import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.scopes.* import org.jetbrains.kotlin.resolve.scopes.*
import org.jetbrains.kotlin.serialization.deserialization.findClassAcrossModuleDependencies import org.jetbrains.kotlin.serialization.deserialization.findClassAcrossModuleDependencies
@@ -43,7 +45,6 @@ import org.jetbrains.kotlin.types.TypeSubstitutor
import org.jetbrains.kotlin.utils.sure import org.jetbrains.kotlin.utils.sure
import java.io.File import java.io.File
import java.net.URLClassLoader import java.net.URLClassLoader
import java.util.*
import java.util.regex.Pattern import java.util.regex.Pattern
public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdir() { public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdir() {
@@ -57,8 +58,8 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi
"kotlin.data", "kotlin.data",
"kotlin.inline" "kotlin.inline"
).map { FqName(it) } + JvmAnnotationNames.ANNOTATIONS_COPIED_TO_TYPES).toSet() ).map { FqName(it) } + JvmAnnotationNames.ANNOTATIONS_COPIED_TO_TYPES).toSet()
overrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE
parameterNameRenderingPolicy = DescriptorRenderer.ParameterNameRenderingPolicy.NONE parameterNameRenderingPolicy = ParameterNameRenderingPolicy.NONE
includePropertyConstant = false includePropertyConstant = false
verbose = true verbose = true
} }
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor;
import org.jetbrains.kotlin.psi.JetFile; import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.renderer.DescriptorRenderer; import org.jetbrains.kotlin.renderer.DescriptorRenderer;
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions; import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy;
import org.jetbrains.kotlin.resolve.lazy.KotlinTestWithEnvironment; import org.jetbrains.kotlin.resolve.lazy.KotlinTestWithEnvironment;
import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil; import org.jetbrains.kotlin.resolve.lazy.LazyResolveTestUtil;
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor; import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor;
@@ -54,7 +55,7 @@ public class LoadBuiltinsTest extends KotlinTestWithEnvironment {
@Override @Override
public Unit invoke(DescriptorRendererOptions options) { public Unit invoke(DescriptorRendererOptions options) {
options.setWithDefinedIn(false); options.setWithDefinedIn(false);
options.setOverrideRenderingPolicy(DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE); options.setOverrideRenderingPolicy(OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE);
options.setVerbose(true); options.setVerbose(true);
options.setPrettyFunctionTypes(false); options.setPrettyFunctionTypes(false);
return Unit.INSTANCE$; return Unit.INSTANCE$;
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.renderer.DescriptorRenderer; import org.jetbrains.kotlin.renderer.DescriptorRenderer;
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions; import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import org.jetbrains.kotlin.renderer.NameShortness; import org.jetbrains.kotlin.renderer.NameShortness;
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy;
import org.jetbrains.kotlin.resolve.DescriptorUtils; import org.jetbrains.kotlin.resolve.DescriptorUtils;
import org.jetbrains.kotlin.resolve.MemberComparator; import org.jetbrains.kotlin.resolve.MemberComparator;
import org.jetbrains.kotlin.resolve.scopes.JetScope; import org.jetbrains.kotlin.resolve.scopes.JetScope;
@@ -53,7 +54,7 @@ public class RecursiveDescriptorComparator {
public Unit invoke(DescriptorRendererOptions options) { public Unit invoke(DescriptorRendererOptions options) {
options.setWithDefinedIn(false); options.setWithDefinedIn(false);
options.setExcludedAnnotationClasses(Collections.singleton(new FqName(ExpectedLoadErrorsUtil.ANNOTATION_CLASS_NAME))); options.setExcludedAnnotationClasses(Collections.singleton(new FqName(ExpectedLoadErrorsUtil.ANNOTATION_CLASS_NAME)));
options.setOverrideRenderingPolicy(DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE); options.setOverrideRenderingPolicy(OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE);
options.setIncludePropertyConstant(true); options.setIncludePropertyConstant(true);
options.setNameShortness(NameShortness.FULLY_QUALIFIED); options.setNameShortness(NameShortness.FULLY_QUALIFIED);
options.setVerbose(true); options.setVerbose(true);
@@ -48,32 +48,6 @@ public interface DescriptorRenderer : Renderer<DeclarationDescriptor> {
public fun renderFqName(fqName: FqNameBase): String public fun renderFqName(fqName: FqNameBase): String
public enum class TextFormat {
PLAIN,
HTML
}
public enum class OverrideRenderingPolicy {
RENDER_OVERRIDE,
RENDER_OPEN,
RENDER_OPEN_OVERRIDE
}
public enum class ParameterNameRenderingPolicy {
ALL,
ONLY_NON_SYNTHESIZED,
NONE
}
public enum class Modifier {
VISIBILITY,
MODALITY,
OVERRIDE,
ANNOTATIONS,
INNER,
MEMBER_KIND
}
public interface ValueParametersHandler { public interface ValueParametersHandler {
public fun appendBeforeValueParameters(function: FunctionDescriptor, builder: StringBuilder) public fun appendBeforeValueParameters(function: FunctionDescriptor, builder: StringBuilder)
public fun appendAfterValueParameters(function: FunctionDescriptor, builder: StringBuilder) public fun appendAfterValueParameters(function: FunctionDescriptor, builder: StringBuilder)
@@ -161,25 +135,25 @@ public interface DescriptorRenderer : Renderer<DeclarationDescriptor> {
public val HTML_COMPACT_WITH_MODIFIERS: DescriptorRenderer = withOptions { public val HTML_COMPACT_WITH_MODIFIERS: DescriptorRenderer = withOptions {
withDefinedIn = false withDefinedIn = false
textFormat = TextFormat.HTML textFormat = RenderingFormat.HTML
} }
public val HTML_NAMES_WITH_SHORT_TYPES: DescriptorRenderer = withOptions { public val HTML_NAMES_WITH_SHORT_TYPES: DescriptorRenderer = withOptions {
withDefinedIn = false withDefinedIn = false
nameShortness = NameShortness.SHORT nameShortness = NameShortness.SHORT
renderCompanionObjectName = true renderCompanionObjectName = true
textFormat = TextFormat.HTML textFormat = RenderingFormat.HTML
} }
public val HTML: DescriptorRenderer = withOptions { public val HTML: DescriptorRenderer = withOptions {
textFormat = TextFormat.HTML textFormat = RenderingFormat.HTML
} }
public val HTML_FOR_UNINFERRED_TYPE_PARAMS: DescriptorRenderer = withOptions { public val HTML_FOR_UNINFERRED_TYPE_PARAMS: DescriptorRenderer = withOptions {
uninferredTypeParameterAsName = true uninferredTypeParameterAsName = true
modifiers = emptySet() modifiers = emptySet()
nameShortness = NameShortness.SHORT nameShortness = NameShortness.SHORT
textFormat = TextFormat.HTML textFormat = RenderingFormat.HTML
} }
public val DEPRECATION: DescriptorRenderer = withOptions { public val DEPRECATION: DescriptorRenderer = withOptions {
@@ -215,7 +189,7 @@ public interface DescriptorRenderer : Renderer<DeclarationDescriptor> {
public interface DescriptorRendererOptions { public interface DescriptorRendererOptions {
public var nameShortness: NameShortness public var nameShortness: NameShortness
public var withDefinedIn: Boolean public var withDefinedIn: Boolean
public var modifiers: Set<DescriptorRenderer.Modifier> public var modifiers: Set<DescriptorRendererModifier>
public var startFromName: Boolean public var startFromName: Boolean
public var debugMode: Boolean public var debugMode: Boolean
public var classWithPrimaryConstructor: Boolean public var classWithPrimaryConstructor: Boolean
@@ -225,13 +199,13 @@ public interface DescriptorRendererOptions {
public var showInternalKeyword: Boolean public var showInternalKeyword: Boolean
public var prettyFunctionTypes: Boolean public var prettyFunctionTypes: Boolean
public var uninferredTypeParameterAsName: Boolean public var uninferredTypeParameterAsName: Boolean
public var overrideRenderingPolicy: DescriptorRenderer.OverrideRenderingPolicy public var overrideRenderingPolicy: OverrideRenderingPolicy
public var valueParametersHandler: DescriptorRenderer.ValueParametersHandler public var valueParametersHandler: DescriptorRenderer.ValueParametersHandler
public var textFormat: DescriptorRenderer.TextFormat public var textFormat: RenderingFormat
public var excludedAnnotationClasses: Set<FqName> public var excludedAnnotationClasses: Set<FqName>
public var excludedTypeAnnotationClasses: Set<FqName> public var excludedTypeAnnotationClasses: Set<FqName>
public var includePropertyConstant: Boolean public var includePropertyConstant: Boolean
public var parameterNameRenderingPolicy: DescriptorRenderer.ParameterNameRenderingPolicy public var parameterNameRenderingPolicy: ParameterNameRenderingPolicy
public var withoutTypeParameters: Boolean public var withoutTypeParameters: Boolean
public var receiverAfterName: Boolean public var receiverAfterName: Boolean
public var renderCompanionObjectName: Boolean public var renderCompanionObjectName: Boolean
@@ -242,3 +216,35 @@ public interface DescriptorRendererOptions {
public var secondaryConstructorsAsPrimary: Boolean public var secondaryConstructorsAsPrimary: Boolean
public var renderAccessors: Boolean public var renderAccessors: Boolean
} }
public enum class RenderingFormat {
PLAIN,
HTML
}
public enum class NameShortness {
SHORT,
FULLY_QUALIFIED,
SOURCE_CODE_QUALIFIED // for local declarations qualified up to function scope
}
public enum class OverrideRenderingPolicy {
RENDER_OVERRIDE,
RENDER_OPEN,
RENDER_OPEN_OVERRIDE
}
public enum class ParameterNameRenderingPolicy {
ALL,
ONLY_NON_SYNTHESIZED,
NONE
}
public enum class DescriptorRendererModifier {
VISIBILITY,
MODALITY,
OVERRIDE,
ANNOTATIONS,
INNER,
MEMBER_KIND
}
@@ -49,22 +49,22 @@ internal class DescriptorRendererImpl(
/* FORMATTING */ /* FORMATTING */
private fun renderKeyword(keyword: String): String { private fun renderKeyword(keyword: String): String {
when (textFormat) { when (textFormat) {
DescriptorRenderer.TextFormat.PLAIN -> return keyword RenderingFormat.PLAIN -> return keyword
DescriptorRenderer.TextFormat.HTML -> return "<b>" + keyword + "</b>" RenderingFormat.HTML -> return "<b>" + keyword + "</b>"
} }
} }
private fun renderError(keyword: String): String { private fun renderError(keyword: String): String {
when (textFormat) { when (textFormat) {
DescriptorRenderer.TextFormat.PLAIN -> return keyword RenderingFormat.PLAIN -> return keyword
DescriptorRenderer.TextFormat.HTML -> return "<font color=red><b>" + keyword + "</b></font>" RenderingFormat.HTML -> return "<font color=red><b>" + keyword + "</b></font>"
} }
} }
private fun escape(string: String): String { private fun escape(string: String): String {
when (textFormat) { when (textFormat) {
DescriptorRenderer.TextFormat.PLAIN -> return string RenderingFormat.PLAIN -> return string
DescriptorRenderer.TextFormat.HTML -> return string.replace("<", "&lt;").replace(">", "&gt;") RenderingFormat.HTML -> return string.replace("<", "&lt;").replace(">", "&gt;")
} }
} }
@@ -73,15 +73,15 @@ internal class DescriptorRendererImpl(
private fun arrow(): String { private fun arrow(): String {
return when (textFormat) { return when (textFormat) {
DescriptorRenderer.TextFormat.PLAIN -> escape("->") RenderingFormat.PLAIN -> escape("->")
DescriptorRenderer.TextFormat.HTML -> "&rarr;" RenderingFormat.HTML -> "&rarr;"
} }
} }
private fun renderMessage(message: String): String { private fun renderMessage(message: String): String {
return when (textFormat) { return when (textFormat) {
DescriptorRenderer.TextFormat.PLAIN -> message RenderingFormat.PLAIN -> message
DescriptorRenderer.TextFormat.HTML -> "<i>$message</i>" RenderingFormat.HTML -> "<i>$message</i>"
} }
} }
@@ -321,7 +321,7 @@ internal class DescriptorRendererImpl(
} }
private fun renderAnnotations(annotated: Annotated, builder: StringBuilder, needBrackets: Boolean = false) { private fun renderAnnotations(annotated: Annotated, builder: StringBuilder, needBrackets: Boolean = false) {
if (DescriptorRenderer.Modifier.ANNOTATIONS !in modifiers) return if (DescriptorRendererModifier.ANNOTATIONS !in modifiers) return
val excluded = if (annotated is JetType) excludedTypeAnnotationClasses else excludedAnnotationClasses val excluded = if (annotated is JetType) excludedTypeAnnotationClasses else excludedAnnotationClasses
@@ -380,7 +380,7 @@ internal class DescriptorRendererImpl(
private fun renderVisibility(visibility: Visibility, builder: StringBuilder) { private fun renderVisibility(visibility: Visibility, builder: StringBuilder) {
var visibility = visibility var visibility = visibility
if (DescriptorRenderer.Modifier.VISIBILITY !in modifiers) return if (DescriptorRendererModifier.VISIBILITY !in modifiers) return
if (normalizedVisibilities) { if (normalizedVisibilities) {
visibility = visibility.normalize() visibility = visibility.normalize()
} }
@@ -389,13 +389,13 @@ internal class DescriptorRendererImpl(
} }
private fun renderModality(modality: Modality, builder: StringBuilder) { private fun renderModality(modality: Modality, builder: StringBuilder) {
if (DescriptorRenderer.Modifier.MODALITY !in modifiers) return if (DescriptorRendererModifier.MODALITY !in modifiers) return
val keyword = modality.name().toLowerCase() val keyword = modality.name().toLowerCase()
builder.append(renderKeyword(keyword)).append(" ") builder.append(renderKeyword(keyword)).append(" ")
} }
private fun renderInner(isInner: Boolean, builder: StringBuilder) { private fun renderInner(isInner: Boolean, builder: StringBuilder) {
if (DescriptorRenderer.Modifier.INNER !in modifiers) return if (DescriptorRendererModifier.INNER !in modifiers) return
if (isInner) { if (isInner) {
builder.append(renderKeyword("inner")).append(" ") builder.append(renderKeyword("inner")).append(" ")
} }
@@ -403,7 +403,7 @@ internal class DescriptorRendererImpl(
private fun renderModalityForCallable(callable: CallableMemberDescriptor, builder: StringBuilder) { private fun renderModalityForCallable(callable: CallableMemberDescriptor, builder: StringBuilder) {
if (!DescriptorUtils.isTopLevelDeclaration(callable) || callable.getModality() != Modality.FINAL) { if (!DescriptorUtils.isTopLevelDeclaration(callable) || callable.getModality() != Modality.FINAL) {
if (overridesSomething(callable) && overrideRenderingPolicy == DescriptorRenderer.OverrideRenderingPolicy.RENDER_OVERRIDE && callable.getModality() == Modality.OPEN) { if (overridesSomething(callable) && overrideRenderingPolicy == OverrideRenderingPolicy.RENDER_OVERRIDE && callable.getModality() == Modality.OPEN) {
return return
} }
renderModality(callable.getModality(), builder) renderModality(callable.getModality(), builder)
@@ -411,9 +411,9 @@ internal class DescriptorRendererImpl(
} }
private fun renderOverride(callableMember: CallableMemberDescriptor, builder: StringBuilder) { private fun renderOverride(callableMember: CallableMemberDescriptor, builder: StringBuilder) {
if (DescriptorRenderer.Modifier.OVERRIDE !in modifiers) return if (DescriptorRendererModifier.OVERRIDE !in modifiers) return
if (overridesSomething(callableMember)) { if (overridesSomething(callableMember)) {
if (overrideRenderingPolicy != DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN) { if (overrideRenderingPolicy != OverrideRenderingPolicy.RENDER_OPEN) {
builder.append("override ") builder.append("override ")
if (verbose) { if (verbose) {
builder.append("/*").append(callableMember.getOverriddenDescriptors().size()).append("*/ ") builder.append("/*").append(callableMember.getOverriddenDescriptors().size()).append("*/ ")
@@ -423,7 +423,7 @@ internal class DescriptorRendererImpl(
} }
private fun renderMemberKind(callableMember: CallableMemberDescriptor, builder: StringBuilder) { private fun renderMemberKind(callableMember: CallableMemberDescriptor, builder: StringBuilder) {
if (DescriptorRenderer.Modifier.MEMBER_KIND !in modifiers) return if (DescriptorRendererModifier.MEMBER_KIND !in modifiers) return
if (verbose && callableMember.getKind() != CallableMemberDescriptor.Kind.DECLARATION) { if (verbose && callableMember.getKind() != CallableMemberDescriptor.Kind.DECLARATION) {
builder.append("/*").append(callableMember.getKind().name().toLowerCase()).append("*/ ") builder.append("/*").append(callableMember.getKind().name().toLowerCase()).append("*/ ")
} }
@@ -617,9 +617,9 @@ internal class DescriptorRendererImpl(
private fun shouldRenderParameterNames(function: FunctionDescriptor): Boolean { private fun shouldRenderParameterNames(function: FunctionDescriptor): Boolean {
when (parameterNameRenderingPolicy) { when (parameterNameRenderingPolicy) {
DescriptorRenderer.ParameterNameRenderingPolicy.ALL -> return true ParameterNameRenderingPolicy.ALL -> return true
DescriptorRenderer.ParameterNameRenderingPolicy.ONLY_NON_SYNTHESIZED -> return !function.hasSynthesizedParameterNames() ParameterNameRenderingPolicy.ONLY_NON_SYNTHESIZED -> return !function.hasSynthesizedParameterNames()
DescriptorRenderer.ParameterNameRenderingPolicy.NONE -> return false ParameterNameRenderingPolicy.NONE -> return false
} }
} }
@@ -61,7 +61,7 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
override var nameShortness by property(NameShortness.SOURCE_CODE_QUALIFIED) override var nameShortness by property(NameShortness.SOURCE_CODE_QUALIFIED)
override var withDefinedIn by property(true) override var withDefinedIn by property(true)
override var modifiers: Set<DescriptorRenderer.Modifier> by property(EnumSet.allOf(javaClass<DescriptorRenderer.Modifier>())) override var modifiers: Set<DescriptorRendererModifier> by property(EnumSet.allOf(javaClass<DescriptorRendererModifier>()))
override var startFromName by property(false) override var startFromName by property(false)
override var debugMode by property(false) override var debugMode by property(false)
override var classWithPrimaryConstructor by property(false) override var classWithPrimaryConstructor by property(false)
@@ -78,10 +78,10 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
override var renderDefaultValues by property(true) override var renderDefaultValues by property(true)
override var flexibleTypesForCode by property(false) override var flexibleTypesForCode by property(false)
override var secondaryConstructorsAsPrimary by property(true) override var secondaryConstructorsAsPrimary by property(true)
override var overrideRenderingPolicy by property(DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN) override var overrideRenderingPolicy by property(OverrideRenderingPolicy.RENDER_OPEN)
override var valueParametersHandler: DescriptorRenderer.ValueParametersHandler by property(DescriptorRenderer.ValueParametersHandler.DEFAULT) override var valueParametersHandler: DescriptorRenderer.ValueParametersHandler by property(DescriptorRenderer.ValueParametersHandler.DEFAULT)
override var textFormat by property(DescriptorRenderer.TextFormat.PLAIN) override var textFormat by property(RenderingFormat.PLAIN)
override var parameterNameRenderingPolicy by property(DescriptorRenderer.ParameterNameRenderingPolicy.ALL) override var parameterNameRenderingPolicy by property(ParameterNameRenderingPolicy.ALL)
override var receiverAfterName by property(false) override var receiverAfterName by property(false)
override var renderCompanionObjectName by property(false) override var renderCompanionObjectName by property(false)
override var renderAccessors by property(false) override var renderAccessors by property(false)
@@ -1,23 +0,0 @@
/*
* 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.renderer;
public enum NameShortness {
SHORT,
FULLY_QUALIFIED,
SOURCE_CODE_QUALIFIED // for local declarations qualified up to function scope
}
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea.util
import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.renderer.NameShortness import org.jetbrains.kotlin.renderer.NameShortness
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy
import org.jetbrains.kotlin.types.JetType import org.jetbrains.kotlin.types.JetType
public object IdeDescriptorRenderers { public object IdeDescriptorRenderers {
@@ -29,7 +30,7 @@ public object IdeDescriptorRenderers {
normalizedVisibilities = true normalizedVisibilities = true
withDefinedIn = false withDefinedIn = false
showInternalKeyword = false showInternalKeyword = false
overrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OVERRIDE overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OVERRIDE
unitReturnType = false unitReturnType = false
} }
@@ -27,9 +27,7 @@ import org.jetbrains.kotlin.diagnostics.rendering.TabledDescriptorRenderer;
import org.jetbrains.kotlin.diagnostics.rendering.TabledDescriptorRenderer.TableRenderer.DescriptorRow; import org.jetbrains.kotlin.diagnostics.rendering.TabledDescriptorRenderer.TableRenderer.DescriptorRow;
import org.jetbrains.kotlin.diagnostics.rendering.TabledDescriptorRenderer.TableRenderer.FunctionArgumentsRow; import org.jetbrains.kotlin.diagnostics.rendering.TabledDescriptorRenderer.TableRenderer.FunctionArgumentsRow;
import org.jetbrains.kotlin.diagnostics.rendering.TabledDescriptorRenderer.TableRenderer.TableRow; import org.jetbrains.kotlin.diagnostics.rendering.TabledDescriptorRenderer.TableRenderer.TableRow;
import org.jetbrains.kotlin.renderer.DescriptorRenderer; import org.jetbrains.kotlin.renderer.*;
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.resolve.calls.inference.constraintPosition.ConstraintPosition;
import org.jetbrains.kotlin.types.JetType; import org.jetbrains.kotlin.types.JetType;
@@ -207,9 +205,9 @@ public class HtmlTabledDescriptorRenderer extends TabledDescriptorRenderer {
@Override @Override
public Unit invoke(DescriptorRendererOptions options) { public Unit invoke(DescriptorRendererOptions options) {
options.setWithDefinedIn(false); options.setWithDefinedIn(false);
options.setModifiers(Collections.<DescriptorRenderer.Modifier>emptySet()); options.setModifiers(Collections.<DescriptorRendererModifier>emptySet());
options.setValueParametersHandler(VALUE_PARAMETERS_HANDLER); options.setValueParametersHandler(VALUE_PARAMETERS_HANDLER);
options.setTextFormat(DescriptorRenderer.TextFormat.HTML); options.setTextFormat(RenderingFormat.HTML);
return Unit.INSTANCE$; return Unit.INSTANCE$;
} }
}); });
@@ -33,10 +33,7 @@ import org.jetbrains.kotlin.idea.JetDescriptorIconProvider;
import org.jetbrains.kotlin.psi.JetClass; import org.jetbrains.kotlin.psi.JetClass;
import org.jetbrains.kotlin.psi.JetDeclaration; import org.jetbrains.kotlin.psi.JetDeclaration;
import org.jetbrains.kotlin.psi.JetNamedDeclaration; import org.jetbrains.kotlin.psi.JetNamedDeclaration;
import org.jetbrains.kotlin.renderer.DescriptorRenderer; import org.jetbrains.kotlin.renderer.*;
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 org.jetbrains.kotlin.resolve.DescriptorUtils;
import javax.swing.*; import javax.swing.*;
@@ -55,7 +52,7 @@ public class DescriptorClassMember extends MemberChooserObjectBase implements Cl
@Override @Override
public Unit invoke(DescriptorRendererOptions options) { public Unit invoke(DescriptorRendererOptions options) {
options.setWithDefinedIn(false); options.setWithDefinedIn(false);
options.setModifiers(Collections.<DescriptorRenderer.Modifier>emptySet()); options.setModifiers(Collections.<DescriptorRendererModifier>emptySet());
options.setStartFromName(true); options.setStartFromName(true);
options.setNameShortness(NameShortness.SHORT); options.setNameShortness(NameShortness.SHORT);
return Unit.INSTANCE$; return Unit.INSTANCE$;
@@ -18,36 +18,26 @@ package org.jetbrains.kotlin.idea.core.codeInsight
import com.intellij.codeInsight.hint.HintManager import com.intellij.codeInsight.hint.HintManager
import com.intellij.ide.util.MemberChooser import com.intellij.ide.util.MemberChooser
import com.intellij.lang.ASTNode
import com.intellij.lang.LanguageCodeInsightActionHandler import com.intellij.lang.LanguageCodeInsightActionHandler
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.ui.DialogWrapper import com.intellij.openapi.ui.DialogWrapper
import com.intellij.openapi.util.Condition
import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.* import com.intellij.psi.*
import com.intellij.psi.util.PsiTreeUtil import com.intellij.psi.util.PsiTreeUtil
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.idea.caches.resolve.* import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.quickfix.* import org.jetbrains.kotlin.idea.quickfix.moveCaretIntoGeneratedElement
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
import org.jetbrains.kotlin.idea.util.ShortenReferences import org.jetbrains.kotlin.idea.util.ShortenReferences
import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.idea.util.application.runWriteAction
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.renderer.NameShortness
import org.jetbrains.kotlin.types.JetType
import java.util.ArrayList
import java.util.Collections
import org.jetbrains.kotlin.psi.JetPsiFactory
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
import org.jetbrains.kotlin.renderer.render import org.jetbrains.kotlin.renderer.*
import java.util.ArrayList
public abstract class OverrideImplementMethodsHandler : LanguageCodeInsightActionHandler { public abstract class OverrideImplementMethodsHandler : LanguageCodeInsightActionHandler {
@@ -120,10 +110,10 @@ public abstract class OverrideImplementMethodsHandler : LanguageCodeInsightActio
companion object { companion object {
private val OVERRIDE_RENDERER = DescriptorRenderer.withOptions { private val OVERRIDE_RENDERER = DescriptorRenderer.withOptions {
renderDefaultValues = false renderDefaultValues = false
modifiers = setOf(DescriptorRenderer.Modifier.OVERRIDE) modifiers = setOf(DescriptorRendererModifier.OVERRIDE)
withDefinedIn = false withDefinedIn = false
nameShortness = NameShortness.SOURCE_CODE_QUALIFIED nameShortness = NameShortness.SOURCE_CODE_QUALIFIED
overrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OVERRIDE overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OVERRIDE
unitReturnType = false unitReturnType = false
typeNormalizer = IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES typeNormalizer = IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES
} }
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.renderer.NameShortness import org.jetbrains.kotlin.renderer.NameShortness
import org.jetbrains.kotlin.renderer.RenderingFormat
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import org.jetbrains.kotlin.resolve.source.PsiSourceElement import org.jetbrains.kotlin.resolve.source.PsiSourceElement
@@ -86,7 +87,7 @@ public class KotlinQuickDocumentationProvider : AbstractDocumentationProvider()
withDefinedIn = true withDefinedIn = true
nameShortness = NameShortness.SHORT nameShortness = NameShortness.SHORT
renderCompanionObjectName = true renderCompanionObjectName = true
textFormat = DescriptorRenderer.TextFormat.HTML textFormat = RenderingFormat.HTML
} }
@@ -16,26 +16,27 @@
package org.jetbrains.kotlin.idea.highlighter.markers package org.jetbrains.kotlin.idea.highlighter.markers
import com.intellij.codeInsight.daemon.GutterIconNavigationHandler
import com.intellij.codeInsight.daemon.impl.PsiElementListNavigator
import com.intellij.openapi.application.ApplicationManager
import com.intellij.psi.NavigatablePsiElement
import com.intellij.util.Function
import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.resolve.OverrideResolver
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor
import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import com.intellij.psi.NavigatablePsiElement
import java.awt.event.MouseEvent
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import com.intellij.openapi.application.ApplicationManager
import com.intellij.codeInsight.daemon.impl.PsiElementListNavigator
import org.jetbrains.kotlin.idea.JetBundle import org.jetbrains.kotlin.idea.JetBundle
import org.jetbrains.kotlin.idea.codeInsight.JetFunctionPsiElementCellRenderer
import org.jetbrains.annotations.TestOnly
import com.intellij.codeInsight.daemon.GutterIconNavigationHandler
import java.util.ArrayList
import com.intellij.util.Function
import org.jetbrains.kotlin.psi.JetDeclaration
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.idea.caches.resolve.analyze import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.codeInsight.JetFunctionPsiElementCellRenderer
import org.jetbrains.kotlin.psi.JetDeclaration
import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.renderer.RenderingFormat
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.OverrideResolver
import java.awt.event.MouseEvent
import java.util.ArrayList
object SuperDeclarationMarkerTooltip: Function<JetDeclaration, String> { object SuperDeclarationMarkerTooltip: Function<JetDeclaration, String> {
override fun `fun`(jetDeclaration: JetDeclaration?): String? { override fun `fun`(jetDeclaration: JetDeclaration?): String? {
@@ -45,7 +46,7 @@ object SuperDeclarationMarkerTooltip: Function<JetDeclaration, String> {
val isAbstract = elementDescriptor!!.getModality() == Modality.ABSTRACT val isAbstract = elementDescriptor!!.getModality() == Modality.ABSTRACT
val renderer = DescriptorRenderer.withOptions { val renderer = DescriptorRenderer.withOptions {
textFormat = DescriptorRenderer.TextFormat.HTML textFormat = RenderingFormat.HTML
withDefinedIn = false withDefinedIn = false
startFromName = true startFromName = true
withoutSuperTypes = true withoutSuperTypes = true
@@ -47,6 +47,7 @@ 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.JavaFieldImpl;
import org.jetbrains.kotlin.load.java.structure.impl.JavaMethodImpl; import org.jetbrains.kotlin.load.java.structure.impl.JavaMethodImpl;
import org.jetbrains.kotlin.renderer.DescriptorRenderer; import org.jetbrains.kotlin.renderer.DescriptorRenderer;
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier;
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions; import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import org.jetbrains.kotlin.renderer.NameShortness; import org.jetbrains.kotlin.renderer.NameShortness;
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver; import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver;
@@ -63,7 +64,7 @@ public class KotlinSignatureAnnotationIntention extends BaseIntentionAction impl
public Unit invoke(DescriptorRendererOptions options) { public Unit invoke(DescriptorRendererOptions options) {
options.setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES); options.setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES);
options.setNameShortness(NameShortness.SHORT); options.setNameShortness(NameShortness.SHORT);
options.setModifiers(Collections.<DescriptorRenderer.Modifier>emptySet()); options.setModifiers(Collections.<DescriptorRendererModifier>emptySet());
options.setWithDefinedIn(false); options.setWithDefinedIn(false);
return Unit.INSTANCE$; return Unit.INSTANCE$;
} }
@@ -48,6 +48,7 @@ import org.jetbrains.kotlin.idea.util.ShortenReferences;
import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.*; import org.jetbrains.kotlin.psi.*;
import org.jetbrains.kotlin.renderer.DescriptorRenderer; import org.jetbrains.kotlin.renderer.DescriptorRenderer;
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier;
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions; import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import org.jetbrains.kotlin.renderer.NameShortness; import org.jetbrains.kotlin.renderer.NameShortness;
import org.jetbrains.kotlin.resolve.FunctionDescriptorUtil; import org.jetbrains.kotlin.resolve.FunctionDescriptorUtil;
@@ -70,7 +71,7 @@ public class ChangeMemberFunctionSignatureFix extends JetHintAction<JetNamedFunc
public Unit invoke(DescriptorRendererOptions options) { public Unit invoke(DescriptorRendererOptions options) {
options.setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES); options.setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES);
options.setWithDefinedIn(false); options.setWithDefinedIn(false);
options.setModifiers(Collections.<DescriptorRenderer.Modifier>emptySet()); options.setModifiers(Collections.<DescriptorRendererModifier>emptySet());
options.setNameShortness(NameShortness.SHORT); options.setNameShortness(NameShortness.SHORT);
options.setUnitReturnType(false); options.setUnitReturnType(false);
return Unit.INSTANCE$; return Unit.INSTANCE$;
@@ -46,6 +46,7 @@ import org.jetbrains.kotlin.psi.JetProperty
import org.jetbrains.kotlin.psi.JetSimpleNameExpression import org.jetbrains.kotlin.psi.JetSimpleNameExpression
import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.renderer.NameShortness import org.jetbrains.kotlin.renderer.NameShortness
import org.jetbrains.kotlin.renderer.ParameterNameRenderingPolicy
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
@@ -151,7 +152,7 @@ public class DeprecatedSymbolUsageInWholeProjectFix(
private val RENDERER = DescriptorRenderer.withOptions { private val RENDERER = DescriptorRenderer.withOptions {
modifiers = emptySet() modifiers = emptySet()
nameShortness = NameShortness.SHORT nameShortness = NameShortness.SHORT
parameterNameRenderingPolicy = DescriptorRenderer.ParameterNameRenderingPolicy.NONE parameterNameRenderingPolicy = ParameterNameRenderingPolicy.NONE
receiverAfterName = true receiverAfterName = true
renderCompanionObjectName = true renderCompanionObjectName = true
withoutSuperTypes = true withoutSuperTypes = true