aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/crates/library/src/eager_sorted_vector.rs6
-rw-r--r--src/crates/primrose/src/selector.rs4
2 files changed, 6 insertions, 4 deletions
diff --git a/src/crates/library/src/eager_sorted_vector.rs b/src/crates/library/src/eager_sorted_vector.rs
index 0df0ab4..27d454b 100644
--- a/src/crates/library/src/eager_sorted_vector.rs
+++ b/src/crates/library/src/eager_sorted_vector.rs
@@ -167,7 +167,7 @@ impl<T: Ord> Indexable<T> for EagerSortedVec<T> {
(cond
[(null? xs) (cons xs null)]
[else (cons xs (first xs))]))
- (define (pre-first xs) (equal? xs (sort xs <)))
+ (define (pre-first xs) #t)
(define (post-first xs r) (equal? r (op-first xs)))
*ENDLIBSPEC*/
fn first(&self) -> Option<&T> {
@@ -182,7 +182,7 @@ impl<T: Ord> Indexable<T> for EagerSortedVec<T> {
(cond
[(null? xs) (cons xs null)]
[else (cons xs (last xs))]))
- (define (pre-last xs) (equal? xs (sort xs <)))
+ (define (pre-last xs) #t)
(define (post-last xs r) (equal? r (op-last xs)))
*ENDLIBSPEC*/
fn last(&self) -> Option<&T> {
@@ -198,7 +198,7 @@ impl<T: Ord> Indexable<T> for EagerSortedVec<T> {
[(>= n (length xs)) (cons xs null)]
[(< n 0) (cons xs null)]
[else (cons xs (list-ref xs n))]))
- (define (pre-nth xs) (equal? xs (sort xs <)))
+ (define (pre-nth xs) #t)
(define (post-nth xs n r) (equal? r (op-nth xs n)))
*ENDLIBSPEC*/
fn nth(&self, n: usize) -> Option<&T> {
diff --git a/src/crates/primrose/src/selector.rs b/src/crates/primrose/src/selector.rs
index fd6f294..944e558 100644
--- a/src/crates/primrose/src/selector.rs
+++ b/src/crates/primrose/src/selector.rs
@@ -120,11 +120,12 @@ impl ContainerSelector {
.map(|t| t.extract_prop_desc())
.collect();
- let bounds: Vec<Description> = tags
+ let mut bounds: Vec<Description> = tags
.iter()
.filter(|t| t.is_bound_tag())
.flat_map(|t| t.extract_bound_descs())
.collect();
+ bounds.sort();
let mut structs = Vec::new();
@@ -154,6 +155,7 @@ impl ContainerSelector {
self.analyser.prop_specs().get(p).expect(
&("Error: No property specification found for: ".to_string() + &p),
);
+ debug!("Checking bound {i}...");
gen_match_script(
p,
self.match_setup.get(i).unwrap(),