Rendering annotation argument types when verbose.

This commit is contained in:
Evgeny Gerashchenko
2013-03-07 16:46:24 +04:00
parent 05e29af792
commit b8abd0eb94
5 changed files with 34 additions and 22 deletions
@@ -56,6 +56,6 @@ public class AnnotationDescriptor {
@Override
public String toString() {
return annotationType.toString() + DescriptorUtils.getSortedValueArguments(this);
return annotationType.toString() + DescriptorUtils.getSortedValueArguments(this, null);
}
}
@@ -32,9 +32,13 @@ import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.FilteringScope;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue;
import org.jetbrains.jet.lang.types.*;
import org.jetbrains.jet.lang.types.DescriptorSubstitutor;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeUtils;
import org.jetbrains.jet.lang.types.Variance;
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.renderer.DescriptorRenderer;
import java.util.*;
@@ -369,10 +373,18 @@ public class DescriptorUtils {
return Visibilities.PUBLIC;
}
public static List<String> getSortedValueArguments(AnnotationDescriptor descriptor) {
@NotNull
public static List<String> getSortedValueArguments(
@NotNull AnnotationDescriptor descriptor,
@Nullable DescriptorRenderer rendererForTypesIfNecessary
) {
List<String> resultList = Lists.newArrayList();
for (Map.Entry<ValueParameterDescriptor, CompileTimeConstant<?>> entry : descriptor.getAllValueArguments().entrySet()) {
resultList.add(entry.getKey().getName().getName() + " = " + entry.getValue().toString());
CompileTimeConstant<?> value = entry.getValue();
String typeSuffix = rendererForTypesIfNecessary == null
? ""
: ": " + rendererForTypesIfNecessary.renderType(value.getType(KotlinBuiltIns.getInstance()));
resultList.add(entry.getKey().getName().getName() + " = " + value.toString() + typeSuffix);
}
Collections.sort(resultList);
return resultList;
@@ -301,7 +301,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
if (!excludedAnnotationClasses.contains(DescriptorUtils.getFQName(annotationClass).toSafe())) {
builder.append(renderType(annotation.getType()));
if (verbose) {
builder.append("(").append(StringUtil.join(DescriptorUtils.getSortedValueArguments(annotation), ", ")).append(")");
builder.append("(").append(StringUtil.join(DescriptorUtils.getSortedValueArguments(annotation, this), ", ")).append(")");
}
builder.append(" ");
}
@@ -5,22 +5,22 @@ public abstract class ClassDoesNotOverrideMethod : java.util.Date {
public open override /*1*/ /*fake_override*/ fun after(/*0*/ p0 : java.util.Date) : jet.Boolean
public open override /*1*/ /*fake_override*/ fun before(/*0*/ p0 : java.util.Date) : jet.Boolean
public open override /*1*/ /*fake_override*/ fun compareTo(/*0*/ p0 : java.util.Date) : jet.Int
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun getDate() : jet.Int
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun getDay() : jet.Int
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun getHours() : jet.Int
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun getMinutes() : jet.Int
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun getMonth() : jet.Int
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun getSeconds() : jet.Int
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun getDate() : jet.Int
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun getDay() : jet.Int
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun getHours() : jet.Int
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun getMinutes() : jet.Int
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun getMonth() : jet.Int
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun getSeconds() : jet.Int
public open override /*1*/ /*fake_override*/ fun getTime() : jet.Long
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun getTimezoneOffset() : jet.Int
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun getYear() : jet.Int
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun setDate(/*0*/ p0 : jet.Int) : Unit
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun setHours(/*0*/ p0 : jet.Int) : Unit
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun setMinutes(/*0*/ p0 : jet.Int) : Unit
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun setMonth(/*0*/ p0 : jet.Int) : Unit
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun setSeconds(/*0*/ p0 : jet.Int) : Unit
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun getTimezoneOffset() : jet.Int
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun getYear() : jet.Int
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun setDate(/*0*/ p0 : jet.Int) : Unit
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun setHours(/*0*/ p0 : jet.Int) : Unit
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun setMinutes(/*0*/ p0 : jet.Int) : Unit
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun setMonth(/*0*/ p0 : jet.Int) : Unit
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun setSeconds(/*0*/ p0 : jet.Int) : Unit
public open override /*1*/ /*fake_override*/ fun setTime(/*0*/ p0 : jet.Long) : Unit
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun setYear(/*0*/ p0 : jet.Int) : Unit
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun toGMTString() : jet.String
jet.deprecated(value = "Deprecated in Java") public open override /*1*/ /*fake_override*/ fun toLocaleString() : jet.String
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun setYear(/*0*/ p0 : jet.Int) : Unit
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun toGMTString() : jet.String
jet.deprecated(value = "Deprecated in Java": jet.String) public open override /*1*/ /*fake_override*/ fun toLocaleString() : jet.String
}
@@ -2,5 +2,5 @@ package test
public open class AnnotatedMethod : java.lang.Object {
public constructor AnnotatedMethod()
jet.deprecated(value = "Deprecated in Java") public open fun f() : Unit
jet.deprecated(value = "Deprecated in Java": jet.String) public open fun f() : Unit
}