6900e20096
If we encounter a declaration in the current module whose signature
is the same as that of a declaration in another module which we happen
to also reference from the current module, don't report any errors,
just like we don't do it in Kotlin/JVM. This leaves the user in the KLIB
hell situation, but this is intentional, because otherwise a legitimate
change like moving a declaration to another module and marking
the original one as `@Deprecated("", level = DeprecationLevel.HIDDEN)`
would lead to a error, and we don't want that.
Also, don't try to show the diagnostics on a declaration that doesn't
have an IrFile.
^KT-65063 Fixed
31 lines
735 B
Kotlin
Vendored
31 lines
735 B
Kotlin
Vendored
// FIR_IDENTICAL
|
|
// RENDER_ALL_DIAGNOSTICS_FULL_TEXT
|
|
|
|
// MODULE: lib
|
|
package com.example.klib.serialization.diagnostics
|
|
|
|
fun movedToLib() {}
|
|
|
|
// MODULE: main(lib)
|
|
// FILE: foo.kt
|
|
package com.example.klib.serialization.diagnostics
|
|
|
|
<!CONFLICTING_KLIB_SIGNATURES_ERROR!>@Deprecated("", level = DeprecationLevel.HIDDEN)
|
|
fun foo(): Long = 0L<!>
|
|
|
|
// FILE: main.kt
|
|
package com.example.klib.serialization.diagnostics
|
|
|
|
<!CONFLICTING_KLIB_SIGNATURES_ERROR!>@Deprecated("", level = DeprecationLevel.HIDDEN)
|
|
fun foo(): String = ""<!>
|
|
|
|
<!CONFLICTING_KLIB_SIGNATURES_ERROR!>fun foo(): Int = 0<!>
|
|
|
|
@Deprecated("This function moved to the 'lib' module", level = DeprecationLevel.HIDDEN)
|
|
fun movedToLib() {}
|
|
|
|
fun main() {
|
|
foo()
|
|
movedToLib()
|
|
}
|