[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
@@ -60,8 +60,8 @@ object KtDeclarationAndFirDeclarationEqualityChecker {
val renderedQualifier = qualifier.joinToString(separator = ".") { part ->
buildString {
append(part.name)
if (part.typeArguments.isNotEmpty()) {
part.typeArguments.joinTo(this, prefix = "<", postfix = ">") { it.renderTypeAsKotlinType() }
if (part.typeArgumentList.typeArguments.isNotEmpty()) {
part.typeArgumentList.typeArguments.joinTo(this, prefix = "<", postfix = ">") { it.renderTypeAsKotlinType() }
}
}
}
@@ -79,7 +79,7 @@ internal class KtFirErrorType(
override val coneType by weakRef(coneType)
override val typeCheckerContext by weakRef(typeCheckerContext)
override val error: String get() = withValidityAssertion { coneType.reason }
override val error: String get() = withValidityAssertion { coneType.diagnostic.reason }
}
internal class KtFirTypeParameterType(