compiler/passes/normalize.cpp
// Internal and Standard modules always honor no-init
//
// As a minimum, the complex type appears to rely on this
Internal and Standard modules always honor no-init
As a minimum, the complex type appears to rely on this
Internal and Standard modules always honor no - init As a minimum the complex type appears to rely on this
static bool moduleHonorsNoinit(Symbol* var, Expr* init) {
  bool isNoinit = init->isNoInitExpr();
  bool retval   = false;
  if (isNoinit == true && fUseNoinit == false) {
    Symbol* moduleSource = var;
    while (isModuleSymbol(moduleSource)  == false &&
           moduleSource                  != NULL &&
           moduleSource->defPoint        != NULL) {
      moduleSource = moduleSource->defPoint->parentSymbol;
    }
    if (ModuleSymbol* mod = toModuleSymbol(moduleSource)) {
      if (moduleSource->defPoint != NULL) {
        retval = mod->modTag == MOD_INTERNAL || mod->modTag == MOD_STANDARD;
      }
    }
  }
  return retval;
}
static bool moduleHonorsNoinit ( Symbol * var , Expr * init ) { bool isNoinit = init -> isNoInitExpr ( ) ; bool retval = false ; if ( isNoinit == true && fUseNoinit == false ) { Symbol * moduleSource = var ; while ( isModuleSymbol ( moduleSource ) == false && moduleSource != NULL && moduleSource -> defPoint != NULL ) { moduleSource = moduleSource -> defPoint -> parentSymbol ; } if ( ModuleSymbol * mod = toModuleSymbol ( moduleSource ) ) { if ( moduleSource -> defPoint != NULL ) { retval = mod -> modTag == MOD_INTERNAL || mod -> modTag == MOD_STANDARD ; } } } return retval ; }
Internal and Standard modules always honor no-init
As a minimum, the complex type appears to rely on this
Internal and Standard modules always honor no - init As a minimum the complex type appears to rely on this