Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/GenPoly/GenPoly.h

    r3bb195cb r2c57025  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // GenPoly.h -- 
     7// GenPoly.h --
    88//
    99// Author           : Richard C. Bilson
     
    3030
    3131namespace GenPoly {
    32         typedef ErasableScopedMap< std::string, TypeDecl::Kind > TyVarMap;
     32        typedef ErasableScopedMap< std::string, TypeDecl::Data > TyVarMap;
    3333
    3434        /// Replaces a TypeInstType by its referrent in the environment, if applicable
    3535        Type* replaceTypeInst( Type* type, const TypeSubstitution* env );
    36        
     36
    3737        /// returns polymorphic type if is polymorphic type, NULL otherwise; will look up substitution in env if provided
    3838        Type *isPolyType( Type *type, const TypeSubstitution *env = 0 );
    39        
     39
    4040        /// returns polymorphic type if is polymorphic type in tyVars, NULL otherwise; will look up substitution in env if provided
    4141        Type *isPolyType( Type *type, const TyVarMap &tyVars, const TypeSubstitution *env = 0 );
    4242
    4343        /// returns dynamic-layout type if is dynamic-layout type in tyVars, NULL otherwise; will look up substitution in env if provided
    44         Type *isDynType( Type *type, const TyVarMap &tyVars, const TypeSubstitution *env = 0 );
     44        ReferenceToType *isDynType( Type *type, const TyVarMap &tyVars, const TypeSubstitution *env = 0 );
    4545
    4646        /// true iff function has dynamic-layout return type under the given type variable map
     
    5555        /// returns polymorphic type if is pointer to polymorphic type, NULL otherwise; will look up substitution in env if provided
    5656        Type *isPolyPtr( Type *type, const TypeSubstitution *env = 0 );
    57        
     57
    5858        /// returns polymorphic type if is pointer to polymorphic type in tyVars, NULL otherwise; will look up substitution in env if provided
    5959        Type *isPolyPtr( Type *type, const TyVarMap &tyVars, const TypeSubstitution *env = 0 );
     
    7474        VariableExpr *getBaseVar( Expression *expr, int *levels = 0 );
    7575
     76        /// Adds the type variable `tyVar` to `tyVarMap`
     77        void addToTyVarMap( TypeDecl * tyVar, TyVarMap &tyVarMap );
     78
    7679        /// Adds the declarations in the forall list of type (and its pointed-to type if it's a pointer type) to `tyVarMap`
    7780        void makeTyVarMap( Type *type, TyVarMap &tyVarMap );
    78        
     81
    7982        /// Prints type variable map
    8083        void printTyVarMap( std::ostream &os, const TyVarMap &tyVarMap );
     
    8285        /// Gets the mangled name of this type; alias for SymTab::Mangler::mangleType().
    8386        inline std::string mangleType( Type *ty ) { return SymTab::Mangler::mangleType( ty ); }
    84        
     87
    8588        /// Gets the name of the sizeof parameter for the type, given its mangled name
    8689        inline std::string sizeofName( const std::string &name ) { return std::string( "_sizeof_" ) + name; }
     
    9497        /// Gets the name of the layout function for a given aggregate type, given its declaration
    9598        inline std::string layoutofName( AggregateDecl *decl ) { return std::string( "_layoutof_" ) + decl->get_name(); }
    96        
     99
    97100} // namespace GenPoly
    98101
Note: See TracChangeset for help on using the changeset viewer.