- File:
-
- 1 edited
-
src/ResolvExpr/CandidateFinder.hpp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/CandidateFinder.hpp
rb69233ac r1389810 9 9 // Author : Aaron B. Moss 10 10 // Created On : Wed Jun 5 14:30:00 2019 11 // Last Modified By : A aron B. Moss12 // Last Modified On : Wed Jun 5 14:30:00 201913 // Update Count : 111 // Last Modified By : Andrew Beach 12 // Last Modified On : Tue Oct 1 9:51:00 2019 13 // Update Count : 2 14 14 // 15 15 … … 28 28 struct CandidateFinder { 29 29 CandidateList candidates; ///< List of candidate resolutions 30 const ast::SymbolTable & symtab; ///< Symbol table to lookup candidates30 const ast::SymbolTable & localSyms; ///< Symbol table to lookup candidates 31 31 const ast::TypeEnvironment & env; ///< Substitutions performed in this resolution 32 32 ast::ptr< ast::Type > targetType; ///< Target type for resolution 33 std::set< std::string > otypeKeys; /// different type may map to same key 33 34 34 CandidateFinder( 35 const ast::SymbolTable & sym tab, const ast::TypeEnvironment & env,35 CandidateFinder( 36 const ast::SymbolTable & syms, const ast::TypeEnvironment & env, 36 37 const ast::Type * tt = nullptr ) 37 : candidates(), symtab( symtab), env( env ), targetType( tt ) {}38 : candidates(), localSyms( syms ), env( env ), targetType( tt ) {} 38 39 39 40 /// Fill candidates with feasible resolutions for `expr` 40 41 void find( const ast::Expr * expr, ResolvMode mode = {} ); 42 bool pruneCandidates( CandidateList & candidates, CandidateList & out, std::vector<std::string> & errors ); 41 43 42 44 /// Runs new candidate finder on each element in xs, returning the list of finders … … 49 51 iterator begin() { return candidates.begin(); } 50 52 const_iterator begin() const { return candidates.begin(); } 51 53 52 54 iterator end() { return candidates.end(); } 53 55 const_iterator end() const { return candidates.end(); } … … 55 57 56 58 /// Computes conversion cost between two types 57 Cost computeConversionCost( 58 const ast::Type * argType, const ast::Type * paramType, const ast::SymbolTable & symtab,59 const ast:: TypeEnvironment & env );59 Cost computeConversionCost( 60 const ast::Type * argType, const ast::Type * paramType, bool argIsLvalue, 61 const ast::SymbolTable & symtab, const ast::TypeEnvironment & env ); 60 62 61 63 } // namespace ResolvExpr
Note:
See TracChangeset
for help on using the changeset viewer.