Ignore:
Timestamp:
Mar 16, 2011, 3:32:16 PM (13 years ago)
Author:
rybkin
Message:

See C.L. 446

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CMT/HEAD/source/cmt_parser.cxx

    r562 r563  
    67296729    }
    67306730
     6731  //
     6732  // Set auto_imports
     6733  //
     6734
     6735  Use::UsePtrVector uses;
     6736  Use* use (0);
     6737  use = Use::find (CmtSystem::get_home_package ());
     6738  if (use != 0 && !use->discarded && !use->m_hidden && use->located ())
     6739    uses.push_back (use);
     6740  uses.push_back (&(Use::current()));
     6741  use = Use::find (CmtSystem::get_user_context_package ());
     6742  if (use != 0 && !use->discarded && !use->m_hidden && use->located ())
     6743    uses.push_back (use);
     6744
     6745  cmt_map <Use*, bool> visited;
     6746  for (int i = uses.size () - 1; i >= 0; i--)
     6747    {
     6748      Use* use = uses[i];
     6749      use->set_auto_imports (use->auto_imports, use->auto_imports, visited);
     6750    }
     6751
    67316752  if (Me.m_debug) cout << "parser3> current_tag=" << Me.m_current_tag << endl;
    67326753
     
    89358956         */
    89368957        cmt_vector<bool> auto_imports_states (base_auto_imports_states);
    8937        
     8958        Use::UsePtrVector uses;
     8959
    89388960        for (i = 0; i < constituent.imports.size (); i++)
    89398961          {
     
    89558977                if (Cmt::get_debug ())
    89568978                  {
    8957                     cout << constituent.name  << " needs imports " << import << " "
    8958                          << use_index << " "
    8959                          << u->get_package()->get_name() << " "
    8960                          << " u->auto_imports=" << u->auto_imports
    8961                          << " Off=" << Off
    8962                          << " On=" << On
     8979                    cout << constituent.name  << " needs imports " << import
     8980                         << " i=" << use_index << " package="
     8981                         << u->get_package()->get_name()
     8982                         << " auto_imports=" << u->auto_imports
     8983                         << " (Off=" << Off
     8984                         << " On=" << On << ")"
    89638985                         << endl;
    89648986                  }
     
    89678989                if (p->is_cmt ()) continue;
    89688990               
    8969                 if (u->auto_imports != Off) continue;
    8970                
    8971                 Use::set_auto_imports_state (use_index, auto_imports_states);
     8991                uses.push_back (u);
     8992                //u->set_auto_imports_state (auto_imports_states, visited);
     8993                //if (u->auto_imports != Off) continue;
     8994                //Use::set_auto_imports_state (use_index, auto_imports_states);
    89728995              }
    89738996            else
     
    89789001                                       " cannot be imported (requested for " +
    89799002                                       constituent.name +")");
     9003                if (Cmt::get_debug ())
     9004                  {
     9005                    cout << "import [" << i << "] "
     9006                         << ("package " + import +
     9007                             " cannot be imported (requested for " +
     9008                             constituent.name +")")  << endl;
     9009                  }
    89809010              }
    89819011          }
     9012
     9013        cmt_map <Use*, bool> visited;
     9014        static bool yes (true);
     9015        visited.add (&(Use::current()), yes);
     9016        Use::set_auto_imports_state (uses, auto_imports_states, visited);
    89829017       
    89839018        if (Cmt::get_debug ())
     
    89949029          {
    89959030            //      if (base_auto_imports_states[i]== On && auto_imports_states[i] == Off) continue;
    8996             if (base_auto_imports_states[i] == On || auto_imports_states[i] == Off) continue;
     9031            if (base_auto_imports_states[i] || !auto_imports_states[i]) continue;
     9032            //if (base_auto_imports_states[i] == On || auto_imports_states[i] == Off) continue;
    89979033            /**
    89989034             *  Consider the package (i) for import only if it is:
    8999              *   o not imported yet (i.e., base_auto_imports_states[i] != On)
     9035             *   o not imported yet (i.e., base_auto_imports_states[i] != true)
    90009036             *   o requested for import according to -import=xxx modifiers for
    9001              *     the current constituent (i.e., auto_imports_states[i] != Off)
     9037             *     the current constituent (i.e., auto_imports_states[i] != false)
    90029038             */
    90039039            Use* u = Uses[i];
Note: See TracChangeset for help on using the changeset viewer.