@Override public UnconditionalFlowInfo unconditionalInits() { return this.initsWhenTrue.unconditionalInits(). mergedWith(this.initsWhenFalse.unconditionalInits()); }
public UnconditionalFlowInfo unconditionalInitsWithoutSideEffect() { // cannot do better here than unconditionalCopy - but still a different // operation for UnconditionalFlowInfo return this.initsWhenTrue.unconditionalCopy(). mergedWith(this.initsWhenFalse.unconditionalInits()); }
@Override public UnconditionalFlowInfo unconditionalCopy() { return this.initsWhenTrue.unconditionalCopy(). mergedWith(this.initsWhenFalse.unconditionalInits()); }
public UnconditionalFlowInfo unconditionalInitsWithoutSideEffect() { // cannot do better here than unconditionalCopy - but still a different // operation for UnconditionalFlowInfo return this.initsWhenTrue.unconditionalCopy(). mergedWith(this.initsWhenFalse.unconditionalInits()); }
public void recordBreakFrom(FlowInfo flowInfo) { if ((this.initsOnBreak.tagBits & FlowInfo.UNREACHABLE_OR_DEAD) == 0) { this.initsOnBreak = this.initsOnBreak.mergedWith(flowInfo.unconditionalInits()); } else { this.initsOnBreak = flowInfo.unconditionalCopy(); } } }
public UnconditionalFlowInfo unconditionalInitsWithoutSideEffect() { // cannot do better here than unconditionalCopy - but still a different // operation for UnconditionalFlowInfo return this.initsWhenTrue.unconditionalCopy(). mergedWith(this.initsWhenFalse.unconditionalInits()); }
public void recordBreakFrom(FlowInfo flowInfo) { if ((this.initsOnBreak.tagBits & FlowInfo.UNREACHABLE_OR_DEAD) == 0) { this.initsOnBreak = this.initsOnBreak.mergedWith(flowInfo.unconditionalInits()); } else { this.initsOnBreak = flowInfo.unconditionalCopy(); } } }
public void recordBreakFrom(FlowInfo flowInfo) { if ((this.initsOnBreak.tagBits & FlowInfo.UNREACHABLE) == 0) { this.initsOnBreak = this.initsOnBreak.mergedWith(flowInfo.unconditionalInits()); } else { this.initsOnBreak = flowInfo.unconditionalCopy(); } } }
@Override public void recordBreakFrom(FlowInfo flowInfo) { if ((this.initsOnBreak.tagBits & FlowInfo.UNREACHABLE_OR_DEAD) == 0) { this.initsOnBreak = this.initsOnBreak.mergedWith(flowInfo.unconditionalInits()); } else { this.initsOnBreak = flowInfo.unconditionalCopy(); } } }
public UnconditionalFlowInfo unconditionalInitsWithoutSideEffect() { // cannot do better here than unconditionalCopy - but still a different // operation for UnconditionalFlowInfo return this.initsWhenTrue.unconditionalCopy(). mergedWith(this.initsWhenFalse.unconditionalInits()); }
@Override public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) { FlowInfo result = this.expression .analyseCode(currentScope, flowContext, flowInfo) .unconditionalInits(); this.expression.checkNPEbyUnboxing(currentScope, flowContext, flowInfo); // account for pot. CCE: flowContext.recordAbruptExit(); return result; }
void simulateThrowAfterLoopBack(FlowInfo flowInfo) { this.catchingContext.recordHandlingException(this.caughtException, flowInfo.unconditionalCopy().addNullInfoFrom(this.exceptionInfo).unconditionalInits(), null, // raised exception, irrelevant here, null, null, /* invocation site, irrelevant here */ true // we have no business altering the needed status. ); } }
public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) { FlowInfo result = this.expression .analyseCode(currentScope, flowContext, flowInfo) .unconditionalInits(); this.expression.checkNPEbyUnboxing(currentScope, flowContext, flowInfo); // account for pot. CCE: flowContext.recordAbruptExit(); return result; }
public FlowInfo analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean compoundAssignment) { // TODO (maxime) optimization: unconditionalInits is applied to all existing calls if (assignment.expression == null) { return analyseCode(currentScope, flowContext, flowInfo); } return assignment .expression .analyseCode( currentScope, flowContext, analyseCode(currentScope, flowContext, flowInfo).unconditionalInits()); }
public FlowInfo analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean compoundAssignment) { // TODO (maxime) optimization: unconditionalInits is applied to all existing calls if (assignment.expression == null) { return analyseCode(currentScope, flowContext, flowInfo); } return assignment .expression .analyseCode( currentScope, flowContext, analyseCode(currentScope, flowContext, flowInfo).unconditionalInits()); }
public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) { FlowInfo result = this.expression .analyseCode(currentScope, flowContext, flowInfo) .unconditionalInits(); this.expression.checkNPEbyUnboxing(currentScope, flowContext, flowInfo); // account for pot. CCE: flowContext.recordAbruptExit(); return result; }
void simulateThrowAfterLoopBack(FlowInfo flowInfo) { this.catchingContext.recordHandlingException(this.caughtException, flowInfo.unconditionalCopy().addNullInfoFrom(this.exceptionInfo).unconditionalInits(), null, // raised exception, irrelevant here, null, null, /* invocation site, irrelevant here */ true // we have no business altering the needed status. ); } }
void simulateThrowAfterLoopBack(FlowInfo flowInfo) { this.catchingContext.recordHandlingException(this.caughtException, flowInfo.unconditionalCopy().addNullInfoFrom(this.exceptionInfo).unconditionalInits(), null, // raised exception, irrelevant here, null, null, /* invocation site, irrelevant here */ true // we have no business altering the needed status. ); } }
public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) { FlowInfo result = this.expression .analyseCode(currentScope, flowContext, flowInfo) .unconditionalInits(); this.expression.checkNPEbyUnboxing(currentScope, flowContext, flowInfo); // account for pot. CCE: flowContext.recordAbruptExit(); return result; }
void simulateThrowAfterLoopBack(FlowInfo flowInfo) { this.catchingContext.recordHandlingException(this.caughtException, flowInfo.unconditionalCopy().addNullInfoFrom(this.exceptionInfo).unconditionalInits(), null, // raised exception, irrelevant here, null, null, /* invocation site, irrelevant here */ true // we have no business altering the needed status. ); } }