[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
@@ -23,7 +23,7 @@ public class C extends B implements A {
// FILE: 1.kt
class X: A {
val a_s: A_S = null!!
val a_s: <!OTHER_ERROR, OTHER_ERROR!>A_S<!> = null!!
init {
<!UNRESOLVED_REFERENCE!>A_S<!>()
@@ -32,7 +32,7 @@ class X: A {
}
object xD {
val a_: A_S = null!!
val a_: <!OTHER_ERROR, OTHER_ERROR!>A_S<!> = null!!
init {
<!UNRESOLVED_REFERENCE!>A_S<!>()
@@ -66,7 +66,7 @@ class Y: B() {
}
class Z: C() {
val a_s: A_S = null!!
val a_s: <!OTHER_ERROR, OTHER_ERROR!>A_S<!> = null!!
val b_: B_ = null!!
val b_s: B_S = null!!
@@ -77,7 +77,7 @@ class Z: C() {
}
object X {
val a_s: A_S = null!!
val a_s: <!OTHER_ERROR, OTHER_ERROR!>A_S<!> = null!!
val b_: B_ = null!!
val b_s: B_S = null!!