Fix conversion of Java class literals

This commit is contained in:
Alexey Sedunov
2013-10-18 14:47:29 +04:00
parent d71302ec61
commit 054588bd3b
6 changed files with 13 additions and 5 deletions
@@ -28,6 +28,6 @@ public class ClassObjectAccessExpression extends Expression {
@NotNull @NotNull
@Override @Override
public String toKotlin() { public String toKotlin() {
return "getJavaClass" + "<" + myTypeElement.toKotlin() + ">"; return "javaClass" + "<" + myTypeElement.toKotlin() + ">()";
} }
} }
@@ -25,6 +25,10 @@ public class TypeElement extends Element {
myType = type; myType = type;
} }
public Type getMyType() {
return myType;
}
@NotNull @NotNull
@Override @Override
public String toKotlin() { public String toKotlin() {
@@ -159,7 +159,11 @@ public class ExpressionVisitor extends StatementVisitor {
@Override @Override
public void visitClassObjectAccessExpression(@NotNull PsiClassObjectAccessExpression expression) { public void visitClassObjectAccessExpression(@NotNull PsiClassObjectAccessExpression expression) {
super.visitClassObjectAccessExpression(expression); super.visitClassObjectAccessExpression(expression);
myResult = new ClassObjectAccessExpression(getConverter().elementToElement(expression.getOperand()));
TypeElement typeElement = (TypeElement) getConverter().elementToElement(expression.getOperand());
typeElement.getMyType().convertedToNotNull();
myResult = new ClassObjectAccessExpression(typeElement);
} }
@Override @Override
@@ -1 +1 @@
getJavaClass<Any?> javaClass<Any>()
@@ -1 +1 @@
getJavaClass<String?> javaClass<String>()
@@ -1 +1 @@
var constrArgTypes : Array<Class<*>?>? = array<Class<*>?>(getJavaClass<Array<String?>?>, getJavaClass<String?>) var constrArgTypes : Array<Class<*>?>? = array<Class<*>?>(javaClass<Array<String?>>(), javaClass<String>())