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

View File

@ -331,6 +331,17 @@ pub(crate) fn artificial_diff_scope<'b, 's>(
.into()) .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>( pub(crate) fn compare_ast_node<'b, 's>(
source: &'s str, source: &'s str,
emacs: &'b Token<'s>, emacs: &'b Token<'s>,