diff --git a/crates/oa-core/src/language/analysis_source/mixed/project/ordinary_index/rename/tests.rs b/crates/oa-core/src/language/analysis_source/mixed/project/ordinary_index/rename/tests.rs index 111e2f17..137bcb5b 100644 --- a/crates/oa-core/src/language/analysis_source/mixed/project/ordinary_index/rename/tests.rs +++ b/crates/oa-core/src/language/analysis_source/mixed/project/ordinary_index/rename/tests.rs @@ -478,9 +478,16 @@ fn combined_shrink_offsets_typed_growth_and_counts_untouched_files() { } #[test] fn deep_and_wide_equality_and_late_refusal_drop_on_small_stack() { + fn phase(message: &str) { + use std::io::Write; + let mut stderr = std::io::stderr().lock(); + writeln!(stderr, "rename small-stack: {message}").unwrap(); + stderr.flush().unwrap(); + } std::thread::Builder::new() .stack_size(128 * 1024) .spawn(|| { + phase("entered worker"); for (expression, result, nodes) in [ ( format!("{}1{}", "abs(".repeat(127), ")".repeat(127)), @@ -497,16 +504,30 @@ fn deep_and_wide_equality_and_late_refusal_drop_on_small_stack() { "calculation c \"C\" id \"{}\" {{ result {result}; body {expression}; }}", id(2) )); + phase(if nodes == 128 { + "deep: before authored" + } else { + "wide: before authored" + }); let source = authored(&bundle); + phase("after authored; before original clone"); assert_eq!(source.indexed.resolved.expressions.len(), nodes); let original = source.project().clone(); - drop(source.plan_rename(&original).unwrap()); + phase("after original clone; before plan"); + let plan = source.plan_rename(&original).unwrap(); + phase("after plan; before plan drop"); + drop(plan); + phase("after plan drop; before desired clone"); let mut desired = original.clone(); desired.definitions.get_mut(&id(2)).unwrap().alias = "p".into(); + phase("before collision rejection"); rejected(&bundle, &desired, "collide"); + phase("after collision rejection; before second desired clone"); let mut desired = original.clone(); calculation(&mut desired, 2).body = a::Binding::Unbound; + phase("before semantic rejection"); rejected(&bundle, &desired, "non-name"); + phase("after semantic rejection; before iteration drop"); } }) .unwrap()