Changes in / [79caea8:610194e]
- Location:
- src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.yy
r79caea8 r610194e 2307 2307 { $$ = new ExpressionNode( new TypeExpr( maybeMoveBuildType( $1 ) ) ); } 2308 2308 | assignment_expression 2309 { SemanticError( yylloc, toString("Expression generic parameters are currently unimplemented: ", $1->build()) ); $$ = nullptr; } 2309 2310 | type_list ',' type 2310 2311 { $$ = (ExpressionNode *)( $1->set_last( new ExpressionNode( new TypeExpr( maybeMoveBuildType( $3 ) ) ) ) ); } 2311 2312 | type_list ',' assignment_expression 2312 { $$ = (ExpressionNode *)( $1->set_last( $3 )); } 2313 { SemanticError( yylloc, toString("Expression generic parameters are currently unimplemented: ", $3->build()) ); $$ = nullptr; } 2314 // { $$ = (ExpressionNode *)( $1->set_last( $3 )); } 2313 2315 ; 2314 2316 -
src/ResolvExpr/AlternativeFinder.cc
r79caea8 r610194e 482 482 template< typename ForwardIterator, typename OutputIterator > 483 483 void inferRecursive( ForwardIterator begin, ForwardIterator end, const Alternative &newAlt, OpenVarSet &openVars, const SymTab::Indexer &decls, const AssertionSet &newNeed, int level, const SymTab::Indexer &indexer, OutputIterator out ) { 484 if ( newAlt.cost == Cost::infinity ) return; // don't proceed down this dead end 484 485 if ( begin == end ) { 485 486 if ( newNeed.empty() ) { … … 1185 1186 std::cerr << "bindings are:" << std::endl; 1186 1187 withFunc.env.print( std::cerr, 8 ); 1188 std::cerr << "cost is: " << withFunc.cost << std::endl; 1187 1189 std::cerr << "cost of conversion is:" << cvtCost << std::endl; 1188 1190 ) -
src/ResolvExpr/CommonType.cc
r79caea8 r610194e 267 267 result = otherPointer->clone(); 268 268 } // if 269 result->get_qualifiers() = tq1 | tq2;269 strict_dynamic_cast<PointerType*>(result)->base->get_qualifiers() = tq1 | tq2; 270 270 } else { 271 271 /// std::cerr << "place for ptr-to-type" << std::endl; … … 304 304 result = otherRef->clone(); 305 305 } // if 306 result->get_qualifiers() = tq1 | tq2;306 strict_dynamic_cast<ReferenceType*>(result)->base->get_qualifiers() = tq1 | tq2; 307 307 } else { 308 308 /// std::cerr << "place for ptr-to-type" << std::endl; -
src/SymTab/FixFunction.cc
r79caea8 r610194e 30 30 // can't delete function type because it may contain assertions, so transfer ownership to new object 31 31 ObjectDecl *pointer = new ObjectDecl( functionDecl->name, functionDecl->get_storageClasses(), functionDecl->linkage, nullptr, new PointerType( Type::Qualifiers(), functionDecl->type ), nullptr, functionDecl->attributes ); 32 pointer->location = functionDecl->location; 32 33 functionDecl->attributes.clear(); 33 34 functionDecl->type = nullptr; … … 43 44 // need to recursively mutate the base type in order for multi-dimensional arrays to work. 44 45 PointerType *pointerType = new PointerType( arrayType->get_qualifiers(), arrayType->base, arrayType->dimension, arrayType->isVarLen, arrayType->isStatic ); 46 pointerType->location = arrayType->location; 45 47 arrayType->base = nullptr; 46 48 arrayType->dimension = nullptr;
Note: See TracChangeset
for help on using the changeset viewer.