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