diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ErrorNodeDiagnosticCollectorComponent.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ErrorNodeDiagnosticCollectorComponent.kt index 03af8e82d6d..2240ec7b4f6 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ErrorNodeDiagnosticCollectorComponent.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ErrorNodeDiagnosticCollectorComponent.kt @@ -86,8 +86,9 @@ class ErrorNodeDiagnosticCollectorComponent(collector: AbstractDiagnosticCollect EnumAsSupertype -> FirErrors.ENUM_AS_SUPERTYPE RecursionInSupertypes -> FirErrors.RECURSION_IN_SUPERTYPES RecursionInImplicitTypes -> FirErrors.RECURSION_IN_IMPLICIT_TYPES - SuperNotAllowed -> FirErrors.SUPER_IS_NOT_AN_EXPRESSION Java -> FirErrors.ERROR_FROM_JAVA_RESOLUTION + SuperNotAllowed -> FirErrors.SUPER_IS_NOT_AN_EXPRESSION + WrongNumberOfTypeArguments -> FirErrors.WRONG_NUMBER_OF_TYPE_ARGUMENTS ExpressionRequired -> FirErrors.EXPRESSION_REQUIRED JumpOutsideLoop -> FirErrors.BREAK_OR_CONTINUE_OUTSIDE_A_LOOP NotLoopLabel -> FirErrors.NOT_A_LOOP_LABEL 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 bfda1da579e..b27325cf6d3 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 @@ -81,6 +81,7 @@ object FirErrors { 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 MANY_COMPANION_OBJECTS by error0() val LOCAL_OBJECT_NOT_ALLOWED by error0() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirTypeResolverImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirTypeResolverImpl.kt index 0a77c86220f..49bdfac0f9a 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirTypeResolverImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirTypeResolverImpl.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.diagnostics.ConeIntermediateDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeUnexpectedTypeArgumentsError +import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.resolve.providers.bindSymbolToLookupTag @@ -115,7 +116,7 @@ class FirTypeResolverImpl(private val session: FirSession) : FirTypeResolver { if (n < 0) { typeArguments = (1..symbol.fir.typeParameters.size).map { ConeClassErrorType( - ConeSimpleDiagnostic("Type arguments number mismatch") + ConeSimpleDiagnostic("Type arguments number mismatch", DiagnosticKind.WrongNumberOfTypeArguments) ) }.toTypedArray() } else { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/diagnostics/ConeSimpleDiagnostic.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/diagnostics/ConeSimpleDiagnostic.kt index ae93887ddf2..f039adff873 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/diagnostics/ConeSimpleDiagnostic.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/diagnostics/ConeSimpleDiagnostic.kt @@ -26,5 +26,6 @@ enum class DiagnosticKind { RecursionInImplicitTypes, Java, SuperNotAllowed, + WrongNumberOfTypeArguments, Other } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/declarationChecks/finiteBoundRestriction/CasesWithOneTypeParameter.fir.kt b/compiler/testData/diagnostics/tests/declarationChecks/finiteBoundRestriction/CasesWithOneTypeParameter.fir.kt index ec0aa21c5a5..c81a78a162c 100644 --- a/compiler/testData/diagnostics/tests/declarationChecks/finiteBoundRestriction/CasesWithOneTypeParameter.fir.kt +++ b/compiler/testData/diagnostics/tests/declarationChecks/finiteBoundRestriction/CasesWithOneTypeParameter.fir.kt @@ -11,7 +11,7 @@ interface B1> interface AA> interface BB>> -interface AList> +interface AList> class X class D>>> \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/generics/genericsInType.fir.kt b/compiler/testData/diagnostics/tests/generics/genericsInType.fir.kt index b2510012b35..3c1d913cfa8 100644 --- a/compiler/testData/diagnostics/tests/generics/genericsInType.fir.kt +++ b/compiler/testData/diagnostics/tests/generics/genericsInType.fir.kt @@ -32,5 +32,5 @@ fun test() { fun Foo> x() {} fun Foo.Bar.ext() {} -fun ex1(a: Foo.Bar): Foo.Bar { +fun ex1(a: Foo.Bar): Foo.Bar { } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/qualifiedTypesResolution.fir.kt b/compiler/testData/diagnostics/tests/generics/innerClasses/qualifiedTypesResolution.fir.kt index 0886b8195ce..2e670e369a4 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/qualifiedTypesResolution.fir.kt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/qualifiedTypesResolution.fir.kt @@ -41,11 +41,11 @@ fun ok5(): test.Outer.Obj.Nested2.Inner5 = null!! fun errorTypeWithArguments(): Q.W.R.M = null!! fun error1(): Outer.Inner.Inner3 = null!! -fun error2(): Outer.Inner.Inner2 = null!! +fun error2(): Outer.Inner.Inner2 = null!! fun error3(): Outer.Inner.Inner3 = null!! -fun error4(): Outer.Nested.Inner4 = null!! -fun error5(): Outer.Obj.Nested2.Inner5 = null!! -fun error6(): Outer.Obj.Nested2.Inner5 = null!! +fun error4(): Outer.Nested.Inner4 = null!! +fun error5(): Outer.Obj.Nested2.Inner5 = null!! +fun error6(): Outer.Obj.Nested2.Inner5 = null!! -fun error7(): test.Outer.Obj.Nested2.Inner5 = null!! \ No newline at end of file +fun error7(): test.Outer.Obj.Nested2.Inner5 = null!! \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/typealias/kt14518.fir.kt b/compiler/testData/diagnostics/tests/typealias/kt14518.fir.kt index d784411d7a2..eed7f53d0c1 100644 --- a/compiler/testData/diagnostics/tests/typealias/kt14518.fir.kt +++ b/compiler/testData/diagnostics/tests/typealias/kt14518.fir.kt @@ -5,6 +5,6 @@ class OuterClass { typealias NestedType = NestedClass } -typealias ON1 = OuterClass.NestedClass +typealias ON1 = OuterClass.NestedClass typealias ON2 = OuterClass.NestedType typealias ON3 = OuterClass.NestedType \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/variance/InPosition.fir.kt b/compiler/testData/diagnostics/tests/variance/InPosition.fir.kt index b84281d69e9..7ac2afd0c3b 100644 --- a/compiler/testData/diagnostics/tests/variance/InPosition.fir.kt +++ b/compiler/testData/diagnostics/tests/variance/InPosition.fir.kt @@ -46,5 +46,5 @@ interface Test { fun neOk32(i: Inv) fun neOk33(i: Inv<>) fun neOk34(i: Inv) - fun neOk35(i: Inv) + fun neOk35(i: Inv) } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/variance/InvariantPosition.fir.kt b/compiler/testData/diagnostics/tests/variance/InvariantPosition.fir.kt index 803061cfe6e..1cc43674b4b 100644 --- a/compiler/testData/diagnostics/tests/variance/InvariantPosition.fir.kt +++ b/compiler/testData/diagnostics/tests/variance/InvariantPosition.fir.kt @@ -43,5 +43,5 @@ interface Test { var neOk32: Inv var neOk33: Inv<> var neOk34: Inv - var neOk35: Inv + var neOk35: Inv } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/variance/OutPosition.fir.kt b/compiler/testData/diagnostics/tests/variance/OutPosition.fir.kt index 0bf6f456bd6..6748b83cb8e 100644 --- a/compiler/testData/diagnostics/tests/variance/OutPosition.fir.kt +++ b/compiler/testData/diagnostics/tests/variance/OutPosition.fir.kt @@ -38,5 +38,5 @@ interface Test { fun neOk32(): Inv fun neOk33(): Inv<> fun neOk34(): Inv - fun neOk35(): Inv + fun neOk35(): Inv } \ No newline at end of file