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");
|
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>();
|
List<TypeProjection> typeArguments = new ArrayList<TypeProjection>();
|
||||||
for (TypeParameterDescriptor param : klass.getTypeConstructor().getParameters()) {
|
for (TypeParameterDescriptor param : klass.getTypeConstructor().getParameters()) {
|
||||||
typeArguments.add(new TypeProjection(Variance.INVARIANT, param.getDefaultType()));
|
typeArguments.add(new TypeProjection(Variance.INVARIANT, param.getDefaultType()));
|
||||||
@@ -170,12 +167,21 @@ public class ReadClassDataTest extends UsefulTestCase {
|
|||||||
|
|
||||||
JetScope memberScope = klass.getMemberScope(typeArguments);
|
JetScope memberScope = klass.getMemberScope(typeArguments);
|
||||||
for (DeclarationDescriptor member : memberScope.getAllDescriptors()) {
|
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);
|
serialize(member, sb);
|
||||||
sb.append("\n");
|
sb.append("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
sb.append("}\n");
|
sb.append("}\n");
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
@@ -213,6 +219,17 @@ public class ReadClassDataTest extends UsefulTestCase {
|
|||||||
serialize(fun.getReturnType(), sb);
|
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) {
|
private void serialize(ValueParameterDescriptor valueParameter, StringBuilder sb) {
|
||||||
sb.append(valueParameter.getName());
|
sb.append(valueParameter.getName());
|
||||||
sb.append(": ");
|
sb.append(": ");
|
||||||
|
|||||||
Reference in New Issue
Block a user