Uast: support 'override' modifier in Java and Kotlin
This commit is contained in:
@@ -25,5 +25,7 @@ class UastModifier(val name: String) {
|
|||||||
val FINAL = UastModifier("final")
|
val FINAL = UastModifier("final")
|
||||||
@JvmField
|
@JvmField
|
||||||
val VARARG = UastModifier("vararg")
|
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 {
|
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
|
val javaModifier = MODIFIER_MAP[modifier] ?: return false
|
||||||
return hasModifierProperty(javaModifier)
|
return hasModifierProperty(javaModifier)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -32,7 +32,8 @@ import org.jetbrains.kotlin.uast.kinds.KotlinUastVisibilities
|
|||||||
import org.jetbrains.uast.*
|
import org.jetbrains.uast.*
|
||||||
|
|
||||||
private val MODIFIER_MAP = mapOf(
|
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()) {
|
internal fun KtDeclaration.getVisibility() = when (visibilityModifierType()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user