// This file is part of the Luau programming language and is licensed under MIT License; see LICENSE.txt for details #pragma once #include "Luau/TypeFwd.h" #include "Luau/DenseHash.h" #include "Luau/Unifiable.h" #include #include namespace Luau { struct TypeArena; struct Scope; void quantify(TypeId ty, TypeLevel level); // TODO: This is eerily similar to the pattern that NormalizedClassType // implements. We could, and perhaps should, merge them together. template struct OrderedMap { std::vector keys; DenseHashMap pairings{nullptr}; void push(K k, V v) { keys.push_back(k); pairings[k] = v; } }; struct QuantifierResult { TypeId result; OrderedMap insertedGenerics; OrderedMap insertedGenericPacks; }; std::optional quantify(TypeArena* arena, TypeId ty, Scope* scope); } // namespace Luau