Rendering annotations in descriptor renderer.
This commit is contained in:
@@ -22,6 +22,8 @@ import com.intellij.psi.tree.IElementType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.*;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.Annotated;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverUtil;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
@@ -269,6 +271,13 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
||||
}
|
||||
}
|
||||
|
||||
private void renderAnnotations(Annotated annotated, StringBuilder builder) {
|
||||
if (!modifiers) return;
|
||||
for (AnnotationDescriptor annotation : annotated.getAnnotations()) {
|
||||
builder.append(renderType(annotation.getType())).append(" ");
|
||||
}
|
||||
}
|
||||
|
||||
private void renderVisibility(Visibility visibility, StringBuilder builder) {
|
||||
if (!modifiers) return;
|
||||
if ("package".equals(visibility.toString())) {
|
||||
@@ -364,6 +373,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
||||
/* FUNCTIONS */
|
||||
private void renderFunction(FunctionDescriptor descriptor, StringBuilder builder) {
|
||||
if (!startFromName) {
|
||||
renderAnnotations(descriptor, builder);
|
||||
renderVisibility(descriptor.getVisibility(), builder);
|
||||
renderModality(descriptor.getModality(), builder);
|
||||
builder.append(renderKeyword("fun")).append(" ");
|
||||
@@ -384,6 +394,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
||||
}
|
||||
|
||||
private void renderConstructor(ConstructorDescriptor constructorDescriptor, StringBuilder builder) {
|
||||
renderAnnotations(constructorDescriptor, builder);
|
||||
renderVisibility(constructorDescriptor.getVisibility(), builder);
|
||||
|
||||
builder.append(renderKeyword("ctor")).append(" ");
|
||||
@@ -471,6 +482,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
||||
|
||||
private void renderProperty(PropertyDescriptor descriptor, StringBuilder builder) {
|
||||
if (!startFromName) {
|
||||
renderAnnotations(descriptor, builder);
|
||||
renderVisibility(descriptor.getVisibility(), builder);
|
||||
renderModality(descriptor.getModality(), builder);
|
||||
renderValVarPrefix(descriptor, builder);
|
||||
@@ -492,6 +504,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
||||
boolean isNotClassObject = descriptor.getKind() != ClassKind.CLASS_OBJECT;
|
||||
if (!startFromName) {
|
||||
if (isNotClassObject) {
|
||||
renderAnnotations(descriptor, builder);
|
||||
renderVisibility(descriptor.getVisibility(), builder);
|
||||
if (descriptor.getKind() != ClassKind.TRAIT && descriptor.getKind() != ClassKind.OBJECT) {
|
||||
renderModality(descriptor.getModality(), builder);
|
||||
|
||||
@@ -26,7 +26,7 @@ trait TheTrait {
|
||||
|
||||
//package rendererTest defined in root package
|
||||
//internal final annotation class TheAnnotation : jet.Annotation defined in rendererTest
|
||||
//public open class TheClass<out T : jet.Int, X> defined in rendererTest
|
||||
//rendererTest.TheAnnotation public open class TheClass<out T : jet.Int, X> defined in rendererTest
|
||||
//<out T : jet.Int> defined in rendererTest.TheClass
|
||||
//<X> defined in rendererTest.TheClass
|
||||
//private final val privateVal : jet.Int defined in rendererTest.TheClass
|
||||
|
||||
@@ -17,6 +17,8 @@ trait Bar
|
||||
|
||||
fun <P> funTypeParameterWithTwoUpperBounds() where P : Foo, P : Bar = 17
|
||||
|
||||
deprecated("") fun deprecatedFun()
|
||||
|
||||
//package rendererTest defined in root package
|
||||
//public final fun pub() : Unit defined in rendererTest
|
||||
//internal final fun int() : jet.String defined in rendererTest
|
||||
@@ -33,3 +35,4 @@ fun <P> funTypeParameterWithTwoUpperBounds() where P : Foo, P : Bar = 17
|
||||
//internal trait Bar defined in rendererTest
|
||||
//internal final fun <P> funTypeParameterWithTwoUpperBounds() : jet.Int where P : rendererTest.Foo, P : rendererTest.Bar defined in rendererTest
|
||||
//<P : rendererTest.Foo & rendererTest.Bar> defined in rendererTest.funTypeParameterWithTwoUpperBounds
|
||||
//jet.deprecated internal final fun deprecatedFun() : Unit defined in rendererTest
|
||||
|
||||
@@ -11,6 +11,8 @@ private var private = 5
|
||||
public val Int.ext : Int
|
||||
get() {}
|
||||
|
||||
deprecated("") val deprecatedVal = 5
|
||||
|
||||
//package rendererTest defined in root package
|
||||
//public final val pub : jet.String defined in rendererTest
|
||||
//internal final var int : jet.String defined in rendererTest
|
||||
@@ -18,3 +20,4 @@ get() {}
|
||||
//private final var private : jet.Int defined in rendererTest
|
||||
//public final val jet.Int.ext : jet.Int defined in rendererTest
|
||||
//public final fun jet.Int.<get-ext>() : jet.Int defined in rendererTest
|
||||
//jet.deprecated internal final val deprecatedVal : jet.Int defined in rendererTest
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
annotation class `true`
|
||||
|
||||
val `val` = 5
|
||||
|
||||
trait `trait`
|
||||
`true` trait `trait`
|
||||
|
||||
class `class`<`in`>(p: `in`?) {
|
||||
class `class`
|
||||
@@ -11,8 +13,9 @@ val `in` = `class`<`trait`>(null)
|
||||
|
||||
fun `trait`.`fun`(`false`: `trait`): `trait`
|
||||
|
||||
//internal final annotation class `true` : jet.Annotation defined in root package
|
||||
//internal final val `val` : jet.Int defined in root package
|
||||
//internal trait `trait` defined in root package
|
||||
//`true` internal trait `trait` defined in root package
|
||||
//internal final class `class`<`in`> defined in root package
|
||||
//<`in`> defined in `class`
|
||||
//value-parameter val p : `in`? defined in `class`.<init>
|
||||
|
||||
Reference in New Issue
Block a user