| OLD | NEW |
| (Empty) | |
| 1 :- [dart]. |
| 2 |
| 3 contains_trans(X, Y) :- contains(X, Y). |
| 4 contains_trans(X, Y) :- contains(X, U), contains_trans(U, Y). |
| 5 |
| 6 callchain(X, Y, [X, Y]) :- calls(X, Y). |
| 7 callchain(X, Z, [X | L1]) :- calls(X, Y), callchain(Y, Z, L1). |
| 8 |
| 9 name(Id, (Class, Function)) :- function(Id, Function), contains(C, Id), class(C,
Class). |
| 10 |
| 11 can_be_called_from_main(X) :- callchain(main, X, _). |
| 12 |
| 13 enqueued(Source, Target, [Source, Target]) :- enqueues(Source, Target). |
| 14 enqueued(Source, Target, [Source | Rest]) :- |
| 15 enqueues(Source, Intermediate), |
| 16 enqueued(Intermediate, Target, Rest). |
| 17 |
| 18 why_enqueued(ClassName, FunctionName, Reason) :- |
| 19 class(C, ClassName), |
| 20 function(F, FunctionName), |
| 21 contains(C, F), |
| 22 enqueued(main, F, Reason). |
| OLD | NEW |