Changes in src/AST/Expr.cpp [10a1225:20a5977]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Expr.cpp
r10a1225 r20a5977 20 20 #include <vector> 21 21 22 #include "GenericSubstitution.hpp" 22 23 #include "Stmt.hpp" 23 24 #include "Type.hpp" 25 #include "TypeSubstitution.hpp" 26 #include "Common/utility.h" 24 27 #include "Common/SemanticError.h" 25 28 #include "GenPoly/Lvalue.h" // for referencesPermissable … … 156 159 assert( aggregate->result ); 157 160 158 assert(!"unimplemented; need TypeSubstitution, genericSubstitution"); 161 // take ownership of member type 162 result = mem->get_type(); 163 // substitute aggregate generic parameters into member type 164 genericSubsitution( aggregate->result ).apply( result ); 165 // ensure lvalue and appropriate restrictions from aggregate type 166 result.get_and_mutate()->qualifiers |= aggregate->result->qualifiers | CV::Lvalue; 159 167 } 160 168 … … 233 241 FixedLen, DynamicDim }, 234 242 std::string{"\""} + s + "\"", 235 (unsigned long long)0 }; 243 (unsigned long long)0, 244 ConstantExpr::String }; 236 245 } 237 246 … … 332 341 stmts.emplace_back( new ExprStmt{ loc, tupleExpr } ); 333 342 stmtExpr = new StmtExpr{ loc, new CompoundStmt{ loc, std::move(stmts) } }; 343 } 344 345 TupleAssignExpr::TupleAssignExpr( 346 const CodeLocation & loc, const Type * result, const StmtExpr * s ) 347 : Expr( loc, result ), stmtExpr() { 348 stmtExpr = s; 334 349 } 335 350
Note:
See TracChangeset
for help on using the changeset viewer.