- Timestamp:
- Feb 17, 2022, 2:35:23 PM (2 years ago)
- Branches:
- ADT, ast-experimental, enum, forall-pointer-decay, master, pthread-emulation, qualifiedEnum
- Children:
- a556492
- Parents:
- 51b8582
- Location:
- src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Decl.cpp
r51b8582 r7d7ef6f 39 39 if ( uniqueId ) return; // ensure only set once 40 40 uniqueId = ++lastUniqueId; 41 //idMap[ uniqueId ] = this; 41 // The extra readonly pointer is causing some reference counting issues. 42 // idMap[ uniqueId ] = this; 42 43 } 43 44 44 45 readonly<Decl> Decl::fromId( UniqueId id ) { 46 // Right now this map is always empty, so don't use it. 45 47 assert( false ); 46 48 IdMapType::const_iterator i = idMap.find( id ); -
src/SynTree/TypeSubstitution.cc
r51b8582 r7d7ef6f 146 146 } 147 147 148 static bool are_same( TypeInstType * left, TypeInstType * right ) {149 if ( left->baseType && right->baseType ) {150 return left->baseType == right->baseType;151 } else {152 return left->name == right->name;153 }154 }155 156 148 Type * TypeSubstitution::Substituter::postmutate( TypeInstType *inst ) { 157 149 BoundVarsType::const_iterator bound = boundVars.find( inst->name ); … … 166 158 // TODO: investigate preventing type variables from being bound to themselves in the first place. 167 159 if ( TypeInstType * replacement = dynamic_cast< TypeInstType * >( i->second ) ) { 168 if ( are_same( inst, replacement )) {160 if ( inst->name == replacement->name ) { 169 161 return inst; 170 162 }
Note: See TracChangeset
for help on using the changeset viewer.