Changeset 4e13e2a for src/ResolvExpr
- Timestamp:
- Sep 17, 2019, 12:56:32 PM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 8e1467d
- Parents:
- a6f26ca
- Location:
- src/ResolvExpr
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/Candidate.hpp
ra6f26ca r4e13e2a 51 51 52 52 Candidate( const ast::Expr * x, const ast::TypeEnvironment & e ) 53 : expr( x ), cost( Cost::zero ), cvtCost( Cost::zero ), env( e ), open(), need() {} 53 : expr( x ), cost( Cost::zero ), cvtCost( Cost::zero ), env( e ), open(), need() { 54 assert(x->result); 55 } 54 56 55 57 Candidate( const Candidate & o, const ast::Expr * x, const Cost & addedCost = Cost::zero ) 56 58 : expr( x ), cost( o.cost + addedCost ), cvtCost( Cost::zero ), env( o.env ), open( o.open ), 57 need( o.need ) {} 59 need( o.need ) { 60 assert(x->result); 61 } 58 62 59 63 Candidate( 60 const ast::Expr * x, const ast::TypeEnvironment & e, const ast::OpenVarSet & o, 64 const ast::Expr * x, const ast::TypeEnvironment & e, const ast::OpenVarSet & o, 61 65 const ast::AssertionSet & n, const Cost & c, const Cost & cvt = Cost::zero ) 62 : expr( x ), cost( c ), cvtCost( cvt ), env( e ), open( o ), need( n.begin(), n.end() ) {} 66 : expr( x ), cost( c ), cvtCost( cvt ), env( e ), open( o ), need( n.begin(), n.end() ) { 67 assert(x->result); 68 } 63 69 64 70 Candidate( … … 66 72 ast::AssertionSet && n, const Cost & c, const Cost & cvt = Cost::zero ) 67 73 : expr( x ), cost( c ), cvtCost( cvt ), env( std::move( e ) ), open( std::move( o ) ), 68 need( n.begin(), n.end() ) {} 74 need( n.begin(), n.end() ) { 75 assert(x->result); 76 } 69 77 }; 70 78 -
src/ResolvExpr/CandidateFinder.cpp
ra6f26ca r4e13e2a 1485 1485 { 1486 1486 ast::ptr< ast::Type > newType = candidate->expr->result; 1487 assertf(candidate->expr->result, "Result of expression %p for candidate is null", candidate->expr.get()); 1487 1488 candidate->env.apply( newType ); 1488 1489 mangleName = Mangle::mangle( newType ); -
src/ResolvExpr/RenameVars.cc
ra6f26ca r4e13e2a 83 83 auto it = nameMap.find( type->name ); 84 84 if ( it != nameMap.end() ) { 85 // unconditionally mutate because map will *always* have different name, 85 // unconditionally mutate because map will *always* have different name, 86 86 // if this mutates, will *always* have been mutated by ForallSubstitutor above 87 87 ast::TypeInstType * mut = ast::mutate( type ); … … 96 96 const NodeT * openLevel( const NodeT * type ) { 97 97 if ( type->forall.empty() ) return type; 98 98 99 99 nameMap.beginScope(); 100 100 … … 121 121 void closeLevel( const ast::ParameterizedType * type ) { 122 122 if ( type->forall.empty() ) return; 123 123 124 124 nameMap.endScope(); 125 125 } … … 141 141 } 142 142 }; 143 143 144 144 struct RenameVars_new /*: public ast::WithForallSubstitutor*/ { 145 145 #warning when old RenameVars goes away, replace hack below with global pass inheriting from WithForallSubstitutor
Note: See TracChangeset
for help on using the changeset viewer.