Changes in src/ResolvExpr/Occurs.cc [8e18b8e:103b264]
- File:
-
- 1 edited
-
src/ResolvExpr/Occurs.cc (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/Occurs.cc
r8e18b8e r103b264 38 38 39 39 Occurs::Occurs( std::string varName, const TypeEnvironment & env ) : result( false ), tenv( env ) { 40 if ( const EqvClass *eqvClass = tenv.lookup( varName ) ) { 41 eqvVars = eqvClass->vars; 40 EqvClass eqvClass; 41 if ( tenv.lookup( varName, eqvClass ) ) { 42 eqvVars = eqvClass.vars; 42 43 } else { 43 44 eqvVars.insert( varName ); … … 46 47 47 48 void Occurs::previsit( TypeInstType * typeInst ) { 48 /// std::cerr << "searching for vars: "; 49 EqvClass eqvClass; 50 /// std::cerr << "searching for vars: "; 49 51 /// std::copy( eqvVars.begin(), eqvVars.end(), std::ostream_iterator< std::string >( std::cerr, " " ) ); 50 52 /// std::cerr << std::endl; 51 53 if ( eqvVars.find( typeInst->get_name() ) != eqvVars.end() ) { 52 54 result = true; 53 } else if ( const EqvClass *eqvClass = tenv.lookup( typeInst->get_name()) ) {54 if ( eqvClass ->type ) {55 } else if ( tenv.lookup( typeInst->get_name(), eqvClass ) ) { 56 if ( eqvClass.type ) { 55 57 /// std::cerr << typeInst->get_name() << " is bound to"; 56 58 /// eqvClass.type->print( std::cerr ); 57 59 /// std::cerr << std::endl; 58 eqvClass ->type->accept( *visitor );60 eqvClass.type->accept( *visitor ); 59 61 } // if 60 62 } // if
Note:
See TracChangeset
for help on using the changeset viewer.