- File:
-
- 1 edited
-
src/ResolvExpr/ConversionCost.h (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/ConversionCost.h
re6b42e7 r7d01cf44 10 10 // Created On : Sun May 17 09:37:28 2015 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Wed Jul 29 16:12:00 202013 // Update Count : 712 // Last Modified On : Thu Aug 8 16:13:00 2019 13 // Update Count : 6 14 14 // 15 15 … … 51 51 void postvisit( const ReferenceType * refType ); 52 52 void postvisit( const FunctionType * functionType ); 53 void postvisit( const StructInstType * aggregateUseType ); 54 void postvisit( const UnionInstType * aggregateUseType ); 53 55 void postvisit( const EnumInstType * aggregateUseType ); 54 56 void postvisit( const TraitInstType * aggregateUseType ); … … 72 74 73 75 // Some function pointer types, differ in return type. 74 using CostCalculation = std::function<Cost(const ast::Type *, const ast::Type *, bool,76 using CostCalculation = std::function<Cost(const ast::Type *, const ast::Type *, 75 77 const ast::SymbolTable &, const ast::TypeEnvironment &)>; 76 using PtrsCalculation = std::function<int(const ast::Type *, const ast::Type *,78 using NumCostCalculation = std::function<int(const ast::Type *, const ast::Type *, 77 79 const ast::SymbolTable &, const ast::TypeEnvironment &)>; 78 80 … … 81 83 protected: 82 84 const ast::Type * dst; 83 bool srcIsLvalue;84 85 const ast::SymbolTable & symtab; 85 86 const ast::TypeEnvironment & env; 86 87 CostCalculation costCalc; 87 88 public: 88 static size_t traceId;89 89 Cost cost; 90 Cost result() { return cost; }91 90 92 ConversionCost_new( const ast::Type * dst, bool srcIsLvalue,const ast::SymbolTable & symtab,91 ConversionCost_new( const ast::Type * dst, const ast::SymbolTable & symtab, 93 92 const ast::TypeEnvironment & env, CostCalculation costCalc ) : 94 dst( dst ), srcIsLvalue( srcIsLvalue ), symtab( symtab ), env( env ), 95 costCalc( costCalc ), cost( Cost::infinity ) 93 dst( dst ), symtab( symtab ), env( env ), costCalc( costCalc ), cost( Cost::infinity ) 96 94 {} 97 95 … … 104 102 void postvisit( const ast::ReferenceType * refType ); 105 103 void postvisit( const ast::FunctionType * functionType ); 104 void postvisit( const ast::StructInstType * structInstType ); 105 void postvisit( const ast::UnionInstType * unionInstType ); 106 106 void postvisit( const ast::EnumInstType * enumInstType ); 107 107 void postvisit( const ast::TraitInstType * traitInstType ); … … 114 114 115 115 Cost convertToReferenceCost( const ast::Type * src, const ast::ReferenceType * dest, 116 bool srcIsLvalue, const ast::SymbolTable & indexer, const ast::TypeEnvironment & env, 117 PtrsCalculation func ); 116 const ast::SymbolTable & indexer, const ast::TypeEnvironment & env, NumCostCalculation func ); 118 117 119 118 } // namespace ResolvExpr
Note:
See TracChangeset
for help on using the changeset viewer.