Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Tuples/TupleExpansion.cc

    rfd642d2 r3ca912a  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Fri Jul 19 14:39:00 2019
    13 // Update Count     : 22
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed Feb 13 18:14:12 2019
     13// Update Count     : 21
    1414//
    1515
     
    350350        }
    351351
    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 
    361352        const ast::TypeInstType * isTtype( const ast::Type * type ) {
    362353                if ( const ast::TypeInstType * inst = dynamic_cast< const ast::TypeInstType * >( type ) ) {
     
    373364                        ImpurityDetector( bool ignoreUnique ) : ignoreUnique( ignoreUnique ) {}
    374365
    375                         void previsit( const ApplicationExpr * appExpr ) {
     366                        void previsit( ApplicationExpr * appExpr ) {
    376367                                visit_children = false;
    377                                 if ( const DeclarationWithType * function = InitTweak::getFunction( appExpr ) ) {
    378                                         if ( function->linkage == LinkageSpec::Intrinsic ) {
    379                                                 if ( function->name == "*?" || function->name == "?[?]" ) {
     368                                if ( DeclarationWithType * function = InitTweak::getFunction( appExpr ) ) {
     369                                        if ( function->get_linkage() == LinkageSpec::Intrinsic ) {
     370                                                if ( function->get_name() == "*?" || function->get_name() == "?[?]" ) {
    380371                                                        // intrinsic dereference, subscript are pure, but need to recursively look for impurity
    381372                                                        visit_children = true;
     
    386377                                maybeImpure = true;
    387378                        }
    388                         void previsit( const UntypedExpr * ) { maybeImpure = true; visit_children = false; }
    389                         void previsit( const UniqueExpr * ) {
     379                        void previsit( UntypedExpr * ) { maybeImpure = true; visit_children = false; }
     380                        void previsit( UniqueExpr * ) {
    390381                                if ( ignoreUnique ) {
    391382                                        // bottom out at unique expression.
     
    402393        } // namespace
    403394
    404         bool maybeImpure( const Expression * expr ) {
     395        bool maybeImpure( Expression * expr ) {
    405396                PassVisitor<ImpurityDetector> detector( false );
    406397                expr->accept( detector );
     
    408399        }
    409400
    410         bool maybeImpureIgnoreUnique( const Expression * expr ) {
     401        bool maybeImpureIgnoreUnique( Expression * expr ) {
    411402                PassVisitor<ImpurityDetector> detector( true );
    412403                expr->accept( detector );
Note: See TracChangeset for help on using the changeset viewer.