convert .length on arrays to .size
This commit is contained in:
committed by
Pavel V. Talanov
parent
5664283a30
commit
21b280f413
@@ -219,17 +219,21 @@ public open class ExpressionVisitor(converter: Converter): StatementVisitor(conv
|
|||||||
val isThis: Boolean = isThisExpression(expression!!)
|
val isThis: Boolean = isThisExpression(expression!!)
|
||||||
val isNullable: Boolean = getConverter().typeToType(expression?.getType()).nullable
|
val isNullable: Boolean = getConverter().typeToType(expression?.getType()).nullable
|
||||||
val className: String = getClassNameWithConstructor(expression!!)
|
val className: String = getClassNameWithConstructor(expression!!)
|
||||||
var identifier: Expression = Identifier(expression?.getReferenceName()!!, isNullable)
|
val referencedName = expression?.getReferenceName()!!
|
||||||
|
var identifier: Expression = Identifier(referencedName, isNullable)
|
||||||
val __: String = "__"
|
val __: String = "__"
|
||||||
|
val qualifier = expression?.getQualifierExpression()
|
||||||
if (hasReceiver){
|
if (hasReceiver){
|
||||||
identifier = CallChainExpression(Identifier(__, false), Identifier(expression?.getReferenceName()!!, isNullable))
|
identifier = CallChainExpression(Identifier(__, false), Identifier(referencedName, isNullable))
|
||||||
|
}
|
||||||
|
else if (insideSecondaryConstructor && isThis) {
|
||||||
|
identifier = Identifier("val __ = " + className)
|
||||||
|
}
|
||||||
|
else if (qualifier != null && qualifier.getType() is PsiArrayType && referencedName == "length") {
|
||||||
|
identifier = Identifier("size", isNullable)
|
||||||
}
|
}
|
||||||
else
|
|
||||||
if (insideSecondaryConstructor && isThis) {
|
|
||||||
identifier = Identifier("val __ = " + className)
|
|
||||||
}
|
|
||||||
|
|
||||||
myResult = CallChainExpression(getConverter().expressionToExpression(expression?.getQualifierExpression()), identifier)
|
myResult = CallChainExpression(getConverter().expressionToExpression(qualifier), identifier)
|
||||||
}
|
}
|
||||||
|
|
||||||
public override fun visitSuperExpression(expression: PsiSuperExpression?): Unit {
|
public override fun visitSuperExpression(expression: PsiSuperExpression?): Unit {
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
class Test {
|
||||||
|
public static int foo(String[] args) {
|
||||||
|
return args.length;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
open class Test() {
|
||||||
|
class object {
|
||||||
|
public open fun foo(args : Array<String?>?) : Int {
|
||||||
|
return args?.size!!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user