JVM IR: copy corresponding property+annotations for DefaultImpls methods

Instead of using methodSignatureMapper which was an obsolete hack to
make accessor names "getFoo" instead of "<get-foo>".

In particular, this keeps the `@Deprecated` annotation on the
corresponding property, which results in ACC_DEPRECATED in codegen.

 #KT-43326 Fixed
This commit is contained in:
Alexander Udalov
2020-11-13 19:54:30 +01:00
parent 5212ae6bbd
commit a3830b2611
5 changed files with 25 additions and 7 deletions
@@ -51,3 +51,8 @@ var <T> List<T>.textGenExtVar
get() = 1
set(v) {}
interface I {
@Deprecated("")
val <T> T.id: T
get() = this
}
@@ -44,3 +44,18 @@ public final class DeprecatedPropertyKt {
public deprecated final static method setTextExtVar(@org.jetbrains.annotations.NotNull p0: java.lang.Object, p1: int): void
public deprecated final static method setTextGenExtVar(@org.jetbrains.annotations.NotNull p0: java.util.List, p1: int): void
}
@kotlin.Metadata
public final class I$DefaultImpls {
// source: 'deprecatedProperty.kt'
public synthetic deprecated static @kotlin.Deprecated method getId$annotations(p0: java.lang.Object): void
public deprecated static method getId(@org.jetbrains.annotations.NotNull p0: I, p1: java.lang.Object): java.lang.Object
public final inner class I$DefaultImpls
}
@kotlin.Metadata
public interface I {
// source: 'deprecatedProperty.kt'
public deprecated abstract method getId(p0: java.lang.Object): java.lang.Object
public final inner class I$DefaultImpls
}