Changes in src/SynTree/TupleExpr.cc [5ccb10d:ea6332d]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/TupleExpr.cc
r5ccb10d rea6332d 14 14 // 15 15 16 #include "Expression.h" 17 #include "Common/utility.h" 18 #include "Type.h" 19 #include "Declaration.h" 20 #include "Tuples/Tuples.h" 21 #include "VarExprReplacer.h" 16 #include <cassert> // for assert, safe_dynamic_cast, assertf 17 #include <iterator> // for next 18 #include <list> // for list, _List_iterator 19 #include <ostream> // for ostream, operator<<, basic_ostream, endl 20 #include <string> // for operator<<, string, char_traits 21 22 #include "Common/utility.h" // for cloneAll, deleteAll, printAll, toString 23 #include "Declaration.h" // for ObjectDecl 24 #include "Expression.h" // for Expression, TupleExpr, TupleIndexExpr 25 #include "SynTree/Label.h" // for Label, noLabels 26 #include "SynTree/Statement.h" // for CompoundStmt, DeclStmt, ExprStmt, Sta... 27 #include "Tuples/Tuples.h" // for makeTupleType 28 #include "Type.h" // for TupleType, Type 22 29 23 30 UntypedTupleExpr::UntypedTupleExpr( const std::list< Expression * > & exprs, Expression *_aname ) : Expression( _aname ), exprs( exprs ) { … … 60 67 assertf( type->size() > index, "TupleIndexExpr index out of bounds: tuple size %d, requested index %d in expr %s", type->size(), index, toString( tuple ).c_str() ); 61 68 set_result( (*std::next( type->get_types().begin(), index ))->clone() ); 62 // like MemberExpr, TupleIndexExpr is always an lvalue 63 get_result()->set_lvalue( true ); 69 get_result()->set_lvalue( type->get_lvalue() ); 64 70 } 65 71
Note:
See TracChangeset
for help on using the changeset viewer.