Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Expr.cpp

    ree574a2 r20a5977  
    6464                        // references have been removed, in which case dereference returns an lvalue of the
    6565                        // base type
    66                         ret->result = base;
    67                         add_qualifiers( ret->result, CV::Lvalue );
     66                        ret->result.set_and_mutate( base )->set_lvalue( true );
    6867                }
    6968        }
     
    165164        genericSubsitution( aggregate->result ).apply( result );
    166165        // 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;
    168167}
    169168
     
    174173        assert( var );
    175174        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 );
    178176}
    179177
     
    308306: Expr( loc ), init( i ) {
    309307        assert( t && i );
    310         result = t;
    311         add_qualifiers( result, CV::Lvalue );
     308        result.set_and_mutate( t )->set_lvalue( true );
    312309}
    313310
     
    325322                "index %d in expr %s", type->size(), index, toString( tuple ).c_str() );
    326323        // 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 );
    329325}
    330326
Note: See TracChangeset for help on using the changeset viewer.