[AA LC] Add @java.lang.Override on override functions
This commit is contained in:
+8
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.markers.KtAnnotatedSymbol
|
||||
import org.jetbrains.kotlin.builtins.StandardNames.DEFAULT_VALUE_PARAMETER
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.light.classes.symbol.NullabilityType
|
||||
import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethod
|
||||
import org.jetbrains.kotlin.load.java.JvmAbi.JVM_FIELD_ANNOTATION_CLASS_ID
|
||||
import org.jetbrains.kotlin.load.java.JvmAnnotationNames.RETENTION_POLICY_ENUM
|
||||
import org.jetbrains.kotlin.name.*
|
||||
@@ -108,6 +109,13 @@ internal fun KtAnnotatedSymbol.computeAnnotations(
|
||||
val parentIsAnnotation = (parent as? PsiClass)?.isAnnotationType == true
|
||||
|
||||
val result = mutableListOf<PsiAnnotation>()
|
||||
|
||||
if (parent is SymbolLightMethod) {
|
||||
if (parent.isDelegated || parent.isOverride()) {
|
||||
result.add(SymbolLightSimpleAnnotation(java.lang.Override::class.java.name, parent))
|
||||
}
|
||||
}
|
||||
|
||||
if (annotations.isEmpty()) {
|
||||
if (parentIsAnnotation) {
|
||||
result.add(createRetentionRuntimeAnnotation(parent))
|
||||
|
||||
+2
@@ -191,4 +191,6 @@ internal class SymbolLightAccessorMethod(
|
||||
override fun getParameterList(): PsiParameterList = _parametersList
|
||||
|
||||
override fun isValid(): Boolean = super.isValid() && propertyAccessorSymbol.isValid()
|
||||
|
||||
override fun isOverride(): Boolean = propertyAccessorSymbol.isOverride
|
||||
}
|
||||
|
||||
+2
@@ -73,4 +73,6 @@ internal abstract class SymbolLightMethod(
|
||||
lightMemberOrigin?.originalElement ?: functionSymbol.psi as? KtDeclaration
|
||||
|
||||
override fun isValid(): Boolean = super.isValid() && functionSymbol.isValid()
|
||||
|
||||
override fun isOverride(): Boolean = functionSymbol.getDirectlyOverriddenSymbols().isNotEmpty()
|
||||
}
|
||||
|
||||
+3
-1
@@ -108,4 +108,6 @@ internal abstract class SymbolLightMethodBase(
|
||||
val moduleName = (getKtModule(project) as? KtSourceModule)?.moduleName ?: return defaultName
|
||||
return mangleInternalName(defaultName, moduleName)
|
||||
}
|
||||
}
|
||||
|
||||
abstract fun isOverride(): Boolean
|
||||
}
|
||||
|
||||
+2
@@ -66,4 +66,6 @@ internal class SymbolLightNoArgConstructor(
|
||||
override fun hashCode(): Int = containingClass.hashCode()
|
||||
|
||||
override fun isValid(): Boolean = super.isValid() && containingClass.isValid
|
||||
|
||||
override fun isOverride(): Boolean = false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user