Merge branch 'main' into clippy-1.74

This commit is contained in:
Ayaz 2023-12-02 20:09:06 -06:00 committed by GitHub
commit aaba3f4d82
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
320 changed files with 11155 additions and 18862 deletions

View file

@ -59,7 +59,9 @@ impl ReplAppMemory for ExpectMemory {
roc_str.as_str()
} else {
let offset = self.deref_usize(addr);
let length = self.deref_usize(addr + std::mem::size_of::<usize>());
let seamless_slice_mask = usize::MAX >> 1;
let length =
self.deref_usize(addr + std::mem::size_of::<usize>()) & seamless_slice_mask;
let _capacity = self.deref_usize(addr + 2 * std::mem::size_of::<usize>());
unsafe {

View file

@ -435,44 +435,6 @@ pub fn render_expects_in_memory<'a>(
)
}
pub fn render_dbgs_in_memory<'a>(
writer: &mut impl std::io::Write,
arena: &'a Bump,
expectations: &mut VecMap<ModuleId, Expectations>,
interns: &'a Interns,
layout_interner: &GlobalLayoutInterner<'a>,
memory: &ExpectMemory,
) -> std::io::Result<usize> {
let shared_ptr = memory.ptr;
let frame = ExpectFrame::at_offset(shared_ptr, ExpectSequence::START_OFFSET);
let module_id = frame.module_id;
let data = expectations.get_mut(&module_id).unwrap();
let filename = data.path.to_owned();
let source = std::fs::read_to_string(&data.path).unwrap();
let renderer = Renderer::new(
arena,
interns,
RenderTarget::ColorTerminal,
module_id,
filename,
&source,
);
render_dbg_failure(
writer,
&renderer,
arena,
expectations,
interns,
layout_interner,
shared_ptr,
ExpectSequence::START_OFFSET,
)
}
fn split_expect_lookups(subs: &Subs, lookups: &[ExpectLookup]) -> Vec<Symbol> {
lookups
.iter()
@ -494,53 +456,6 @@ fn split_expect_lookups(subs: &Subs, lookups: &[ExpectLookup]) -> Vec<Symbol> {
.collect()
}
#[allow(clippy::too_many_arguments)]
fn render_dbg_failure<'a>(
writer: &mut impl std::io::Write,
renderer: &Renderer,
arena: &'a Bump,
expectations: &mut VecMap<ModuleId, Expectations>,
interns: &'a Interns,
layout_interner: &GlobalLayoutInterner<'a>,
start: *const u8,
offset: usize,
) -> std::io::Result<usize> {
// we always run programs as the host
let target_info = (&target_lexicon::Triple::host()).into();
let frame = ExpectFrame::at_offset(start, offset);
let module_id = frame.module_id;
let failure_region = frame.region;
let dbg_symbol = unsafe { std::mem::transmute::<_, Symbol>(failure_region) };
let expect_region = Some(Region::zero());
let data = expectations.get_mut(&module_id).unwrap();
let current = match data.dbgs.get(&dbg_symbol) {
None => internal_error!("region {failure_region:?} not in list of dbgs"),
Some(current) => current,
};
let failure_region = current.region;
let subs = arena.alloc(&mut data.subs);
let (offset, expressions, _variables) = crate::get_values(
target_info,
arena,
subs,
interns,
layout_interner,
start,
frame.start_offset,
1,
);
renderer.render_dbg(writer, &expressions, expect_region, failure_region)?;
Ok(offset)
}
#[allow(clippy::too_many_arguments)]
fn render_expect_failure<'a>(
writer: &mut impl std::io::Write,
@ -637,7 +552,6 @@ impl ExpectSequence {
match atomic.load(Ordering::Acquire) {
0 => std::hint::spin_loop(),
1 => break ChildProcessMsg::Expect,
2 => break ChildProcessMsg::Dbg,
n => internal_error!("invalid atomic value set by the child: {n:#x}"),
}
}
@ -655,8 +569,7 @@ impl ExpectSequence {
pub enum ChildProcessMsg {
Expect = 1,
Dbg = 2,
Terminate = 3,
Terminate = 2,
}
struct ExpectFrame {