Changeset 58fe85a for src/ResolvExpr/CandidateFinder.hpp
- Timestamp:
- Jan 7, 2021, 3:27:00 PM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 2b4daf2, 64aeca0
- Parents:
- 3c64c668 (diff), eef8dfb (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/CandidateFinder.hpp
r3c64c668 r58fe85a 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.