New J2K: Add escaping of class symbol names in code builder
This commit is contained in:
committed by
Ilya Kirillov
parent
11da99a1d0
commit
de26e2cfe7
@@ -115,8 +115,7 @@ class NewCodeBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitClassAccessExpression(classAccessExpression: JKClassAccessExpression) {
|
override fun visitClassAccessExpression(classAccessExpression: JKClassAccessExpression) {
|
||||||
//TODO handle class Access in seperate conversion?
|
printer.printWithNoIndent(classAccessExpression.identifier.displayName().escaped())
|
||||||
printer.printWithNoIndent(classAccessExpression.identifier.fqName!!.substringAfter("java.lang."))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitFile(file: JKFile) {
|
override fun visitFile(file: JKFile) {
|
||||||
@@ -582,8 +581,7 @@ class NewCodeBuilder {
|
|||||||
private fun renderType(type: JKType) {
|
private fun renderType(type: JKType) {
|
||||||
if (type is JKNoTypeImpl) return
|
if (type is JKNoTypeImpl) return
|
||||||
when (type) {
|
when (type) {
|
||||||
is JKClassType -> printer.printWithNoIndent(type.classReference.displayName())
|
is JKClassType -> printer.printWithNoIndent(type.classReference.displayName().escapedAsQualifiedName())
|
||||||
is JKUnresolvedClassType -> printer.printWithNoIndent(type.name)
|
|
||||||
is JKContextType -> return
|
is JKContextType -> return
|
||||||
is JKStarProjectionType ->
|
is JKStarProjectionType ->
|
||||||
printer.printWithNoIndent("*")
|
printer.printWithNoIndent("*")
|
||||||
@@ -615,7 +613,7 @@ class NewCodeBuilder {
|
|||||||
if (javaNewExpression.isAnonymousClass()) {
|
if (javaNewExpression.isAnonymousClass()) {
|
||||||
printer.printWithNoIndent("object : ")
|
printer.printWithNoIndent("object : ")
|
||||||
}
|
}
|
||||||
printer.printWithNoIndent(javaNewExpression.classSymbol.displayName())
|
printer.printWithNoIndent(javaNewExpression.classSymbol.displayName().escapedAsQualifiedName())
|
||||||
javaNewExpression.typeArgumentList.accept(this)
|
javaNewExpression.typeArgumentList.accept(this)
|
||||||
if (javaNewExpression.constructorIsPresent() || !javaNewExpression.isAnonymousClass()) {
|
if (javaNewExpression.constructorIsPresent() || !javaNewExpression.isAnonymousClass()) {
|
||||||
printer.par(ROUND) {
|
printer.par(ROUND) {
|
||||||
@@ -673,7 +671,7 @@ class NewCodeBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitFieldAccessExpression(fieldAccessExpression: JKFieldAccessExpression) {
|
override fun visitFieldAccessExpression(fieldAccessExpression: JKFieldAccessExpression) {
|
||||||
printer.printWithNoIndent(FqName(fieldAccessExpression.identifier.fqName).shortName().asString())
|
printer.printWithNoIndent(fieldAccessExpression.identifier.name.escaped())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitArrayAccessExpression(arrayAccessExpression: JKArrayAccessExpression) {
|
override fun visitArrayAccessExpression(arrayAccessExpression: JKArrayAccessExpression) {
|
||||||
@@ -796,7 +794,7 @@ class NewCodeBuilder {
|
|||||||
|
|
||||||
override fun visitAnnotation(annotation: JKAnnotation) {
|
override fun visitAnnotation(annotation: JKAnnotation) {
|
||||||
printer.printWithNoIndent("@")
|
printer.printWithNoIndent("@")
|
||||||
printer.printWithNoIndent(annotation.classSymbol.displayName())
|
printer.printWithNoIndent(annotation.classSymbol.displayName().escapedAsQualifiedName())
|
||||||
if (annotation.arguments.expressions.isNotEmpty()) {
|
if (annotation.arguments.expressions.isNotEmpty()) {
|
||||||
printer.par {
|
printer.par {
|
||||||
annotation.arguments.accept(this)
|
annotation.arguments.accept(this)
|
||||||
|
|||||||
Reference in New Issue
Block a user