pike.git / src / program.c

version» Context lines:

pike.git/src/program.c:7091:    }    last_inh = funp->inherit_offset;    depth = inh->inherit_level;    id = i;    }    } else {    CDFPRINTF("Found %d\n", i);    return i;    }    } -  if (id < 0) id = tentative; +  if ((id < 0) && (tentative >= 0)) { +  // Usually due to forward-referring types. The tentative match +  // is often correct, but may in some cases be wrong eg due to +  // having fall back implementations that use the mixed type. +  yytype_report(REPORT_WARNING, +  NULL, 0, ID_FROM_INT(prog, tentative)->type, +  NULL, 0, type, +  0, "Variant type mismatch in second pass for %S.", +  name); +  id = tentative; +  }    CDFPRINTF("Found %d\n", id);    return id;   }      /**    * This is the dispatcher function for variant functions.    *    * cf end_first_pass().    */   static void f_dispatch_variant(INT32 args)