Fix bad cast on absent descriptor in field breakpoint (EA-101988)
This commit is contained in:
@@ -122,7 +122,7 @@ class KotlinFieldBreakpoint(
|
|||||||
|
|
||||||
val property = getProperty(sourcePosition) ?: return
|
val property = getProperty(sourcePosition) ?: return
|
||||||
|
|
||||||
breakpointType = computeBreakpointType(property)
|
breakpointType = (computeBreakpointType(property) ?: return)
|
||||||
|
|
||||||
val vm = debugProcess.virtualMachineProxy
|
val vm = debugProcess.virtualMachineProxy
|
||||||
try {
|
try {
|
||||||
@@ -187,7 +187,7 @@ class KotlinFieldBreakpoint(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun computeBreakpointType(property: KtCallableDeclaration): BreakpointType {
|
private fun computeBreakpointType(property: KtCallableDeclaration): BreakpointType? {
|
||||||
return runReadAction {
|
return runReadAction {
|
||||||
val bindingContext = property.analyze()
|
val bindingContext = property.analyze()
|
||||||
var descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, property)
|
var descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, property)
|
||||||
@@ -195,11 +195,16 @@ class KotlinFieldBreakpoint(
|
|||||||
descriptor = bindingContext.get(BindingContext.VALUE_PARAMETER_AS_PROPERTY, descriptor)
|
descriptor = bindingContext.get(BindingContext.VALUE_PARAMETER_AS_PROPERTY, descriptor)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bindingContext.get(BindingContext.BACKING_FIELD_REQUIRED, descriptor as PropertyDescriptor)!!) {
|
if (descriptor != null) {
|
||||||
BreakpointType.FIELD
|
if (bindingContext.get(BindingContext.BACKING_FIELD_REQUIRED, descriptor as PropertyDescriptor)!!) {
|
||||||
|
BreakpointType.FIELD
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
BreakpointType.METHOD
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BreakpointType.METHOD
|
null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user