Changes in src/Tuples/TupleAssignment.cc [5fb6830:d29fa5f]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Tuples/TupleAssignment.cc
r5fb6830 rd29fa5f 14 14 // 15 15 16 #include "ResolvExpr/AlternativeFinder.h" 17 #include "ResolvExpr/Alternative.h" 18 #include "ResolvExpr/typeops.h" 19 #include "SynTree/Expression.h" 20 #include "SynTree/Initializer.h" 21 #include "Tuples.h" 22 #include "Explode.h" 23 #include "Common/SemanticError.h" 16 #include <algorithm> // for transform 17 #include <cassert> // for assert 18 #include <iterator> // for back_insert_iterator, back... 19 #include <list> // for _List_const_iterator, _Lis... 20 #include <memory> // for unique_ptr, allocator_trai... 21 #include <string> // for string 22 24 23 #include "CodeGen/OperatorTable.h" 25 #include "InitTweak/InitTweak.h" 26 #include "InitTweak/GenInit.h" 27 28 #include <functional> 29 #include <algorithm> 30 #include <iterator> 31 #include <iostream> 32 #include <cassert> 33 #include <set> 34 #include <unordered_set> 24 #include "Common/UniqueName.h" // for UniqueName 25 #include "Common/utility.h" // for zipWith 26 #include "Explode.h" // for explode 27 #include "InitTweak/GenInit.h" // for genCtorInit 28 #include "InitTweak/InitTweak.h" // for getPointerBase, isAssignment 29 #include "Parser/LinkageSpec.h" // for Cforall 30 #include "ResolvExpr/Alternative.h" // for AltList, Alternative 31 #include "ResolvExpr/AlternativeFinder.h" // for AlternativeFinder, simpleC... 32 #include "ResolvExpr/Cost.h" // for Cost 33 #include "ResolvExpr/Resolver.h" // for resolveCtorInit 34 #include "ResolvExpr/TypeEnvironment.h" // for TypeEnvironment 35 #include "SynTree/Declaration.h" // for ObjectDecl 36 #include "SynTree/Expression.h" // for Expression, CastExpr, Name... 37 #include "SynTree/Initializer.h" // for ConstructorInit, SingleInit 38 #include "SynTree/Statement.h" // for ExprStmt 39 #include "SynTree/Type.h" // for Type, Type::Qualifiers 40 #include "SynTree/TypeSubstitution.h" // for TypeSubstitution 41 #include "SynTree/Visitor.h" // for Visitor 35 42 36 43 namespace Tuples { … … 77 84 bool isTuple( Expression *expr ) { 78 85 if ( ! expr ) return false; 79 assert( expr-> has_result());86 assert( expr->result ); 80 87 return dynamic_cast< TupleType * >( expr->get_result()->stripReferences() ); 81 88 } … … 231 238 232 239 ObjectDecl * TupleAssignSpotter::Matcher::newObject( UniqueName & namer, Expression * expr ) { 233 assert( expr-> has_result()&& ! expr->get_result()->isVoid() );240 assert( expr->result && ! expr->get_result()->isVoid() ); 234 241 ObjectDecl * ret = new ObjectDecl( namer.newName(), Type::StorageClasses(), LinkageSpec::Cforall, nullptr, expr->get_result()->clone(), new SingleInit( expr->clone() ) ); 235 242 // if expression type is a reference, don't need to construct anything, a simple initializer is sufficient.
Note: See TracChangeset
for help on using the changeset viewer.