make error handling for callable more ISO like.

This commit is contained in:
Vítor Santos Costa
2014-10-19 12:48:14 +01:00
parent 47d1bd5ecc
commit 0cd0ece207
18 changed files with 97 additions and 62 deletions

View File

@@ -265,7 +265,8 @@ flag_define(FlagName, FlagGroup, FlagType, DefaultValue, Description, Access, MH
; \+ memberchk(Access, [read_write, read_only, hidden, hidden_read_only]),
throw(error(domain_error(access, Access), message('Wrong access attribute, available are: read_write, read_only, hidden, hidden_read_only.', flag_define(FlagName, FlagGroup, FlagType, DefaultValue, Description, Access, Module:Handler))))
; \+ callable(Handler) ->
throw(error(type_error(callable, Handler), message('Flag handler needs to be callable.', flag_define(FlagName, FlagGroup, FlagType, DefaultValue, Description, Access, Module:Handler))))
strip_module(Handler, Mod, G),
throw(error(type_error(callable, G/0), message('Flag handler needs to be callable.', flag_define(FlagName, FlagGroup, FlagType, DefaultValue, Description, Access, Module:Handler))))
;
validate(FlagType, Module:Handler, DefaultValue, FlagName),
assertz('$defined_flag$'(FlagName, FlagGroup, FlagType, DefaultValue, Description, Access, Module:Handler)),