Check if we are inside Kotlin in KotlinClassWithDelegatedPropertyRenderer
As 'isApplicable()' is called for Java classes as well, we spend too much time on calling 'allFields()' for deliberately unrelated classes.
This commit is contained in:
+6
-3
@@ -32,9 +32,12 @@ import org.jetbrains.kotlin.resolve.inline.InlineUtil
|
|||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
fun Location.isInKotlinSources(): Boolean {
|
fun Location.isInKotlinSources(): Boolean {
|
||||||
val declaringType = declaringType()
|
return declaringType().isInKotlinSources()
|
||||||
val fileExtension = declaringType.safeSourceName()?.substringAfterLast('.')?.toLowerCase() ?: ""
|
}
|
||||||
return fileExtension in KotlinFileTypeFactory.KOTLIN_EXTENSIONS || declaringType.containsKotlinStrata()
|
|
||||||
|
fun ReferenceType.isInKotlinSources(): Boolean {
|
||||||
|
val fileExtension = safeSourceName()?.substringAfterLast('.')?.toLowerCase() ?: ""
|
||||||
|
return fileExtension in KotlinFileTypeFactory.KOTLIN_EXTENSIONS || containsKotlinStrata()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun ReferenceType.containsKotlinStrata() = availableStrata().contains(KOTLIN_STRATA_NAME)
|
fun ReferenceType.containsKotlinStrata() = availableStrata().contains(KOTLIN_STRATA_NAME)
|
||||||
|
|||||||
+2
-9
@@ -19,9 +19,7 @@ import com.intellij.debugger.ui.tree.render.DescriptorLabelListener
|
|||||||
import com.intellij.openapi.diagnostic.Logger
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import com.intellij.xdebugger.settings.XDebuggerSettingsManager
|
import com.intellij.xdebugger.settings.XDebuggerSettingsManager
|
||||||
import com.sun.jdi.*
|
import com.sun.jdi.*
|
||||||
import org.jetbrains.kotlin.idea.debugger.KotlinDebuggerSettings
|
import org.jetbrains.kotlin.idea.debugger.*
|
||||||
import org.jetbrains.kotlin.idea.debugger.ToggleKotlinVariablesState
|
|
||||||
import org.jetbrains.kotlin.idea.debugger.canRunEvaluation
|
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@@ -33,12 +31,7 @@ class KotlinClassWithDelegatedPropertyRenderer : ClassRenderer() {
|
|||||||
private val rendererSettings = NodeRendererSettings.getInstance()
|
private val rendererSettings = NodeRendererSettings.getInstance()
|
||||||
|
|
||||||
override fun isApplicable(jdiType: Type?): Boolean {
|
override fun isApplicable(jdiType: Type?): Boolean {
|
||||||
if (!super.isApplicable(jdiType)) return false
|
if (!super.isApplicable(jdiType) || jdiType !is ReferenceType || !jdiType.isPrepared || !jdiType.isInKotlinSources()) {
|
||||||
|
|
||||||
if (jdiType !is ReferenceType) return false
|
|
||||||
|
|
||||||
if (!jdiType.isPrepared) {
|
|
||||||
LOG.info(notPreparedClassMessage(jdiType))
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user