Changeset 0b150ec for src/ResolvExpr


Ignore:
Timestamp:
May 24, 2017, 4:12:28 PM (8 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
7f623d6f
Parents:
6e206cb
Message:

minor zero_t/one_t prelude changes, simplify prelude generation, memory error fixes

Location:
src/ResolvExpr
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/CastCost.cc

    r6e206cb r0b150ec  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // CastCost.cc -- 
     7// CastCost.cc --
    88//
    99// Author           : Richard C. Bilson
     
    2626          public:
    2727                CastCost( Type *dest, const SymTab::Indexer &indexer, const TypeEnvironment &env );
    28  
     28
    2929                virtual void visit( BasicType *basicType );
    3030                virtual void visit( PointerType *pointerType );
     
    3636                        NamedTypeDecl *namedType;
    3737                        if ( env.lookup( destAsTypeInst->get_name(), eqvClass ) ) {
    38                                 return castCost( src, eqvClass.type, indexer, env );
     38                                if ( eqvClass.type ) {
     39                                        return castCost( src, eqvClass.type, indexer, env );
     40                                } else {
     41                                        return Cost::infinity;
     42                                }
    3943                        } else if ( ( namedType = indexer.lookupType( destAsTypeInst->get_name() ) ) ) {
    4044                                TypeDecl *type = dynamic_cast< TypeDecl* >( namedType );
  • src/ResolvExpr/ConversionCost.cc

    r6e206cb r0b150ec  
    3030///     std::cout << "type inst " << destAsTypeInst->get_name();
    3131                        if ( env.lookup( destAsTypeInst->get_name(), eqvClass ) ) {
    32                                 return conversionCost( src, eqvClass.type, indexer, env );
     32                                if ( eqvClass.type ) {
     33                                        return conversionCost( src, eqvClass.type, indexer, env );
     34                                } else {
     35                                        return Cost::infinity;
     36                                }
    3337                        } else if ( ( namedType = indexer.lookupType( destAsTypeInst->get_name() ) ) ) {
    3438///       std::cout << " found" << std::endl;
  • src/ResolvExpr/Resolver.cc

    r6e206cb r0b150ec  
    124124                        } // if
    125125#endif
    126                         assert( finder.get_alternatives().size() == 1 );
     126                        assertf( finder.get_alternatives().size() == 1, "findSingleExpression: must have exactly one alternative at the end." );
    127127                        Alternative &choice = finder.get_alternatives().front();
    128128                        Expression *newExpr = choice.expr->clone();
     
    397397                        // //   cerr << type << endl;
    398398                        // // } // for
    399                        
     399
    400400                        // // O(N^2) checks of d-types with f-types
    401401                        // // find the minimum cost
  • src/ResolvExpr/Unify.cc

    r6e206cb r0b150ec  
    344344                std::cerr << "unifyInexact type 1 is ";
    345345                type1->print( std::cerr );
    346                 std::cerr << "type 2 is ";
     346                std::cerr << " type 2 is ";
    347347                type2->print( std::cerr );
    348348                std::cerr << std::endl;
     
    595595                        TypeExpr *otherParam = dynamic_cast< TypeExpr* >(*jt);
    596596                        assertf(otherParam, "Aggregate parameters should be type expressions");
    597                        
     597
    598598                        Type* paramTy = param->get_type();
    599599                        Type* otherParamTy = otherParam->get_type();
Note: See TracChangeset for help on using the changeset viewer.