diff --git a/src/org/jetbrains/jet/j2k/ast/ClassObjectAccessExpression.java b/src/org/jetbrains/jet/j2k/ast/ClassObjectAccessExpression.java new file mode 100644 index 00000000000..09cd85a5244 --- /dev/null +++ b/src/org/jetbrains/jet/j2k/ast/ClassObjectAccessExpression.java @@ -0,0 +1,20 @@ +package org.jetbrains.jet.j2k.ast; + +import org.jetbrains.annotations.NotNull; + +/** + * @author ignatov + */ +public class ClassObjectAccessExpression extends Expression { + private Element myTypeElement; + + public ClassObjectAccessExpression(Element typeElement) { + myTypeElement = typeElement; + } + + @NotNull + @Override + public String toKotlin() { + return "getJavaClass" + "<" + myTypeElement.toKotlin() + ">"; + } +} diff --git a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java index 71cc183c368..695a427f1c8 100644 --- a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java +++ b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java @@ -123,6 +123,7 @@ public class ExpressionVisitor extends StatementVisitor { @Override public void visitClassObjectAccessExpression(PsiClassObjectAccessExpression expression) { super.visitClassObjectAccessExpression(expression); + myResult = new ClassObjectAccessExpression(elementToElement(expression.getOperand())); } @Override diff --git a/testData/ast/classExpression/expression/objectClass.jav b/testData/ast/classExpression/expression/objectClass.jav new file mode 100644 index 00000000000..b5c1a920fca --- /dev/null +++ b/testData/ast/classExpression/expression/objectClass.jav @@ -0,0 +1 @@ +Object.class \ No newline at end of file diff --git a/testData/ast/classExpression/expression/objectClass.kt b/testData/ast/classExpression/expression/objectClass.kt new file mode 100644 index 00000000000..4674988b0c1 --- /dev/null +++ b/testData/ast/classExpression/expression/objectClass.kt @@ -0,0 +1 @@ +getJavaClass \ No newline at end of file diff --git a/testData/ast/classExpression/expression/stringClass.jav b/testData/ast/classExpression/expression/stringClass.jav new file mode 100644 index 00000000000..025387a83e8 --- /dev/null +++ b/testData/ast/classExpression/expression/stringClass.jav @@ -0,0 +1 @@ +String.class \ No newline at end of file diff --git a/testData/ast/classExpression/expression/stringClass.kt b/testData/ast/classExpression/expression/stringClass.kt new file mode 100644 index 00000000000..894282ca52d --- /dev/null +++ b/testData/ast/classExpression/expression/stringClass.kt @@ -0,0 +1 @@ +getJavaClass \ No newline at end of file diff --git a/testData/ast/classExpression/statement/complexExample.jav b/testData/ast/classExpression/statement/complexExample.jav new file mode 100644 index 00000000000..a74d8698493 --- /dev/null +++ b/testData/ast/classExpression/statement/complexExample.jav @@ -0,0 +1 @@ +Class[] constrArgTypes = new Class[]{String[].class, String.class}; \ No newline at end of file diff --git a/testData/ast/classExpression/statement/complexExample.kt b/testData/ast/classExpression/statement/complexExample.kt new file mode 100644 index 00000000000..fcbc1c36ccd --- /dev/null +++ b/testData/ast/classExpression/statement/complexExample.kt @@ -0,0 +1 @@ +var constrArgTypes : Array?>? = array(getJavaClass?>, getJavaClass) \ No newline at end of file