diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDefaultErrorMessages.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDefaultErrorMessages.kt index 953d5d3ef98..0d9dab0c32e 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDefaultErrorMessages.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDefaultErrorMessages.kt @@ -54,43 +54,68 @@ class FirDefaultErrorMessages : DefaultErrorMessages.Extension { companion object { val MAP = FirDiagnosticFactoryToRendererMap("FIR").also { map -> - map.put(UNRESOLVED_REFERENCE, "Unresolved reference: {0}", NULLABLE_STRING) - map.put(HIDDEN, "Symbol {0} is invisible", SYMBOL) - map.put(NONE_APPLICABLE, "None of the following functions are applicable: {0}", SYMBOLS) - map.put(INAPPLICABLE_CANDIDATE, "Inapplicable candidate(s): {0}", SYMBOL) - map.put(AMBIGUITY, "Ambiguity between candidates: {0}", SYMBOLS) - map.put(ASSIGN_OPERATOR_AMBIGUITY, "Ambiguity between assign operator candidates: {0}", SYMBOLS) + // Miscellaneous map.put(SYNTAX_ERROR, "Syntax error") - map.put(UNRESOLVED_LABEL, "Unresolved label") + map.put(OTHER_ERROR, "Unknown (other) error") + + // General syntax map.put(ILLEGAL_CONST_EXPRESSION, "Illegal const expression") map.put(ILLEGAL_UNDERSCORE, "Illegal underscore") + + // Unresolved + map.put(HIDDEN, "Symbol {0} is invisible", SYMBOL) + map.put(UNRESOLVED_REFERENCE, "Unresolved reference: {0}", NULLABLE_STRING) + map.put(UNRESOLVED_LABEL, "Unresolved label") map.put(DESERIALIZATION_ERROR, "Deserialization error") - map.put(INFERENCE_ERROR, "Inference error") + map.put(ERROR_FROM_JAVA_RESOLUTION, "Java resolution error") + + // Super + map.put(SUPER_IS_NOT_AN_EXPRESSION, "Super cannot be a callee") + + // Supertypes map.put(TYPE_PARAMETER_AS_SUPERTYPE, "Type parameter as supertype") map.put(ENUM_AS_SUPERTYPE, "Enum as supertype") map.put(RECURSION_IN_SUPERTYPES, "Recursion in supertypes") - map.put(RECURSION_IN_IMPLICIT_TYPES, "Recursion in implicit types") - map.put(ERROR_FROM_JAVA_RESOLUTION, "Java resolution error") - map.put(OTHER_ERROR, "Unknown (other) error") - map.put(SUPER_IS_NOT_AN_EXPRESSION, "Super cannot be a callee") - map.put(REPEATED_MODIFIER, "Repeated ''{0}''", TO_STRING) - map.put(REDUNDANT_MODIFIER, "Modifier ''{0}'' is redundant because ''{1}'' is present", TO_STRING, TO_STRING) - map.put(DEPRECATED_MODIFIER_PAIR, "Modifier ''{0}'' is deprecated in presence of ''{1}''", TO_STRING, TO_STRING) - map.put(INCOMPATIBLE_MODIFIERS, "Modifier ''{0}'' is incompatible with ''{1}''", TO_STRING, TO_STRING) + + // Constructor problems // Annotations map.put(NOT_AN_ANNOTATION_CLASS, "Illegal annotation class: {0}", NULLABLE_STRING) // Exposed visibility group map.put(EXPOSED_TYPEALIAS_EXPANDED_TYPE, "{0} typealias exposes {2} in expanded type {1}", TO_STRING, DECLARATION_NAME, TO_STRING) - map.put(EXPOSED_PROPERTY_TYPE, "{0} property exposes its {2} type {1}", TO_STRING, DECLARATION_NAME, TO_STRING) map.put(EXPOSED_FUNCTION_RETURN_TYPE, "{0} function exposes its {2} return type {1}", TO_STRING, DECLARATION_NAME, TO_STRING) map.put(EXPOSED_RECEIVER_TYPE, "{0} member exposes its {2} receiver type {1}", TO_STRING, DECLARATION_NAME, TO_STRING) + map.put(EXPOSED_PROPERTY_TYPE, "{0} property exposes its {2} type {1}", TO_STRING, DECLARATION_NAME, TO_STRING) map.put(EXPOSED_PARAMETER_TYPE, "{0} function exposes its {2} parameter type {1}", TO_STRING, DECLARATION_NAME, TO_STRING) map.put(EXPOSED_SUPER_CLASS, "{0} subclass exposes its {2} supertype {1}", TO_STRING, DECLARATION_NAME, TO_STRING) + // Modifiers + map.put(REPEATED_MODIFIER, "Repeated ''{0}''", TO_STRING) + map.put(REDUNDANT_MODIFIER, "Modifier ''{0}'' is redundant because ''{1}'' is present", TO_STRING, TO_STRING) + map.put(DEPRECATED_MODIFIER_PAIR, "Modifier ''{0}'' is deprecated in presence of ''{1}''", TO_STRING, TO_STRING) + map.put(INCOMPATIBLE_MODIFIERS, "Modifier ''{0}'' is incompatible with ''{1}''", TO_STRING, TO_STRING) + + // Applicability + map.put(NONE_APPLICABLE, "None of the following functions are applicable: {0}", SYMBOLS) + map.put(INAPPLICABLE_CANDIDATE, "Inapplicable candidate(s): {0}", SYMBOL) + + // Ambiguity + map.put(AMBIGUITY, "Ambiguity between candidates: {0}", SYMBOLS) + map.put(ASSIGN_OPERATOR_AMBIGUITY, "Ambiguity between assign operator candidates: {0}", SYMBOLS) + + // Types & type parameters + map.put(RECURSION_IN_IMPLICIT_TYPES, "Recursion in implicit types") + map.put(INFERENCE_ERROR, "Inference error") + + // Redeclarations + + // Invalid local declarations + // Control flow diagnostics map.put(UNINITIALIZED_VARIABLE, "{0} must be initialized before access", PROPERTY_NAME) + + // Extended checkers group } } } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt index 20b599c4df6..3a1ad482f76 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt @@ -18,43 +18,48 @@ import org.jetbrains.kotlin.lexer.KtModifierKeywordToken import org.jetbrains.kotlin.psi.* object FirErrors { - val UNRESOLVED_REFERENCE by error1() - val HIDDEN by error1>() - val NONE_APPLICABLE by error1>>() - val INAPPLICABLE_CANDIDATE by error1>() - val AMBIGUITY by error1>>() - val ASSIGN_OPERATOR_AMBIGUITY by error1>>() + // Miscellaneous val SYNTAX_ERROR by error0() - val UNRESOLVED_LABEL by error0() + val OTHER_ERROR by error0() + + // General syntax val ILLEGAL_CONST_EXPRESSION by error0() val ILLEGAL_UNDERSCORE by error0() - val DESERIALIZATION_ERROR by error0() - val INFERENCE_ERROR by error0() - val TYPE_PARAMETER_AS_SUPERTYPE by error0() - val ENUM_AS_SUPERTYPE by error0() - val RECURSION_IN_SUPERTYPES by error0() - val RECURSION_IN_IMPLICIT_TYPES by error0() - val ERROR_FROM_JAVA_RESOLUTION by error0() val EXPRESSION_REQUIRED by error0() val BREAK_OR_CONTINUE_OUTSIDE_A_LOOP by error0() val NOT_A_LOOP_LABEL by error0() - val OTHER_ERROR by error0() - val TYPE_MISMATCH by error2() val VARIABLE_EXPECTED by error0() val RETURN_NOT_ALLOWED by error0() + + // Unresolved + val HIDDEN by error1>() + val UNRESOLVED_REFERENCE by error1() + val UNRESOLVED_LABEL by error0() + val DESERIALIZATION_ERROR by error0() + val ERROR_FROM_JAVA_RESOLUTION by error0() + val UNKNOWN_CALLABLE_KIND by error0() + val MISSING_STDLIB_CLASS by error0() + + // Super val SUPER_IS_NOT_AN_EXPRESSION by error0() val SUPER_NOT_AVAILABLE by error0() + val ABSTRACT_SUPER_CALL by error0() + + // Supertypes + val TYPE_PARAMETER_AS_SUPERTYPE by error0() + val ENUM_AS_SUPERTYPE by error0() + val RECURSION_IN_SUPERTYPES by error0() val NOT_A_SUPERTYPE by error0() val SUPERCLASS_NOT_ACCESSIBLE_FROM_INTERFACE by error0() - val ABSTRACT_SUPER_CALL by error0() val QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE by error0() - val INAPPLICABLE_INFIX_MODIFIER by existing(Errors.INAPPLICABLE_INFIX_MODIFIER) + // Constructor problems val CONSTRUCTOR_IN_OBJECT by existing(Errors.CONSTRUCTOR_IN_OBJECT) val CONSTRUCTOR_IN_INTERFACE by existing(Errors.CONSTRUCTOR_IN_INTERFACE) val NON_PRIVATE_CONSTRUCTOR_IN_ENUM by existing(Errors.NON_PRIVATE_CONSTRUCTOR_IN_ENUM) val NON_PRIVATE_CONSTRUCTOR_IN_SEALED by existing(Errors.NON_PRIVATE_CONSTRUCTOR_IN_SEALED) + // Annotations val ANNOTATION_CLASS_MEMBER by existing(Errors.ANNOTATION_CLASS_MEMBER) val ANNOTATION_PARAMETER_DEFAULT_VALUE_MUST_BE_CONSTANT by existing(Errors.ANNOTATION_PARAMETER_DEFAULT_VALUE_MUST_BE_CONSTANT) val LOCAL_ANNOTATION_CLASS_ERROR by existing(Errors.LOCAL_ANNOTATION_CLASS_ERROR) @@ -81,25 +86,39 @@ object FirErrors { val EXPOSED_SUPER_CLASS by error3() val EXPOSED_TYPE_PARAMETER_BOUND by error3() + // Modifiers + val INAPPLICABLE_INFIX_MODIFIER by existing(Errors.INAPPLICABLE_INFIX_MODIFIER) val REPEATED_MODIFIER by error1() val REDUNDANT_MODIFIER by error2() val DEPRECATED_MODIFIER_PAIR by error2() val INCOMPATIBLE_MODIFIERS by error2() + // Applicability + val NONE_APPLICABLE by error1>>() + val INAPPLICABLE_CANDIDATE by error1>() + + // Ambiguity + val AMBIGUITY by error1>>() + val ASSIGN_OPERATOR_AMBIGUITY by error1>>() + + // Types & type parameters + val TYPE_MISMATCH by error2() + val RECURSION_IN_IMPLICIT_TYPES by error0() + val INFERENCE_ERROR by error0() val PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT by error0() val UPPER_BOUND_VIOLATED by error0() val TYPE_ARGUMENTS_NOT_ALLOWED by error0() val WRONG_NUMBER_OF_TYPE_ARGUMENTS by error0() + val NO_TYPE_FOR_TYPE_PARAMETER by error0() + val TYPE_PARAMETERS_IN_OBJECT by error0() + val ILLEGAL_PROJECTION_USAGE by error0() + // Redeclarations val MANY_COMPANION_OBJECTS by error0() + + // Invalid local declarations val LOCAL_OBJECT_NOT_ALLOWED by error0() val LOCAL_INTERFACE_NOT_ALLOWED by error0() - val TYPE_PARAMETERS_IN_OBJECT by error0() - - val NO_TYPE_FOR_TYPE_PARAMETER by error0() - val UNKNOWN_CALLABLE_KIND by error0() - val ILLEGAL_PROJECTION_USAGE by error0() - val MISSING_STDLIB_CLASS by error0() // Control flow diagnostics val UNINITIALIZED_VARIABLE by error1()