Fix testdata after improvements in contract parsing diagnostics
This commit is contained in:
committed by
Ilya Gorbunov
parent
a6bb7d1e89
commit
2179ae496e
+8
-4
@@ -35,11 +35,12 @@ interface ContractParsingDiagnosticsCollector {
|
||||
}
|
||||
}
|
||||
|
||||
class TraceBasedCollector(private val bindingTrace: BindingTrace, private val mainCall: KtExpression) : ContractParsingDiagnosticsCollector {
|
||||
class TraceBasedCollector(private val bindingTrace: BindingTrace, mainCall: KtExpression) : ContractParsingDiagnosticsCollector {
|
||||
private val diagnostics: MutableList<Diagnostic> = mutableListOf()
|
||||
private val mainCallReportTarget = (mainCall as? KtCallExpression)?.calleeExpression ?: mainCall
|
||||
|
||||
override fun contractNotAllowed(message: String) {
|
||||
diagnostics += Errors.CONTRACT_NOT_ALLOWED.on((mainCall as? KtCallExpression)?.calleeExpression ?: mainCall, message)
|
||||
diagnostics += Errors.CONTRACT_NOT_ALLOWED.on(mainCallReportTarget, message)
|
||||
}
|
||||
|
||||
override fun badDescription(message: String, reportOn: KtElement) {
|
||||
@@ -47,12 +48,15 @@ class TraceBasedCollector(private val bindingTrace: BindingTrace, private val ma
|
||||
}
|
||||
|
||||
override fun unsupportedFeature(languageVersionSettings: LanguageVersionSettings) {
|
||||
diagnostics += Errors.UNSUPPORTED_FEATURE.on(mainCall, LanguageFeature.AllowContractsForCustomFunctions to languageVersionSettings)
|
||||
diagnostics += Errors.UNSUPPORTED_FEATURE.on(
|
||||
mainCallReportTarget,
|
||||
LanguageFeature.AllowContractsForCustomFunctions to languageVersionSettings
|
||||
)
|
||||
}
|
||||
|
||||
override fun flushDiagnostics(parsingFailed: Boolean) {
|
||||
if (parsingFailed && diagnostics.isEmpty()) {
|
||||
diagnostics += Errors.ERROR_IN_CONTRACT_DESCRIPTION.on(mainCall, "Error in contract description")
|
||||
diagnostics += Errors.ERROR_IN_CONTRACT_DESCRIPTION.on(mainCallReportTarget, "Error in contract description")
|
||||
}
|
||||
|
||||
diagnostics.forEach { bindingTrace.report(it) }
|
||||
|
||||
Reference in New Issue
Block a user