Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/PtrsAssignable.cc

    r7e003011 r89e6ffc  
    6363        }
    6464
    65         PtrsAssignable::PtrsAssignable( Type *dest, const TypeEnvironment &env ) : dest( dest ), result( 0 ), env( env ) {}
     65        PtrsAssignable::PtrsAssignable( Type *dest, const TypeEnvironment &env ) : dest( dest ), result( 0 ), env( env ) {
     66        }
    6667
    67         void PtrsAssignable::visit( __attribute((unused)) VoidType *voidType ) {
     68        void PtrsAssignable::visit( VoidType *voidType ) {
    6869                if ( dynamic_cast< FunctionType* >( dest ) ) {
    6970                        result = 0;
     
    7374        }
    7475
    75         void PtrsAssignable::visit( __attribute__((unused)) BasicType *basicType ) {}
    76         void PtrsAssignable::visit( __attribute__((unused)) PointerType *pointerType ) {}
    77         void PtrsAssignable::visit( __attribute__((unused)) ArrayType *arrayType ) {}
    78         void PtrsAssignable::visit( __attribute__((unused)) FunctionType *functionType ) {
     76        void PtrsAssignable::visit( BasicType *basicType ) {
     77        }
     78
     79        void PtrsAssignable::visit( PointerType *pointerType ) {
     80        }
     81
     82        void PtrsAssignable::visit( ArrayType *arrayType ) {
     83        }
     84
     85        void PtrsAssignable::visit( FunctionType *functionType ) {
    7986                result = -1;
    8087        }
    8188
    82         void PtrsAssignable::visit(  __attribute__((unused)) StructInstType *inst ) {}
    83         void PtrsAssignable::visit(  __attribute__((unused)) UnionInstType *inst ) {}
     89        void PtrsAssignable::visit( StructInstType *inst ) {
     90                // I don't think we should be doing anything here, but I'm willing to admit that I might be wrong
     91        }
     92
     93        void PtrsAssignable::visit( UnionInstType *inst ) {
     94                // I don't think we should be doing anything here, but I'm willing to admit that I might be wrong
     95        }
    8496
    8597        void PtrsAssignable::visit( EnumInstType *inst ) {
     
    91103        }
    92104
    93         void PtrsAssignable::visit(  __attribute__((unused)) TraitInstType *inst ) {}
     105        void PtrsAssignable::visit( TraitInstType *inst ) {
     106                // I definitely don't think we should be doing anything here
     107        }
     108
    94109        void PtrsAssignable::visit( TypeInstType *inst ) {
    95110                EqvClass eqvClass;
     
    101116        }
    102117
    103         void PtrsAssignable::visit(  __attribute__((unused)) TupleType *tupleType ) {}
    104         void PtrsAssignable::visit(  __attribute__((unused)) VarArgsType *varArgsType ) {}
    105         void PtrsAssignable::visit(  __attribute__((unused)) ZeroType *zeroType ) {}
    106         void PtrsAssignable::visit(  __attribute__((unused)) OneType *oneType ) {}
     118        void PtrsAssignable::visit( TupleType *tupleType ) {
     119///  // This code doesn't belong here, but it might be useful somewhere else
     120///   if ( TupleType *destAsTuple = dynamic_cast< TupleType* >( dest ) ) {
     121///     int ret = 0;
     122///     std::list< Type* >::const_iterator srcIt = tupleType->get_types().begin();
     123///     std::list< Type* >::const_iterator destIt = destAsTuple->get_types().begin();
     124///     while ( srcIt != tupleType->get_types().end() && destIt != destAsTuple->get_types().end() ) {
     125///       int assignResult = ptrsAssignable( *srcIt++, *destIt++ );
     126///       if ( assignResult == 0 ) {
     127///         result = assignResult;
     128///         return;
     129///       } else if ( assignResult < 0 ) {
     130///         ret = -1;
     131///       } else if ( ret > 0 ) {
     132///         ret += assignResult;
     133///       }
     134///     }
     135///     if ( srcIt == tupleType->get_types().end() && destIt == destAsTuple->get_types().end() ) {
     136///       result = ret;
     137///     } else {
     138///       result = 0;
     139///     }
     140///   }
     141        }
     142
     143        void PtrsAssignable::visit( VarArgsType *varArgsType ) {
     144        }
     145
     146        void PtrsAssignable::visit( ZeroType *zeroType ) {
     147        }
     148       
     149        void PtrsAssignable::visit( OneType *oneType ) {
     150        }
    107151       
    108152} // namespace ResolvExpr
Note: See TracChangeset for help on using the changeset viewer.