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:
committed by
TeamCityServer
parent
63cc18b095
commit
58eb329fb9
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.resolve.calls
|
|||||||
|
|
||||||
sealed class CallKind(vararg resolutionSequence: ResolutionStage) {
|
sealed class CallKind(vararg resolutionSequence: ResolutionStage) {
|
||||||
object VariableAccess : CallKind(
|
object VariableAccess : CallKind(
|
||||||
|
CheckDeprecatedSinceKotlin,
|
||||||
CheckVisibility,
|
CheckVisibility,
|
||||||
DiscriminateSynthetics,
|
DiscriminateSynthetics,
|
||||||
CheckExplicitReceiverConsistency,
|
CheckExplicitReceiverConsistency,
|
||||||
@@ -17,7 +18,6 @@ sealed class CallKind(vararg resolutionSequence: ResolutionStage) {
|
|||||||
CheckExtensionReceiver,
|
CheckExtensionReceiver,
|
||||||
CheckLowPriorityInOverloadResolution,
|
CheckLowPriorityInOverloadResolution,
|
||||||
PostponedVariablesInitializerResolutionStage,
|
PostponedVariablesInitializerResolutionStage,
|
||||||
CheckDeprecatedSinceKotlin,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
object SyntheticSelect : CallKind(
|
object SyntheticSelect : CallKind(
|
||||||
@@ -30,6 +30,7 @@ sealed class CallKind(vararg resolutionSequence: ResolutionStage) {
|
|||||||
)
|
)
|
||||||
|
|
||||||
object Function : CallKind(
|
object Function : CallKind(
|
||||||
|
CheckDeprecatedSinceKotlin,
|
||||||
CheckVisibility,
|
CheckVisibility,
|
||||||
DiscriminateSynthetics,
|
DiscriminateSynthetics,
|
||||||
MapArguments,
|
MapArguments,
|
||||||
@@ -44,10 +45,10 @@ sealed class CallKind(vararg resolutionSequence: ResolutionStage) {
|
|||||||
EagerResolveOfCallableReferences,
|
EagerResolveOfCallableReferences,
|
||||||
CheckLowPriorityInOverloadResolution,
|
CheckLowPriorityInOverloadResolution,
|
||||||
PostponedVariablesInitializerResolutionStage,
|
PostponedVariablesInitializerResolutionStage,
|
||||||
CheckDeprecatedSinceKotlin
|
|
||||||
)
|
)
|
||||||
|
|
||||||
object DelegatingConstructorCall : CallKind(
|
object DelegatingConstructorCall : CallKind(
|
||||||
|
CheckDeprecatedSinceKotlin,
|
||||||
CheckVisibility,
|
CheckVisibility,
|
||||||
MapArguments,
|
MapArguments,
|
||||||
CheckExplicitReceiverConsistency,
|
CheckExplicitReceiverConsistency,
|
||||||
@@ -58,10 +59,10 @@ sealed class CallKind(vararg resolutionSequence: ResolutionStage) {
|
|||||||
CheckExtensionReceiver,
|
CheckExtensionReceiver,
|
||||||
CheckArguments,
|
CheckArguments,
|
||||||
EagerResolveOfCallableReferences,
|
EagerResolveOfCallableReferences,
|
||||||
CheckDeprecatedSinceKotlin,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
object CallableReference : CallKind(
|
object CallableReference : CallKind(
|
||||||
|
CheckDeprecatedSinceKotlin,
|
||||||
CheckVisibility,
|
CheckVisibility,
|
||||||
DiscriminateSynthetics,
|
DiscriminateSynthetics,
|
||||||
NoTypeArguments,
|
NoTypeArguments,
|
||||||
@@ -71,7 +72,6 @@ sealed class CallKind(vararg resolutionSequence: ResolutionStage) {
|
|||||||
CheckExtensionReceiver,
|
CheckExtensionReceiver,
|
||||||
CheckCallableReferenceExpectedType,
|
CheckCallableReferenceExpectedType,
|
||||||
CheckLowPriorityInOverloadResolution,
|
CheckLowPriorityInOverloadResolution,
|
||||||
CheckDeprecatedSinceKotlin,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
object SyntheticIdForCallableReferencesResolution : CallKind(
|
object SyntheticIdForCallableReferencesResolution : CallKind(
|
||||||
|
|||||||
@@ -25,6 +25,9 @@ open class A {
|
|||||||
@Deprecated("hidden", level = DeprecationLevel.HIDDEN)
|
@Deprecated("hidden", level = DeprecationLevel.HIDDEN)
|
||||||
open fun memberFun(){}
|
open fun memberFun(){}
|
||||||
|
|
||||||
|
@Deprecated("hidden", level = DeprecationLevel.HIDDEN)
|
||||||
|
private fun privateFun(){}
|
||||||
|
|
||||||
@Deprecated("hidden", level = DeprecationLevel.HIDDEN)
|
@Deprecated("hidden", level = DeprecationLevel.HIDDEN)
|
||||||
val memberProperty = 1
|
val memberProperty = 1
|
||||||
|
|
||||||
@@ -36,14 +39,22 @@ open class A {
|
|||||||
|
|
||||||
fun foo() {
|
fun foo() {
|
||||||
<!INVISIBLE_REFERENCE!>topLevelFun<!>()
|
<!INVISIBLE_REFERENCE!>topLevelFun<!>()
|
||||||
|
<!INVISIBLE_REFERENCE!>topLevelFun<!>(1)
|
||||||
<!INVISIBLE_REFERENCE, INVISIBLE_REFERENCE!>topLevelProperty<!>++
|
<!INVISIBLE_REFERENCE, INVISIBLE_REFERENCE!>topLevelProperty<!>++
|
||||||
"".<!INVISIBLE_REFERENCE!>topLevelExtensionFun<!>()
|
"".<!INVISIBLE_REFERENCE!>topLevelExtensionFun<!>()
|
||||||
|
1.<!INVISIBLE_REFERENCE!>topLevelExtensionFun<!>()
|
||||||
"".<!INVISIBLE_REFERENCE!>topLevelExtensionProperty<!>
|
"".<!INVISIBLE_REFERENCE!>topLevelExtensionProperty<!>
|
||||||
|
1.<!INVISIBLE_REFERENCE!>topLevelExtensionProperty<!>
|
||||||
|
|
||||||
<!INVISIBLE_REFERENCE!>memberFun<!>()
|
<!INVISIBLE_REFERENCE!>memberFun<!>()
|
||||||
|
<!INVISIBLE_REFERENCE!>memberFun<!>(1)
|
||||||
|
<!INVISIBLE_REFERENCE!>privateFun<!>()
|
||||||
|
<!INVISIBLE_REFERENCE!>privateFun<!>(1)
|
||||||
<!INVISIBLE_REFERENCE!>memberProperty<!>
|
<!INVISIBLE_REFERENCE!>memberProperty<!>
|
||||||
"".<!INVISIBLE_REFERENCE!>memberExtensionFun<!>()
|
"".<!INVISIBLE_REFERENCE!>memberExtensionFun<!>()
|
||||||
|
1.<!INVISIBLE_REFERENCE!>memberExtensionFun<!>()
|
||||||
"".<!INVISIBLE_REFERENCE!>memberExtensionProperty<!>
|
"".<!INVISIBLE_REFERENCE!>memberExtensionProperty<!>
|
||||||
|
1.<!INVISIBLE_REFERENCE!>memberExtensionProperty<!>
|
||||||
|
|
||||||
A(<!ARGUMENT_TYPE_MISMATCH!>""<!>)
|
A(<!ARGUMENT_TYPE_MISMATCH!>""<!>)
|
||||||
}
|
}
|
||||||
@@ -66,6 +77,8 @@ class B : A(<!ARGUMENT_TYPE_MISMATCH!>""<!>) {
|
|||||||
// still can override it
|
// still can override it
|
||||||
override fun <!OVERRIDE_DEPRECATION!>memberFun<!>() {
|
override fun <!OVERRIDE_DEPRECATION!>memberFun<!>() {
|
||||||
super.<!INVISIBLE_REFERENCE!>memberFun<!>() // but cannot call super :)
|
super.<!INVISIBLE_REFERENCE!>memberFun<!>() // but cannot call super :)
|
||||||
|
<!INVISIBLE_REFERENCE!>privateFun<!>()
|
||||||
|
<!INVISIBLE_REFERENCE!>privateFun<!>(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,9 @@ open class A {
|
|||||||
@Deprecated("hidden", level = DeprecationLevel.HIDDEN)
|
@Deprecated("hidden", level = DeprecationLevel.HIDDEN)
|
||||||
open fun memberFun(){}
|
open fun memberFun(){}
|
||||||
|
|
||||||
|
@Deprecated("hidden", level = DeprecationLevel.HIDDEN)
|
||||||
|
private fun privateFun(){}
|
||||||
|
|
||||||
@Deprecated("hidden", level = DeprecationLevel.HIDDEN)
|
@Deprecated("hidden", level = DeprecationLevel.HIDDEN)
|
||||||
val memberProperty = 1
|
val memberProperty = 1
|
||||||
|
|
||||||
@@ -36,14 +39,22 @@ open class A {
|
|||||||
|
|
||||||
fun foo() {
|
fun foo() {
|
||||||
<!UNRESOLVED_REFERENCE!>topLevelFun<!>()
|
<!UNRESOLVED_REFERENCE!>topLevelFun<!>()
|
||||||
|
<!UNRESOLVED_REFERENCE!>topLevelFun<!>(1)
|
||||||
<!UNRESOLVED_REFERENCE, VARIABLE_EXPECTED!>topLevelProperty<!><!DEBUG_INFO_MISSING_UNRESOLVED!>++<!>
|
<!UNRESOLVED_REFERENCE, VARIABLE_EXPECTED!>topLevelProperty<!><!DEBUG_INFO_MISSING_UNRESOLVED!>++<!>
|
||||||
"".<!UNRESOLVED_REFERENCE!>topLevelExtensionFun<!>()
|
"".<!UNRESOLVED_REFERENCE!>topLevelExtensionFun<!>()
|
||||||
|
1.<!UNRESOLVED_REFERENCE!>topLevelExtensionFun<!>()
|
||||||
"".<!UNRESOLVED_REFERENCE!>topLevelExtensionProperty<!>
|
"".<!UNRESOLVED_REFERENCE!>topLevelExtensionProperty<!>
|
||||||
|
1.<!UNRESOLVED_REFERENCE!>topLevelExtensionProperty<!>
|
||||||
|
|
||||||
<!UNRESOLVED_REFERENCE!>memberFun<!>()
|
<!UNRESOLVED_REFERENCE!>memberFun<!>()
|
||||||
|
<!UNRESOLVED_REFERENCE!>memberFun<!>(1)
|
||||||
|
<!UNRESOLVED_REFERENCE!>privateFun<!>()
|
||||||
|
<!UNRESOLVED_REFERENCE!>privateFun<!>(1)
|
||||||
<!UNRESOLVED_REFERENCE!>memberProperty<!>
|
<!UNRESOLVED_REFERENCE!>memberProperty<!>
|
||||||
"".<!UNRESOLVED_REFERENCE!>memberExtensionFun<!>()
|
"".<!UNRESOLVED_REFERENCE!>memberExtensionFun<!>()
|
||||||
|
1.<!UNRESOLVED_REFERENCE!>memberExtensionFun<!>()
|
||||||
"".<!UNRESOLVED_REFERENCE!>memberExtensionProperty<!>
|
"".<!UNRESOLVED_REFERENCE!>memberExtensionProperty<!>
|
||||||
|
1.<!UNRESOLVED_REFERENCE!>memberExtensionProperty<!>
|
||||||
|
|
||||||
A(<!TYPE_MISMATCH!>""<!>)
|
A(<!TYPE_MISMATCH!>""<!>)
|
||||||
}
|
}
|
||||||
@@ -66,6 +77,8 @@ class B : A(<!TYPE_MISMATCH!>""<!>) {
|
|||||||
// still can override it
|
// still can override it
|
||||||
override fun <!OVERRIDE_DEPRECATION!>memberFun<!>() {
|
override fun <!OVERRIDE_DEPRECATION!>memberFun<!>() {
|
||||||
super.<!UNRESOLVED_REFERENCE!>memberFun<!>() // but cannot call super :)
|
super.<!UNRESOLVED_REFERENCE!>memberFun<!>() // but cannot call super :)
|
||||||
|
<!UNRESOLVED_REFERENCE!>privateFun<!>()
|
||||||
|
<!UNRESOLVED_REFERENCE!>privateFun<!>(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ package test {
|
|||||||
public final fun foo(): kotlin.Unit
|
public final fun foo(): kotlin.Unit
|
||||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "hidden") public open fun memberFun(): kotlin.Unit
|
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "hidden") public open fun memberFun(): kotlin.Unit
|
||||||
|
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "hidden") private final fun privateFun(): kotlin.Unit
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "hidden") public final fun kotlin.String.memberExtensionFun(): kotlin.Unit
|
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "hidden") public final fun kotlin.String.memberExtensionFun(): kotlin.Unit
|
||||||
}
|
}
|
||||||
@@ -27,6 +28,7 @@ package test {
|
|||||||
public final override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
|
public final override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
|
||||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
public open override /*1*/ fun memberFun(): kotlin.Unit
|
public open override /*1*/ fun memberFun(): kotlin.Unit
|
||||||
|
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "hidden") invisible_fake final override /*1*/ /*fake_override*/ fun privateFun(): kotlin.Unit
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "hidden") public final override /*1*/ /*fake_override*/ fun kotlin.String.memberExtensionFun(): kotlin.Unit
|
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "hidden") public final override /*1*/ /*fake_override*/ fun kotlin.String.memberExtensionFun(): kotlin.Unit
|
||||||
}
|
}
|
||||||
@@ -39,6 +41,7 @@ package test {
|
|||||||
public final override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
|
public final override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
|
||||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "hidden") public open override /*1*/ /*fake_override*/ fun memberFun(): kotlin.Unit
|
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "hidden") public open override /*1*/ /*fake_override*/ fun memberFun(): kotlin.Unit
|
||||||
|
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "hidden") invisible_fake final override /*1*/ /*fake_override*/ fun privateFun(): kotlin.Unit
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "hidden") public final override /*1*/ /*fake_override*/ fun kotlin.String.memberExtensionFun(): kotlin.Unit
|
@kotlin.Deprecated(level = DeprecationLevel.HIDDEN, message = "hidden") public final override /*1*/ /*fake_override*/ fun kotlin.String.memberExtensionFun(): kotlin.Unit
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user