[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
@@ -838,7 +838,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
private fun FlowContent.generate(type: ConeKotlinType) {
when (type) {
is ConeClassErrorType -> error { +type.reason }
is ConeClassErrorType -> error { +type.diagnostic.reason }
is ConeClassLikeType -> return generate(type)
is ConeTypeParameterType -> resolved {
symbolRef(type.lookupTag.toSymbol()) {
@@ -901,7 +901,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
unresolved++
generateList(typeRef.qualifier, separator = ".") {
simpleName(it.name)
generateTypeProjections(it.typeArguments)
generateTypeProjections(it.typeArgumentList.typeArguments)
}
if (typeRef.isMarkedNullable) {
+"?"