From 8d1fb7bb5e4a497e80279de8df0f903f344a5fbf Mon Sep 17 00:00:00 2001 From: tdn120 <32721554+tdn120@users.noreply.github.com> Date: Wed, 2 Dec 2020 11:10:54 -0500 Subject: [PATCH] Check analysis error before checking compiler args ExperimentalUsageChecker.checkCompilerArguments() will crash if there was an error running analyze(). This checks for the error first so it can be properly reported. --- .../common/messages/AnalyzerWithCompilerReport.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/messages/AnalyzerWithCompilerReport.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/common/messages/AnalyzerWithCompilerReport.kt index f17fdb6f577..d997df6d62f 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/messages/AnalyzerWithCompilerReport.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/messages/AnalyzerWithCompilerReport.kt @@ -113,11 +113,13 @@ class AnalyzerWithCompilerReport( override fun analyzeAndReport(files: Collection, analyze: () -> AnalysisResult) { analysisResult = analyze() - ExperimentalUsageChecker.checkCompilerArguments( - analysisResult.moduleDescriptor, languageVersionSettings, - reportError = { message -> messageCollector.report(ERROR, message) }, - reportWarning = { message -> messageCollector.report(WARNING, message) } - ) + if (!analysisResult.isError()) { + ExperimentalUsageChecker.checkCompilerArguments( + analysisResult.moduleDescriptor, languageVersionSettings, + reportError = { message -> messageCollector.report(ERROR, message) }, + reportWarning = { message -> messageCollector.report(WARNING, message) } + ) + } reportSyntaxErrors(files) reportDiagnostics(analysisResult.bindingContext.diagnostics, messageCollector, renderDiagnosticName) reportIncompleteHierarchies()