UAST: Reformat KotlinUObjectLiteralExpression.kt
This commit is contained in:
+15
-15
@@ -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>"
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-16
@@ -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>"
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-16
@@ -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>"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user