Uast: implementing specific javaPsi for UVariables
This commit is contained in:
@@ -40,7 +40,8 @@ import org.jetbrains.uast.kotlin.psi.UastKotlinPsiParameter
|
||||
import org.jetbrains.uast.kotlin.psi.UastKotlinPsiVariable
|
||||
import org.jetbrains.uast.visitor.UastVisitor
|
||||
|
||||
abstract class AbstractKotlinUVariable(givenParent: UElement?) : KotlinAbstractUElement(givenParent), PsiVariable, UVariable, UAnchorOwner {
|
||||
abstract class AbstractKotlinUVariable(givenParent: UElement?) : KotlinAbstractUElement(givenParent), PsiVariable, UVariableExPlaceHolder,
|
||||
UAnchorOwner {
|
||||
|
||||
override val uastInitializer: UExpression?
|
||||
get() {
|
||||
@@ -183,7 +184,7 @@ open class KotlinUParameter(
|
||||
psi: PsiParameter,
|
||||
final override val sourcePsi: KtElement?,
|
||||
givenParent: UElement?
|
||||
) : AbstractKotlinUVariable(givenParent), UParameter, PsiParameter by psi {
|
||||
) : AbstractKotlinUVariable(givenParent), UParameterExPlaceHolder, PsiParameter by psi {
|
||||
|
||||
final override val javaPsi = unwrap<UParameter, PsiParameter>(psi)
|
||||
|
||||
@@ -290,7 +291,7 @@ open class KotlinUField(
|
||||
psi: PsiField,
|
||||
override val sourcePsi: KtElement?,
|
||||
givenParent: UElement?
|
||||
) : AbstractKotlinUVariable(givenParent), UField, PsiField by psi {
|
||||
) : AbstractKotlinUVariable(givenParent), UFieldExPlaceHolder, PsiField by psi {
|
||||
override fun getSourceElement() = sourcePsi ?: this
|
||||
|
||||
override val javaPsi = unwrap<UField, PsiField>(psi)
|
||||
@@ -335,7 +336,7 @@ open class KotlinULocalVariable(
|
||||
psi: PsiLocalVariable,
|
||||
override val sourcePsi: KtElement,
|
||||
givenParent: UElement?
|
||||
) : AbstractKotlinUVariable(givenParent), ULocalVariable, PsiLocalVariable by psi {
|
||||
) : AbstractKotlinUVariable(givenParent), ULocalVariableExPlaceHolder, PsiLocalVariable by psi {
|
||||
|
||||
override val javaPsi = unwrap<ULocalVariable, PsiLocalVariable>(psi)
|
||||
|
||||
@@ -382,7 +383,7 @@ class KotlinUEnumConstant(
|
||||
psi: PsiEnumConstant,
|
||||
override val sourcePsi: KtElement?,
|
||||
givenParent: UElement?
|
||||
) : AbstractKotlinUVariable(givenParent), UEnumConstant, UCallExpressionEx, DelegatedMultiResolve, PsiEnumConstant by psi {
|
||||
) : AbstractKotlinUVariable(givenParent), UEnumConstantExPlaceHolder, UCallExpressionEx, DelegatedMultiResolve, PsiEnumConstant by psi {
|
||||
|
||||
override val initializingClass: UClass? by lz {
|
||||
(psi.initializingClass as? KtLightClass)?.let { initializingClass ->
|
||||
|
||||
@@ -14,7 +14,7 @@ internal class KotlinLocalFunctionUVariable(
|
||||
val function: KtFunction,
|
||||
override val psi: PsiVariable,
|
||||
givenParent: UElement?
|
||||
) : KotlinAbstractUElement(givenParent), UVariable, PsiVariable by psi {
|
||||
) : KotlinAbstractUElement(givenParent), UVariableExPlaceHolder, PsiVariable by psi {
|
||||
|
||||
override val javaPsi = psi
|
||||
override val sourcePsi: PsiElement? = (psi as? UastKotlinPsiVariable?)?.ktElement ?: psi
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.uast.kotlin
|
||||
|
||||
import org.jetbrains.uast.*
|
||||
|
||||
typealias UFieldExPlaceHolder = UFieldEx
|
||||
typealias UParameterExPlaceHolder = UParameterEx
|
||||
typealias UVariableExPlaceHolder = UVariableEx
|
||||
typealias ULocalVariableExPlaceHolder = ULocalVariableEx
|
||||
typealias UEnumConstantExPlaceHolder = UEnumConstantEx
|
||||
typealias UClassInitializerExPlaceHolder = UClassInitializerEx
|
||||
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.uast.kotlin
|
||||
|
||||
import org.jetbrains.uast.*
|
||||
|
||||
typealias UFieldExPlaceHolder = UField
|
||||
typealias UParameterExPlaceHolder = UParameter
|
||||
typealias UVariableExPlaceHolder = UVariable
|
||||
typealias ULocalVariableExPlaceHolder = ULocalVariable
|
||||
typealias UEnumConstantExPlaceHolder = UEnumConstant
|
||||
typealias UClassInitializerExPlaceHolder = UClassInitializer
|
||||
Reference in New Issue
Block a user