Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/SatisfyAssertions.cpp

    re5c3811 rcdacb73  
    167167                // find candidates that unify with the desired type
    168168                AssnCandidateList matches;
    169 
    170                 std::vector<ast::SymbolTable::IdData> candidates;
    171                 auto kind = ast::SymbolTable::getSpecialFunctionKind(assn.first->name);
    172                 if (kind != ast::SymbolTable::SpecialFunctionKind::NUMBER_OF_KINDS) {
    173                         // prefilter special decls by argument type, if already known
    174                         ast::ptr<ast::Type> thisArgType = strict_dynamic_cast<const ast::PointerType *>(assn.first->get_type())->base
    175                                 .strict_as<ast::FunctionType>()->params[0]
    176                                 .strict_as<ast::ReferenceType>()->base;
    177                         sat.cand->env.apply(thisArgType);
    178 
    179                         std::string otypeKey = "";
    180                         if (thisArgType.as<ast::PointerType>()) otypeKey = Mangle::Encoding::pointer;
    181                         else if (!isUnboundType(thisArgType)) otypeKey = Mangle::mangle(thisArgType, Mangle::Type | Mangle::NoGenericParams);
    182 
    183                         candidates = sat.symtab.specialLookupId(kind, otypeKey);
    184                 }
    185                 else {
    186                         candidates = sat.symtab.lookupId(assn.first->name);
    187                 }
    188                 for ( const ast::SymbolTable::IdData & cdata : candidates ) {
     169                for ( const ast::SymbolTable::IdData & cdata : sat.symtab.lookupId( assn.first->name ) ) {
    189170                        const ast::DeclWithType * candidate = cdata.id;
    190171
Note: See TracChangeset for help on using the changeset viewer.