Changeset 5ccb10d for src/SynTree
- Timestamp:
- Aug 22, 2017, 6:41:28 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 0b5d871
- Parents:
- d104b02
- Location:
- src/SynTree
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Expression.cc
rd104b02 r5ccb10d 611 611 CompoundLiteralExpr::CompoundLiteralExpr( Type * type, Initializer * initializer ) : initializer( initializer ) { 612 612 assert( type && initializer ); 613 type->set_lvalue( true ); 613 614 set_result( type ); 614 615 } -
src/SynTree/TupleExpr.cc
rd104b02 r5ccb10d 60 60 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 61 set_result( (*std::next( type->get_types().begin(), index ))->clone() ); 62 get_result()->set_lvalue( type->get_lvalue() ); 62 // like MemberExpr, TupleIndexExpr is always an lvalue 63 get_result()->set_lvalue( true ); 63 64 } 64 65 -
src/SynTree/Type.h
rd104b02 r5ccb10d 311 311 virtual int referenceDepth() const; 312 312 313 // Since reference types act like value types, their size is the size of the base. 314 // This makes it simple to cast the empty tuple to a reference type, since casts that increase 315 // the number of values are disallowed. 316 virtual unsigned size() const { return base->size(); } 317 313 318 virtual ReferenceType *clone() const { return new ReferenceType( *this ); } 314 319 virtual void accept( Visitor & v ) { v.visit( this ); }
Note: See TracChangeset
for help on using the changeset viewer.