pike.git
/
src
/
program.c
version
»
Context lines:
10
20
40
80
file
none
3
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)