UAST: Reformat KotlinUObjectLiteralExpression.kt

This commit is contained in:
Vyacheslav Gerasimov
2018-06-26 20:57:30 +03:00
parent a829251690
commit abd3ac4e96
3 changed files with 49 additions and 47 deletions
@@ -29,46 +29,46 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
import org.jetbrains.uast.* import org.jetbrains.uast.*
class KotlinUObjectLiteralExpression( class KotlinUObjectLiteralExpression(
override val psi: KtObjectLiteralExpression, override val psi: KtObjectLiteralExpression,
givenParent: UElement? givenParent: UElement?
) : KotlinAbstractUExpression(givenParent), UObjectLiteralExpression, UCallExpressionEx, KotlinUElementWithType { ) : KotlinAbstractUExpression(givenParent), UObjectLiteralExpression, UCallExpressionEx, KotlinUElementWithType {
override val declaration: UClass by lz { override val declaration: UClass by lz {
val lightClass: KtLightClass? = psi.objectDeclaration.toLightClass() val lightClass: KtLightClass? = psi.objectDeclaration.toLightClass()
if (lightClass != null) { if (lightClass != null) {
getLanguagePlugin().convert<UClass>(lightClass, this) getLanguagePlugin().convert<UClass>(lightClass, this)
} } else {
else {
logger.error( logger.error(
"Failed to create light class for object declaration", "Failed to create light class for object declaration",
Attachment(psi.containingFile.virtualFile?.path ?: "<no path>", psi.containingFile.text)) Attachment(psi.containingFile.virtualFile?.path ?: "<no path>", psi.containingFile.text)
)
getLanguagePlugin().convert(LightPsiClassBuilder(psi, "<unnamed>"), this) getLanguagePlugin().convert(LightPsiClassBuilder(psi, "<unnamed>"), this)
} }
} }
override fun getExpressionType() = psi.objectDeclaration.toPsiType() override fun getExpressionType() = psi.objectDeclaration.toPsiType()
private val superClassConstructorCall by lz { private val superClassConstructorCall by lz {
psi.objectDeclaration.superTypeListEntries.firstOrNull { it is KtSuperTypeCallEntry } as? KtSuperTypeCallEntry psi.objectDeclaration.superTypeListEntries.firstOrNull { it is KtSuperTypeCallEntry } as? KtSuperTypeCallEntry
} }
override val classReference: UReferenceExpression? by lz { superClassConstructorCall?.let { ObjectLiteralClassReference(it, this) } } override val classReference: UReferenceExpression? by lz { superClassConstructorCall?.let { ObjectLiteralClassReference(it, this) } }
override val valueArgumentCount: Int override val valueArgumentCount: Int
get() = superClassConstructorCall?.valueArguments?.size ?: 0 get() = superClassConstructorCall?.valueArguments?.size ?: 0
override val valueArguments by lz { override val valueArguments by lz {
val psi = superClassConstructorCall ?: return@lz emptyList<UExpression>() val psi = superClassConstructorCall ?: return@lz emptyList<UExpression>()
psi.valueArguments.map { KotlinConverter.convertOrEmpty(it.getArgumentExpression(), this) } psi.valueArguments.map { KotlinConverter.convertOrEmpty(it.getArgumentExpression(), this) }
} }
override val typeArgumentCount: Int override val typeArgumentCount: Int
get() = superClassConstructorCall?.typeArguments?.size ?: 0 get() = superClassConstructorCall?.typeArguments?.size ?: 0
override val typeArguments by lz { override val typeArguments by lz {
val psi = superClassConstructorCall ?: return@lz emptyList<PsiType>() val psi = superClassConstructorCall ?: return@lz emptyList<PsiType>()
psi.typeArguments.map { it.typeReference.toPsiType(this, boxed = true) } psi.typeArguments.map { it.typeReference.toPsiType(this, boxed = true) }
} }
override fun resolve() = superClassConstructorCall?.resolveCallToDeclaration(this) as? PsiMethod override fun resolve() = superClassConstructorCall?.resolveCallToDeclaration(this) as? PsiMethod
@@ -77,8 +77,8 @@ class KotlinUObjectLiteralExpression(
superClassConstructorCall?.let { it.getResolvedCall(it.analyze()) }?.let { getArgumentExpressionByIndex(i, it, this) } superClassConstructorCall?.let { it.getResolvedCall(it.analyze()) }?.let { getArgumentExpressionByIndex(i, it, this) }
private class ObjectLiteralClassReference( private class ObjectLiteralClassReference(
override val psi: KtSuperTypeCallEntry, override val psi: KtSuperTypeCallEntry,
givenParent: UElement? givenParent: UElement?
) : KotlinAbstractUElement(givenParent), USimpleNameReferenceExpression { ) : KotlinAbstractUElement(givenParent), USimpleNameReferenceExpression {
override val javaPsi = null override val javaPsi = null
@@ -91,7 +91,7 @@ class KotlinUObjectLiteralExpression(
override val resolvedName: String? override val resolvedName: String?
get() = identifier get() = identifier
override val identifier: String override val identifier: String
get() = psi.name ?: "<error>" get() = psi.name ?: "<error>"
} }
@@ -28,53 +28,55 @@ import org.jetbrains.kotlin.psi.KtSuperTypeCallEntry
import org.jetbrains.uast.* import org.jetbrains.uast.*
class KotlinUObjectLiteralExpression( class KotlinUObjectLiteralExpression(
override val psi: KtObjectLiteralExpression, override val psi: KtObjectLiteralExpression,
givenParent: UElement? givenParent: UElement?
) : KotlinAbstractUExpression(givenParent), UObjectLiteralExpression, KotlinUElementWithType { ) : KotlinAbstractUExpression(givenParent), UObjectLiteralExpression, KotlinUElementWithType {
override val declaration: UClass by lz { override val declaration: UClass by lz {
val lightClass: KtLightClass? = psi.objectDeclaration.toLightClass() val lightClass: KtLightClass? = psi.objectDeclaration.toLightClass()
if (lightClass != null) { if (lightClass != null) {
getLanguagePlugin().convert<UClass>(lightClass, this) getLanguagePlugin().convert<UClass>(lightClass, this)
} } else {
else {
logger.error( logger.error(
"Failed to create light class for object declaration", "Failed to create light class for object declaration",
Attachment(psi.containingFile.virtualFile?.path ?: "<no path>", psi.containingFile.text)) Attachment(psi.containingFile.virtualFile?.path ?: "<no path>", psi.containingFile.text)
)
getLanguagePlugin().convert(LightPsiClassBuilder(psi, "<unnamed>"), this) getLanguagePlugin().convert(LightPsiClassBuilder(psi, "<unnamed>"), this)
} }
} }
override fun getExpressionType() = psi.objectDeclaration.toPsiType() override fun getExpressionType() = psi.objectDeclaration.toPsiType()
private val superClassConstructorCall by lz { private val superClassConstructorCall by lz {
psi.objectDeclaration.superTypeListEntries.firstOrNull { it is KtSuperTypeCallEntry } as? KtSuperTypeCallEntry psi.objectDeclaration.superTypeListEntries.firstOrNull { it is KtSuperTypeCallEntry } as? KtSuperTypeCallEntry
} }
override val classReference: UReferenceExpression? by lz { superClassConstructorCall?.let { ObjectLiteralClassReference(it, this) } } override val classReference: UReferenceExpression? by lz { superClassConstructorCall?.let { ObjectLiteralClassReference(it, this) } }
override val valueArgumentCount: Int override val valueArgumentCount: Int
get() = superClassConstructorCall?.valueArguments?.size ?: 0 get() = superClassConstructorCall?.valueArguments?.size ?: 0
override val valueArguments by lz { override val valueArguments by lz {
val psi = superClassConstructorCall ?: return@lz emptyList<UExpression>() val psi = superClassConstructorCall ?: return@lz emptyList<UExpression>()
psi.valueArguments.map { KotlinConverter.convertOrEmpty(it.getArgumentExpression(), this) } psi.valueArguments.map { KotlinConverter.convertOrEmpty(it.getArgumentExpression(), this) }
} }
override val typeArgumentCount: Int override val typeArgumentCount: Int
get() = superClassConstructorCall?.typeArguments?.size ?: 0 get() = superClassConstructorCall?.typeArguments?.size ?: 0
override val typeArguments by lz { override val typeArguments by lz {
val psi = superClassConstructorCall ?: return@lz emptyList<PsiType>() val psi = superClassConstructorCall ?: return@lz emptyList<PsiType>()
psi.typeArguments.map { it.typeReference.toPsiType(this, boxed = true) } psi.typeArguments.map { it.typeReference.toPsiType(this, boxed = true) }
} }
override fun resolve() = superClassConstructorCall?.resolveCallToDeclaration(this) as? PsiMethod override fun resolve() = superClassConstructorCall?.resolveCallToDeclaration(this) as? PsiMethod
private class ObjectLiteralClassReference( private class ObjectLiteralClassReference(
override val psi: KtSuperTypeCallEntry, override val psi: KtSuperTypeCallEntry,
givenParent: UElement? givenParent: UElement?
) : KotlinAbstractUElement(givenParent), USimpleNameReferenceExpression { ) : KotlinAbstractUElement(givenParent), USimpleNameReferenceExpression {
override fun resolve() = (psi.resolveCallToDeclaration(this) as? PsiMethod)?.containingClass override fun resolve() = (psi.resolveCallToDeclaration(this) as? PsiMethod)?.containingClass
override val annotations: List<UAnnotation> override val annotations: List<UAnnotation>
@@ -82,7 +84,7 @@ class KotlinUObjectLiteralExpression(
override val resolvedName: String? override val resolvedName: String?
get() = identifier get() = identifier
override val identifier: String override val identifier: String
get() = psi.name ?: "<error>" get() = psi.name ?: "<error>"
} }
@@ -28,52 +28,52 @@ import org.jetbrains.kotlin.psi.KtSuperTypeCallEntry
import org.jetbrains.uast.* import org.jetbrains.uast.*
class KotlinUObjectLiteralExpression( class KotlinUObjectLiteralExpression(
override val psi: KtObjectLiteralExpression, override val psi: KtObjectLiteralExpression,
givenParent: UElement? givenParent: UElement?
) : KotlinAbstractUExpression(givenParent), UObjectLiteralExpression, KotlinUElementWithType { ) : KotlinAbstractUExpression(givenParent), UObjectLiteralExpression, KotlinUElementWithType {
override val declaration: UClass by lz { override val declaration: UClass by lz {
val lightClass: KtLightClass? = psi.objectDeclaration.toLightClass() val lightClass: KtLightClass? = psi.objectDeclaration.toLightClass()
if (lightClass != null) { if (lightClass != null) {
getLanguagePlugin().convert<UClass>(lightClass, this) getLanguagePlugin().convert<UClass>(lightClass, this)
} } else {
else {
logger.error( logger.error(
"Failed to create light class for object declaration", "Failed to create light class for object declaration",
Attachment(psi.containingFile.virtualFile?.path ?: "<no path>", psi.containingFile.text)) Attachment(psi.containingFile.virtualFile?.path ?: "<no path>", psi.containingFile.text)
)
getLanguagePlugin().convert(LightPsiClassBuilder(psi, "<unnamed>"), this) getLanguagePlugin().convert(LightPsiClassBuilder(psi, "<unnamed>"), this)
} }
} }
override fun getExpressionType() = psi.objectDeclaration.toPsiType() override fun getExpressionType() = psi.objectDeclaration.toPsiType()
private val superClassConstructorCall by lz { private val superClassConstructorCall by lz {
psi.objectDeclaration.superTypeListEntries.firstOrNull { it is KtSuperTypeCallEntry } as? KtSuperTypeCallEntry psi.objectDeclaration.superTypeListEntries.firstOrNull { it is KtSuperTypeCallEntry } as? KtSuperTypeCallEntry
} }
override val classReference: UReferenceExpression? by lz { superClassConstructorCall?.let { ObjectLiteralClassReference(it, this) } } override val classReference: UReferenceExpression? by lz { superClassConstructorCall?.let { ObjectLiteralClassReference(it, this) } }
override val valueArgumentCount: Int override val valueArgumentCount: Int
get() = superClassConstructorCall?.valueArguments?.size ?: 0 get() = superClassConstructorCall?.valueArguments?.size ?: 0
override val valueArguments by lz { override val valueArguments by lz {
val psi = superClassConstructorCall ?: return@lz emptyList<UExpression>() val psi = superClassConstructorCall ?: return@lz emptyList<UExpression>()
psi.valueArguments.map { KotlinConverter.convertOrEmpty(it.getArgumentExpression(), this) } psi.valueArguments.map { KotlinConverter.convertOrEmpty(it.getArgumentExpression(), this) }
} }
override val typeArgumentCount: Int override val typeArgumentCount: Int
get() = superClassConstructorCall?.typeArguments?.size ?: 0 get() = superClassConstructorCall?.typeArguments?.size ?: 0
override val typeArguments by lz { override val typeArguments by lz {
val psi = superClassConstructorCall ?: return@lz emptyList<PsiType>() val psi = superClassConstructorCall ?: return@lz emptyList<PsiType>()
psi.typeArguments.map { it.typeReference.toPsiType(this, boxed = true) } psi.typeArguments.map { it.typeReference.toPsiType(this, boxed = true) }
} }
override fun resolve() = superClassConstructorCall?.resolveCallToDeclaration(this) as? PsiMethod override fun resolve() = superClassConstructorCall?.resolveCallToDeclaration(this) as? PsiMethod
private class ObjectLiteralClassReference( private class ObjectLiteralClassReference(
override val psi: KtSuperTypeCallEntry, override val psi: KtSuperTypeCallEntry,
givenParent: UElement? givenParent: UElement?
) : KotlinAbstractUElement(givenParent), USimpleNameReferenceExpression { ) : KotlinAbstractUElement(givenParent), USimpleNameReferenceExpression {
override val javaPsi = null override val javaPsi = null
@@ -86,7 +86,7 @@ class KotlinUObjectLiteralExpression(
override val resolvedName: String? override val resolvedName: String?
get() = identifier get() = identifier
override val identifier: String override val identifier: String
get() = psi.name ?: "<error>" get() = psi.name ?: "<error>"
} }