use standard method index

This commit is contained in:
Dmitry Jemerov
2011-05-13 18:58:35 +02:00
parent 797f9fcc56
commit ffd0119a46
@@ -1330,9 +1330,8 @@ public class ExpressionCodegen extends JetVisitor {
if (declarationDescriptor instanceof TypeParameterDescriptor) {
DeclarationDescriptor containingDeclaration = declarationDescriptor.getContainingDeclaration();
if (containingDeclaration == contextType && contextType instanceof ClassDescriptor) {
int index = indexOfTypeParameter((ClassDescriptor) contextType, (TypeParameterDescriptor) declarationDescriptor);
loadTypeInfo((ClassDescriptor) contextType, v);
v.iconst(index);
v.iconst(((TypeParameterDescriptor) declarationDescriptor).getIndex());
v.invokevirtual("jet/typeinfo/TypeInfo", "getTypeParameter", "(I)Ljet/typeinfo/TypeInfo;");
return;
}
@@ -1361,15 +1360,6 @@ public class ExpressionCodegen extends JetVisitor {
}
}
private int indexOfTypeParameter(ClassDescriptor classDescriptor, TypeParameterDescriptor typeParameterDescriptor) {
List<TypeParameterDescriptor> parameters = classDescriptor.getTypeConstructor().getParameters();
int index = parameters.indexOf(typeParameterDescriptor);
if (index < 0) {
throw new UnsupportedOperationException("can't find type parameter index");
}
return index;
}
private static class CompilationException extends RuntimeException {
}
}