[FIR] Introduce TYPE_ARGUMENTS_NOT_ALLOWED & some other type errors

This commit introduces several different things, in particular:
- check type arguments in expressions
- new TypeArgumentList node to deal with diagnostic source
- ConeDiagnostic was moved to fir:cones
- ConeIntermediateDiagnostic to use in inference (?) without reporting
- detailed diagnostics on error type
This commit is contained in:
Mikhail Glukhikh
2020-07-22 10:29:59 +03:00
parent c744dfba9c
commit 0804c6a0f3
196 changed files with 774 additions and 484 deletions
@@ -4,8 +4,8 @@ enum class MyEnum {
fun foo(x: MyEnum): Int {
return when (x) {
is MyEnum.A -> 1
is MyEnum.B -> 2
is MyEnum.C -> 3
is <!OTHER_ERROR!>MyEnum.A<!> -> 1
is <!OTHER_ERROR!>MyEnum.B<!> -> 2
is <!OTHER_ERROR!>MyEnum.C<!> -> 3
}
}
@@ -5,7 +5,7 @@ enum class MyEnum {
fun foo(x: MyEnum): Int {
return when (x) {
MyEnum.A -> 1
is MyEnum.B -> 2
is MyEnum.C -> 3
is <!OTHER_ERROR!>MyEnum.B<!> -> 2
is <!OTHER_ERROR!>MyEnum.C<!> -> 3
}
}