luaur_analysis/methods/constraint_solver_block_constraint_solver.rs
1//! Source: `Analysis/include/Luau/ConstraintSolver.h:330-337` (hand-ported)
2use crate::records::constraint::Constraint;
3use crate::records::constraint_solver::ConstraintSolver;
4
5impl ConstraintSolver {
6 /// C++ `template<typename T> bool block(const T& targets, NotNull<const Constraint> constraint)`
7 /// iterates `targets` (a `TypeId` range) and forwards each to `block(TypeId, ...)`.
8 /// In the Rust port the callers are monomorphized onto
9 /// `block_type_id_not_null_constraint` / `block_type_pack_id_not_null_constraint`
10 /// (and direct loops over the container), so this unbounded template generic has
11 /// no call site and no iterable bound to port faithfully.
12 pub fn block_t_not_null_constraint<T>(
13 &mut self,
14 _targets: &T,
15 _constraint: *const Constraint,
16 ) -> bool {
17 unreachable!(
18 "C++ ConstraintSolver::block<T> template generic; Rust callers use the monomorphized block_type_id/block_type_pack_id overloads — no call site"
19 )
20 }
21}