Changeset 839ccbb for src/SynTree
- Timestamp:
- Nov 20, 2015, 4:19:13 PM (10 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
- Children:
- 5189888
- Parents:
- 05587c2 (diff), ed94eac (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - git-author:
- Peter A. Buhr <pabuhr@…> (11/20/15 12:51:58)
- git-committer:
- Peter A. Buhr <pabuhr@…> (11/20/15 16:19:13)
- Location:
- src/SynTree
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Mutator.h
r05587c2 r839ccbb 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 23 23:24:18201513 // Update Count : 712 // Last Modified On : Thu Nov 19 22:26:16 2015 13 // Update Count : 8 14 14 // 15 15 #include <cassert> … … 103 103 inline TreeType *maybeMutate( TreeType *tree, MutatorType &mutator ) { 104 104 if ( tree ) { 105 TreeType *newnode = dynamic_cast< TreeType * >( tree->acceptMutator( mutator ) );105 TreeType *newnode = dynamic_cast< TreeType * >( tree->acceptMutator( mutator ) ); 106 106 assert( newnode ); 107 107 return newnode; -
src/SynTree/ReferenceToType.cc
r05587c2 r839ccbb 59 59 std::string StructInstType::typeString() const { return "struct"; } 60 60 61 std::list<TypeDecl*>& StructInstType::get_baseParameters() { return baseStruct->get_parameters(); } 61 std::list<TypeDecl*>* StructInstType::get_baseParameters() { 62 if ( ! baseStruct ) return NULL; 63 return &baseStruct->get_parameters(); 64 } 62 65 63 66 void StructInstType::lookup( const std::string &name, std::list< Declaration* > &foundDecls ) const { … … 68 71 std::string UnionInstType::typeString() const { return "union"; } 69 72 70 std::list<TypeDecl*>& UnionInstType::get_baseParameters() { return baseUnion->get_parameters(); } 73 std::list<TypeDecl*>* UnionInstType::get_baseParameters() { 74 if ( ! baseUnion ) return NULL; 75 return &baseUnion->get_parameters(); 76 } 71 77 72 78 void UnionInstType::lookup( const std::string &name, std::list< Declaration* > &foundDecls ) const { -
src/SynTree/Type.h
r05587c2 r839ccbb 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 9 16:46:15201513 // Update Count : 1 412 // Last Modified On : Fri Nov 20 12:54:09 2015 13 // Update Count : 15 14 14 // 15 15 … … 201 201 std::list<DeclarationWithType*> parameters; 202 202 203 // does the function accept a variable number of arguments following the arguments204 // specified in the parameters list.This could be because of203 // Does the function accept a variable number of arguments following the arguments specified in the parameters list. 204 // This could be because of 205 205 // - an ellipsis in a prototype declaration 206 206 // - an unprototyped declaration … … 238 238 void set_baseStruct( StructDecl *newValue ) { baseStruct = newValue; } 239 239 240 /// Accesses generic parameters of base struct 241 std::list<TypeDecl*> &get_baseParameters();240 /// Accesses generic parameters of base struct (NULL if none such) 241 std::list<TypeDecl*> * get_baseParameters(); 242 242 243 243 /// Looks up the members of this struct named "name" and places them into "foundDecls". … … 265 265 void set_baseUnion( UnionDecl *newValue ) { baseUnion = newValue; } 266 266 267 /// Accesses generic parameters of base union 268 std::list<TypeDecl*> &get_baseParameters();267 /// Accesses generic parameters of base union (NULL if none such) 268 std::list<TypeDecl*> * get_baseParameters(); 269 269 270 270 /// looks up the members of this union named "name" and places them into "foundDecls" -
src/SynTree/TypeSubstitution.cc
r05587c2 r839ccbb 147 147 } // if 148 148 // bind type variables from generic type instantiations 149 for ( std::list< TypeDecl* >::const_iterator tyvar = type->get_baseParameters().begin(); tyvar != type->get_baseParameters().end(); ++tyvar ) { 150 boundVars.insert( (*tyvar)->get_name() ); 151 } // for 149 std::list< TypeDecl* > *baseParameters = type->get_baseParameters(); 150 if ( baseParameters && ! type->get_parameters().empty() ) { 151 for ( std::list< TypeDecl* >::const_iterator tyvar = baseParameters->begin(); tyvar != baseParameters->end(); ++tyvar ) { 152 boundVars.insert( (*tyvar)->get_name() ); 153 } // for 154 } // if 152 155 Type *ret = Mutator::mutate( type ); 153 156 boundVars = oldBoundVars;
Note:
See TracChangeset
for help on using the changeset viewer.