Android Extensions: Do not generate synthetic components in Kotlin Bytecode tool window when the Gradle plugin is disabled
This commit is contained in:
+3
-1
@@ -34,7 +34,6 @@ import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassOrAny
|
||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin
|
||||
@@ -64,6 +63,7 @@ abstract class AbstractAndroidExtensionsExpressionCodegenExtension : ExpressionC
|
||||
val classOrObject: KtClassOrObject,
|
||||
val containerOptions: ContainerOptionsProxy)
|
||||
|
||||
protected abstract fun isEnabled(element: KtElement?): Boolean
|
||||
protected abstract fun isExperimental(element: KtElement?): Boolean
|
||||
protected abstract fun getGlobalCacheImpl(element: KtElement?): CacheImplementation
|
||||
|
||||
@@ -153,6 +153,8 @@ abstract class AbstractAndroidExtensionsExpressionCodegenExtension : ExpressionC
|
||||
val classBuilder = codegen.v
|
||||
val targetClass = codegen.myClass as? KtClass ?: return
|
||||
|
||||
if (!isEnabled(targetClass)) return
|
||||
|
||||
val container = codegen.descriptor
|
||||
if (container.kind != ClassKind.CLASS && container.kind != ClassKind.OBJECT) return
|
||||
|
||||
|
||||
+1
@@ -24,5 +24,6 @@ class CliAndroidExtensionsExpressionCodegenExtension(
|
||||
private val globalCacheImpl: CacheImplementation
|
||||
) : AbstractAndroidExtensionsExpressionCodegenExtension() {
|
||||
override fun isExperimental(element: KtElement?) = isExperimental
|
||||
override fun isEnabled(element: KtElement?) = true
|
||||
override fun getGlobalCacheImpl(element: KtElement?) = globalCacheImpl
|
||||
}
|
||||
+6
@@ -52,6 +52,12 @@ private fun isTestMode(module: Module): Boolean {
|
||||
internal val Module.androidExtensionsIsEnabled: Boolean
|
||||
get() = isTestMode(this) || getOptionValueInFacet(ENABLED_OPTION) == "true"
|
||||
|
||||
internal val ModuleInfo.androidExtensionsIsEnabled: Boolean
|
||||
get() {
|
||||
val module = (this as? ModuleSourceInfo)?.module ?: return false
|
||||
return module.androidExtensionsIsEnabled
|
||||
}
|
||||
|
||||
internal val ModuleInfo.androidExtensionsIsExperimental: Boolean
|
||||
get() {
|
||||
val module = (this as? ModuleSourceInfo)?.module ?: return false
|
||||
|
||||
+3
@@ -25,6 +25,9 @@ class IDEAndroidExtensionsExpressionCodegenExtension : AbstractAndroidExtensions
|
||||
override fun isExperimental(element: KtElement?) =
|
||||
element?.getModuleInfo()?.androidExtensionsIsExperimental ?: false
|
||||
|
||||
override fun isEnabled(element: KtElement?) =
|
||||
element?.getModuleInfo()?.androidExtensionsIsEnabled ?: false
|
||||
|
||||
override fun getGlobalCacheImpl(element: KtElement?) =
|
||||
element?.getModuleInfo()?.androidExtensionsGlobalCacheImpl ?: CacheImplementation.DEFAULT
|
||||
}
|
||||
Reference in New Issue
Block a user