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> {
|
||||
fun foo() {}
|
||||
fun bar() {}
|
||||
|
||||
+2
@@ -5,6 +5,7 @@
|
||||
|
||||
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.findClosestClassOrObject
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.fullyExpandedClass
|
||||
@@ -20,6 +21,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
|
||||
object FirQualifiedSupertypeExtendedByOtherSupertypeChecker : FirQualifiedAccessExpressionChecker() {
|
||||
override fun check(expression: FirQualifiedAccessExpression, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||
if (context.languageVersionSettings.supportsFeature(LanguageFeature.QualifiedSupertypeMayBeExtendedByOtherSupertype)) return
|
||||
// require to be called over a super reference
|
||||
val superReference = expression.calleeReference.safeAs<FirSuperReference>()
|
||||
?.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));
|
||||
}
|
||||
|
||||
if (result != null && (validClassifier || validType)) {
|
||||
if (!components.languageVersionSettings.supportsFeature(LanguageFeature.QualifiedSupertypeMayBeExtendedByOtherSupertype) &&
|
||||
result != null &&
|
||||
(validClassifier || validType)
|
||||
) {
|
||||
checkResolvedExplicitlyQualifiedSupertype(context.trace, result, supertypes, superTypeQualifier);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// !DIAGNOSTICS: -EXPOSED_PARAMETER_TYPE -NOTHING_TO_INLINE
|
||||
// !LANGUAGE: +QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||
|
||||
// FILE: main.kt
|
||||
open class AndroidTargetConfigurator :
|
||||
@@ -33,10 +34,10 @@ open class AndroidTargetConfigurator :
|
||||
}
|
||||
|
||||
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()
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// !DIAGNOSTICS: -EXPOSED_PARAMETER_TYPE -NOTHING_TO_INLINE
|
||||
// !LANGUAGE: +QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||
|
||||
// FILE: main.kt
|
||||
open class AndroidTargetConfigurator :
|
||||
@@ -33,10 +34,10 @@ open class AndroidTargetConfigurator :
|
||||
}
|
||||
|
||||
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()
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: -ProhibitSuperCallsFromPublicInline
|
||||
// !LANGUAGE: -ProhibitSuperCallsFromPublicInline +QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||
// !DIAGNOSTICS: -EXPOSED_PARAMETER_TYPE -NOTHING_TO_INLINE
|
||||
|
||||
// FILE: main.kt
|
||||
@@ -34,10 +34,10 @@ open class AndroidTargetConfigurator :
|
||||
}
|
||||
|
||||
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()
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: -ProhibitSuperCallsFromPublicInline
|
||||
// !LANGUAGE: -ProhibitSuperCallsFromPublicInline +QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||
// !DIAGNOSTICS: -EXPOSED_PARAMETER_TYPE -NOTHING_TO_INLINE
|
||||
|
||||
// FILE: main.kt
|
||||
@@ -34,10 +34,10 @@ open class AndroidTargetConfigurator :
|
||||
}
|
||||
|
||||
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()
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -1,4 +1,5 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||
interface IBase<T> {
|
||||
fun foo() {}
|
||||
fun bar() {}
|
||||
@@ -11,8 +12,8 @@ interface IDerived<T> : IBase<T> {
|
||||
|
||||
class Test : IDerived<String>, IBase<String> {
|
||||
fun test() {
|
||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>IBase<!>>.foo()
|
||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>IBase<!>>.bar()
|
||||
super<IBase>.foo()
|
||||
super<IBase>.bar()
|
||||
super<IDerived>.foo()
|
||||
super<IDerived>.bar()
|
||||
super<IDerived>.qux()
|
||||
|
||||
+3
-2
@@ -1,4 +1,5 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||
interface IBase {
|
||||
fun foo() {}
|
||||
fun bar() {}
|
||||
@@ -17,8 +18,8 @@ class Test : IDerived1, IBase, IDerived2 {
|
||||
override fun foo() {}
|
||||
|
||||
fun test() {
|
||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>IBase<!>>.foo()
|
||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>IBase<!>>.bar()
|
||||
super<IBase>.foo()
|
||||
super<IBase>.bar()
|
||||
|
||||
super<IDerived1>.foo()
|
||||
super<IDerived1>.bar()
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// !JVM_TARGET: 1.8
|
||||
// !LANGUAGE: -QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||
// FILE: 1.kt
|
||||
interface A {
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// !JVM_TARGET: 1.8
|
||||
// !LANGUAGE: -QualifiedSupertypeMayBeExtendedByOtherSupertype
|
||||
// FILE: 1.kt
|
||||
interface A {
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!>
|
||||
|
||||
@@ -244,6 +244,7 @@ enum class LanguageFeature(
|
||||
ConsiderExtensionReceiverFromConstrainsInLambda(KOTLIN_1_7, kind = BUG_FIX), // KT-49832
|
||||
ProperInternalVisibilityCheckInImportingScope(KOTLIN_1_7, kind = BUG_FIX),
|
||||
InlineClassImplementationByDelegation(KOTLIN_1_7),
|
||||
QualifiedSupertypeMayBeExtendedByOtherSupertype(KOTLIN_1_7),
|
||||
|
||||
// 1.8
|
||||
|
||||
|
||||
Reference in New Issue
Block a user