diff --git a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java index 744c71855ec..c4f347cccbb 100644 --- a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java @@ -46,23 +46,6 @@ public class DescriptorRendererImpl implements DescriptorRenderer { } } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - private final DeclarationDescriptorVisitor subVisitor = new RenderDeclarationDescriptorVisitor() { - @Override - public Void visitTypeParameterDescriptor(TypeParameterDescriptor descriptor, StringBuilder builder) { - renderTypeParameter(descriptor, builder, false); - return null; - } - - @Override - public Void visitValueParameterDescriptor(ValueParameterDescriptor descriptor, StringBuilder builder) { - super.visitVariableDescriptor(descriptor, builder, true); - if (hasDefaultValue(descriptor)) { - builder.append(" = ..."); - } - return null; - } - }; private final RenderDeclarationDescriptorVisitor rootVisitor = new RenderDeclarationDescriptorVisitor(); private final boolean shortNames; @@ -294,7 +277,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { handler.appendBeforeValueParameters(function, builder); for (ValueParameterDescriptor parameter : function.getValueParameters()) { handler.appendBeforeValueParameter(parameter, builder); - parameter.accept(subVisitor, builder); + renderValueParameterOfFunction(parameter, builder); handler.appendAfterValueParameter(parameter, builder); } handler.appendAfterValueParameters(function, builder); @@ -302,7 +285,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { else { builder.append("("); for (ValueParameterDescriptor parameter : function.getValueParameters()) { - parameter.accept(subVisitor, builder); + renderValueParameterOfFunction(parameter, builder); if (parameter.getIndex() != function.getValueParameters().size() - 1) { builder.append(", "); } @@ -311,6 +294,13 @@ public class DescriptorRendererImpl implements DescriptorRenderer { } } + private void renderValueParameterOfFunction(ValueParameterDescriptor descriptor, StringBuilder builder) { + rootVisitor.visitVariableDescriptor(descriptor, builder, true); + if (hasDefaultValue(descriptor)) { + builder.append(" = ..."); + } + } + private class RenderDeclarationDescriptorVisitor implements DeclarationDescriptorVisitor { @Override public Void visitValueParameterDescriptor(ValueParameterDescriptor descriptor, StringBuilder builder) { @@ -495,7 +485,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { builder.append(lt()); for (Iterator iterator = typeParameters.iterator(); iterator.hasNext(); ) { TypeParameterDescriptor typeParameterDescriptor = iterator.next(); - typeParameterDescriptor.accept(subVisitor, builder); + renderTypeParameter(typeParameterDescriptor, builder, false); if (iterator.hasNext()) { builder.append(", "); } @@ -635,5 +625,5 @@ public class DescriptorRendererImpl implements DescriptorRenderer { // rendered with "where" } } - } + } } \ No newline at end of file