public FlowInfo analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean compoundAssignment) { // TODO (maxime) optimization: unconditionalInits is applied to all existing calls // account for potential ArrayIndexOutOfBoundsException: flowContext.recordAbruptExit(); if (assignment.expression == null) { return analyseCode(currentScope, flowContext, flowInfo); } flowInfo = assignment .expression .analyseCode( currentScope, flowContext, analyseCode(currentScope, flowContext, flowInfo).unconditionalInits()); if (currentScope.environment().usesNullTypeAnnotations()) { checkAgainstNullTypeAnnotation(currentScope, this.resolvedType, assignment.expression, flowContext, flowInfo); } return flowInfo; }
@Override public FlowInfo analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean compoundAssignment) { // TODO (maxime) optimization: unconditionalInits is applied to all existing calls // account for potential ArrayIndexOutOfBoundsException: flowContext.recordAbruptExit(); if (assignment.expression == null) { return analyseCode(currentScope, flowContext, flowInfo); } flowInfo = assignment .expression .analyseCode( currentScope, flowContext, analyseCode(currentScope, flowContext, flowInfo).unconditionalInits()); if (currentScope.environment().usesNullTypeAnnotations()) { checkAgainstNullTypeAnnotation(currentScope, this.resolvedType, assignment.expression, flowContext, flowInfo); } return flowInfo; }