enable class content serialization in ReadClassDataTest; add test for function params with upper bounds
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
namespace test
|
||||
|
||||
fun <A : java.lang.Number> uno() = 1
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace test
|
||||
|
||||
fun <A> tres() where A : java.lang.Number, A : java.lang.CharSequence = 1
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace test
|
||||
|
||||
fun <A : java.lang.CharSequence> dos() = 1
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace test
|
||||
|
||||
fun <A> cuatro() where A : java.lang.CharSequence, A : java.lang.Number = 1
|
||||
@@ -160,9 +160,6 @@ public class ReadClassDataTest extends UsefulTestCase {
|
||||
|
||||
sb.append(" {\n");
|
||||
|
||||
if (false) {
|
||||
// TODO: for some reason I don't understand scope of ClassDescriptor came from source is empty
|
||||
|
||||
List<TypeProjection> typeArguments = new ArrayList<TypeProjection>();
|
||||
for (TypeParameterDescriptor param : klass.getTypeConstructor().getParameters()) {
|
||||
typeArguments.add(new TypeProjection(Variance.INVARIANT, param.getDefaultType()));
|
||||
@@ -170,12 +167,21 @@ public class ReadClassDataTest extends UsefulTestCase {
|
||||
|
||||
JetScope memberScope = klass.getMemberScope(typeArguments);
|
||||
for (DeclarationDescriptor member : memberScope.getAllDescriptors()) {
|
||||
// TODO
|
||||
if (member.getName().equals("equals") || member.getName().equals("hashCode")
|
||||
|| member.getName().equals("wait") || member.getName().equals("notify") || member.getName().equals("notifyAll")
|
||||
|| member.getName().equals("toString") || member.getName().equals("getClass")
|
||||
|| member.getName().equals("clone") || member.getName().equals("finalize")
|
||||
|| member.getName().equals("getTypeInfo") || member.getName().equals("$setTypeInfo") || member.getName().equals("$typeInfo")
|
||||
)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
sb.append(" ");
|
||||
serialize(member, sb);
|
||||
sb.append("\n");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sb.append("}\n");
|
||||
return sb.toString();
|
||||
}
|
||||
@@ -213,6 +219,17 @@ public class ReadClassDataTest extends UsefulTestCase {
|
||||
serialize(fun.getReturnType(), sb);
|
||||
}
|
||||
|
||||
private void serialize(PropertyDescriptor prop, StringBuilder sb) {
|
||||
if (prop.isVar()) {
|
||||
sb.append("var ");
|
||||
} else {
|
||||
sb.append("val ");
|
||||
}
|
||||
sb.append(prop.getName());
|
||||
sb.append(": ");
|
||||
serialize(prop.getOutType(), sb);
|
||||
}
|
||||
|
||||
private void serialize(ValueParameterDescriptor valueParameter, StringBuilder sb) {
|
||||
sb.append(valueParameter.getName());
|
||||
sb.append(": ");
|
||||
|
||||
Reference in New Issue
Block a user