Drop QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE diagnostic in 1.7.0
#KT-49016 Fixed
This commit is contained in:
committed by
teamcity
parent
f53cd22253
commit
0739925869
+1
@@ -1,3 +1,4 @@
|
|||||||
|
// !LANGUAGE: -QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||||
interface IBase<T> {
|
interface IBase<T> {
|
||||||
fun foo() {}
|
fun foo() {}
|
||||||
fun bar() {}
|
fun bar() {}
|
||||||
|
|||||||
+2
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.analysis.checkers.expression
|
package org.jetbrains.kotlin.fir.analysis.checkers.expression
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.findClosestClassOrObject
|
import org.jetbrains.kotlin.fir.analysis.checkers.findClosestClassOrObject
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.fullyExpandedClass
|
import org.jetbrains.kotlin.fir.analysis.checkers.fullyExpandedClass
|
||||||
@@ -20,6 +21,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
|||||||
|
|
||||||
object FirQualifiedSupertypeExtendedByOtherSupertypeChecker : FirQualifiedAccessExpressionChecker() {
|
object FirQualifiedSupertypeExtendedByOtherSupertypeChecker : FirQualifiedAccessExpressionChecker() {
|
||||||
override fun check(expression: FirQualifiedAccessExpression, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(expression: FirQualifiedAccessExpression, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
|
if (context.languageVersionSettings.supportsFeature(LanguageFeature.QualifiedSupertypeMayBeExtendedByOtherSupertype)) return
|
||||||
// require to be called over a super reference
|
// require to be called over a super reference
|
||||||
val superReference = expression.calleeReference.safeAs<FirSuperReference>()
|
val superReference = expression.calleeReference.safeAs<FirSuperReference>()
|
||||||
?.takeIf { it.hadExplicitTypeInSource() }
|
?.takeIf { it.hadExplicitTypeInSource() }
|
||||||
|
|||||||
+4
-1
@@ -500,7 +500,10 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
|||||||
context.trace.report(TYPE_ARGUMENTS_REDUNDANT_IN_SUPER_QUALIFIER.on(redundantTypeArguments));
|
context.trace.report(TYPE_ARGUMENTS_REDUNDANT_IN_SUPER_QUALIFIER.on(redundantTypeArguments));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result != null && (validClassifier || validType)) {
|
if (!components.languageVersionSettings.supportsFeature(LanguageFeature.QualifiedSupertypeMayBeExtendedByOtherSupertype) &&
|
||||||
|
result != null &&
|
||||||
|
(validClassifier || validType)
|
||||||
|
) {
|
||||||
checkResolvedExplicitlyQualifiedSupertype(context.trace, result, supertypes, superTypeQualifier);
|
checkResolvedExplicitlyQualifiedSupertype(context.trace, result, supertypes, superTypeQualifier);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// !DIAGNOSTICS: -EXPOSED_PARAMETER_TYPE -NOTHING_TO_INLINE
|
// !DIAGNOSTICS: -EXPOSED_PARAMETER_TYPE -NOTHING_TO_INLINE
|
||||||
|
// !LANGUAGE: +QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||||
|
|
||||||
// FILE: main.kt
|
// FILE: main.kt
|
||||||
open class AndroidTargetConfigurator :
|
open class AndroidTargetConfigurator :
|
||||||
@@ -33,10 +34,10 @@ open class AndroidTargetConfigurator :
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline fun anonymousInline() {
|
inline fun anonymousInline() {
|
||||||
super.classFun() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>ModuleConfiguratorWithTests<!>>.getConfiguratorSettings() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>AndroidModuleConfigurator<!>>.getConfiguratorSettings()
|
super.classFun() + super<ModuleConfiguratorWithTests>.getConfiguratorSettings() + super<AndroidModuleConfigurator>.getConfiguratorSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun run() = super.classFun() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>ModuleConfiguratorWithTests<!>>.getConfiguratorSettings() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>AndroidModuleConfigurator<!>>.getConfiguratorSettings()
|
fun run() = super.classFun() + super<ModuleConfiguratorWithTests>.getConfiguratorSettings() + super<AndroidModuleConfigurator>.getConfiguratorSettings()
|
||||||
}.run()
|
}.run()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// !DIAGNOSTICS: -EXPOSED_PARAMETER_TYPE -NOTHING_TO_INLINE
|
// !DIAGNOSTICS: -EXPOSED_PARAMETER_TYPE -NOTHING_TO_INLINE
|
||||||
|
// !LANGUAGE: +QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||||
|
|
||||||
// FILE: main.kt
|
// FILE: main.kt
|
||||||
open class AndroidTargetConfigurator :
|
open class AndroidTargetConfigurator :
|
||||||
@@ -33,10 +34,10 @@ open class AndroidTargetConfigurator :
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline fun anonymousInline() {
|
inline fun anonymousInline() {
|
||||||
super.classFun() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>ModuleConfiguratorWithTests<!>>.getConfiguratorSettings() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>AndroidModuleConfigurator<!>>.getConfiguratorSettings()
|
super.classFun() + super<ModuleConfiguratorWithTests>.getConfiguratorSettings() + super<AndroidModuleConfigurator>.getConfiguratorSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun run() = super.classFun() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>ModuleConfiguratorWithTests<!>>.getConfiguratorSettings() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>AndroidModuleConfigurator<!>>.getConfiguratorSettings()
|
fun run() = super.classFun() + super<ModuleConfiguratorWithTests>.getConfiguratorSettings() + super<AndroidModuleConfigurator>.getConfiguratorSettings()
|
||||||
}.run()
|
}.run()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -1,4 +1,4 @@
|
|||||||
// !LANGUAGE: -ProhibitSuperCallsFromPublicInline
|
// !LANGUAGE: -ProhibitSuperCallsFromPublicInline +QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||||
// !DIAGNOSTICS: -EXPOSED_PARAMETER_TYPE -NOTHING_TO_INLINE
|
// !DIAGNOSTICS: -EXPOSED_PARAMETER_TYPE -NOTHING_TO_INLINE
|
||||||
|
|
||||||
// FILE: main.kt
|
// FILE: main.kt
|
||||||
@@ -34,10 +34,10 @@ open class AndroidTargetConfigurator :
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline fun anonymousInline() {
|
inline fun anonymousInline() {
|
||||||
super.classFun() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>ModuleConfiguratorWithTests<!>>.getConfiguratorSettings() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>AndroidModuleConfigurator<!>>.getConfiguratorSettings()
|
super.classFun() + super<ModuleConfiguratorWithTests>.getConfiguratorSettings() + super<AndroidModuleConfigurator>.getConfiguratorSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun run() = super.classFun() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>ModuleConfiguratorWithTests<!>>.getConfiguratorSettings() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>AndroidModuleConfigurator<!>>.getConfiguratorSettings()
|
fun run() = super.classFun() + super<ModuleConfiguratorWithTests>.getConfiguratorSettings() + super<AndroidModuleConfigurator>.getConfiguratorSettings()
|
||||||
}.run()
|
}.run()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// !LANGUAGE: -ProhibitSuperCallsFromPublicInline
|
// !LANGUAGE: -ProhibitSuperCallsFromPublicInline +QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||||
// !DIAGNOSTICS: -EXPOSED_PARAMETER_TYPE -NOTHING_TO_INLINE
|
// !DIAGNOSTICS: -EXPOSED_PARAMETER_TYPE -NOTHING_TO_INLINE
|
||||||
|
|
||||||
// FILE: main.kt
|
// FILE: main.kt
|
||||||
@@ -34,10 +34,10 @@ open class AndroidTargetConfigurator :
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline fun anonymousInline() {
|
inline fun anonymousInline() {
|
||||||
super.classFun() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>ModuleConfiguratorWithTests<!>>.getConfiguratorSettings() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>AndroidModuleConfigurator<!>>.getConfiguratorSettings()
|
super.classFun() + super<ModuleConfiguratorWithTests>.getConfiguratorSettings() + super<AndroidModuleConfigurator>.getConfiguratorSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun run() = super.classFun() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>ModuleConfiguratorWithTests<!>>.getConfiguratorSettings() + super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>AndroidModuleConfigurator<!>>.getConfiguratorSettings()
|
fun run() = super.classFun() + super<ModuleConfiguratorWithTests>.getConfiguratorSettings() + super<AndroidModuleConfigurator>.getConfiguratorSettings()
|
||||||
}.run()
|
}.run()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -1,4 +1,5 @@
|
|||||||
// FIR_IDENTICAL
|
// FIR_IDENTICAL
|
||||||
|
// !LANGUAGE: +QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||||
interface IBase<T> {
|
interface IBase<T> {
|
||||||
fun foo() {}
|
fun foo() {}
|
||||||
fun bar() {}
|
fun bar() {}
|
||||||
@@ -11,8 +12,8 @@ interface IDerived<T> : IBase<T> {
|
|||||||
|
|
||||||
class Test : IDerived<String>, IBase<String> {
|
class Test : IDerived<String>, IBase<String> {
|
||||||
fun test() {
|
fun test() {
|
||||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>IBase<!>>.foo()
|
super<IBase>.foo()
|
||||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>IBase<!>>.bar()
|
super<IBase>.bar()
|
||||||
super<IDerived>.foo()
|
super<IDerived>.foo()
|
||||||
super<IDerived>.bar()
|
super<IDerived>.bar()
|
||||||
super<IDerived>.qux()
|
super<IDerived>.qux()
|
||||||
|
|||||||
+3
-2
@@ -1,4 +1,5 @@
|
|||||||
// FIR_IDENTICAL
|
// FIR_IDENTICAL
|
||||||
|
// !LANGUAGE: +QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||||
interface IBase {
|
interface IBase {
|
||||||
fun foo() {}
|
fun foo() {}
|
||||||
fun bar() {}
|
fun bar() {}
|
||||||
@@ -17,8 +18,8 @@ class Test : IDerived1, IBase, IDerived2 {
|
|||||||
override fun foo() {}
|
override fun foo() {}
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>IBase<!>>.foo()
|
super<IBase>.foo()
|
||||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>IBase<!>>.bar()
|
super<IBase>.bar()
|
||||||
|
|
||||||
super<IDerived1>.foo()
|
super<IDerived1>.foo()
|
||||||
super<IDerived1>.bar()
|
super<IDerived1>.bar()
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// !JVM_TARGET: 1.8
|
// !JVM_TARGET: 1.8
|
||||||
|
// !LANGUAGE: -QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
interface A {
|
interface A {
|
||||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// !JVM_TARGET: 1.8
|
// !JVM_TARGET: 1.8
|
||||||
|
// !LANGUAGE: -QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||||
// FILE: 1.kt
|
// FILE: 1.kt
|
||||||
interface A {
|
interface A {
|
||||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
|
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
|
||||||
|
|||||||
@@ -244,6 +244,7 @@ enum class LanguageFeature(
|
|||||||
ConsiderExtensionReceiverFromConstrainsInLambda(KOTLIN_1_7, kind = BUG_FIX), // KT-49832
|
ConsiderExtensionReceiverFromConstrainsInLambda(KOTLIN_1_7, kind = BUG_FIX), // KT-49832
|
||||||
ProperInternalVisibilityCheckInImportingScope(KOTLIN_1_7, kind = BUG_FIX),
|
ProperInternalVisibilityCheckInImportingScope(KOTLIN_1_7, kind = BUG_FIX),
|
||||||
InlineClassImplementationByDelegation(KOTLIN_1_7),
|
InlineClassImplementationByDelegation(KOTLIN_1_7),
|
||||||
|
QualifiedSupertypeMayBeExtendedByOtherSupertype(KOTLIN_1_7),
|
||||||
|
|
||||||
// 1.8
|
// 1.8
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user