Nevermind, it did work.

This commit is contained in:
Tom Alexander 2023-10-11 14:03:42 -04:00
parent a89339e472
commit 78a9b93f22
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
2 changed files with 15 additions and 9 deletions

View File

@ -1,12 +1,11 @@
use std::borrow::Cow;
use std::collections::BTreeSet;
use std::fmt::Debug;
use std::str::FromStr;
use super::diff::artificial_diff_scope;
use super::diff::artificial_owned_diff_scope;
use super::diff::compare_ast_node;
use super::diff::DiffEntry;
use super::diff::DiffLayer;
use super::diff::DiffStatus;
use super::sexp::unquote;
use super::sexp::Token;
@ -422,7 +421,7 @@ where
pub(crate) fn compare_property_list_of_list_of_list_of_ast_nodes<
'b,
's,
'x: 'b + 's,
'x,
R,
RG: Fn(R) -> Option<&'b Vec<Vec<Object<'s>>>>,
>(
@ -481,12 +480,8 @@ pub(crate) fn compare_property_list_of_list_of_list_of_ast_nodes<
for (e, r) in value.iter().zip(rust_value) {
child_status.push(compare_ast_node(source, e, r.into())?);
}
let diff_scope = DiffLayer {
name: Cow::Owned(emacs_field.to_string()),
children: child_status,
};
// let diff_scope = artificial_diff_scope(emacs_field, child_status)?;
return Ok(ComparePropertiesResult::DiffEntry(diff_scope.into()));
let diff_scope = artificial_owned_diff_scope(emacs_field, child_status)?;
return Ok(ComparePropertiesResult::DiffEntry(diff_scope));
}
Ok(ComparePropertiesResult::NoChange)
}

View File

@ -331,6 +331,17 @@ pub(crate) fn artificial_diff_scope<'b, 's>(
.into())
}
pub(crate) fn artificial_owned_diff_scope<'b, 's, 'x>(
name: &'x str,
children: Vec<DiffEntry<'b, 's>>,
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
Ok(DiffLayer {
name: name.to_string().into(),
children,
}
.into())
}
pub(crate) fn compare_ast_node<'b, 's>(
source: &'s str,
emacs: &'b Token<'s>,