Changes in src/GenPoly/GenPoly.h [4da152a:c8837e5]
- File:
-
- 1 edited
-
src/GenPoly/GenPoly.h (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/GenPoly/GenPoly.h
r4da152a rc8837e5 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Mon Oct 24 15:18:00 202213 // Update Count : 1112 // Last Modified On : Fri Oct 7 15:06:00 2022 13 // Update Count : 9 14 14 // 15 15 … … 22 22 #include "AST/Decl.hpp" // for TypeDecl::Data 23 23 #include "AST/Fwd.hpp" // for ApplicationExpr, BaseInstType, Func... 24 #include "AST/Type.hpp" // for TypeInstType::TypeEnvKey25 24 #include "SymTab/Mangler.h" // for Mangler 26 25 #include "SynTree/Declaration.h" // for TypeDecl::Data, AggregateDecl, Type... … … 29 28 namespace GenPoly { 30 29 30 // TODO Via some tricks this works for ast::TypeDecl::Data as well. 31 31 typedef ErasableScopedMap< std::string, TypeDecl::Data > TyVarMap; 32 using TypeVarMap = ErasableScopedMap< ast::TypeInstType::TypeEnvKey, ast::TypeDecl::Data >;32 using TypeVarMap = ErasableScopedMap< std::string, ast::TypeDecl::Data >; 33 33 34 34 /// Replaces a TypeInstType by its referrent in the environment, if applicable 35 35 Type* replaceTypeInst( Type* type, const TypeSubstitution* env ); 36 const Type* replaceTypeInst( const Type* type, const TypeSubstitution* env );37 const ast::Type * replaceTypeInst( const ast::Type *, const ast::TypeSubstitution * );38 36 39 37 /// returns polymorphic type if is polymorphic type, NULL otherwise; will look up substitution in env if provided … … 55 53 /// true iff function has dynamic-layout return type under the type variable map generated from its forall-parameters 56 54 ReferenceToType *isDynRet( FunctionType *function ); 57 const ast::BaseInstType *isDynRet( const ast::FunctionType * func );58 55 59 56 /// A function needs an adapter if it returns a dynamic-layout value or if any of its parameters have dynamic-layout type … … 115 112 /// Prints type variable map 116 113 void printTyVarMap( std::ostream &os, const TyVarMap &tyVarMap ); 114 void printTypeVarMap( std::ostream &os, const TypeVarMap & typeVars ); 117 115 118 116 /// Gets the mangled name of this type; alias for SymTab::Mangler::mangleType(). 119 inline std::string mangleType( constType *ty ) { return SymTab::Mangler::mangleType( ty ); }117 inline std::string mangleType( Type *ty ) { return SymTab::Mangler::mangleType( ty ); } 120 118 121 119 /// Gets the name of the sizeof parameter for the type, given its mangled name … … 130 128 /// Gets the name of the layout function for a given aggregate type, given its declaration 131 129 inline std::string layoutofName( AggregateDecl *decl ) { return std::string( "_layoutof_" ) + decl->get_name(); } 132 inline std::string layoutofName( ast::AggregateDecl const * decl ) {133 return std::string( "_layoutof_" ) + decl->name;134 }135 130 136 131 } // namespace GenPoly
Note:
See TracChangeset
for help on using the changeset viewer.