FIR: Make CheckDeprecatedSinceKotlin the first resolution stage.

All subsequent stages don't need to run if the candidate is
@Deprecated(HIDDEN).
This commit is contained in:
Mark Punzalan
2021-09-23 18:16:38 +00:00
committed by TeamCityServer
parent 63cc18b095
commit 58eb329fb9
4 changed files with 33 additions and 4 deletions
@@ -25,6 +25,9 @@ open class A {
@Deprecated("hidden", level = DeprecationLevel.HIDDEN)
open fun memberFun(){}
@Deprecated("hidden", level = DeprecationLevel.HIDDEN)
private fun privateFun(){}
@Deprecated("hidden", level = DeprecationLevel.HIDDEN)
val memberProperty = 1
@@ -36,14 +39,22 @@ open class A {
fun foo() {
<!UNRESOLVED_REFERENCE!>topLevelFun<!>()
<!UNRESOLVED_REFERENCE!>topLevelFun<!>(1)
<!UNRESOLVED_REFERENCE, VARIABLE_EXPECTED!>topLevelProperty<!><!DEBUG_INFO_MISSING_UNRESOLVED!>++<!>
"".<!UNRESOLVED_REFERENCE!>topLevelExtensionFun<!>()
1.<!UNRESOLVED_REFERENCE!>topLevelExtensionFun<!>()
"".<!UNRESOLVED_REFERENCE!>topLevelExtensionProperty<!>
1.<!UNRESOLVED_REFERENCE!>topLevelExtensionProperty<!>
<!UNRESOLVED_REFERENCE!>memberFun<!>()
<!UNRESOLVED_REFERENCE!>memberFun<!>(1)
<!UNRESOLVED_REFERENCE!>privateFun<!>()
<!UNRESOLVED_REFERENCE!>privateFun<!>(1)
<!UNRESOLVED_REFERENCE!>memberProperty<!>
"".<!UNRESOLVED_REFERENCE!>memberExtensionFun<!>()
1.<!UNRESOLVED_REFERENCE!>memberExtensionFun<!>()
"".<!UNRESOLVED_REFERENCE!>memberExtensionProperty<!>
1.<!UNRESOLVED_REFERENCE!>memberExtensionProperty<!>
A(<!TYPE_MISMATCH!>""<!>)
}
@@ -66,6 +77,8 @@ class B : A(<!TYPE_MISMATCH!>""<!>) {
// still can override it
override fun <!OVERRIDE_DEPRECATION!>memberFun<!>() {
super.<!UNRESOLVED_REFERENCE!>memberFun<!>() // but cannot call super :)
<!UNRESOLVED_REFERENCE!>privateFun<!>()
<!UNRESOLVED_REFERENCE!>privateFun<!>(1)
}
}