use tsz_solver::{CallSignature, CallableShape, ObjectShape, TupleElement, TypeDatabase, TypeId};
pub(crate) fn callable_shape_for_type(
db: &dyn TypeDatabase,
type_id: TypeId,
) -> Option<std::sync::Arc<CallableShape>> {
tsz_solver::type_queries::get_callable_shape(db, type_id)
}
pub(crate) fn union_members(db: &dyn TypeDatabase, type_id: TypeId) -> Option<Vec<TypeId>> {
tsz_solver::type_queries::get_union_members(db, type_id)
}
pub(crate) fn is_type_parameter_like(db: &dyn TypeDatabase, type_id: TypeId) -> bool {
tsz_solver::type_queries::is_type_parameter_like(db, type_id)
}
pub(crate) fn contains_type_parameters(db: &dyn TypeDatabase, type_id: TypeId) -> bool {
tsz_solver::type_queries::contains_type_parameters_db(db, type_id)
}
pub(crate) fn is_string_type(db: &dyn TypeDatabase, type_id: TypeId) -> bool {
tsz_solver::type_queries::is_string_type(db, type_id)
}
pub(crate) fn lazy_def_id(
db: &dyn TypeDatabase,
type_id: TypeId,
) -> Option<tsz_solver::def::DefId> {
tsz_solver::type_queries::get_lazy_def_id(db, type_id)
}
pub(crate) fn has_construct_signatures(db: &dyn TypeDatabase, type_id: TypeId) -> bool {
tsz_solver::type_queries::has_construct_signatures(db, type_id)
}
pub(crate) fn is_mapped_type(db: &dyn TypeDatabase, type_id: TypeId) -> bool {
tsz_solver::type_queries::is_mapped_type(db, type_id)
}
pub(crate) fn construct_signatures_for_type(
db: &dyn TypeDatabase,
type_id: TypeId,
) -> Option<Vec<CallSignature>> {
tsz_solver::type_queries::get_construct_signatures(db, type_id)
}
pub(crate) fn is_generic_type(db: &dyn TypeDatabase, type_id: TypeId) -> bool {
tsz_solver::type_queries::is_generic_type(db, type_id)
}
pub(crate) fn tuple_elements(db: &dyn TypeDatabase, type_id: TypeId) -> Option<Vec<TupleElement>> {
tsz_solver::type_queries::get_tuple_elements(db, type_id)
}
pub(crate) fn call_signatures_for_type(
db: &dyn TypeDatabase,
type_id: TypeId,
) -> Option<Vec<CallSignature>> {
tsz_solver::type_queries::get_call_signatures(db, type_id)
}
pub(crate) fn object_shape_for_type(
db: &dyn TypeDatabase,
type_id: TypeId,
) -> Option<std::sync::Arc<ObjectShape>> {
tsz_solver::type_queries::get_object_shape(db, type_id)
}
pub(crate) fn array_element_type(db: &dyn TypeDatabase, type_id: TypeId) -> Option<TypeId> {
tsz_solver::type_queries::get_array_element_type(db, type_id)
}
pub(crate) fn intersection_members(db: &dyn TypeDatabase, type_id: TypeId) -> Option<Vec<TypeId>> {
tsz_solver::type_queries::get_intersection_members(db, type_id)
}