Uast: support 'override' modifier in Java and Kotlin

This commit is contained in:
Yan Zhulanow
2016-03-22 21:02:28 +03:00
parent da5e6c4092
commit 2c003d16f2
3 changed files with 7 additions and 1 deletions
@@ -25,5 +25,7 @@ class UastModifier(val name: String) {
val FINAL = UastModifier("final")
@JvmField
val VARARG = UastModifier("vararg")
@JvmField
val OVERRIDE = UastModifier("override")
}
}
@@ -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)
}
@@ -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()) {