luau/Analysis/include/Luau/Normalize.h

33 lines
1.5 KiB
C
Raw Normal View History

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