Excluded class object names from FQ name and qualified name.

This commit is contained in:
Evgeny Gerashchenko
2012-12-28 11:37:02 +04:00
parent c041fc8fea
commit dda15f7505
8 changed files with 29 additions and 21 deletions
@@ -127,6 +127,12 @@ public class DescriptorUtils {
throw new IllegalStateException("descriptor is not module descriptor and has null containingDeclaration: " + containingDeclaration);
}
if (containingDeclaration instanceof ClassDescriptor && ((ClassDescriptor) containingDeclaration).getKind() == ClassKind.CLASS_OBJECT) {
DeclarationDescriptor classOfClassObject = containingDeclaration.getContainingDeclaration();
assert classOfClassObject != null;
return getFQName(classOfClassObject).child(descriptor.getName());
}
return getFQName(containingDeclaration).child(descriptor.getName());
}
@@ -176,7 +176,9 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
// for nested classes qualified name should be used
DeclarationDescriptor current = klass;
do {
qualifiedNameElements.add(current.getName());
if (((ClassDescriptor) current).getKind() != ClassKind.CLASS_OBJECT) {
qualifiedNameElements.add(current.getName());
}
current = current.getContainingDeclaration();
}
while (current instanceof ClassDescriptor);
@@ -5,7 +5,7 @@ public final class Outer {
public class object <class-object-for-Outer> {
/*primary*/ private constructor <class-object-for-Outer>()
public final val Obj : test.Outer.<class-object-for-Outer>.Obj
public final val Obj : test.Outer.Obj
public object Obj {
/*primary*/ private constructor Obj()
@@ -6,16 +6,16 @@ internal final class A {
internal class object <class-object-for-A> {
private constructor <class-object-for-A>()
internal final enum class E : jet.Enum<test.A.<class-object-for-A>.E> {
internal final enum class E : jet.Enum<test.A.E> {
private constructor E()
public final override /*1*/ /*fake_override*/ fun name() : jet.String
public final override /*1*/ /*fake_override*/ fun ordinal() : jet.Int
internal class object <class-object-for-E> {
private constructor <class-object-for-E>()
public final val ENTRY : test.A.<class-object-for-A>.E
public final fun valueOf(/*0*/ value : jet.String) : test.A.<class-object-for-A>.E
public final fun values() : jet.Array<test.A.<class-object-for-A>.E>
public final val ENTRY : test.A.E
public final fun valueOf(/*0*/ value : jet.String) : test.A.E
public final fun values() : jet.Array<test.A.E>
}
}
}
@@ -6,16 +6,16 @@ internal final class A {
internal class object <class-object-for-A> {
private constructor <class-object-for-A>()
internal final enum class E : jet.Enum<test.A.<class-object-for-A>.E> {
internal final enum class E : jet.Enum<test.A.E> {
private constructor E()
public final override /*1*/ /*fake_override*/ fun name() : jet.String
public final override /*1*/ /*fake_override*/ fun ordinal() : jet.Int
internal class object <class-object-for-E> {
private constructor <class-object-for-E>()
public final val ENTRY : test.A.<class-object-for-A>.E
public final fun valueOf(/*0*/ value : jet.String) : test.A.<class-object-for-A>.E
public final fun values() : jet.Array<test.A.<class-object-for-A>.E>
public final val ENTRY : test.A.E
public final fun valueOf(/*0*/ value : jet.String) : test.A.E
public final fun values() : jet.Array<test.A.E>
}
}
}
@@ -6,18 +6,18 @@ internal final class A {
internal class object <class-object-for-A> {
/*primary*/ private constructor <class-object-for-A>()
internal final enum class E : jet.Enum<test.A.<class-object-for-A>.E> {
internal final enum class E : jet.Enum<test.A.E> {
/*primary*/ private constructor E()
public final override /*1*/ /*fake_override*/ fun name() : jet.String
public final override /*1*/ /*fake_override*/ fun ordinal() : jet.Int
internal class object <class-object-for-E> {
/*primary*/ private constructor <class-object-for-E>()
public final val ENTRY : test.A.<class-object-for-A>.E
public final fun valueOf(/*0*/ value : jet.String) : test.A.<class-object-for-A>.E
public final fun values() : jet.Array<test.A.<class-object-for-A>.E>
public final val ENTRY : test.A.E
public final fun valueOf(/*0*/ value : jet.String) : test.A.E
public final fun values() : jet.Array<test.A.E>
private enum entry ENTRY : test.A.<class-object-for-A>.E {
private enum entry ENTRY : test.A.E {
/*primary*/ private constructor ENTRY()
public final override /*1*/ /*fake_override*/ fun name() : jet.String
public final override /*1*/ /*fake_override*/ fun ordinal() : jet.Int
@@ -6,18 +6,18 @@ internal final class A {
public class object <class-object-for-A> {
/*primary*/ private constructor <class-object-for-A>()
internal final enum class E : jet.Enum<test.A.<class-object-for-A>.E> {
internal final enum class E : jet.Enum<test.A.E> {
/*primary*/ private constructor E()
public final override /*1*/ /*fake_override*/ fun name() : jet.String
public final override /*1*/ /*fake_override*/ fun ordinal() : jet.Int
internal class object <class-object-for-E> {
/*primary*/ private constructor <class-object-for-E>()
public final val ENTRY : test.A.<class-object-for-A>.E
public final fun valueOf(/*0*/ value : jet.String) : test.A.<class-object-for-A>.E
public final fun values() : jet.Array<test.A.<class-object-for-A>.E>
public final val ENTRY : test.A.E
public final fun valueOf(/*0*/ value : jet.String) : test.A.E
public final fun values() : jet.Array<test.A.E>
private enum entry ENTRY : test.A.<class-object-for-A>.E {
private enum entry ENTRY : test.A.E {
/*primary*/ private constructor ENTRY()
public final override /*1*/ /*fake_override*/ fun name() : jet.String
public final override /*1*/ /*fake_override*/ fun ordinal() : jet.Int
+1 -1
View File
@@ -9,5 +9,5 @@ private enum class TheEnum(val rgb : Int) {
//private constructor TheEnum(rgb : jet.Int) defined in rendererTest.TheEnum
//value-parameter val rgb : jet.Int defined in rendererTest.TheEnum.<init>
//private enum entry VAL1 : rendererTest.TheEnum defined in rendererTest.TheEnum.<class-object-for-TheEnum>
//private constructor VAL1() defined in rendererTest.TheEnum.<class-object-for-TheEnum>.VAL1
//private constructor VAL1() defined in rendererTest.TheEnum.VAL1
//public final val VAL1 : rendererTest.TheEnum defined in rendererTest.TheEnum.<class-object-for-TheEnum>