Package org.aspectj.org.eclipse.jdt.internal.compiler.flow

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo


   
    // process the action
    LoopingFlowContext loopingContext =
      new LoopingFlowContext(flowContext, flowInfo, this, breakLabel,
        continueLabel, scope);
    UnconditionalFlowInfo actionInfo =
      condInfo.nullInfoLessUnconditionalCopy();
    actionInfo.markAsDefinitelyUnknown(this.elementVariable.binding);
    FlowInfo exitBranch;
    if (!(action == null || (action.isEmptyBlock()
              && currentScope.compilerOptions().complianceLevel <= ClassFileConstants.JDK1_3))) {

      if (!this.action.complainIfUnreachable(actionInfo, scope, false)) {
        actionInfo = action.
          analyseCode(scope, loopingContext, actionInfo).
          unconditionalCopy();
      }

      // code generation can be optimized when no need to continue in the loop
      exitBranch = flowInfo.unconditionalCopy().
        addInitializationsFrom(condInfo.initsWhenFalse());
      // TODO (maxime) no need to test when false: can optimize (same for action being unreachable above)
      if ((actionInfo.tagBits & loopingContext.initsOnContinue.tagBits &
          FlowInfo.UNREACHABLE) != 0) {
        continueLabel = null;
      } else {
        actionInfo = actionInfo.mergedWith(loopingContext.initsOnContinue);
        loopingContext.complainOnDeferredFinalChecks(scope, actionInfo);
        exitBranch.addPotentialInitializationsFrom(actionInfo);
      }
    } else {
      exitBranch = condInfo.initsWhenFalse();
View Full Code Here


  public final int recordInitializationStates(FlowInfo flowInfo) {

    if ((flowInfo.tagBits & FlowInfo.UNREACHABLE) != 0) return -1;

    UnconditionalFlowInfo unconditionalFlowInfo = flowInfo.unconditionalInitsWithoutSideEffect();
    long[] extraInits = unconditionalFlowInfo.extra == null ?
        null : unconditionalFlowInfo.extra[0];
    long inits = unconditionalFlowInfo.definiteInits;
    checkNextEntry : for (int i = lastIndex; --i >= 0;) {
      if (definiteInits[i] == inits) {
View Full Code Here

TOP

Related Classes of org.aspectj.org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.