2022-04-15 00:57:43 +01:00
|
|
|
// This file is part of the Luau programming language and is licensed under MIT License; see LICENSE.txt for details
|
|
|
|
|
|
|
|
#include "Luau/Module.h"
|
2022-08-18 22:32:08 +01:00
|
|
|
#include "Luau/NotNull.h"
|
|
|
|
#include "Luau/TypeVar.h"
|
|
|
|
|
|
|
|
#include <memory>
|
2022-04-15 00:57:43 +01:00
|
|
|
|
|
|
|
namespace Luau
|
|
|
|
{
|
|
|
|
|
|
|
|
struct InternalErrorReporter;
|
2022-08-18 22:32:08 +01:00
|
|
|
struct Module;
|
|
|
|
struct Scope;
|
|
|
|
|
|
|
|
using ModulePtr = std::shared_ptr<Module>;
|
2022-04-15 00:57:43 +01:00
|
|
|
|
2022-08-18 22:32:08 +01:00
|
|
|
bool isSubtype(TypeId subTy, TypeId superTy, NotNull<Scope> scope, InternalErrorReporter& ice);
|
|
|
|
bool isSubtype(TypePackId subTy, TypePackId superTy, NotNull<Scope> scope, InternalErrorReporter& ice);
|
2022-04-15 00:57:43 +01:00
|
|
|
|
2022-08-18 22:32:08 +01:00
|
|
|
std::pair<TypeId, bool> normalize(TypeId ty, NotNull<Scope> scope, TypeArena& arena, InternalErrorReporter& ice);
|
|
|
|
std::pair<TypeId, bool> normalize(TypeId ty, NotNull<Module> module, InternalErrorReporter& ice);
|
2022-04-15 00:57:43 +01:00
|
|
|
std::pair<TypeId, bool> normalize(TypeId ty, const ModulePtr& module, InternalErrorReporter& ice);
|
2022-08-18 22:32:08 +01:00
|
|
|
std::pair<TypePackId, bool> normalize(TypePackId ty, NotNull<Scope> scope, TypeArena& arena, InternalErrorReporter& ice);
|
|
|
|
std::pair<TypePackId, bool> normalize(TypePackId ty, NotNull<Module> module, InternalErrorReporter& ice);
|
2022-04-15 00:57:43 +01:00
|
|
|
std::pair<TypePackId, bool> normalize(TypePackId ty, const ModulePtr& module, InternalErrorReporter& ice);
|
|
|
|
|
|
|
|
} // namespace Luau
|