[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
@@ -1,7 +1,7 @@
// !WITH_NEW_INFERENCE
// !DIAGNOSTICS: -CONFLICTING_JVM_DECLARATIONS -UNUSED_PARAMETER
fun <T> f1(l: List1<T>): T {throw Exception()} // ERROR type here
fun <T> f1(l: List2<T>): T {throw Exception()} // ERROR type here
fun <T> f1(l: <!OTHER_ERROR!>List1<T><!>): T {throw Exception()} // ERROR type here
fun <T> f1(l: <!OTHER_ERROR!>List2<T><!>): T {throw Exception()} // ERROR type here
fun <T> f1(c: Collection<T>): T{throw Exception()}
fun <T> test(l: List<T>) {