zed-industries / zed

Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
https://zed.dev
Other
48.78k stars 2.93k forks source link

Joining two consecutive lines crashes Zed #9692

Closed mrnugget closed 6 months ago

mrnugget commented 7 months ago

Check for existing issues

Describe the bug / provide steps to reproduce it

Steps to reproduce:

  1. Open a file in a git repository
  2. Make sure it has 3+ lines
  3. Save file. Commit. Clean slate.
  4. Use editor: join lines twice

Expectation: 3 lines are joined together

What happens: Zed crashes


Thread "main" panicked with "point Point { row: 0, column: 62 } is beyond the end of a line with length 0" at crates/rope/src/rope.rs:818:21
   0: backtrace::backtrace::libunwind::trace
             at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/src/backtrace/libunwind.rs:93:5
      backtrace::backtrace::trace_unsynchronized::<<backtrace::capture::Backtrace>::create::{closure#0}>
             at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/src/backtrace/mod.rs:66:5
   1: backtrace::backtrace::trace::<<backtrace::capture::Backtrace>::create::{closure#0}>
             at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/src/backtrace/mod.rs:53:14
   2: <backtrace::capture::Backtrace>::create
             at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/src/capture.rs:176:9
   3: <backtrace::capture::Backtrace>::new
             at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.69/src/capture.rs:140:22
   4: Zed::init_panic_hook::{closure#0}
             at crates/zed/src/main.rs:596:29
   5: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/alloc/src/boxed.rs:2029:9
      std::panicking::rust_panic_with_hook
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:783:13
   6: std::panicking::begin_panic_handler::{{closure}}
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:657:13
   7: std::sys_common::backtrace::__rust_end_short_backtrace
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:171:18
   8: rust_begin_unwind
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:645:5
   9: core::panicking::panic_fmt
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/panicking.rs:72:14
  10: <rope::Chunk>::point_to_offset
             at crates/rope/src/rope.rs:818:21
  11: <rope::Rope>::point_to_offset::{closure#0}
             at crates/rope/src/rope.rs:329:36
  12: <core::option::Option<&rope::Chunk>>::map_or::<usize, <rope::Rope>::point_to_offset::{closure#0}>
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/option.rs:1126:24
  13: <rope::Rope>::point_to_offset
             at crates/rope/src/rope.rs:327:15
  14: <text::BufferSnapshot>::point_to_offset
             at crates/text/src/text.rs:1728:9
  15: <rope::point::Point as text::ToOffset>::to_offset
             at crates/text/src/text.rs:2537:9
  16: <text::BufferSnapshot>::anchor_at::<rope::point::Point>
             at crates/text/src/text.rs:1987:31
  17: <text::BufferSnapshot>::anchor_after::<rope::point::Point>
             at crates/text/src/text.rs:1983:9
  18: <git::diff::BufferDiff>::hunks_intersecting_range::{closure#3}
             at crates/git/src/diff.rs:138:66
  19: <core::iter::sources::from_fn::FromFn<<git::diff::BufferDiff>::hunks_intersecting_range::{closure#3}> as core::iter::traits::iterator::Iterator>::next
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/iter/sources/from_fn.rs:69:9
  20: <core::iter::adapters::map::Map<core::iter::sources::from_fn::FromFn<<git::diff::BufferDiff>::hunks_intersecting_range::{closure#3}>, <multi_buffer::MultiBufferSnapshot>::git_diff_hunks_in_range::{closure#0}::{closure#0}> as core::iter::traits::iterator::Iterator>::next
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/iter/adapters/map.rs:104:9
  21: <<core::iter::adapters::map::Map<core::iter::sources::from_fn::FromFn<<git::diff::BufferDiff>::hunks_intersecting_range::{closure#3}>, <multi_buffer::MultiBufferSnapshot>::git_diff_hunks_in_range::{closure#0}::{closure#0}> as core::iter::traits::iterator::Iterator>::next as core::ops::function::FnOnce<(&mut core::iter::adapters::map::Map<core::iter::sources::from_fn::FromFn<<git::diff::BufferDiff>::hunks_intersecting_range::{closure#3}>, <multi_buffer::MultiBufferSnapshot>::git_diff_hunks_in_range::{closure#0}::{closure#0}>,)>>::call_once
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250:5
  22: core::iter::adapters::flatten::and_then_or_clear::<core::iter::adapters::map::Map<core::iter::sources::from_fn::FromFn<<git::diff::BufferDiff>::hunks_intersecting_range::{closure#3}>, <multi_buffer::MultiBufferSnapshot>::git_diff_hunks_in_range::{closure#0}::{closure#0}>, git::diff::DiffHunk<u32>, <core::iter::adapters::map::Map<core::iter::sources::from_fn::FromFn<<git::diff::BufferDiff>::hunks_intersecting_range::{closure#3}>, <multi_buffer::MultiBufferSnapshot>::git_diff_hunks_in_range::{closure#0}::{closure#0}> as core::iter::traits::iterator::Iterator>::next>
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/iter/adapters/flatten.rs:830:13
  23: <core::iter::adapters::flatten::FlattenCompat<core::iter::sources::from_fn::FromFn<<multi_buffer::MultiBufferSnapshot>::git_diff_hunks_in_range::{closure#0}>, core::iter::adapters::map::Map<core::iter::sources::from_fn::FromFn<<git::diff::BufferDiff>::hunks_intersecting_range::{closure#3}>, <multi_buffer::MultiBufferSnapshot>::git_diff_hunks_in_range::{closure#0}::{closure#0}>> as core::iter::traits::iterator::Iterator>::next
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/iter/adapters/flatten.rs:598:36
  24: <core::iter::adapters::flatten::Flatten<core::iter::sources::from_fn::FromFn<<multi_buffer::MultiBufferSnapshot>::git_diff_hunks_in_range::{closure#0}>> as core::iter::traits::iterator::Iterator>::next
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/iter/adapters/flatten.rs:290:9
  25: <core::iter::adapters::map::Map<core::iter::adapters::flatten::Flatten<core::iter::sources::from_fn::FromFn<<multi_buffer::MultiBufferSnapshot>::git_diff_hunks_in_range::{closure#0}>>, <editor::element::EditorElement>::layout_git_gutters::{closure#0}> as core::iter::traits::iterator::Iterator>::next
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/iter/adapters/map.rs:104:9
  26: itertools::adaptors::coalesce::dedup_by::<core::iter::adapters::map::Map<core::iter::adapters::flatten::Flatten<core::iter::sources::from_fn::FromFn<<multi_buffer::MultiBufferSnapshot>::git_diff_hunks_in_range::{closure#0}>>, <editor::element::EditorElement>::layout_git_gutters::{closure#0}>, itertools::adaptors::coalesce::DedupEq>
             at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/src/adaptors/coalesce.rs:164:15
  27: itertools::adaptors::coalesce::dedup::<core::iter::adapters::map::Map<core::iter::adapters::flatten::Flatten<core::iter::sources::from_fn::FromFn<<multi_buffer::MultiBufferSnapshot>::git_diff_hunks_in_range::{closure#0}>>, <editor::element::EditorElement>::layout_git_gutters::{closure#0}>>
             at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/src/adaptors/coalesce.rs:180:5
  28: <core::iter::adapters::map::Map<core::iter::adapters::flatten::Flatten<core::iter::sources::from_fn::FromFn<<multi_buffer::MultiBufferSnapshot>::git_diff_hunks_in_range::{closure#0}>>, <editor::element::EditorElement>::layout_git_gutters::{closure#0}> as itertools::Itertools>::dedup
             at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/src/lib.rs:1246:9
  29: <editor::element::EditorElement>::layout_git_gutters
             at crates/editor/src/element.rs:1078:9
  30: <editor::element::EditorElement as gpui::element::Element>::after_layout::{closure#0}::{closure#0}
             at crates/editor/src/element.rs:3229:37
  31: <gpui::window::element_cx::ElementContext>::with_content_mask::<editor::element::EditorLayout, <editor::element::EditorElement as gpui::element::Element>::after_layout::{closure#0}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:628:26
  32: <editor::element::EditorElement as gpui::element::Element>::after_layout::{closure#0}
             at crates/editor/src/element.rs:3088:13
  33: <gpui::window::element_cx::ElementContext>::with_text_style::<<editor::element::EditorElement as gpui::element::Element>::after_layout::{closure#0}, editor::element::EditorLayout>
             at crates/gpui/src/window/element_cx.rs:573:26
  34: <editor::element::EditorElement as gpui::element::Element>::after_layout
             at crates/editor/src/element.rs:3087:9
  35: <gpui::element::Drawable<editor::element::EditorElement>>::after_layout
             at crates/gpui/src/element.rs:291:36
  36: <gpui::element::Drawable<editor::element::EditorElement> as gpui::element::ElementObject>::after_layout
             at crates/gpui/src/element.rs:381:9
  37: <gpui::element::AnyElement>::after_layout
             at crates/gpui/src/element.rs:425:9
  38: <gpui::view::AnyView as gpui::element::Element>::after_layout::{closure#1}
             at crates/gpui/src/view.rs:350:17
  39: <gpui::window::element_cx::ElementContext>::with_element_id::<core::option::Option<gpui::element::AnyElement>, gpui::window::ElementId, <gpui::view::AnyView as gpui::element::Element>::after_layout::{closure#1}>
             at crates/gpui/src/window/element_cx.rs:609:26
  40: <gpui::view::AnyView as gpui::element::Element>::after_layout
             at crates/gpui/src/view.rs:348:13
  41: <gpui::element::Drawable<gpui::view::AnyView>>::after_layout
             at crates/gpui/src/element.rs:291:36
  42: <gpui::element::Drawable<gpui::view::AnyView> as gpui::element::ElementObject>::after_layout
             at crates/gpui/src/element.rs:381:9
  43: <gpui::element::AnyElement>::after_layout
             at crates/gpui/src/element.rs:425:9
  44: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}
             at crates/gpui/src/elements/div.rs:1121:25
  45: <gpui::window::element_cx::ElementContext>::with_element_offset::<(), <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:644:20
  46: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}
             at crates/gpui/src/elements/div.rs:1119:17
  47: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}
             at crates/gpui/src/elements/div.rs:1318:38
  48: <gpui::window::element_cx::ElementContext>::with_content_mask::<(core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>), <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:632:13
  49: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}
             at crates/gpui/src/elements/div.rs:1303:21
  50: <gpui::window::element_cx::ElementContext>::with_text_style::<<gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}, (core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>)>
             at crates/gpui/src/window/element_cx.rs:577:13
  51: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}
             at crates/gpui/src/elements/div.rs:1302:17
  52: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}
             at crates/gpui/src/window/element_cx.rs:713:39
  53: <gpui::window::element_cx::ElementContext>::with_element_id::<core::option::Option<gpui::window::element_cx::Hitbox>, gpui::window::ElementId, <gpui::window::element_cx::ElementContext>::with_element_state<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:614:13
  54: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:711:9
  55: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>
             at crates/gpui/src/elements/div.rs:1280:9
  56: <gpui::elements::div::Div as gpui::element::Element>::after_layout
             at crates/gpui/src/elements/div.rs:1114:9
  57: <gpui::element::Drawable<gpui::elements::div::Div>>::after_layout
             at crates/gpui/src/element.rs:291:36
  58: <gpui::element::Drawable<gpui::elements::div::Div> as gpui::element::ElementObject>::after_layout
             at crates/gpui/src/element.rs:381:9
  59: <gpui::element::AnyElement>::after_layout
             at crates/gpui/src/element.rs:425:9
  60: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}
             at crates/gpui/src/elements/div.rs:1121:25
  61: <gpui::window::element_cx::ElementContext>::with_element_offset::<(), <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:644:20
  62: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}
             at crates/gpui/src/elements/div.rs:1119:17
  63: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}
             at crates/gpui/src/elements/div.rs:1318:38
  64: <gpui::window::element_cx::ElementContext>::with_content_mask::<(core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>), <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:628:26
  65: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}
             at crates/gpui/src/elements/div.rs:1303:21
  66: <gpui::window::element_cx::ElementContext>::with_text_style::<<gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}, (core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>)>
             at crates/gpui/src/window/element_cx.rs:577:13
  67: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}
             at crates/gpui/src/elements/div.rs:1302:17
  68: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}
             at crates/gpui/src/window/element_cx.rs:713:39
  69: <gpui::window::element_cx::ElementContext>::with_element_id::<core::option::Option<gpui::window::element_cx::Hitbox>, gpui::window::ElementId, <gpui::window::element_cx::ElementContext>::with_element_state<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:614:13
  70: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:711:9
  71: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>
             at crates/gpui/src/elements/div.rs:1280:9
  72: <gpui::elements::div::Div as gpui::element::Element>::after_layout
             at crates/gpui/src/elements/div.rs:1114:9
  73: <gpui::element::Drawable<gpui::elements::div::Div>>::after_layout
             at crates/gpui/src/element.rs:291:36
  74: <gpui::element::Drawable<gpui::elements::div::Div> as gpui::element::ElementObject>::after_layout
             at crates/gpui/src/element.rs:381:9
  75: <gpui::element::AnyElement>::after_layout
             at crates/gpui/src/element.rs:425:9
  76: <gpui::element::AnyElement>::layout::{closure#0}
             at crates/gpui/src/element.rs:450:63
  77: <gpui::window::element_cx::ElementContext>::with_absolute_element_offset::<(), <gpui::element::AnyElement>::layout::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:662:22
  78: <gpui::element::AnyElement>::layout
             at crates/gpui/src/element.rs:450:9
  79: <gpui::view::AnyView as gpui::element::Element>::after_layout::{closure#0}
             at crates/gpui/src/view.rs:330:21
  80: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::view::AnyViewState, core::option::Option<gpui::element::AnyElement>, <gpui::view::AnyView as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}
             at crates/gpui/src/window/element_cx.rs:766:43
  81: <gpui::window::element_cx::ElementContext>::with_element_id::<core::option::Option<gpui::element::AnyElement>, gpui::window::ElementId, <gpui::window::element_cx::ElementContext>::with_element_state<gpui::view::AnyViewState, core::option::Option<gpui::element::AnyElement>, <gpui::view::AnyView as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:609:26
  82: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::view::AnyViewState, core::option::Option<gpui::element::AnyElement>, <gpui::view::AnyView as gpui::element::Element>::after_layout::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:711:9
  83: <gpui::view::AnyView as gpui::element::Element>::after_layout
             at crates/gpui/src/view.rs:305:13
  84: <gpui::element::Drawable<gpui::view::AnyView>>::after_layout
             at crates/gpui/src/element.rs:291:36
  85: <gpui::element::Drawable<gpui::view::AnyView> as gpui::element::ElementObject>::after_layout
             at crates/gpui/src/element.rs:381:9
  86: <gpui::element::AnyElement>::after_layout
             at crates/gpui/src/element.rs:425:9
  87: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}
             at crates/gpui/src/elements/div.rs:1121:25
  88: <gpui::window::element_cx::ElementContext>::with_element_offset::<(), <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:644:20
  89: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}
             at crates/gpui/src/elements/div.rs:1119:17
  90: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}
             at crates/gpui/src/elements/div.rs:1318:38
  91: <gpui::window::element_cx::ElementContext>::with_content_mask::<(core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>), <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:632:13
  92: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}
             at crates/gpui/src/elements/div.rs:1303:21
  93: <gpui::window::element_cx::ElementContext>::with_text_style::<<gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}, (core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>)>
             at crates/gpui/src/window/element_cx.rs:577:13
  94: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}
             at crates/gpui/src/elements/div.rs:1302:17
  95: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}
             at crates/gpui/src/window/element_cx.rs:713:39
  96: <gpui::window::element_cx::ElementContext>::with_element_id::<core::option::Option<gpui::window::element_cx::Hitbox>, gpui::window::ElementId, <gpui::window::element_cx::ElementContext>::with_element_state<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:614:13
  97: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:711:9
  98: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>
             at crates/gpui/src/elements/div.rs:1280:9
  99: <gpui::elements::div::Div as gpui::element::Element>::after_layout
             at crates/gpui/src/elements/div.rs:1114:9
 100: <gpui::element::Drawable<gpui::elements::div::Div>>::after_layout
             at crates/gpui/src/element.rs:291:36
 101: <gpui::element::Drawable<gpui::elements::div::Div> as gpui::element::ElementObject>::after_layout
             at crates/gpui/src/element.rs:381:9
 102: <gpui::element::AnyElement>::after_layout
             at crates/gpui/src/element.rs:425:9
 103: <gpui::element::AnyElement as gpui::element::Element>::after_layout
             at crates/gpui/src/element.rs:470:9
 104: <gpui::element::Drawable<gpui::element::AnyElement>>::after_layout
             at crates/gpui/src/element.rs:291:36
 105: <gpui::element::Drawable<gpui::element::AnyElement> as gpui::element::ElementObject>::after_layout
             at crates/gpui/src/element.rs:381:9
 106: <gpui::element::AnyElement>::after_layout
             at crates/gpui/src/element.rs:425:9
 107: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}
             at crates/gpui/src/elements/div.rs:1121:25
 108: <gpui::window::element_cx::ElementContext>::with_element_offset::<(), <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:644:20
 109: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}
             at crates/gpui/src/elements/div.rs:1119:17
 110: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}
             at crates/gpui/src/elements/div.rs:1318:38
 111: <gpui::window::element_cx::ElementContext>::with_content_mask::<(core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>), <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:628:26
 112: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}
             at crates/gpui/src/elements/div.rs:1303:21
 113: <gpui::window::element_cx::ElementContext>::with_text_style::<<gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}, (core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>)>
             at crates/gpui/src/window/element_cx.rs:577:13
 114: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}
             at crates/gpui/src/elements/div.rs:1302:17
 115: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}
             at crates/gpui/src/window/element_cx.rs:713:39
 116: <gpui::window::element_cx::ElementContext>::with_element_id::<core::option::Option<gpui::window::element_cx::Hitbox>, gpui::window::ElementId, <gpui::window::element_cx::ElementContext>::with_element_state<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:614:13
 117: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:711:9
 118: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>
             at crates/gpui/src/elements/div.rs:1280:9
 119: <gpui::elements::div::Div as gpui::element::Element>::after_layout
             at crates/gpui/src/elements/div.rs:1114:9
 120: <gpui::element::Drawable<gpui::elements::div::Div>>::after_layout
             at crates/gpui/src/element.rs:291:36
 121: <gpui::element::Drawable<gpui::elements::div::Div> as gpui::element::ElementObject>::after_layout
             at crates/gpui/src/element.rs:381:9
 122: <gpui::element::AnyElement>::after_layout
             at crates/gpui/src/element.rs:425:9
 123: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}
             at crates/gpui/src/elements/div.rs:1121:25
 124: <gpui::window::element_cx::ElementContext>::with_element_offset::<(), <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:644:20
 125: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}
             at crates/gpui/src/elements/div.rs:1119:17
 126: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}
             at crates/gpui/src/elements/div.rs:1318:38
 127: <gpui::window::element_cx::ElementContext>::with_content_mask::<(core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>), <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:632:13
 128: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}
             at crates/gpui/src/elements/div.rs:1303:21
 129: <gpui::window::element_cx::ElementContext>::with_text_style::<<gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}, (core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>)>
             at crates/gpui/src/window/element_cx.rs:577:13
 130: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}
             at crates/gpui/src/elements/div.rs:1302:17
 131: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}
             at crates/gpui/src/window/element_cx.rs:713:39
 132: <gpui::window::element_cx::ElementContext>::with_element_id::<core::option::Option<gpui::window::element_cx::Hitbox>, gpui::window::ElementId, <gpui::window::element_cx::ElementContext>::with_element_state<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:614:13
 133: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:711:9
 134: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>
             at crates/gpui/src/elements/div.rs:1280:9
 135: <gpui::elements::div::Div as gpui::element::Element>::after_layout
             at crates/gpui/src/elements/div.rs:1114:9
 136: <gpui::element::Drawable<gpui::elements::div::Div>>::after_layout
             at crates/gpui/src/element.rs:291:36
 137: <gpui::element::Drawable<gpui::elements::div::Div> as gpui::element::ElementObject>::after_layout
             at crates/gpui/src/element.rs:381:9
 138: <gpui::element::AnyElement>::after_layout
             at crates/gpui/src/element.rs:425:9
 139: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}
             at crates/gpui/src/elements/div.rs:1121:25
 140: <gpui::window::element_cx::ElementContext>::with_element_offset::<(), <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:644:20
 141: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}
             at crates/gpui/src/elements/div.rs:1119:17
 142: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}
             at crates/gpui/src/elements/div.rs:1318:38
 143: <gpui::window::element_cx::ElementContext>::with_content_mask::<(core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>), <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:628:26
 144: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}
             at crates/gpui/src/elements/div.rs:1303:21
 145: <gpui::window::element_cx::ElementContext>::with_text_style::<<gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}, (core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>)>
             at crates/gpui/src/window/element_cx.rs:577:13
 146: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}
             at crates/gpui/src/elements/div.rs:1302:17
 147: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}
             at crates/gpui/src/window/element_cx.rs:766:43
 148: <gpui::window::element_cx::ElementContext>::with_element_id::<core::option::Option<gpui::window::element_cx::Hitbox>, gpui::window::ElementId, <gpui::window::element_cx::ElementContext>::with_element_state<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:609:26
 149: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:711:9
 150: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>
             at crates/gpui/src/elements/div.rs:1280:9
 151: <gpui::elements::div::Div as gpui::element::Element>::after_layout
             at crates/gpui/src/elements/div.rs:1114:9
 152: <gpui::elements::div::Stateful<gpui::elements::div::Div> as gpui::element::Element>::after_layout
             at crates/gpui/src/elements/div.rs:2257:9
 153: <gpui::element::Drawable<gpui::elements::div::Stateful<gpui::elements::div::Div>>>::after_layout
             at crates/gpui/src/element.rs:291:36
 154: <gpui::element::Drawable<gpui::elements::div::Stateful<gpui::elements::div::Div>> as gpui::element::ElementObject>::after_layout
             at crates/gpui/src/element.rs:381:9
 155: <gpui::element::AnyElement>::after_layout
             at crates/gpui/src/element.rs:425:9
 156: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}
             at crates/gpui/src/elements/div.rs:1121:25
 157: <gpui::window::element_cx::ElementContext>::with_element_offset::<(), <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:644:20
 158: <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}
             at crates/gpui/src/elements/div.rs:1119:17
 159: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}
             at crates/gpui/src/elements/div.rs:1318:38
 160: <gpui::window::element_cx::ElementContext>::with_content_mask::<(core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>), <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:632:13
 161: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}
             at crates/gpui/src/elements/div.rs:1303:21
 162: <gpui::window::element_cx::ElementContext>::with_text_style::<<gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}::{closure#1}, (core::option::Option<gpui::window::element_cx::Hitbox>, core::option::Option<gpui::elements::div::InteractiveElementState>)>
             at crates/gpui/src/window/element_cx.rs:573:26
 163: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}
             at crates/gpui/src/elements/div.rs:1302:17
 164: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}
             at crates/gpui/src/window/element_cx.rs:713:39
 165: <gpui::window::element_cx::ElementContext>::with_element_id::<core::option::Option<gpui::window::element_cx::Hitbox>, gpui::window::ElementId, <gpui::window::element_cx::ElementContext>::with_element_state<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:614:13
 166: <gpui::window::element_cx::ElementContext>::with_element_state::<gpui::elements::div::InteractiveElementState, core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Interactivity>::after_layout<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:711:9
 167: <gpui::elements::div::Interactivity>::after_layout::<core::option::Option<gpui::window::element_cx::Hitbox>, <gpui::elements::div::Div as gpui::element::Element>::after_layout::{closure#0}>
             at crates/gpui/src/elements/div.rs:1280:9
 168: <gpui::elements::div::Div as gpui::element::Element>::after_layout
             at crates/gpui/src/elements/div.rs:1114:9
 169: <gpui::element::Drawable<gpui::elements::div::Div>>::after_layout
             at crates/gpui/src/element.rs:291:36
 170: <gpui::element::Drawable<gpui::elements::div::Div> as gpui::element::ElementObject>::after_layout
             at crates/gpui/src/element.rs:381:9
 171: <gpui::element::AnyElement>::after_layout
             at crates/gpui/src/element.rs:425:9
 172: <gpui::view::AnyView as gpui::element::Element>::after_layout::{closure#1}
             at crates/gpui/src/view.rs:350:17
 173: <gpui::window::element_cx::ElementContext>::with_element_id::<core::option::Option<gpui::element::AnyElement>, gpui::window::ElementId, <gpui::view::AnyView as gpui::element::Element>::after_layout::{closure#1}>
             at crates/gpui/src/window/element_cx.rs:609:26
 174: <gpui::view::AnyView as gpui::element::Element>::after_layout
             at crates/gpui/src/view.rs:348:13
 175: <gpui::element::Drawable<gpui::view::AnyView>>::after_layout
             at crates/gpui/src/element.rs:291:36
 176: <gpui::element::Drawable<gpui::view::AnyView> as gpui::element::ElementObject>::after_layout
             at crates/gpui/src/element.rs:381:9
 177: <gpui::element::AnyElement>::after_layout
             at crates/gpui/src/element.rs:425:9
 178: <gpui::element::AnyElement>::layout::{closure#0}
             at crates/gpui/src/element.rs:450:63
 179: <gpui::window::element_cx::ElementContext>::with_absolute_element_offset::<(), <gpui::element::AnyElement>::layout::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:662:22
 180: <gpui::element::AnyElement>::layout
             at crates/gpui/src/element.rs:450:9
 181: <gpui::window::element_cx::ElementContext>::draw_roots
             at crates/gpui/src/window/element_cx.rs:356:9
 182: <gpui::window::WindowContext>::draw::{closure#0}
             at crates/gpui/src/window.rs:998:40
 183: <gpui::window::WindowContext>::with_element_context::<(), <gpui::window::WindowContext>::draw::{closure#0}>
             at crates/gpui/src/window/element_cx.rs:213:9
 184: <gpui::window::WindowContext>::draw
             at crates/gpui/src/window.rs:998:9
 185: <gpui::window::Window>::new::{closure#2}::{closure#1}::{closure#0}
             at crates/gpui/src/window.rs:467:33
 186: <gpui::app::AppContext as gpui::Context>::update_window::<(), <gpui::window::Window>::new::{closure#2}::{closure#1}::{closure#0}>::{closure#0}
             at crates/gpui/src/app.rs:1274:26
 187: <gpui::app::AppContext>::update::<core::result::Result<(), anyhow::Error>, <gpui::app::AppContext as gpui::Context>::update_window<(), <gpui::window::Window>::new::{closure#2}::{closure#1}::{closure#0}>::{closure#0}>
             at crates/gpui/src/app.rs:354:22
 188: <gpui::app::AppContext as gpui::Context>::update_window::<(), <gpui::window::Window>::new::{closure#2}::{closure#1}::{closure#0}>
             at crates/gpui/src/app.rs:1265:9
 189: <gpui::app::async_context::AsyncAppContext as gpui::Context>::update_window::<(), <gpui::window::Window>::new::{closure#2}::{closure#1}::{closure#0}>
             at crates/gpui/src/app/async_context.rs:70:9
 190: <gpui::window::AnyWindowHandle>::update::<gpui::app::async_context::AsyncAppContext, (), <gpui::window::Window>::new::{closure#2}::{closure#1}::{closure#0}>
             at crates/gpui/src/window.rs:2669:9
 191: <gpui::window::Window>::new::{closure#2}::{closure#1}
             at crates/gpui/src/window.rs:465:25
 192: util::measure::<(), <gpui::window::Window>::new::{closure#2}::{closure#1}>
             at crates/util/src/util.rs:175:9
 193: <gpui::window::Window>::new::{closure#2}
             at crates/gpui/src/window.rs:464:21
 194: <alloc::boxed::Box<dyn core::ops::function::FnMut<(), Output = ()>> as core::ops::function::FnMut<()>>::call_mut
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/alloc/src/boxed.rs:2022:9
 195: gpui::platform::mac::window::step
             at crates/gpui/src/platform/mac/window.rs:1584:9
 196: <unknown>
 197: <unknown>
 198: <unknown>
 199: <unknown>
 200: <unknown>
 201: <unknown>
 202: <unknown>
 203: <unknown>
 204: <unknown>
 205: <unknown>
 206: <unknown>
 207: <unknown>
 208: <unknown>
 209: <unknown>
 210: <unknown>
 211: <() as objc::message::MessageArguments>::invoke::<()>
             at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc-0.2.7/src/message/mod.rs:128:17
 212: objc::message::platform::send_unverified::<objc::runtime::Object, (), ()>
             at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc-0.2.7/src/message/apple/mod.rs:27:9
 213: objc::message::send_message::<objc::runtime::Object, (), ()>
             at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc-0.2.7/src/message/mod.rs:178:5
      <*mut objc::runtime::Object as cocoa::appkit::NSApplication>::run
             at /Users/thorstenball/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cocoa-0.25.0/src/appkit.rs:603:9
 214: <gpui::platform::mac::platform::MacPlatform as gpui::platform::Platform>::run
             at crates/gpui/src/platform/mac/platform.rs:390:13
 215: <gpui::app::App>::run::<Zed::main::{closure#3}>
             at crates/gpui/src/app.rs:142:9
 216: Zed::main
             at crates/zed/src/main.rs:119:5
 217: <fn() as core::ops::function::FnOnce<()>>::call_once
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250:5
 218: std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:155:18
 219: std::rt::lang_start::<()>::{closure#0}
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/rt.rs:166:18
 220: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:284:13
      std::panicking::try::do_call
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:552:40
      std::panicking::try
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:516:19
      std::panic::catch_unwind
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panic.rs:142:14
      std::rt::lang_start_internal::{{closure}}
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/rt.rs:148:48
      std::panicking::try::do_call
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:552:40
      std::panicking::try
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:516:19
      std::panic::catch_unwind
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panic.rs:142:14
      std::rt::lang_start_internal
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/rt.rs:148:20
 221: std::rt::lang_start::<()>
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/rt.rs:165:17
 222: _main

Video:

In here it didn't happen on the first try, but crashes after

https://github.com/zed-industries/zed/assets/1185253/e5641861-1966-49ac-956b-b31efd78c955

Environment

Zed: v0.129.0 (Zed Nightly) OS: macOS 14.2.1 Memory: 128 GiB Architecture: aarch64

If applicable, add mockups / screenshots to help explain present your vision of the feature

No response

If applicable, attach your ~/Library/Logs/Zed/Zed.log file to this issue.

No response

mrnugget commented 6 months ago

At first I couldn't reproduce it and was close to closing the ticket, but then it started to show up again, consistently:

Here's more reproductions:

https://github.com/zed-industries/zed/assets/1185253/342ac17d-9ea4-4724-9914-2b2f1ddf2cf6

With these file contents:

yup
Line 1
Line 2 - modified
Line 3 - modified
check this out! but not this
we're splicing edits into the git blame data!!
END LINE
no off by one errors!
here we are
Here is another line
and yet another line
We can also add one here
mrnugget commented 6 months ago

Can also reproduce with these contents:

Line 0
Line 1
Line 2
Line 3
JosephTLyons commented 6 months ago

Closing this out, as its now in v0.131.0-pre.