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