From ad587724536b58b5ef0636396c22adeb277d2b7d Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 19 Dec 2018 15:36:21 +0300 Subject: [PATCH] New J2K: Use IDEA analyzers on kotlin properties & functions --- .../kotlin/j2k/conversions/FieldToPropertyConversion.kt | 4 +++- .../j2k/conversions/JavaMethodToKotlinFunctionConversion.kt | 5 ++++- j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/k.kt | 4 ++-- j2k/newSrc/org/jetbrains/kotlin/j2k/tree/k.kt | 5 ++--- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/FieldToPropertyConversion.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/FieldToPropertyConversion.kt index 09b8a9956a5..4e1950d0a7e 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/FieldToPropertyConversion.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/FieldToPropertyConversion.kt @@ -27,7 +27,9 @@ class FieldToPropertyConversion : RecursiveApplicableConversionBase() { element.visibility, Modality.FINAL, mutability - ) + ).also { + it.psi = element.psi + } ) } } diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/JavaMethodToKotlinFunctionConversion.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/JavaMethodToKotlinFunctionConversion.kt index e6f16e09bae..43a7fba7661 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/JavaMethodToKotlinFunctionConversion.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/JavaMethodToKotlinFunctionConversion.kt @@ -22,6 +22,7 @@ import org.jetbrains.kotlin.j2k.throwAnnotation import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.j2k.tree.impl.JKKtFunctionImpl import org.jetbrains.kotlin.j2k.tree.impl.JKTypeElementImpl +import org.jetbrains.kotlin.j2k.tree.impl.psi class JavaMethodToKotlinFunctionConversion(private val context: ConversionContext) : TransformerBasedConversion() { override fun visitTreeElement(element: JKTreeElement) { @@ -57,7 +58,9 @@ class JavaMethodToKotlinFunctionConversion(private val context: ConversionContex declaration.extraModifiers, declaration.visibility, declaration.modality - ) + ).also { + it.psi = declaration.psi + } } else { declaration } diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/k.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/k.kt index 98a0e114e63..ad1fb5a4e3e 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/k.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/k.kt @@ -36,7 +36,7 @@ class JKKtPropertyImpl( override var visibility: Visibility, override var modality: Modality, override var mutability: Mutability -) : JKBranchElementBase(), JKKtProperty { +) : JKBranchElementBase(), JKKtProperty, PsiOwner by PsiOwnerImpl() { override fun accept(visitor: JKVisitor, data: D): R = visitor.visitKtProperty(this, data) override var annotationList: JKAnnotationList by child(annotationList) @@ -57,7 +57,7 @@ class JKKtFunctionImpl( override var extraModifiers: List, override var visibility: Visibility, override var modality: Modality -) : JKBranchElementBase(), JKKtFunction { +) : JKBranchElementBase(), JKKtFunction, PsiOwner by PsiOwnerImpl() { override fun accept(visitor: JKVisitor, data: D): R = visitor.visitKtFunction(this, data) override var returnType: JKTypeElement by child(returnType) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/k.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/k.kt index 740952f0cc3..e26a377862c 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/k.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/k.kt @@ -29,14 +29,13 @@ interface JKKtGetterOrSetter : JKTreeElement, JKVisibilityOwner, JKBranchElement interface JKKtEmptyGetterOrSetter : JKKtGetterOrSetter -interface JKKtProperty : JKField { +interface JKKtProperty : JKField, PsiOwner { var getter: JKKtGetterOrSetter var setter: JKKtGetterOrSetter } - -interface JKKtFunction : JKMethod { +interface JKKtFunction : JKMethod, PsiOwner { } interface JKKtConstructor : JKDeclaration, JKExtraModifiersOwner, JKMethod, JKBranchElement {