fix several issues with goal expansion, crashing after attribute_goals is called

This commit is contained in:
Mark Thom
2019-10-08 12:28:23 -06:00
parent 673fb31ae2
commit 3409db010f
8 changed files with 150 additions and 180 deletions

View File

@@ -15,11 +15,16 @@ enqueue_goals(Goals0) :-
enqueue_goals(Goals).
enqueue_goals(_).
'$print_exception'(E) :-
write_term('caught: ', [quoted(false)]),
writeq(E),
nl.
call_project_attributes([], _, _).
call_project_attributes([Module|Modules], QueryVars, AttrVars) :-
( catch(Module:project_attributes(QueryVars, AttrVars),
error(evaluation_error((Module:project_attributes)/2), project_attributes/2),
true) -> true
E, %error(evaluation_error((Module:project_attributes)/2), project_attributes/2),
'$print_exception'(E)) -> true
; true
),
call_project_attributes(Modules, QueryVars, AttrVars).
@@ -33,8 +38,8 @@ call_attribute_goals([Module | Modules], AttrVars) :-
call_goals([], _, []).
call_goals([AttrVar|AttrVars], Module, Goals) :-
( catch(Module:attribute_goals(AttrVar, Goals, RGoals),
error(evaluation_error((Module:attribute_goals)/3), attribute_goals/3),
atts:'$default_attr_list'(Module, AttrVar, Goals, RGoals)) -> true
E, %error(evaluation_error((Module:attribute_goals)/3), attribute_goals/3),
('$print_exception'(E), atts:'$default_attr_list'(Module, AttrVar, Goals, RGoals))) -> true
; true
),
call_goals(AttrVars, Module, RGoals).