[KLIB] Mark klib that contains error with special flag

This commit is contained in:
Roman Artemev
2020-09-29 13:45:18 +03:00
parent 98e5510871
commit 28c6d17ab4
3 changed files with 56 additions and 17 deletions
@@ -36,6 +36,7 @@ import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializationUtil
import org.jetbrains.kotlin.serialization.js.ModuleKind
import org.jetbrains.kotlin.serialization.js.PackagesWithHeaderMetadata
import org.jetbrains.kotlin.utils.JsMetadataVersion
import java.lang.Exception
abstract class AbstractTopDownAnalyzerFacadeForJS {
@@ -115,15 +116,31 @@ abstract class AbstractTopDownAnalyzerFacadeForJS {
return JsAnalysisResult.success(trace, moduleContext.module)
}
fun checkForErrors(allFiles: Collection<KtFile>, bindingContext: BindingContext, errorPolicy: ErrorTolerancePolicy) {
if (!errorPolicy.allowSemanticErrors) {
fun checkForErrors(allFiles: Collection<KtFile>, bindingContext: BindingContext, errorPolicy: ErrorTolerancePolicy): Boolean {
var hasErrors = false
try {
AnalyzingUtils.throwExceptionOnErrors(bindingContext)
} catch (ex: Exception) {
if (!errorPolicy.allowSemanticErrors) {
throw ex
} else {
hasErrors = true
}
}
if (!errorPolicy.allowSyntaxErrors) {
try {
for (file in allFiles) {
AnalyzingUtils.checkForSyntacticErrors(file)
}
} catch (ex: Exception) {
if (!errorPolicy.allowSyntaxErrors) {
throw ex
} else {
hasErrors = true
}
}
return hasErrors
}
}