Changes in src/AST/Expr.cpp [ee574a2:20a5977]
- File:
-
- 1 edited
-
src/AST/Expr.cpp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Expr.cpp
ree574a2 r20a5977 64 64 // references have been removed, in which case dereference returns an lvalue of the 65 65 // base type 66 ret->result = base; 67 add_qualifiers( ret->result, CV::Lvalue ); 66 ret->result.set_and_mutate( base )->set_lvalue( true ); 68 67 } 69 68 } … … 165 164 genericSubsitution( aggregate->result ).apply( result ); 166 165 // ensure lvalue and appropriate restrictions from aggregate type 167 add_qualifiers( result, aggregate->result->qualifiers | CV::Lvalue );166 result.get_and_mutate()->qualifiers |= aggregate->result->qualifiers | CV::Lvalue; 168 167 } 169 168 … … 174 173 assert( var ); 175 174 assert( var->get_type() ); 176 result = var->get_type(); 177 add_qualifiers( result, CV::Lvalue ); 175 result.set_and_mutate( var->get_type() )->set_lvalue( true ); 178 176 } 179 177 … … 308 306 : Expr( loc ), init( i ) { 309 307 assert( t && i ); 310 result = t; 311 add_qualifiers( result, CV::Lvalue ); 308 result.set_and_mutate( t )->set_lvalue( true ); 312 309 } 313 310 … … 325 322 "index %d in expr %s", type->size(), index, toString( tuple ).c_str() ); 326 323 // like MemberExpr, TupleIndexExpr is always an lvalue 327 result = type->types[ index ]; 328 add_qualifiers( result, CV::Lvalue ); 324 result.set_and_mutate( type->types[ index ] )->set_lvalue( true ); 329 325 } 330 326
Note:
See TracChangeset
for help on using the changeset viewer.