compiler/AST/foralls.cpp
// The other tuple components are refs to shadow variables,
// so their types come from respective outer variables.
The other tuple components are refs to shadow variables,
so their types come from respective outer variables.
The other tuple components are refs to shadow variables so their types come from respective outer variables .
for_shadow_vars(svar, temp, fs) {
    Symbol* ovar = NULL;
    switch (svar->intent) {
      case TFI_DEFAULT:
      case TFI_CONST:
      case TFI_IN_PARENT:
      case TFI_IN:
      case TFI_CONST_IN:
      case TFI_REF:
      case TFI_CONST_REF:
        ovar = svar->outerVarSym();
        break;
      case TFI_REDUCE:
        USR_FATAL_CONT(svar, "Reduce intents are currently not implemented"
          " for forall- or for-loops over recursive parallel iterators");
        USR_PRINT(iterFn, "the parallel iterator is here");
        USR_STOP();
        break;
      case TFI_REDUCE_OP:
      case TFI_REDUCE_PARENT_AS:
      case TFI_REDUCE_PARENT_OP:
        break;
      case TFI_TASK_PRIVATE:
        USR_FATAL_CONT(svar,
          "Task-private variables are currently not implemented"
          " for forall- or for-loops over recursive parallel iterators");
        USR_PRINT(iterFn, "the parallel iterator is here");
        USR_STOP();
        break;
    }
    INT_ASSERT(ovar != NULL);
    INT_ASSERT(ovar->type != dtUnknown);
    constup->insertAtTail(ovar->type->getRefType()->symbol);
  }
for_shadow_vars ( svar , temp , fs ) { Symbol * ovar = NULL ; switch ( svar -> intent ) { case TFI_DEFAULT : case TFI_CONST : case TFI_IN_PARENT : case TFI_IN : case TFI_CONST_IN : case TFI_REF : case TFI_CONST_REF : ovar = svar -> outerVarSym ( ) ; break ; case TFI_REDUCE : USR_FATAL_CONT ( svar , " " " " ) ; USR_PRINT ( iterFn , " " ) ; USR_STOP ( ) ; break ; case TFI_REDUCE_OP : case TFI_REDUCE_PARENT_AS : case TFI_REDUCE_PARENT_OP : break ; case TFI_TASK_PRIVATE : USR_FATAL_CONT ( svar , " " " " ) ; USR_PRINT ( iterFn , " " ) ; USR_STOP ( ) ; break ; } INT_ASSERT ( ovar != NULL ) ; INT_ASSERT ( ovar -> type != dtUnknown ) ; constup -> insertAtTail ( ovar -> type -> getRefType ( ) -> symbol ) ; }
The other tuple components are refs to shadow variables,
so their types come from respective outer variables.
The other tuple components are refs to shadow variables so their types come from respective outer variables .
// ... except for reduce intents - they are TODO. // The error should have been issued above upon TFI_REDUCE. // task-private variables are TODO too.