add proper error messages for keysort and sort, (re: issues #30, #32)

This commit is contained in:
Mark Thom
2018-05-02 21:33:03 -06:00
parent 0dec988337
commit 3c72441f68
4 changed files with 94 additions and 31 deletions

View File

@@ -486,6 +486,8 @@ pub(crate) trait CallPolicy: Any {
&ClauseType::Sort => {
let mut list = machine_st.try_from_list(temp_v!(1))?;
machine_st.check_sort_errors()?;
list.sort_unstable_by(|a1, a2| machine_st.compare_term_test(a1, a2));
machine_st.term_dedup(&mut list);
@@ -500,6 +502,8 @@ pub(crate) trait CallPolicy: Any {
let mut list = machine_st.try_from_list(temp_v!(1))?;
let mut key_pairs = Vec::new();
machine_st.check_keysort_errors()?;
for val in list {
let key = machine_st.project_onto_key(val.clone())?;
key_pairs.push((key, val.clone()));