[FIR] Enable FirSuperCallWithDefaultsChecker for Native
It's enabled for JVM and Native in K1
This commit is contained in:
committed by
Space Team
parent
feed3a57d0
commit
ec5fd02ab9
+1
-1
@@ -555,7 +555,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirJvmErrors.SUPER_CALL_WITH_DEFAULT_PARAMETERS) { firDiagnostic ->
|
||||
add(FirErrors.SUPER_CALL_WITH_DEFAULT_PARAMETERS) { firDiagnostic ->
|
||||
SuperCallWithDefaultParametersImpl(
|
||||
firDiagnostic.a,
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
|
||||
+3
@@ -235,6 +235,9 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") {
|
||||
val INSTANCE_ACCESS_BEFORE_SUPER_CALL by error<PsiElement> {
|
||||
parameter<String>("target")
|
||||
}
|
||||
val SUPER_CALL_WITH_DEFAULT_PARAMETERS by error<PsiElement> {
|
||||
parameter<String>("name")
|
||||
}
|
||||
}
|
||||
|
||||
val SUPERTYPES by object : DiagnosticGroup("Supertypes") {
|
||||
|
||||
+1
-6
@@ -6,10 +6,7 @@
|
||||
package org.jetbrains.kotlin.fir.checkers.generator.diagnostics
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.config.LanguageFeature.*
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.util.PrivateForInline
|
||||
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.model.DiagnosticList
|
||||
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.model.PositioningStrategy
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
@@ -21,6 +18,7 @@ import org.jetbrains.kotlin.psi.KtAnnotationEntry
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.psi.KtExpression
|
||||
import org.jetbrains.kotlin.util.PrivateForInline
|
||||
|
||||
@Suppress("ClassName", "unused")
|
||||
@OptIn(PrivateForInline::class)
|
||||
@@ -86,9 +84,6 @@ object JVM_DIAGNOSTICS_LIST : DiagnosticList("FirJvmErrors") {
|
||||
}
|
||||
|
||||
val SUPER by object : DiagnosticGroup("Super") {
|
||||
val SUPER_CALL_WITH_DEFAULT_PARAMETERS by error<PsiElement> {
|
||||
parameter<String>("name")
|
||||
}
|
||||
val INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER by error<PsiElement>(PositioningStrategy.REFERENCE_BY_QUALIFIED)
|
||||
}
|
||||
|
||||
|
||||
-1
@@ -71,7 +71,6 @@ object FirJvmErrors {
|
||||
val REDUNDANT_REPEATABLE_ANNOTATION by warning2<KtAnnotationEntry, FqName, FqName>()
|
||||
|
||||
// Super
|
||||
val SUPER_CALL_WITH_DEFAULT_PARAMETERS by error1<PsiElement, String>()
|
||||
val INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER by error0<PsiElement>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED)
|
||||
|
||||
// JVM Records
|
||||
|
||||
-6
@@ -73,7 +73,6 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors.REPEATED_A
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors.SPREAD_ON_SIGNATURE_POLYMORPHIC_CALL
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors.STRICTFP_ON_CLASS
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors.SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors.SUPER_CALL_WITH_DEFAULT_PARAMETERS
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors.SUSPENSION_POINT_INSIDE_CRITICAL_SECTION
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors.SYNCHRONIZED_IN_INTERFACE
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors.SYNCHRONIZED_ON_ABSTRACT
|
||||
@@ -113,11 +112,6 @@ object FirJvmErrorsDefaultMessages : BaseDiagnosticRendererFactory() {
|
||||
JVM_PACKAGE_NAME_NOT_SUPPORTED_IN_FILES_WITH_CLASSES,
|
||||
"'@JvmPackageName' annotation is not supported for files with class declarations."
|
||||
)
|
||||
map.put(
|
||||
SUPER_CALL_WITH_DEFAULT_PARAMETERS,
|
||||
"Super-calls with default arguments are prohibited. Please specify all arguments of ''super.{0}'' explicitly.",
|
||||
TO_STRING
|
||||
)
|
||||
|
||||
map.put(LOCAL_JVM_RECORD, "Local '@JvmRecord' classes are prohibited.")
|
||||
map.put(NON_FINAL_JVM_RECORD, "'@JvmRecord' class should be final.")
|
||||
|
||||
+4
-2
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.fir.analysis.native.checkers
|
||||
|
||||
import FirNativeForwardDeclarationGetClassCallChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.ExpressionCheckers
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirGetClassCallChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirQualifiedAccessExpressionChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirFunctionCallChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirSuperCallWithDefaultsChecker
|
||||
|
||||
object NativeExpressionCheckers : ExpressionCheckers() {
|
||||
override val typeOperatorCallCheckers = setOf(
|
||||
@@ -20,4 +20,6 @@ object NativeExpressionCheckers : ExpressionCheckers() {
|
||||
override val qualifiedAccessExpressionCheckers = setOf(
|
||||
FirNativeForwardDeclarationReifiedChecker
|
||||
)
|
||||
override val functionCallCheckers: Set<FirFunctionCallChecker>
|
||||
get() = setOf(FirSuperCallWithDefaultsChecker)
|
||||
}
|
||||
@@ -201,6 +201,7 @@ object FirErrors {
|
||||
val ABSTRACT_SUPER_CALL by error0<PsiElement>(SourceElementPositioningStrategies.REFERENCED_NAME_BY_QUALIFIED)
|
||||
val ABSTRACT_SUPER_CALL_WARNING by warning0<PsiElement>(SourceElementPositioningStrategies.REFERENCED_NAME_BY_QUALIFIED)
|
||||
val INSTANCE_ACCESS_BEFORE_SUPER_CALL by error1<PsiElement, String>()
|
||||
val SUPER_CALL_WITH_DEFAULT_PARAMETERS by error1<PsiElement, String>()
|
||||
|
||||
// Supertypes
|
||||
val NOT_A_SUPERTYPE by error0<PsiElement>()
|
||||
|
||||
+3
-4
@@ -3,14 +3,13 @@
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.fir.analysis.jvm.checkers.expression
|
||||
package org.jetbrains.kotlin.fir.analysis.checkers.expression
|
||||
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.diagnostics.reportOn
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.explicitReceiverIsNotSuperReference
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirFunctionCallChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList
|
||||
import org.jetbrains.kotlin.fir.references.toResolvedNamedFunctionSymbol
|
||||
@@ -26,7 +25,7 @@ object FirSuperCallWithDefaultsChecker : FirFunctionCallChecker() {
|
||||
if (arguments.arguments.size < functionSymbol.valueParameterSymbols.size) {
|
||||
reporter.reportOn(
|
||||
expression.calleeReference.source,
|
||||
FirJvmErrors.SUPER_CALL_WITH_DEFAULT_PARAMETERS,
|
||||
FirErrors.SUPER_CALL_WITH_DEFAULT_PARAMETERS,
|
||||
functionSymbol.name.asString(),
|
||||
context
|
||||
)
|
||||
+6
@@ -583,6 +583,7 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.SUPERTYPE_IS_EXTE
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.SUPERTYPE_NOT_A_CLASS_OR_INTERFACE
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.SUPERTYPE_NOT_INITIALIZED
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.SUPER_CALL_FROM_PUBLIC_INLINE
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.SUPER_CALL_WITH_DEFAULT_PARAMETERS
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.SUPER_IS_NOT_AN_EXPRESSION
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.SUPER_NOT_AVAILABLE
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.TAILREC_ON_VIRTUAL_MEMBER_ERROR
|
||||
@@ -854,6 +855,11 @@ object FirErrorsDefaultMessages : BaseDiagnosticRendererFactory() {
|
||||
|
||||
map.put(ILLEGAL_SELECTOR, "The expression cannot be a selector (cannot occur after a dot).")
|
||||
map.put(NO_RECEIVER_ALLOWED, "No receiver can be passed to this function or property.")
|
||||
map.put(
|
||||
SUPER_CALL_WITH_DEFAULT_PARAMETERS,
|
||||
"Super-calls with default arguments are prohibited. Please specify all arguments of ''super.{0}'' explicitly.",
|
||||
TO_STRING
|
||||
)
|
||||
|
||||
// Supertypes
|
||||
map.put(NOT_A_SUPERTYPE, "Not an immediate supertype.")
|
||||
|
||||
Reference in New Issue
Block a user