Changes in src/Tuples/Explode.h [6bbce58:0b5d871]
- File:
-
- 1 edited
-
src/Tuples/Explode.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Tuples/Explode.h
r6bbce58 r0b5d871 16 16 #pragma once 17 17 18 #include <iterator> // for back_inserter, back_insert_iterator 18 #include "ResolvExpr/AlternativeFinder.h" 19 #include "ResolvExpr/Resolver.h" 19 20 20 #include "ResolvExpr/Alternative.h" // for Alternative, AltList 21 #include "SynTree/Expression.h" // for Expression, UniqueExpr, AddressExpr 22 #include "SynTree/Type.h" // for TupleType, Type 23 #include "Tuples.h" // for maybeImpure 21 #include "SynTree/Expression.h" 22 #include "SynTree/Declaration.h" 23 #include "SynTree/Type.h" 24 24 25 namespace SymTab { 26 class Indexer; 27 } // namespace SymTab 25 #include "Tuples.h" 28 26 29 27 namespace Tuples { 30 28 Expression * distributeReference( Expression * ); 31 32 static inline CastExpr * isReferenceCast( Expression * expr ) {33 if ( CastExpr * castExpr = dynamic_cast< CastExpr * >( expr ) ) {34 if ( dynamic_cast< ReferenceType * >( castExpr->result ) ) {35 return castExpr;36 }37 }38 return nullptr;39 }40 29 41 30 /// helper function used by explode … … 44 33 if ( isTupleAssign ) { 45 34 // tuple assignment needs CastExprs to be recursively exploded to easily get at all of the components 46 if ( CastExpr * castExpr = isReferenceCast( expr ) ) {35 if ( CastExpr * castExpr = dynamic_cast< CastExpr * >( expr ) ) { 47 36 ResolvExpr::AltList alts; 48 37 explodeUnique( castExpr->get_arg(), alt, indexer, back_inserter( alts ), isTupleAssign );
Note:
See TracChangeset
for help on using the changeset viewer.