[SLC] LazyAnnotationsBox: drop redundant synchronization

We can use less strict rule for produced annotations:
* Previously: the same annotations from `findAnnotation` and `annotations`
have the same identity
* Now: the same annotations from `findAnnotation` and `annotations`
are equals by 'equals'

^KT-56046
This commit is contained in:
Dmitrii Gridin
2023-01-30 13:26:37 +01:00
committed by Space Team
parent e1c8b3d674
commit 3b9318bd3a
14 changed files with 257 additions and 51 deletions
@@ -0,0 +1,6 @@
public final class OverrideMethod /* one.OverrideMethod*/ extends one.AbstractClass {
@java.lang.Override()
public void foo();// foo()
public OverrideMethod();// .ctor()
}
@@ -0,0 +1,13 @@
// PSI: org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightSimpleMethod
// EXPECTED: java.lang.Override
package one
abstract class AbstractClass {
abstract fun foo()
}
class OverrideMethod : AbstractClass() {
override fun f<caret>oo() {
}
}
@@ -0,0 +1,5 @@
public final class TopLevelFunctionWithDeprecatedAnnotationKt /* one.TopLevelFunctionWithDeprecatedAnnotationKt*/ {
@kotlin.Deprecated(message = "")
@one.Anno()
public static final void regularFunction();// regularFunction()
}
@@ -0,0 +1,12 @@
// PSI: org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightSimpleMethod
// EXPECTED: kotlin.Deprecated
// UNEXPECTED: kotlin.jvm.JvmRecord
// EXPECTED: one.Anno
// UNEXPECTED: one.Anno2
package one
annotation class Anno
@Deprecated("") @Anno
fun regul<caret>arFunction() {}
@@ -0,0 +1,4 @@
public final class TopLevelFunctionWithRegularAnnotationKt /* one.TopLevelFunctionWithRegularAnnotationKt*/ {
@one.Anno()
public static final void regularFunction();// regularFunction()
}
@@ -0,0 +1,10 @@
// PSI: org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightSimpleMethod
// EXPECTED: one.Anno
// UNEXPECTED: one.Anno2
package one
annotation class Anno
@Anno
fun regul<caret>arFunction() {}