emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/sweeprolog 922895279e 1/2: FIXED: find next predicate defi


From: ELPA Syncer
Subject: [nongnu] elpa/sweeprolog 922895279e 1/2: FIXED: find next predicate definition more reliably
Date: Tue, 3 Jan 2023 18:00:22 -0500 (EST)

branch: elpa/sweeprolog
commit 922895279eb090c1a63ddb35dfe4e7194865e8b1
Author: Eshel Yaron <me@eshelyaron.com>
Commit: Eshel Yaron <me@eshelyaron.com>

    FIXED: find next predicate definition more reliably
    
    * sweep.pl (sweeprolog_beginning_of_last_predicate/2)
    (sweeprolog_beginning_of_last_predicate/2): explicitly sort results,
    don't assume xref_defined/3 yields ordered results.
---
 sweep.pl | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/sweep.pl b/sweep.pl
index 5b0b13b3b1..f859eeac1f 100644
--- a/sweep.pl
+++ b/sweep.pl
@@ -755,13 +755,19 @@ sweep_beginning_of_last_predicate(Start, Next) :-
                 L < Start
             ),
             Ls),
-    reverse(Ls, [Next|_]).
+    sort(Ls, Sorted),
+    reverse(Sorted, [Next|_]).
 
 sweep_beginning_of_next_predicate(Start, Next) :-
     sweep_source_id(Path),
     xref_source(Path, [comments(store)]),
-    xref_defined(Path, _, H), xref_definition_line(H, Next),
-    Start < Next.
+    findall(L,
+            (   xref_defined(Path, _, H),
+                xref_definition_line(H, L),
+                Start < L
+            ),
+            Ls),
+    sort(Ls, [Next|_]).
 
 sweep_source_id(Path) :-
     sweep_main_thread,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]