Changeset c28ea4e for src/ResolvExpr
- Timestamp:
- Nov 4, 2020, 2:56:30 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, stuck-waitfor-destruct
- Children:
- eeb5023
- Parents:
- 4b30e8cc (diff), a3f5208a (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. - Location:
- src/ResolvExpr
- Files:
-
- 2 edited
-
Resolver.cc (modified) (6 diffs)
-
Resolver.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/Resolver.cc
r4b30e8cc rc28ea4e 1105 1105 } 1106 1106 1107 /// Establish post-resolver invariants for expressions 1107 1108 } // anonymous namespace 1109 /// Establish post-resolver invariants for expressions 1108 1110 void finishExpr( 1109 1111 ast::ptr< ast::Expr > & expr, const ast::TypeEnvironment & env, … … 1118 1120 StripCasts_new::strip( expr ); 1119 1121 } 1120 } // anonymous namespace1121 1122 1122 1123 1123 ast::ptr< ast::Expr > resolveInVoidContext( … … 1139 1139 } 1140 1140 1141 namespace { 1142 /// Resolve `untyped` to the expression whose candidate is the best match for a `void` 1141 /// Resolve `untyped` to the expression whose candidate is the best match for a `void` 1143 1142 /// context. 1144 1143 ast::ptr< ast::Expr > findVoidExpression( … … 1151 1150 return newExpr; 1152 1151 } 1152 1153 namespace { 1154 1153 1155 1154 1156 /// resolve `untyped` to the expression whose candidate satisfies `pred` with the … … 1162 1164 CandidateRef choice = 1163 1165 findUnfinishedKindExpression( untyped, symtab, kind, pred, mode ); 1164 finishExpr( choice->expr, choice->env, untyped->env );1166 ResolvExpr::finishExpr( choice->expr, choice->env, untyped->env ); 1165 1167 return std::move( choice->expr ); 1166 1168 } … … 1272 1274 // size_t Resolver_new::traceId = Stats::Heap::new_stacktrace_id("Resolver"); 1273 1275 1274 void resolve( std::list< ast::ptr< ast::Decl > >& translationUnit ) {1276 void resolve( ast::TranslationUnit& translationUnit ) { 1275 1277 ast::Pass< Resolver_new >::run( translationUnit ); 1276 1278 } -
src/ResolvExpr/Resolver.h
r4b30e8cc rc28ea4e 35 35 class StmtExpr; 36 36 class SymbolTable; 37 class TranslationUnit; 37 38 class Type; 38 39 class TypeEnvironment; … … 55 56 56 57 /// Checks types and binds syntactic constructs to typed representations 57 void resolve( std::list< ast::ptr<ast::Decl> >& translationUnit );58 void resolve( ast::TranslationUnit& translationUnit ); 58 59 /// Searches expr and returns the first DeletedExpr found, otherwise nullptr 59 60 const ast::DeletedExpr * findDeletedExpr( const ast::Expr * expr ); … … 66 67 ast::ptr< ast::Expr > findSingleExpression( 67 68 const ast::Expr * untyped, const ast::Type * type, const ast::SymbolTable & symtab ); 69 ast::ptr< ast::Expr > findVoidExpression( 70 const ast::Expr * untyped, const ast::SymbolTable & symtab); 68 71 /// Resolves a constructor init expression 69 ast::ptr< ast::Init > resolveCtorInit( 72 ast::ptr< ast::Init > resolveCtorInit( 70 73 const ast::ConstructorInit * ctorInit, const ast::SymbolTable & symtab ); 71 74 /// Resolves a statement expression 72 ast::ptr< ast::Expr > resolveStmtExpr( 75 ast::ptr< ast::Expr > resolveStmtExpr( 73 76 const ast::StmtExpr * stmtExpr, const ast::SymbolTable & symtab ); 74 77 } // namespace ResolvExpr
Note:
See TracChangeset
for help on using the changeset viewer.