Support deprecation level HIDDEN for classifiers
Classifiers annotated with `@Deprecated(level = HIDDEN)` now have smaller priority in imports, similarly to private classes. For example, if two classifiers named Foo are imported with a star import and one of them is deprecated-hidden, the name Foo in the source code is resolved to the other one. Also a minor change in multi-module diagnostic tests: do not append newlines after the last module in the test #KT-13926 Fixed
This commit is contained in:
Vendored
+37
@@ -0,0 +1,37 @@
|
||||
// MODULE: m1
|
||||
// FILE: a.kt
|
||||
|
||||
package p1
|
||||
|
||||
@Deprecated("Use p2.A instead", level = DeprecationLevel.HIDDEN)
|
||||
class A {
|
||||
fun m1() {}
|
||||
}
|
||||
|
||||
// MODULE: m2
|
||||
// FILE: b.kt
|
||||
|
||||
package p2
|
||||
|
||||
class A {
|
||||
fun m2() {}
|
||||
}
|
||||
|
||||
// MODULE: m3(m1, m2)
|
||||
// FILE: severalStarImports.kt
|
||||
import p1.*
|
||||
import p2.*
|
||||
|
||||
fun test(a: A) {
|
||||
a.<!UNRESOLVED_REFERENCE!>m1<!>()
|
||||
a.m2()
|
||||
}
|
||||
|
||||
// FILE: explicitlyImportP1.kt
|
||||
import p1.<!DEPRECATION_ERROR!>A<!>
|
||||
import p2.*
|
||||
|
||||
fun test(a: <!DEPRECATION_ERROR!>A<!>) {
|
||||
a.m1()
|
||||
a.<!UNRESOLVED_REFERENCE!>m2<!>()
|
||||
}
|
||||
Vendored
+49
@@ -0,0 +1,49 @@
|
||||
// -- Module: <m1> --
|
||||
package
|
||||
|
||||
package p1 {
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "Use p2.A instead") public final class A {
|
||||
public constructor A()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final fun m1(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// -- Module: <m2> --
|
||||
package
|
||||
|
||||
package p2 {
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final fun m2(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// -- Module: <m3> --
|
||||
package
|
||||
|
||||
public fun test(/*0*/ a: p1.A): kotlin.Unit
|
||||
public fun test(/*0*/ a: p2.A): kotlin.Unit
|
||||
|
||||
package p1 {
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "Use p2.A instead") public final class A {
|
||||
// -- Module: <m1> --
|
||||
}
|
||||
}
|
||||
|
||||
package p2 {
|
||||
|
||||
public final class A {
|
||||
// -- Module: <m2> --
|
||||
}
|
||||
}
|
||||
Vendored
+46
@@ -0,0 +1,46 @@
|
||||
// MODULE: m1
|
||||
// FILE: a.kt
|
||||
|
||||
package p1
|
||||
|
||||
@Deprecated("1", level = DeprecationLevel.HIDDEN)
|
||||
class A(val v1: Unit)
|
||||
|
||||
// MODULE: m2
|
||||
// FILE: b.kt
|
||||
|
||||
package p2
|
||||
|
||||
@Deprecated("2", level = DeprecationLevel.HIDDEN)
|
||||
class A(val v2: Unit)
|
||||
|
||||
// MODULE: m3
|
||||
// FILE: c.kt
|
||||
|
||||
package p3
|
||||
|
||||
@Deprecated("3", level = DeprecationLevel.HIDDEN)
|
||||
class A(val v3: Unit)
|
||||
|
||||
// MODULE: m4(m1, m2, m3)
|
||||
// FILE: oneExplicitImportOtherStars.kt
|
||||
import p1.*
|
||||
import p2.<!DEPRECATION_ERROR!>A<!>
|
||||
import p3.*
|
||||
|
||||
fun test(a: <!DEPRECATION_ERROR!>A<!>) {
|
||||
a.<!UNRESOLVED_REFERENCE!>v1<!>
|
||||
a.v2
|
||||
a.<!UNRESOLVED_REFERENCE!>v3<!>
|
||||
}
|
||||
|
||||
// FILE: severalStarImports.kt
|
||||
import p1.*
|
||||
import p2.*
|
||||
import p3.*
|
||||
|
||||
fun test(a: <!UNRESOLVED_REFERENCE!>A<!>) {
|
||||
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>v1<!>
|
||||
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>v2<!>
|
||||
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>v3<!>
|
||||
}
|
||||
Vendored
+71
@@ -0,0 +1,71 @@
|
||||
// -- Module: <m1> --
|
||||
package
|
||||
|
||||
package p1 {
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "1") public final class A {
|
||||
public constructor A(/*0*/ v1: kotlin.Unit)
|
||||
public final val v1: kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// -- Module: <m2> --
|
||||
package
|
||||
|
||||
package p2 {
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "2") public final class A {
|
||||
public constructor A(/*0*/ v2: kotlin.Unit)
|
||||
public final val v2: kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// -- Module: <m3> --
|
||||
package
|
||||
|
||||
package p3 {
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "3") public final class A {
|
||||
public constructor A(/*0*/ v3: kotlin.Unit)
|
||||
public final val v3: kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// -- Module: <m4> --
|
||||
package
|
||||
|
||||
public fun test(/*0*/ a: [ERROR : A]): kotlin.Unit
|
||||
public fun test(/*0*/ a: p2.A): kotlin.Unit
|
||||
|
||||
package p1 {
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "1") public final class A {
|
||||
// -- Module: <m1> --
|
||||
}
|
||||
}
|
||||
|
||||
package p2 {
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "2") public final class A {
|
||||
// -- Module: <m2> --
|
||||
}
|
||||
}
|
||||
|
||||
package p3 {
|
||||
|
||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "3") public final class A {
|
||||
// -- Module: <m3> --
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user