slint-ui/slint · error
ExtraBuiltinFunctionCall `{other}`
Error message
ExtraBuiltinFunctionCall `{other}` What it means
eval_layout.rs implements the interpreter's internal 'extra builtin functions' emitted by layout lowering — the big arms evaluate the box/grid layout solving builtins taking float arrays, paddings and enum arguments. Any other builtin name falls through to `unimplemented!("ExtraBuiltinFunctionCall `{other}`")`, panicking when the expression is evaluated. This almost always indicates a compiler/runtime version mismatch: the compiler that produced the expression emits a builtin the interpreter library does not know.
Source
Thrown at internal/interpreter/eval_layout.rs:331
"flexbox_layout_info_cross_axis" => {
let (ch, cv) = (to_cells(&a[0]), to_cells(&a[1]));
let fp = to_flex_props(&a[2]);
i_slint_core::layout::flexbox_layout_info_cross_axis(
Slice::from_slice(&ch),
Slice::from_slice(&cv),
Slice::from_slice(&fp),
to_f32(&a[3]),
to_f32(&a[4]),
&to_padding(&a[5]),
&to_padding(&a[6]),
to_enum(&a[7]),
to_enum(&a[8]),
to_enum(&a[9]),
to_f32(&a[10]),
)
.into()
}
other => unimplemented!("ExtraBuiltinFunctionCall `{other}`"),
}
}
fn eval_info(ctx: &mut EvalContext, e: &Expression) -> LayoutInfo {
eval_expression(ctx, e).try_into().unwrap_or_default()
}
/// One flexbox cell as seen by the measure callback, after expanding
/// repeaters (a repeater contributes one entry per instance).
struct FlatCell<'a> {
kind: FlatCellKind<'a>,
w4h_only: bool,
}
enum FlatCellKind<'a> {
Static {
h_info: &'a Expression,
v_info: &'a Expression,View on GitHub (pinned to a9ea814a58)
Solutions
- Rebuild/reinstall the tool (viewer, LSP, slintpad) so compiler and interpreter crates come from the same slint version.
- Check for duplicate slint crate versions in the dependency tree (cargo tree -d) and unify them.
- Avoid the layout construct that triggers the call in interpreter contexts until versions match.
- Report the builtin name from the panic message upstream if it occurs with fully matched versions.
Defensive patterns
Strategy: fallback
Prevention
- Build viewer/LSP/tools from one slint revision so compiler-emitted builtins always match the interpreter runtime.
- Check `cargo tree -d` for duplicate i-slint-* crate versions and unify them.
- Avoid experimental layout features in interpreter-run markup until the release notes confirm interpreter support.
When it happens
Trigger: Running .slint through an interpreter (slint-viewer, LSP preview, slintpad, dynamic Python/Node compilation) where the compiled layout lowering calls an extra builtin function not implemented by the interpreter runtime in that binary — e.g. a new/changed grid or flexbox solve signature.
Common situations: The i-slint-compiler used by the tool is newer/older than the interpreter runtime executing it (mixed slint crates in one process); a custom tool embedding i-slint-interpreter with a mismatched compiler version; experimental layout features tried in slintpad.
Related errors
- not implemented
- ItemMemberFunctionCall `{prop_name}`
- Seat deactivation is not implemented
- not implemented
- implemented type conversion {:#?}
AI-assisted analysis of slint-ui/slint@a9ea814a58 (2026-08-16).
Data as JSON: /api/errors/3d1f6f239a566fcc.
Report an issue: GitHub.