Changes in src/SynTree/ApplicationExpr.cc [68195a6:e3e16bc]
- File:
-
- 1 edited
-
src/SynTree/ApplicationExpr.cc (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/ApplicationExpr.cc
r68195a6 re3e16bc 55 55 set_result( ResolvExpr::extractResultType( function ) ); 56 56 57 assert( result);57 assert( has_result() ); 58 58 } 59 59 60 60 ApplicationExpr::ApplicationExpr( const ApplicationExpr &other ) : 61 Expression( other ), function( maybeClone( other.function ) ) {61 Expression( other ), function( maybeClone( other.function ) ), inferParams( other.inferParams ) { 62 62 cloneAll( other.args, args ); 63 63 } … … 68 68 } 69 69 70 void ApplicationExpr::print( std::ostream &os, Indenter indent ) const { 71 os << "Application of" << std::endl << indent+1; 72 function->print( os, indent+1 ); 73 os << std::endl; 70 void printInferParams( const InferredParams & inferParams, std::ostream &os, int indent, int level ) { 71 if ( ! inferParams.empty() ) { 72 os << std::string(indent, ' ') << "with inferred parameters " << level << ":" << std::endl; 73 for ( InferredParams::const_iterator i = inferParams.begin(); i != inferParams.end(); ++i ) { 74 os << std::string(indent+2, ' '); 75 Declaration::declFromId( i->second.decl )->printShort( os, indent+2 ); 76 os << std::endl; 77 printInferParams( *i->second.inferParams, os, indent+2, level+1 ); 78 } // for 79 } // if 80 } 81 82 void ApplicationExpr::print( std::ostream &os, int indent ) const { 83 os << "Application of" << std::endl << std::string(indent+2, ' '); 84 function->print( os, indent+2 ); 74 85 if ( ! args.empty() ) { 75 os << indent << "...to arguments" << std::endl;76 printAll( args, os, indent+ 1);86 os << std::string( indent, ' ' ) << "to arguments" << std::endl; 87 printAll( args, os, indent+2 ); 77 88 } // if 89 printInferParams( inferParams, os, indent+2, 0 ); 78 90 Expression::print( os, indent ); 79 91 }
Note:
See TracChangeset
for help on using the changeset viewer.