Fix FirDiagnosticsList (remove earlier dropped FirSourceElements)

This commit is contained in:
Mikhail Glukhikh
2021-04-19 15:23:50 +03:00
parent 8a2cab346a
commit b1fb0ba9e1
3 changed files with 34 additions and 34 deletions
@@ -50,7 +50,7 @@ object DIAGNOSTICS_LIST : DiagnosticList() {
val ILLEGAL_CONST_EXPRESSION by error<PsiElement>() val ILLEGAL_CONST_EXPRESSION by error<PsiElement>()
val ILLEGAL_UNDERSCORE by error<PsiElement>() val ILLEGAL_UNDERSCORE by error<PsiElement>()
val EXPRESSION_EXPECTED by error<PsiElement>(PositioningStrategy.SELECTOR_BY_QUALIFIED) val EXPRESSION_EXPECTED by error<PsiElement>(PositioningStrategy.SELECTOR_BY_QUALIFIED)
val ASSIGNMENT_IN_EXPRESSION_CONTEXT by error<FirSourceElement, KtBinaryExpression>() val ASSIGNMENT_IN_EXPRESSION_CONTEXT by error<KtBinaryExpression>()
val BREAK_OR_CONTINUE_OUTSIDE_A_LOOP by error<PsiElement>() val BREAK_OR_CONTINUE_OUTSIDE_A_LOOP by error<PsiElement>()
val NOT_A_LOOP_LABEL by error<PsiElement>() val NOT_A_LOOP_LABEL by error<PsiElement>()
val VARIABLE_EXPECTED by error<PsiElement>() val VARIABLE_EXPECTED by error<PsiElement>()
@@ -185,7 +185,7 @@ object DIAGNOSTICS_LIST : DiagnosticList() {
parameter<KtModifierKeywordToken>("modifier") parameter<KtModifierKeywordToken>("modifier")
parameter<String>("target") parameter<String>("target")
} }
val OPERATOR_MODIFIER_REQUIRED by error<FirSourceElement, PsiElement> { val OPERATOR_MODIFIER_REQUIRED by error<PsiElement> {
parameter<FirNamedFunctionSymbol>("functionSymbol") parameter<FirNamedFunctionSymbol>("functionSymbol")
parameter<String>("name") parameter<String>("name")
} }
@@ -260,13 +260,13 @@ object DIAGNOSTICS_LIST : DiagnosticList() {
val ASSIGN_OPERATOR_AMBIGUITY by error<PsiElement> { val ASSIGN_OPERATOR_AMBIGUITY by error<PsiElement> {
parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates") parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates")
} }
val ITERATOR_AMBIGUITY by error<FirSourceElement, PsiElement>(PositioningStrategy.REFERENCE_BY_QUALIFIED) { val ITERATOR_AMBIGUITY by error<PsiElement>(PositioningStrategy.REFERENCE_BY_QUALIFIED) {
parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates") parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates")
} }
val HAS_NEXT_FUNCTION_AMBIGUITY by error<FirSourceElement, PsiElement>(PositioningStrategy.REFERENCE_BY_QUALIFIED) { val HAS_NEXT_FUNCTION_AMBIGUITY by error<PsiElement>(PositioningStrategy.REFERENCE_BY_QUALIFIED) {
parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates") parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates")
} }
val NEXT_AMBIGUITY by error<FirSourceElement, PsiElement>(PositioningStrategy.REFERENCE_BY_QUALIFIED) { val NEXT_AMBIGUITY by error<PsiElement>(PositioningStrategy.REFERENCE_BY_QUALIFIED) {
parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates") parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates")
} }
} }
@@ -484,7 +484,7 @@ object DIAGNOSTICS_LIST : DiagnosticList() {
} }
val FUNCTION_DECLARATION_WITH_NO_NAME by error<KtFunction>(PositioningStrategy.DECLARATION_SIGNATURE) val FUNCTION_DECLARATION_WITH_NO_NAME by error<KtFunction>(PositioningStrategy.DECLARATION_SIGNATURE)
val ANONYMOUS_FUNCTION_WITH_NAME by error<FirSourceElement, KtFunction>() val ANONYMOUS_FUNCTION_WITH_NAME by error<KtFunction>()
// TODO: val ANONYMOUS_FUNCTION_WITH_NAME by error1<PsiElement, Name>(SourceElementPositioningStrategies.DECLARATION_NAME) // TODO: val ANONYMOUS_FUNCTION_WITH_NAME by error1<PsiElement, Name>(SourceElementPositioningStrategies.DECLARATION_NAME)
val ANONYMOUS_FUNCTION_PARAMETER_WITH_DEFAULT_VALUE by error<KtParameter>(PositioningStrategy.PARAMETER_DEFAULT_VALUE) val ANONYMOUS_FUNCTION_PARAMETER_WITH_DEFAULT_VALUE by error<KtParameter>(PositioningStrategy.PARAMETER_DEFAULT_VALUE)
@@ -625,7 +625,7 @@ object DIAGNOSTICS_LIST : DiagnosticList() {
parameter<String>("operator") parameter<String>("operator")
parameter<FirExpression>("rhs") parameter<FirExpression>("rhs")
} }
val ITERATOR_ON_NULLABLE by error<FirSourceElement, KtExpression>() val ITERATOR_ON_NULLABLE by error<KtExpression>()
val UNNECESSARY_SAFE_CALL by warning<PsiElement>(PositioningStrategy.SAFE_ACCESS) { val UNNECESSARY_SAFE_CALL by warning<PsiElement>(PositioningStrategy.SAFE_ACCESS) {
parameter<ConeKotlinType>("receiverType") parameter<ConeKotlinType>("receiverType")
} }
@@ -662,25 +662,25 @@ object DIAGNOSTICS_LIST : DiagnosticList() {
val CONVENTIONS by object : DiagnosticGroup("Conventions") { val CONVENTIONS by object : DiagnosticGroup("Conventions") {
val NO_GET_METHOD by error<KtArrayAccessExpression>(PositioningStrategy.ARRAY_ACCESS) val NO_GET_METHOD by error<KtArrayAccessExpression>(PositioningStrategy.ARRAY_ACCESS)
val NO_SET_METHOD by error<KtArrayAccessExpression>(PositioningStrategy.ARRAY_ACCESS) val NO_SET_METHOD by error<KtArrayAccessExpression>(PositioningStrategy.ARRAY_ACCESS)
val ITERATOR_MISSING by error<FirSourceElement, KtExpression>() val ITERATOR_MISSING by error<KtExpression>()
val HAS_NEXT_MISSING by error<FirSourceElement, KtExpression>() val HAS_NEXT_MISSING by error<KtExpression>()
val NEXT_MISSING by error<FirSourceElement, KtExpression>() val NEXT_MISSING by error<KtExpression>()
val HAS_NEXT_FUNCTION_NONE_APPLICABLE by error<FirSourceElement, KtExpression> { val HAS_NEXT_FUNCTION_NONE_APPLICABLE by error<KtExpression> {
parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates") parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates")
} }
val NEXT_NONE_APPLICABLE by error<FirSourceElement, KtExpression> { val NEXT_NONE_APPLICABLE by error<KtExpression> {
parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates") parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates")
} }
val DELEGATE_SPECIAL_FUNCTION_MISSING by error<FirSourceElement, KtExpression> { val DELEGATE_SPECIAL_FUNCTION_MISSING by error<KtExpression> {
parameter<String>("expectedFunctionSignature") parameter<String>("expectedFunctionSignature")
parameter<ConeKotlinType>("delegateType") parameter<ConeKotlinType>("delegateType")
parameter<String>("description") parameter<String>("description")
} }
val DELEGATE_SPECIAL_FUNCTION_AMBIGUITY by error<FirSourceElement, KtExpression> { val DELEGATE_SPECIAL_FUNCTION_AMBIGUITY by error<KtExpression> {
parameter<String>("expectedFunctionSignature") parameter<String>("expectedFunctionSignature")
parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates") parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates")
} }
val DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE by error<FirSourceElement, KtExpression> { val DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE by error<KtExpression> {
parameter<String>("expectedFunctionSignature") parameter<String>("expectedFunctionSignature")
parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates") parameter<Collection<AbstractFirBasedSymbol<*>>>("candidates")
} }
@@ -78,7 +78,7 @@ object FirErrors {
val ILLEGAL_CONST_EXPRESSION by error0<PsiElement>() val ILLEGAL_CONST_EXPRESSION by error0<PsiElement>()
val ILLEGAL_UNDERSCORE by error0<PsiElement>() val ILLEGAL_UNDERSCORE by error0<PsiElement>()
val EXPRESSION_EXPECTED by error0<PsiElement>(SourceElementPositioningStrategies.SELECTOR_BY_QUALIFIED) val EXPRESSION_EXPECTED by error0<PsiElement>(SourceElementPositioningStrategies.SELECTOR_BY_QUALIFIED)
val ASSIGNMENT_IN_EXPRESSION_CONTEXT by error0<FirSourceElement, KtBinaryExpression>() val ASSIGNMENT_IN_EXPRESSION_CONTEXT by error0<KtBinaryExpression>()
val BREAK_OR_CONTINUE_OUTSIDE_A_LOOP by error0<PsiElement>() val BREAK_OR_CONTINUE_OUTSIDE_A_LOOP by error0<PsiElement>()
val NOT_A_LOOP_LABEL by error0<PsiElement>() val NOT_A_LOOP_LABEL by error0<PsiElement>()
val VARIABLE_EXPECTED by error0<PsiElement>() val VARIABLE_EXPECTED by error0<PsiElement>()
@@ -174,7 +174,7 @@ object FirErrors {
val INCOMPATIBLE_MODIFIERS by error2<PsiElement, KtModifierKeywordToken, KtModifierKeywordToken>() val INCOMPATIBLE_MODIFIERS by error2<PsiElement, KtModifierKeywordToken, KtModifierKeywordToken>()
val REDUNDANT_OPEN_IN_INTERFACE by warning0<KtModifierListOwner>(SourceElementPositioningStrategies.OPEN_MODIFIER) val REDUNDANT_OPEN_IN_INTERFACE by warning0<KtModifierListOwner>(SourceElementPositioningStrategies.OPEN_MODIFIER)
val WRONG_MODIFIER_TARGET by error2<PsiElement, KtModifierKeywordToken, String>() val WRONG_MODIFIER_TARGET by error2<PsiElement, KtModifierKeywordToken, String>()
val OPERATOR_MODIFIER_REQUIRED by error2<FirSourceElement, PsiElement, FirNamedFunctionSymbol, String>() val OPERATOR_MODIFIER_REQUIRED by error2<PsiElement, FirNamedFunctionSymbol, String>()
// Inline classes // Inline classes
val INLINE_CLASS_NOT_TOP_LEVEL by error0<KtDeclaration>(SourceElementPositioningStrategies.INLINE_OR_VALUE_MODIFIER) val INLINE_CLASS_NOT_TOP_LEVEL by error0<KtDeclaration>(SourceElementPositioningStrategies.INLINE_OR_VALUE_MODIFIER)
@@ -210,9 +210,9 @@ object FirErrors {
// Ambiguity // Ambiguity
val OVERLOAD_RESOLUTION_AMBIGUITY by error1<PsiElement, Collection<AbstractFirBasedSymbol<*>>>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) val OVERLOAD_RESOLUTION_AMBIGUITY by error1<PsiElement, Collection<AbstractFirBasedSymbol<*>>>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED)
val ASSIGN_OPERATOR_AMBIGUITY by error1<PsiElement, Collection<AbstractFirBasedSymbol<*>>>() val ASSIGN_OPERATOR_AMBIGUITY by error1<PsiElement, Collection<AbstractFirBasedSymbol<*>>>()
val ITERATOR_AMBIGUITY by error1<FirSourceElement, PsiElement, Collection<AbstractFirBasedSymbol<*>>>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) val ITERATOR_AMBIGUITY by error1<PsiElement, Collection<AbstractFirBasedSymbol<*>>>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED)
val HAS_NEXT_FUNCTION_AMBIGUITY by error1<FirSourceElement, PsiElement, Collection<AbstractFirBasedSymbol<*>>>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) val HAS_NEXT_FUNCTION_AMBIGUITY by error1<PsiElement, Collection<AbstractFirBasedSymbol<*>>>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED)
val NEXT_AMBIGUITY by error1<FirSourceElement, PsiElement, Collection<AbstractFirBasedSymbol<*>>>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) val NEXT_AMBIGUITY by error1<PsiElement, Collection<AbstractFirBasedSymbol<*>>>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED)
// Types & type parameters // Types & type parameters
val TYPE_MISMATCH by error2<PsiElement, ConeKotlinType, ConeKotlinType>() val TYPE_MISMATCH by error2<PsiElement, ConeKotlinType, ConeKotlinType>()
@@ -297,7 +297,7 @@ object FirErrors {
val PRIVATE_FUNCTION_WITH_NO_BODY by error1<KtFunction, FirMemberDeclaration>(SourceElementPositioningStrategies.VISIBILITY_MODIFIER) val PRIVATE_FUNCTION_WITH_NO_BODY by error1<KtFunction, FirMemberDeclaration>(SourceElementPositioningStrategies.VISIBILITY_MODIFIER)
val NON_MEMBER_FUNCTION_NO_BODY by error1<KtFunction, FirMemberDeclaration>(SourceElementPositioningStrategies.DECLARATION_SIGNATURE) val NON_MEMBER_FUNCTION_NO_BODY by error1<KtFunction, FirMemberDeclaration>(SourceElementPositioningStrategies.DECLARATION_SIGNATURE)
val FUNCTION_DECLARATION_WITH_NO_NAME by error0<KtFunction>(SourceElementPositioningStrategies.DECLARATION_SIGNATURE) val FUNCTION_DECLARATION_WITH_NO_NAME by error0<KtFunction>(SourceElementPositioningStrategies.DECLARATION_SIGNATURE)
val ANONYMOUS_FUNCTION_WITH_NAME by error0<FirSourceElement, KtFunction>() val ANONYMOUS_FUNCTION_WITH_NAME by error0<KtFunction>()
val ANONYMOUS_FUNCTION_PARAMETER_WITH_DEFAULT_VALUE by error0<KtParameter>(SourceElementPositioningStrategies.PARAMETER_DEFAULT_VALUE) val ANONYMOUS_FUNCTION_PARAMETER_WITH_DEFAULT_VALUE by error0<KtParameter>(SourceElementPositioningStrategies.PARAMETER_DEFAULT_VALUE)
val USELESS_VARARG_ON_PARAMETER by warning0<KtParameter>() val USELESS_VARARG_ON_PARAMETER by warning0<KtParameter>()
val MULTIPLE_VARARG_PARAMETERS by error0<KtParameter>(SourceElementPositioningStrategies.PARAMETER_VARARG_MODIFIER) val MULTIPLE_VARARG_PARAMETERS by error0<KtParameter>(SourceElementPositioningStrategies.PARAMETER_VARARG_MODIFIER)
@@ -367,7 +367,7 @@ object FirErrors {
val UNSAFE_IMPLICIT_INVOKE_CALL by error1<PsiElement, ConeKotlinType>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) val UNSAFE_IMPLICIT_INVOKE_CALL by error1<PsiElement, ConeKotlinType>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED)
val UNSAFE_INFIX_CALL by error3<KtExpression, FirExpression, String, FirExpression>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) val UNSAFE_INFIX_CALL by error3<KtExpression, FirExpression, String, FirExpression>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED)
val UNSAFE_OPERATOR_CALL by error3<KtExpression, FirExpression, String, FirExpression>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) val UNSAFE_OPERATOR_CALL by error3<KtExpression, FirExpression, String, FirExpression>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED)
val ITERATOR_ON_NULLABLE by error0<FirSourceElement, KtExpression>() val ITERATOR_ON_NULLABLE by error0<KtExpression>()
val UNNECESSARY_SAFE_CALL by warning1<PsiElement, ConeKotlinType>(SourceElementPositioningStrategies.SAFE_ACCESS) val UNNECESSARY_SAFE_CALL by warning1<PsiElement, ConeKotlinType>(SourceElementPositioningStrategies.SAFE_ACCESS)
val UNEXPECTED_SAFE_CALL by error0<PsiElement>(SourceElementPositioningStrategies.SAFE_ACCESS) val UNEXPECTED_SAFE_CALL by error0<PsiElement>(SourceElementPositioningStrategies.SAFE_ACCESS)
val UNNECESSARY_NOT_NULL_ASSERTION by warning1<KtExpression, ConeKotlinType>(SourceElementPositioningStrategies.OPERATOR) val UNNECESSARY_NOT_NULL_ASSERTION by warning1<KtExpression, ConeKotlinType>(SourceElementPositioningStrategies.OPERATOR)
@@ -388,14 +388,14 @@ object FirErrors {
// Conventions // Conventions
val NO_GET_METHOD by error0<KtArrayAccessExpression>(SourceElementPositioningStrategies.ARRAY_ACCESS) val NO_GET_METHOD by error0<KtArrayAccessExpression>(SourceElementPositioningStrategies.ARRAY_ACCESS)
val NO_SET_METHOD by error0<KtArrayAccessExpression>(SourceElementPositioningStrategies.ARRAY_ACCESS) val NO_SET_METHOD by error0<KtArrayAccessExpression>(SourceElementPositioningStrategies.ARRAY_ACCESS)
val ITERATOR_MISSING by error0<FirSourceElement, KtExpression>() val ITERATOR_MISSING by error0<KtExpression>()
val HAS_NEXT_MISSING by error0<FirSourceElement, KtExpression>() val HAS_NEXT_MISSING by error0<KtExpression>()
val NEXT_MISSING by error0<FirSourceElement, KtExpression>() val NEXT_MISSING by error0<KtExpression>()
val HAS_NEXT_FUNCTION_NONE_APPLICABLE by error1<FirSourceElement, KtExpression, Collection<AbstractFirBasedSymbol<*>>>() val HAS_NEXT_FUNCTION_NONE_APPLICABLE by error1<KtExpression, Collection<AbstractFirBasedSymbol<*>>>()
val NEXT_NONE_APPLICABLE by error1<FirSourceElement, KtExpression, Collection<AbstractFirBasedSymbol<*>>>() val NEXT_NONE_APPLICABLE by error1<KtExpression, Collection<AbstractFirBasedSymbol<*>>>()
val DELEGATE_SPECIAL_FUNCTION_MISSING by error3<FirSourceElement, KtExpression, String, ConeKotlinType, String>() val DELEGATE_SPECIAL_FUNCTION_MISSING by error3<KtExpression, String, ConeKotlinType, String>()
val DELEGATE_SPECIAL_FUNCTION_AMBIGUITY by error2<FirSourceElement, KtExpression, String, Collection<AbstractFirBasedSymbol<*>>>() val DELEGATE_SPECIAL_FUNCTION_AMBIGUITY by error2<KtExpression, String, Collection<AbstractFirBasedSymbol<*>>>()
val DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE by error2<FirSourceElement, KtExpression, String, Collection<AbstractFirBasedSymbol<*>>>() val DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE by error2<KtExpression, String, Collection<AbstractFirBasedSymbol<*>>>()
// Type alias // Type alias
val TOPLEVEL_TYPEALIASES_ONLY by error0<KtTypeAlias>() val TOPLEVEL_TYPEALIASES_ONLY by error0<KtTypeAlias>()
@@ -86,10 +86,10 @@ object FirForLoopChecker : FirBlockChecker() {
reporter: DiagnosticReporter, reporter: DiagnosticReporter,
reportSource: FirSourceElement?, reportSource: FirSourceElement?,
context: CheckerContext, context: CheckerContext,
ambiguityFactory: FirDiagnosticFactory1<FirSourceElement, PsiElement, Collection<AbstractFirBasedSymbol<*>>>, ambiguityFactory: FirDiagnosticFactory1<PsiElement, Collection<AbstractFirBasedSymbol<*>>>,
missingFactory: FirDiagnosticFactory0<FirSourceElement, KtExpression>, missingFactory: FirDiagnosticFactory0<KtExpression>,
noneApplicableFactory: FirDiagnosticFactory1<FirSourceElement, KtExpression, Collection<AbstractFirBasedSymbol<*>>>? = null, noneApplicableFactory: FirDiagnosticFactory1<KtExpression, Collection<AbstractFirBasedSymbol<*>>>? = null,
unsafeCallFactory: FirDiagnosticFactory0<FirSourceElement, KtExpression>? = null, unsafeCallFactory: FirDiagnosticFactory0<KtExpression>? = null,
): Boolean { ): Boolean {
when (val calleeReference = call.calleeReference) { when (val calleeReference = call.calleeReference) {
is FirErrorNamedReference -> { is FirErrorNamedReference -> {