Changes in src/Tuples/TupleExpansion.cc [3ca912a:fd642d2]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Tuples/TupleExpansion.cc
r3ca912a rfd642d2 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Feb 13 18:14:12201913 // Update Count : 2 111 // Last Modified By : Andrew Beach 12 // Last Modified On : Fri Jul 19 14:39:00 2019 13 // Update Count : 22 14 14 // 15 15 … … 350 350 } 351 351 352 const TypeInstType * isTtype( const Type * type ) { 353 if ( const TypeInstType * inst = dynamic_cast< const TypeInstType * >( type ) ) { 354 if ( inst->baseType && inst->baseType->kind == TypeDecl::Ttype ) { 355 return inst; 356 } 357 } 358 return nullptr; 359 } 360 352 361 const ast::TypeInstType * isTtype( const ast::Type * type ) { 353 362 if ( const ast::TypeInstType * inst = dynamic_cast< const ast::TypeInstType * >( type ) ) { … … 364 373 ImpurityDetector( bool ignoreUnique ) : ignoreUnique( ignoreUnique ) {} 365 374 366 void previsit( ApplicationExpr * appExpr ) {375 void previsit( const ApplicationExpr * appExpr ) { 367 376 visit_children = false; 368 if ( DeclarationWithType * function = InitTweak::getFunction( appExpr ) ) {369 if ( function-> get_linkage()== LinkageSpec::Intrinsic ) {370 if ( function-> get_name() == "*?" || function->get_name()== "?[?]" ) {377 if ( const DeclarationWithType * function = InitTweak::getFunction( appExpr ) ) { 378 if ( function->linkage == LinkageSpec::Intrinsic ) { 379 if ( function->name == "*?" || function->name == "?[?]" ) { 371 380 // intrinsic dereference, subscript are pure, but need to recursively look for impurity 372 381 visit_children = true; … … 377 386 maybeImpure = true; 378 387 } 379 void previsit( UntypedExpr * ) { maybeImpure = true; visit_children = false; }380 void previsit( UniqueExpr * ) {388 void previsit( const UntypedExpr * ) { maybeImpure = true; visit_children = false; } 389 void previsit( const UniqueExpr * ) { 381 390 if ( ignoreUnique ) { 382 391 // bottom out at unique expression. … … 393 402 } // namespace 394 403 395 bool maybeImpure( Expression * expr ) {404 bool maybeImpure( const Expression * expr ) { 396 405 PassVisitor<ImpurityDetector> detector( false ); 397 406 expr->accept( detector ); … … 399 408 } 400 409 401 bool maybeImpureIgnoreUnique( Expression * expr ) {410 bool maybeImpureIgnoreUnique( const Expression * expr ) { 402 411 PassVisitor<ImpurityDetector> detector( true ); 403 412 expr->accept( detector );
Note: See TracChangeset
for help on using the changeset viewer.