[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
@@ -3,7 +3,7 @@
interface Inv
class Impl : Inv
class Scope<InterfaceT, ImplementationT : InterfaceT>(private val implClass: j.Class<ImplementationT>) {
class Scope<InterfaceT, ImplementationT : InterfaceT>(private val implClass: <!OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR, OTHER_ERROR!>j.Class<ImplementationT><!>) {
fun foo(c: Collection<InterfaceT>) {
val hm = c.asSequence()
.<!INAPPLICABLE_CANDIDATE!>filter<!>(<!UNRESOLVED_REFERENCE!>implClass::isInstance<!>)
@@ -1,7 +1,7 @@
// FILE: 1.kt
// COMMON_COROUTINES_TEST
fun test(c: Continuation<Unit>) {}
fun test(c: <!OTHER_ERROR!>Continuation<Unit><!>) {}
// FILE: 2.kt
import COROUTINES_PACKAGE.*
@@ -1,4 +1,4 @@
// JAVAC_SKIP
typealias Test1 = SuspendFunction0<Unit>
typealias Test2 = kotlin.SuspendFunction0<Unit>
typealias Test1 = <!OTHER_ERROR!>SuspendFunction0<Unit><!>
typealias Test2 = <!OTHER_ERROR!>kotlin.SuspendFunction0<Unit><!>
typealias Test3 = kotlin.coroutines.SuspendFunction0<Unit>