luaur_analysis/functions/max_unifiable.rs
1//! Source: `Analysis/include/Luau/Unifiable.h:62-68` (hand-ported)
2use crate::records::type_level::TypeLevel;
3
4/// C++ `inline TypeLevel max(const TypeLevel& a, const TypeLevel& b)`.
5/// Returns the deeper/greater level: if `a` subsumes `b`, `b` is the greater.
6pub fn max(a: &TypeLevel, b: &TypeLevel) -> TypeLevel {
7 if a.subsumes(b) {
8 *b
9 } else {
10 *a
11 }
12}