Split AnalysisFlag values to AnalysisFlags and JvmAnalysisFlags

Declare AnalysisFlags in module 'frontend', and JvmAnalysisFlags in
module 'frontend.java', to avoid leaking Java-related logic to common
compiler code
This commit is contained in:
Alexander Udalov
2018-09-28 17:11:21 +02:00
parent c59779f5b9
commit 009f18f1f4
33 changed files with 130 additions and 123 deletions
@@ -146,7 +146,7 @@ fun Project.getLanguageVersionSettings(
}
val extraAnalysisFlags = additionalArguments.configureAnalysisFlags(MessageCollector.NONE).apply {
if (jsr305State != null) put(AnalysisFlag.jsr305, jsr305State)
if (jsr305State != null) put(JvmAnalysisFlags.jsr305, jsr305State)
}
return LanguageVersionSettingsImpl(
@@ -35,7 +35,7 @@ import org.jetbrains.kotlin.asJava.LightClassUtil
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.toLightClass
import org.jetbrains.kotlin.asJava.toLightMethods
import org.jetbrains.kotlin.config.AnalysisFlag
import org.jetbrains.kotlin.config.AnalysisFlags
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.idea.caches.project.implementingDescriptors
import org.jetbrains.kotlin.idea.caches.resolve.analyze
@@ -175,8 +175,8 @@ class UnusedSymbolInspection : AbstractKotlinInspection() {
if (descriptor is ClassDescriptor && descriptor.kind == ClassKind.ANNOTATION_CLASS) {
val fqName = descriptor.fqNameSafe.asString()
val languageVersionSettings = declaration.languageVersionSettings
if (fqName in languageVersionSettings.getFlag(AnalysisFlag.experimental) ||
fqName in languageVersionSettings.getFlag(AnalysisFlag.useExperimental)
if (fqName in languageVersionSettings.getFlag(AnalysisFlags.experimental) ||
fqName in languageVersionSettings.getFlag(AnalysisFlags.useExperimental)
) return
}