Move -Xjsr-305 argument parsing out of K2JVMCompilerArguments

To simplify K2JVMCompilerArguments, which is mostly a data holder
This commit is contained in:
Alexander Udalov
2017-12-04 18:11:51 +01:00
parent 5092758acb
commit 3c98274006
3 changed files with 105 additions and 78 deletions
@@ -20,15 +20,18 @@ import com.intellij.openapi.module.ModuleManager
import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.analyzer.LanguageSettingsProvider
import org.jetbrains.kotlin.analyzer.ModuleInfo
import org.jetbrains.kotlin.cli.common.arguments.Jsr305Parser
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.config.AnalysisFlag
import org.jetbrains.kotlin.config.KotlinFacetSettingsProvider
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.config.TargetPlatformVersion
import org.jetbrains.kotlin.idea.caches.resolve.LibraryInfo
import org.jetbrains.kotlin.idea.caches.resolve.ModuleSourceInfo
import org.jetbrains.kotlin.idea.project.getLanguageVersionSettings
import org.jetbrains.kotlin.idea.project.languageVersionSettings
import org.jetbrains.kotlin.idea.project.targetPlatform
import org.jetbrains.kotlin.utils.Jsr305State
object IDELanguageSettingsProvider : LanguageSettingsProvider {
override fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project): LanguageVersionSettings =
@@ -44,7 +47,7 @@ object IDELanguageSettingsProvider : LanguageSettingsProvider {
val settings = KotlinFacetSettingsProvider.getInstance(project).getSettings(module) ?: continue
val compilerArguments = settings.mergedCompilerArguments as? K2JVMCompilerArguments ?: continue
val jsr305State = compilerArguments.parseJsr305(MessageCollector.NONE)
val jsr305State = Jsr305Parser(MessageCollector.NONE).parse(compilerArguments.jsr305)
map.put(AnalysisFlag.jsr305, jsr305State)
}
return map