From 2c003d16f2b89759c680e3437f455823fa424c8d Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Tue, 22 Mar 2016 21:02:28 +0300 Subject: [PATCH] Uast: support 'override' modifier in Java and Kotlin --- .../uast-common/src/org/jetbrains/uast/kinds/UastModifier.kt | 2 ++ .../org/jetbrains/uast/java/internal/javaInternalUastUtils.kt | 3 +++ .../jetbrains/kotlin/uast/internal/kotlinInternalUastUtils.kt | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/uast-common/src/org/jetbrains/uast/kinds/UastModifier.kt b/plugins/uast-common/src/org/jetbrains/uast/kinds/UastModifier.kt index 64fe0996e13..4417dc24dd4 100644 --- a/plugins/uast-common/src/org/jetbrains/uast/kinds/UastModifier.kt +++ b/plugins/uast-common/src/org/jetbrains/uast/kinds/UastModifier.kt @@ -25,5 +25,7 @@ class UastModifier(val name: String) { val FINAL = UastModifier("final") @JvmField val VARARG = UastModifier("vararg") + @JvmField + val OVERRIDE = UastModifier("override") } } diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/internal/javaInternalUastUtils.kt b/plugins/uast-java/src/org/jetbrains/uast/java/internal/javaInternalUastUtils.kt index 351c06c5289..72766263cfb 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/internal/javaInternalUastUtils.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/internal/javaInternalUastUtils.kt @@ -27,6 +27,9 @@ private val MODIFIER_MAP = mapOf( ) internal fun PsiModifierListOwner.hasModifier(modifier: UastModifier): Boolean { + if (modifier == UastModifier.OVERRIDE && this is PsiAnnotationOwner) { + return this.annotations.any { it.qualifiedName == "java.lang.Override" } + } val javaModifier = MODIFIER_MAP[modifier] ?: return false return hasModifierProperty(javaModifier) } diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/internal/kotlinInternalUastUtils.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/internal/kotlinInternalUastUtils.kt index 31dc6782da6..561f73925c1 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/internal/kotlinInternalUastUtils.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/internal/kotlinInternalUastUtils.kt @@ -32,7 +32,8 @@ import org.jetbrains.kotlin.uast.kinds.KotlinUastVisibilities import org.jetbrains.uast.* private val MODIFIER_MAP = mapOf( - UastModifier.ABSTRACT to KtTokens.ABSTRACT_KEYWORD + UastModifier.ABSTRACT to KtTokens.ABSTRACT_KEYWORD, + UastModifier.OVERRIDE to KtTokens.OVERRIDE_KEYWORD ) internal fun KtDeclaration.getVisibility() = when (visibilityModifierType()) {