eolian: re-enable strict validation

This commit is contained in:
Daniel Kolesa 2016-02-18 10:06:33 +00:00
parent 7907c7b88c
commit eee5cc4fdc
4 changed files with 14 additions and 10 deletions

View File

@ -15,21 +15,21 @@ SUFFIXES = .eo .eo.c .eo.h .eo.legacy.h .eot .eot.h
%.eo.c: %.eo ${_EOLIAN_GEN_DEP}
$(AM_V_EOL) \
$(MKDIR_P) $(dir $@); \
$(EOLIAN_GEN) --legacy --silent-types $(EOLIAN_FLAGS) --gc -o $@ $<
EOLIAN_VALIDATE_STRICT=1 $(EOLIAN_GEN) --legacy $(EOLIAN_FLAGS) --gc -o $@ $<
%.eo.h: %.eo ${_EOLIAN_GEN_DEP}
$(AM_V_EOL) \
$(MKDIR_P) $(dir $@); \
EOLIAN_VERBOSE_TYPES=1 $(EOLIAN_GEN) $(EOLIAN_FLAGS) --gh -o $@ $<
EOLIAN_VALIDATE_STRICT=1 $(EOLIAN_GEN) $(EOLIAN_FLAGS) --gh -o $@ $<
%.eot.h: %.eot ${_EOLIAN_GEN_DEP}
$(AM_V_EOL) \
$(MKDIR_P) $(dir $@); \
EOLIAN_VERBOSE_TYPES=1 $(EOLIAN_GEN) $(EOLIAN_FLAGS) --gh -o $@ $<
EOLIAN_VALIDATE_STRICT=1 $(EOLIAN_GEN) $(EOLIAN_FLAGS) --gh -o $@ $<
%.eo.legacy.h: %.eo ${_EOLIAN_GEN_DEP}
$(AM_V_EOL) \
$(MKDIR_P) $(dir $@); \
$(EOLIAN_GEN) --legacy --silent-types $(EOLIAN_FLAGS) --gh -o $@ $<
EOLIAN_VALIDATE_STRICT=1 $(EOLIAN_GEN) --legacy $(EOLIAN_FLAGS) --gh -o $@ $<
CLEANFILES += $(BUILT_SOURCES)

View File

@ -174,9 +174,10 @@ _ef_map_cb(const Eina_Hash *hash EINA_UNUSED, const void *key EINA_UNUSED,
static Eina_Bool
_type_error(const Validator *vs, const Eolian_Type *tp, const char *msg)
{
Eina_Bool weak = !getenv("EOLIAN_VALIDATE_STRICT");
if (vs->silent_types)
return EINA_FALSE;
if (getenv("EOLIAN_VERBOSE_TYPES"))
return weak;
if (!weak)
{
fprintf(stderr, "eolian:%s:%d:%d: %s\n", tp->base.file, tp->base.line,
tp->base.column, msg);
@ -184,7 +185,7 @@ _type_error(const Validator *vs, const Eolian_Type *tp, const char *msg)
}
eina_log_print(_eolian_log_dom, EINA_LOG_LEVEL_WARN, tp->base.file, "",
tp->base.line, "%s at column %d", msg, tp->base.column);
return EINA_FALSE;
return EINA_TRUE;
}
static Eina_Bool
@ -212,8 +213,7 @@ _validate_type(const Validator *vs, const Eolian_Type *tp)
{
char buf[256];
snprintf(buf, sizeof(buf), "undefined type %s", tp->full_name);
_type_error(vs, tp, buf);
return EINA_TRUE; /* for now only warn */
return _type_error(vs, tp, buf);
}
return _validate_type(vs, tpp);
}
@ -246,7 +246,7 @@ _validate_type(const Validator *vs, const Eolian_Type *tp)
char buf[256];
snprintf(buf, sizeof(buf), "undefined class %s "
"(likely wrong namespacing)", tp->full_name);
_type_error(vs, tp, buf);
return _type_error(vs, tp, buf);
}
return EINA_TRUE;
}

View File

@ -1,3 +1,5 @@
type @extern Ecore_Cb: __undefined_type;
class Callback (Eo.Base)
{
legacy_prefix: null;

View File

@ -1,3 +1,5 @@
type @extern Ecore_Cb: __undefined_type;
class Generic (Eo.Base)
{
legacy_prefix: null;