Closed ogoffart closed 10 months ago
@jturcotte , @qarmin : do you have example to reproduce this?
I did "Show Preview" on the MainWindow component of https://github.com/jturcotte/chiptrack/blob/bbe9c9d/ui/main.slint
I didn't try to reduce it, but if those repro steps don't work for you I'll try.
When creating minimal project I found that this is logic bug
export component SelectableTableView {
forward-focus: focus_item;
focus_item := FocusScope {
}
}
thread 'main' panicked at /home/runner/work/slint/slint/internal/core/properties.rs:486:9:
Recursion detected
stack backtrace:
0: rust_begin_unwind
at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:597:5
1: core::panicking::panic_fmt
at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panicking.rs:72:14
2: i_slint_core::properties::Property<T>::get
3: core::ops::function::FnOnce::call_once
4: i_slint_core::properties::alloc_binding_holder::evaluate
5: i_slint_core::properties::Property<T>::get
6: <slint_lsp::preview::ui::slint_generatedPreviewUi::InnerPreviewUi as i_slint_core::item_tree::ItemTree_vtable_mod::ItemTree>::item_geometry
7: <slint_lsp::preview::ui::slint_generatedPreviewUi::InnerPreviewUi as const_field_offset::PinnedDrop>::drop::VT::item_geometry
8: i_slint_core::item_tree::ItemRc::is_visible
9: i_slint_core::item_tree::ItemRc::is_visible
10: i_slint_core::item_tree::ItemRc::is_visible
11: i_slint_core::item_tree::ItemRc::is_visible
12: i_slint_core::window::WindowInner::move_focus
13: i_slint_core::window::WindowInner::set_focus_item
14: slint_interpreter::eval::call_builtin_function
15: slint_interpreter::eval::eval_expression
16: slint_interpreter::dynamic_item_tree::ErasedItemTreeBox::run_setup_code
17: slint_lsp::preview::set_preview_factory::{{closure}}
18: i_slint_core::component_factory::ComponentFactory::new::{{closure}}
19: i_slint_core::items::component_container::ComponentContainer::ensure_updated
20: core::ops::function::FnOnce::call_once
21: i_slint_core::properties::alloc_binding_holder::evaluate
22: i_slint_core::properties::Property<T>::get
23: core::ops::function::FnOnce::call_once
24: i_slint_core::properties::alloc_binding_holder::evaluate
25: i_slint_core::properties::Property<T>::get
26: core::ops::function::FnOnce::call_once
27: i_slint_core::properties::alloc_binding_holder::evaluate
28: i_slint_core::properties::Property<T>::get
29: core::ops::function::FnOnce::call_once
30: i_slint_core::properties::alloc_binding_holder::evaluate
31: i_slint_core::properties::Property<T>::get
32: <slint_lsp::preview::ui::slint_generatedPreviewUi::InnerPreviewUi as const_field_offset::PinnedDrop>::drop::VT::layout_info
33: <i_slint_backend_winit::winitwindowadapter::WinitWindowAdapter as i_slint_core::window::WindowAdapter>::update_window_properties
34: i_slint_core::properties::PropertyTracker<DirtyHandler>::evaluate_as_dependency_root
35: i_slint_core::window::WindowInner::update_window_properties
36: core::ops::function::FnOnce::call_once{{vtable.shim}}
37: i_slint_core::timers::TimerList::maybe_activate_timers
38: i_slint_backend_winit::event_loop::EventLoopState::process_event
39: i_slint_backend_winit::event_loop::EventLoopState::run
40: <i_slint_backend_winit::Backend as i_slint_core::platform::Platform>::run_event_loop
41: slint_lsp::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
[Info - 3:07:20 PM] Connection to server got closed. Server will restart.
Panic in slint-lsp since 1.3.0, it worked in 1.2.2 and slint-viewer 1.3.0 also doesn't seem to have the issue.
The timing makes me think it's probably the same issue but I can't figure this out from the stack trace above without symbols. Let me know if this would better go in a new issue.
LSP log:
Originally posted by @jturcotte in https://github.com/slint-ui/slint/issues/3916#issuecomment-1811266349