Minor. Invert and extract condition for checkAssignmentBeforeDeclaration
This commit is contained in:
@@ -486,18 +486,23 @@ class ControlFlowInformationProvider private constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkAssignmentBeforeDeclaration(ctxt: VariableInitContext, expression: KtExpression) =
|
private fun checkAssignmentBeforeDeclaration(ctxt: VariableInitContext, expression: KtExpression) =
|
||||||
if (ctxt.enterInitState?.isDeclared == true
|
if (ctxt.isInitializationBeforeDeclaration()) {
|
||||||
|| ctxt.exitInitState?.isDeclared == true
|
|
||||||
|| ctxt.enterInitState?.mayBeInitialized() == true
|
|
||||||
|| ctxt.exitInitState?.mayBeInitialized() != true) {
|
|
||||||
false
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (ctxt.variableDescriptor != null) {
|
if (ctxt.variableDescriptor != null) {
|
||||||
report(Errors.INITIALIZATION_BEFORE_DECLARATION.on(expression, ctxt.variableDescriptor), ctxt)
|
report(Errors.INITIALIZATION_BEFORE_DECLARATION.on(expression, ctxt.variableDescriptor), ctxt)
|
||||||
}
|
}
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun VariableInitContext.isInitializationBeforeDeclaration(): Boolean =
|
||||||
|
// is not declared
|
||||||
|
enterInitState?.isDeclared != true && exitInitState?.isDeclared != true &&
|
||||||
|
// wasn't initialized before current instruction
|
||||||
|
enterInitState?.mayBeInitialized() != true &&
|
||||||
|
// became initialized after current instruction
|
||||||
|
exitInitState?.mayBeInitialized() == true
|
||||||
|
|
||||||
private fun checkInitializationForCustomSetter(ctxt: VariableInitContext, expression: KtExpression): Boolean {
|
private fun checkInitializationForCustomSetter(ctxt: VariableInitContext, expression: KtExpression): Boolean {
|
||||||
val variableDescriptor = ctxt.variableDescriptor
|
val variableDescriptor = ctxt.variableDescriptor
|
||||||
|
|||||||
Reference in New Issue
Block a user