Merge two DescriptorRenderer parameters about parameter name rendering
Also disable parameter name rendering completely in AbstractJvmRuntimeDescriptorLoaderTest because they can't be obtained anyway in reflection
This commit is contained in:
+1
-1
@@ -65,7 +65,7 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi
|
|||||||
"org.jetbrains.annotations.ReadOnly"
|
"org.jetbrains.annotations.ReadOnly"
|
||||||
).map { FqName(it) })
|
).map { FqName(it) })
|
||||||
.setOverrideRenderingPolicy(DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE)
|
.setOverrideRenderingPolicy(DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE)
|
||||||
.setIncludeSynthesizedParameterNames(false)
|
.setParameterNameRenderingPolicy(DescriptorRenderer.ParameterNameRenderingPolicy.NONE)
|
||||||
.setIncludePropertyConstant(false)
|
.setIncludePropertyConstant(false)
|
||||||
.setVerbose(true)
|
.setVerbose(true)
|
||||||
.build()
|
.build()
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
|
|||||||
DescriptorRenderer COMPACT_WITH_SHORT_TYPES = new DescriptorRendererBuilder()
|
DescriptorRenderer COMPACT_WITH_SHORT_TYPES = new DescriptorRendererBuilder()
|
||||||
.setModifiers()
|
.setModifiers()
|
||||||
.setNameShortness(NameShortness.SHORT)
|
.setNameShortness(NameShortness.SHORT)
|
||||||
.setIncludeSynthesizedParameterNames(false).build();
|
.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.ONLY_NON_SYNTHESIZED).build();
|
||||||
|
|
||||||
DescriptorRenderer STARTS_FROM_NAME = new DescriptorRendererBuilder()
|
DescriptorRenderer STARTS_FROM_NAME = new DescriptorRendererBuilder()
|
||||||
.setWithDefinedIn(false)
|
.setWithDefinedIn(false)
|
||||||
@@ -51,7 +51,7 @@ public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
|
|||||||
.setModifiers()
|
.setModifiers()
|
||||||
.setNameShortness(NameShortness.SHORT)
|
.setNameShortness(NameShortness.SHORT)
|
||||||
.setWithoutTypeParameters(true)
|
.setWithoutTypeParameters(true)
|
||||||
.setWithoutFunctionParameterNames(true)
|
.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.NONE)
|
||||||
.setReceiverAfterName(true)
|
.setReceiverAfterName(true)
|
||||||
.setRenderCompanionObjectName(true)
|
.setRenderCompanionObjectName(true)
|
||||||
.setWithoutSuperTypes(true)
|
.setWithoutSuperTypes(true)
|
||||||
@@ -59,8 +59,10 @@ public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
|
|||||||
|
|
||||||
DescriptorRenderer FQ_NAMES_IN_TYPES = new DescriptorRendererBuilder().build();
|
DescriptorRenderer FQ_NAMES_IN_TYPES = new DescriptorRendererBuilder().build();
|
||||||
|
|
||||||
DescriptorRenderer SHORT_NAMES_IN_TYPES = new DescriptorRendererBuilder().setNameShortness(
|
DescriptorRenderer SHORT_NAMES_IN_TYPES = new DescriptorRendererBuilder()
|
||||||
NameShortness.SHORT).setIncludeSynthesizedParameterNames(false).build();
|
.setNameShortness(NameShortness.SHORT)
|
||||||
|
.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.ONLY_NON_SYNTHESIZED)
|
||||||
|
.build();
|
||||||
|
|
||||||
DescriptorRenderer DEBUG_TEXT = new DescriptorRendererBuilder()
|
DescriptorRenderer DEBUG_TEXT = new DescriptorRendererBuilder()
|
||||||
.setDebugMode(true)
|
.setDebugMode(true)
|
||||||
@@ -122,6 +124,10 @@ public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
|
|||||||
RENDER_OVERRIDE, RENDER_OPEN, RENDER_OPEN_OVERRIDE
|
RENDER_OVERRIDE, RENDER_OPEN, RENDER_OPEN_OVERRIDE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum ParameterNameRenderingPolicy {
|
||||||
|
ALL, ONLY_NON_SYNTHESIZED, NONE
|
||||||
|
}
|
||||||
|
|
||||||
enum Modifier {
|
enum Modifier {
|
||||||
VISIBILITY, MODALITY, OVERRIDE, ANNOTATIONS, INNER, MEMBER_KIND
|
VISIBILITY, MODALITY, OVERRIDE, ANNOTATIONS, INNER, MEMBER_KIND
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,8 +41,6 @@ public class DescriptorRendererBuilder {
|
|||||||
private boolean prettyFunctionTypes = true;
|
private boolean prettyFunctionTypes = true;
|
||||||
private boolean uninferredTypeParameterAsName = false;
|
private boolean uninferredTypeParameterAsName = false;
|
||||||
private boolean includePropertyConstant = false;
|
private boolean includePropertyConstant = false;
|
||||||
private boolean includeSynthesizedParameterNames = true;
|
|
||||||
private boolean withoutFunctionParameterNames = false;
|
|
||||||
private boolean withoutTypeParameters = false;
|
private boolean withoutTypeParameters = false;
|
||||||
private boolean withoutSuperTypes = false;
|
private boolean withoutSuperTypes = false;
|
||||||
private Function1<JetType, JetType> typeNormalizer = new Function1<JetType, JetType>() {
|
private Function1<JetType, JetType> typeNormalizer = new Function1<JetType, JetType>() {
|
||||||
@@ -54,14 +52,10 @@ public class DescriptorRendererBuilder {
|
|||||||
private boolean renderDefaultValues = true;
|
private boolean renderDefaultValues = true;
|
||||||
private boolean flexibleTypesForCode = false;
|
private boolean flexibleTypesForCode = false;
|
||||||
private boolean secondaryConstructorsAsPrimary = true;
|
private boolean secondaryConstructorsAsPrimary = true;
|
||||||
|
|
||||||
@NotNull
|
|
||||||
private DescriptorRenderer.OverrideRenderingPolicy overrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN;
|
private DescriptorRenderer.OverrideRenderingPolicy overrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN;
|
||||||
@NotNull
|
|
||||||
private DescriptorRenderer.ValueParametersHandler valueParametersHandler = new DescriptorRenderer.DefaultValueParameterHandler();
|
private DescriptorRenderer.ValueParametersHandler valueParametersHandler = new DescriptorRenderer.DefaultValueParameterHandler();
|
||||||
@NotNull
|
|
||||||
private DescriptorRenderer.TextFormat textFormat = DescriptorRenderer.TextFormat.PLAIN;
|
private DescriptorRenderer.TextFormat textFormat = DescriptorRenderer.TextFormat.PLAIN;
|
||||||
@NotNull
|
private DescriptorRenderer.ParameterNameRenderingPolicy parameterNameRenderingPolicy = DescriptorRenderer.ParameterNameRenderingPolicy.ALL;
|
||||||
private Collection<FqName> excludedAnnotationClasses = Collections.emptyList();
|
private Collection<FqName> excludedAnnotationClasses = Collections.emptyList();
|
||||||
private boolean receiverAfterName = false;
|
private boolean receiverAfterName = false;
|
||||||
private boolean renderCompanionObjectName = false;
|
private boolean renderCompanionObjectName = false;
|
||||||
@@ -177,8 +171,8 @@ public class DescriptorRendererBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public DescriptorRendererBuilder setIncludeSynthesizedParameterNames(boolean includeSynthesizedParameterNames) {
|
public DescriptorRendererBuilder setParameterNameRenderingPolicy(@NotNull DescriptorRenderer.ParameterNameRenderingPolicy parameterNameRenderingPolicy) {
|
||||||
this.includeSynthesizedParameterNames = includeSynthesizedParameterNames;
|
this.parameterNameRenderingPolicy = parameterNameRenderingPolicy;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,12 +182,6 @@ public class DescriptorRendererBuilder {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public DescriptorRendererBuilder setWithoutFunctionParameterNames(boolean withoutFunctionParameterNames) {
|
|
||||||
this.withoutFunctionParameterNames = withoutFunctionParameterNames;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public DescriptorRendererBuilder setReceiverAfterName(boolean receiverAfterName) {
|
public DescriptorRendererBuilder setReceiverAfterName(boolean receiverAfterName) {
|
||||||
this.receiverAfterName = receiverAfterName;
|
this.receiverAfterName = receiverAfterName;
|
||||||
@@ -242,9 +230,9 @@ public class DescriptorRendererBuilder {
|
|||||||
nameShortness, withDefinedIn, modifiers, startFromName, debugMode, classWithPrimaryConstructor, verbose, unitReturnType,
|
nameShortness, withDefinedIn, modifiers, startFromName, debugMode, classWithPrimaryConstructor, verbose, unitReturnType,
|
||||||
normalizedVisibilities, showInternalKeyword, prettyFunctionTypes, uninferredTypeParameterAsName,
|
normalizedVisibilities, showInternalKeyword, prettyFunctionTypes, uninferredTypeParameterAsName,
|
||||||
overrideRenderingPolicy, valueParametersHandler, textFormat, excludedAnnotationClasses, includePropertyConstant,
|
overrideRenderingPolicy, valueParametersHandler, textFormat, excludedAnnotationClasses, includePropertyConstant,
|
||||||
includeSynthesizedParameterNames, withoutFunctionParameterNames, withoutTypeParameters, receiverAfterName,
|
parameterNameRenderingPolicy, withoutTypeParameters, receiverAfterName, renderCompanionObjectName, withoutSuperTypes,
|
||||||
renderCompanionObjectName, withoutSuperTypes, typeNormalizer, renderDefaultValues, flexibleTypesForCode,
|
typeNormalizer, renderDefaultValues, flexibleTypesForCode, secondaryConstructorsAsPrimary
|
||||||
secondaryConstructorsAsPrimary);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,24 +60,18 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
private final boolean showInternalKeyword;
|
private final boolean showInternalKeyword;
|
||||||
private final boolean prettyFunctionTypes;
|
private final boolean prettyFunctionTypes;
|
||||||
private final boolean uninferredTypeParameterAsName;
|
private final boolean uninferredTypeParameterAsName;
|
||||||
private final boolean includeSynthesizedParameterNames;
|
private final ParameterNameRenderingPolicy parameterNameRenderingPolicy;
|
||||||
private final boolean withoutFunctionParameterNames;
|
|
||||||
private final boolean withoutTypeParameters;
|
private final boolean withoutTypeParameters;
|
||||||
private final boolean renderCompanionObjectName;
|
private final boolean renderCompanionObjectName;
|
||||||
private final boolean withoutSuperTypes;
|
private final boolean withoutSuperTypes;
|
||||||
private final boolean receiverAfterName;
|
private final boolean receiverAfterName;
|
||||||
private final boolean renderDefaultValues;
|
private final boolean renderDefaultValues;
|
||||||
private final boolean flexibleTypesForCode;
|
private final boolean flexibleTypesForCode;
|
||||||
|
|
||||||
@NotNull
|
|
||||||
private final OverrideRenderingPolicy overrideRenderingPolicy;
|
private final OverrideRenderingPolicy overrideRenderingPolicy;
|
||||||
@NotNull
|
|
||||||
private final ValueParametersHandler handler;
|
private final ValueParametersHandler handler;
|
||||||
@NotNull
|
|
||||||
private final TextFormat textFormat;
|
private final TextFormat textFormat;
|
||||||
private final boolean includePropertyConstant;
|
private final boolean includePropertyConstant;
|
||||||
private final boolean secondaryConstructorsAsPrimary;
|
private final boolean secondaryConstructorsAsPrimary;
|
||||||
@NotNull
|
|
||||||
private final Set<FqName> excludedAnnotationClasses;
|
private final Set<FqName> excludedAnnotationClasses;
|
||||||
|
|
||||||
/* package */ DescriptorRendererImpl(
|
/* package */ DescriptorRendererImpl(
|
||||||
@@ -98,8 +92,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
@NotNull TextFormat textFormat,
|
@NotNull TextFormat textFormat,
|
||||||
@NotNull Collection<FqName> excludedAnnotationClasses,
|
@NotNull Collection<FqName> excludedAnnotationClasses,
|
||||||
boolean includePropertyConstant,
|
boolean includePropertyConstant,
|
||||||
boolean includeSynthesizedParameterNames,
|
@NotNull ParameterNameRenderingPolicy parameterNameRenderingPolicy,
|
||||||
boolean withoutFunctionParameterNames,
|
|
||||||
boolean withoutTypeParameters,
|
boolean withoutTypeParameters,
|
||||||
boolean receiverAfterName,
|
boolean receiverAfterName,
|
||||||
boolean renderCompanionObjectName,
|
boolean renderCompanionObjectName,
|
||||||
@@ -127,8 +120,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
this.excludedAnnotationClasses = new HashSet<FqName>(excludedAnnotationClasses);
|
this.excludedAnnotationClasses = new HashSet<FqName>(excludedAnnotationClasses);
|
||||||
this.prettyFunctionTypes = prettyFunctionTypes;
|
this.prettyFunctionTypes = prettyFunctionTypes;
|
||||||
this.uninferredTypeParameterAsName = uninferredTypeParameterAsName;
|
this.uninferredTypeParameterAsName = uninferredTypeParameterAsName;
|
||||||
this.includeSynthesizedParameterNames = includeSynthesizedParameterNames;
|
this.parameterNameRenderingPolicy = parameterNameRenderingPolicy;
|
||||||
this.withoutFunctionParameterNames = withoutFunctionParameterNames;
|
|
||||||
this.withoutTypeParameters = withoutTypeParameters;
|
this.withoutTypeParameters = withoutTypeParameters;
|
||||||
this.receiverAfterName = receiverAfterName;
|
this.receiverAfterName = receiverAfterName;
|
||||||
this.renderCompanionObjectName = renderCompanionObjectName;
|
this.renderCompanionObjectName = renderCompanionObjectName;
|
||||||
@@ -471,7 +463,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
return renderName(cd.getName());
|
return renderName(cd.getName());
|
||||||
}
|
}
|
||||||
else if (cd instanceof ClassDescriptor) {
|
else if (cd instanceof ClassDescriptor) {
|
||||||
return renderClassifierName((ClassDescriptor) cd);
|
return renderClassifierName(cd);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
assert cd == null: "Unexpected classifier: " + cd.getClass();
|
assert cd == null: "Unexpected classifier: " + cd.getClass();
|
||||||
@@ -870,8 +862,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void renderValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder builder) {
|
private void renderValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder builder) {
|
||||||
boolean includeNames = !withoutFunctionParameterNames &&
|
boolean includeNames = shouldRenderParameterNames(function);
|
||||||
(includeSynthesizedParameterNames || !function.hasSynthesizedParameterNames());
|
|
||||||
handler.appendBeforeValueParameters(function, builder);
|
handler.appendBeforeValueParameters(function, builder);
|
||||||
for (ValueParameterDescriptor parameter : function.getValueParameters()) {
|
for (ValueParameterDescriptor parameter : function.getValueParameters()) {
|
||||||
handler.appendBeforeValueParameter(parameter, builder);
|
handler.appendBeforeValueParameter(parameter, builder);
|
||||||
@@ -881,8 +872,26 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
handler.appendAfterValueParameters(function, builder);
|
handler.appendAfterValueParameters(function, builder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean shouldRenderParameterNames(@NotNull FunctionDescriptor function) {
|
||||||
|
switch (parameterNameRenderingPolicy) {
|
||||||
|
case ALL:
|
||||||
|
return true;
|
||||||
|
case ONLY_NON_SYNTHESIZED:
|
||||||
|
return !function.hasSynthesizedParameterNames();
|
||||||
|
case NONE:
|
||||||
|
return false;
|
||||||
|
default:
|
||||||
|
throw new UnsupportedOperationException(parameterNameRenderingPolicy.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* VARIABLES */
|
/* VARIABLES */
|
||||||
private void renderValueParameter(@NotNull ValueParameterDescriptor valueParameter, boolean includeName, @NotNull StringBuilder builder, boolean topLevel) {
|
private void renderValueParameter(
|
||||||
|
@NotNull ValueParameterDescriptor valueParameter,
|
||||||
|
boolean includeName,
|
||||||
|
@NotNull StringBuilder builder,
|
||||||
|
boolean topLevel
|
||||||
|
) {
|
||||||
if (topLevel) {
|
if (topLevel) {
|
||||||
builder.append(renderKeyword("value-parameter")).append(" ");
|
builder.append(renderKeyword("value-parameter")).append(" ");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user