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.KtClass
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
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.calls.model.ResolvedCall
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassOrAny
|
import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassOrAny
|
||||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin
|
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin
|
||||||
@@ -64,6 +63,7 @@ abstract class AbstractAndroidExtensionsExpressionCodegenExtension : ExpressionC
|
|||||||
val classOrObject: KtClassOrObject,
|
val classOrObject: KtClassOrObject,
|
||||||
val containerOptions: ContainerOptionsProxy)
|
val containerOptions: ContainerOptionsProxy)
|
||||||
|
|
||||||
|
protected abstract fun isEnabled(element: KtElement?): Boolean
|
||||||
protected abstract fun isExperimental(element: KtElement?): Boolean
|
protected abstract fun isExperimental(element: KtElement?): Boolean
|
||||||
protected abstract fun getGlobalCacheImpl(element: KtElement?): CacheImplementation
|
protected abstract fun getGlobalCacheImpl(element: KtElement?): CacheImplementation
|
||||||
|
|
||||||
@@ -153,6 +153,8 @@ abstract class AbstractAndroidExtensionsExpressionCodegenExtension : ExpressionC
|
|||||||
val classBuilder = codegen.v
|
val classBuilder = codegen.v
|
||||||
val targetClass = codegen.myClass as? KtClass ?: return
|
val targetClass = codegen.myClass as? KtClass ?: return
|
||||||
|
|
||||||
|
if (!isEnabled(targetClass)) return
|
||||||
|
|
||||||
val container = codegen.descriptor
|
val container = codegen.descriptor
|
||||||
if (container.kind != ClassKind.CLASS && container.kind != ClassKind.OBJECT) return
|
if (container.kind != ClassKind.CLASS && container.kind != ClassKind.OBJECT) return
|
||||||
|
|
||||||
|
|||||||
+1
@@ -24,5 +24,6 @@ class CliAndroidExtensionsExpressionCodegenExtension(
|
|||||||
private val globalCacheImpl: CacheImplementation
|
private val globalCacheImpl: CacheImplementation
|
||||||
) : AbstractAndroidExtensionsExpressionCodegenExtension() {
|
) : AbstractAndroidExtensionsExpressionCodegenExtension() {
|
||||||
override fun isExperimental(element: KtElement?) = isExperimental
|
override fun isExperimental(element: KtElement?) = isExperimental
|
||||||
|
override fun isEnabled(element: KtElement?) = true
|
||||||
override fun getGlobalCacheImpl(element: KtElement?) = globalCacheImpl
|
override fun getGlobalCacheImpl(element: KtElement?) = globalCacheImpl
|
||||||
}
|
}
|
||||||
+6
@@ -52,6 +52,12 @@ private fun isTestMode(module: Module): Boolean {
|
|||||||
internal val Module.androidExtensionsIsEnabled: Boolean
|
internal val Module.androidExtensionsIsEnabled: Boolean
|
||||||
get() = isTestMode(this) || getOptionValueInFacet(ENABLED_OPTION) == "true"
|
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
|
internal val ModuleInfo.androidExtensionsIsExperimental: Boolean
|
||||||
get() {
|
get() {
|
||||||
val module = (this as? ModuleSourceInfo)?.module ?: return false
|
val module = (this as? ModuleSourceInfo)?.module ?: return false
|
||||||
|
|||||||
+3
@@ -25,6 +25,9 @@ class IDEAndroidExtensionsExpressionCodegenExtension : AbstractAndroidExtensions
|
|||||||
override fun isExperimental(element: KtElement?) =
|
override fun isExperimental(element: KtElement?) =
|
||||||
element?.getModuleInfo()?.androidExtensionsIsExperimental ?: false
|
element?.getModuleInfo()?.androidExtensionsIsExperimental ?: false
|
||||||
|
|
||||||
|
override fun isEnabled(element: KtElement?) =
|
||||||
|
element?.getModuleInfo()?.androidExtensionsIsEnabled ?: false
|
||||||
|
|
||||||
override fun getGlobalCacheImpl(element: KtElement?) =
|
override fun getGlobalCacheImpl(element: KtElement?) =
|
||||||
element?.getModuleInfo()?.androidExtensionsGlobalCacheImpl ?: CacheImplementation.DEFAULT
|
element?.getModuleInfo()?.androidExtensionsGlobalCacheImpl ?: CacheImplementation.DEFAULT
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user