@Override
    void iteration(CFGBuilder builder) {
      if (myFunction != null) {
        DfaVariableValue optValue = (DfaVariableValue)SpecialField.OPTIONAL_VALUE.createValue(builder.getFactory(), myResult);
        builder.push(optValue)
               .ifNotNull()
                 .push(DfTypes.NOT_NULL_OBJECT)
                 .swap()
                 .invokeFunction(2, myFunction, Nullability.NOT_NULL)
               .end();
      }
      DfType source = DfaOptionalSupport.getOptionalValue(true);
      builder.pushForWrite(myResult).push(source).assign().splice(2);
    }
@Override
    void iteration(CFGBuilder builder)