Changeset 3f3bfe5a for src/AST/Expr.cpp


Ignore:
Timestamp:
Oct 11, 2019, 2:23:30 PM (5 years ago)
Author:
Andrew Beach <ajbeach@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
396b830
Parents:
cf32116 (diff), 70b4ea20 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge from master to new-ast. Removing old lvalue support.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Expr.cpp

    rcf32116 r3f3bfe5a  
    1010// Created On       : Wed May 15 17:00:00 2019
    1111// Last Modified By : Andrew Beach
    12 // Created On       : Thr Jun 26 12:12:00 2019
    13 // Update Count     : 3
     12// Created On       : Fri Oct  4 15:34:00 2019
     13// Update Count     : 4
    1414//
    1515
     
    8282                        // base type
    8383                        ret->result = base;
    84                         add_qualifiers( ret->result, CV::Lvalue );
    8584                }
    8685        }
     
    131130                        // lvalue, retains all levels of reference, and gains a pointer inside the references
    132131                        Type * res = addrType( arg->result );
    133                         res->set_lvalue( false ); // result of & is never an lvalue
    134132                        result = res;
    135133                } else {
     
    138136                                        dynamic_cast< const ReferenceType * >( arg->result.get() ) ) {
    139137                                Type * res = addrType( refType->base );
    140                                 res->set_lvalue( false ); // result of & is never an lvalue
    141138                                result = res;
    142139                        } else {
     
    230227        // substitute aggregate generic parameters into member type
    231228        genericSubstitution( aggregate->result ).apply( result );
    232         // ensure lvalue and appropriate restrictions from aggregate type
    233         add_qualifiers( result, aggregate->result->qualifiers | CV::Lvalue );
     229        // ensure appropriate restrictions from aggregate type
     230        add_qualifiers( result, aggregate->result->qualifiers );
    234231}
    235232
     
    257254        assert( var );
    258255        assert( var->get_type() );
    259         auto r = shallowCopy( var->get_type() );
    260         r->qualifiers |= CV::Lvalue;
    261         result = r;
     256        result = shallowCopy( var->get_type() );
    262257}
    263258
     
    376371        assert( t && i );
    377372        result = t;
    378         add_qualifiers( result, CV::Lvalue );
    379373}
    380374
     
    397391        // like MemberExpr, TupleIndexExpr is always an lvalue
    398392        result = type->types[ index ];
    399         add_qualifiers( result, CV::Lvalue );
    400393}
    401394
Note: See TracChangeset for help on using the changeset viewer.