Include module name for definitions files

This commit is contained in:
JohnnyMorganz 2023-03-13 19:07:50 +00:00
parent 1fa8311a18
commit d36b5f7dee

View file

@ -32,6 +32,7 @@ LUAU_FASTFLAGVARIABLE(LuauKnowsTheDataModel3, false)
LUAU_FASTINTVARIABLE(LuauAutocompleteCheckTimeoutMs, 100)
LUAU_FASTFLAGVARIABLE(DebugLuauDeferredConstraintResolution, false)
LUAU_FASTFLAGVARIABLE(LuauDefinitionFileSourceModule, false)
LUAU_FASTFLAGVARIABLE(LuauDefinitionFileSetModuleName, true)
LUAU_FASTFLAGVARIABLE(DebugLuauLogSolverToJson, false);
namespace Luau
@ -102,6 +103,8 @@ LoadDefinitionFileResult Frontend::loadDefinitionFile(std::string_view source, c
if (parseResult.errors.size() > 0)
return LoadDefinitionFileResult{false, parseResult, sourceModule, nullptr};
if (FFlag::LuauDefinitionFileSetModuleName)
sourceModule.name = packageName;
sourceModule.root = parseResult.root;
sourceModule.mode = Mode::Definition;
@ -160,6 +163,8 @@ LoadDefinitionFileResult loadDefinitionFile_DEPRECATED(
return LoadDefinitionFileResult{false, parseResult, {}, nullptr};
Luau::SourceModule module;
if (FFlag::LuauDefinitionFileSetModuleName)
module.name = packageName;
module.root = parseResult.root;
module.mode = Mode::Definition;
@ -220,6 +225,8 @@ LoadDefinitionFileResult loadDefinitionFile(TypeChecker& typeChecker, GlobalType
if (parseResult.errors.size() > 0)
return LoadDefinitionFileResult{false, parseResult, sourceModule, nullptr};
if (FFlag::LuauDefinitionFileSetModuleName)
sourceModule.name = packageName;
sourceModule.root = parseResult.root;
sourceModule.mode = Mode::Definition;
@ -363,9 +370,11 @@ ErrorVec accumulateErrors(
Module& module = *it2->second;
std::sort(module.errors.begin(), module.errors.end(), [](const TypeError& e1, const TypeError& e2) -> bool {
return e1.location.begin > e2.location.begin;
});
std::sort(module.errors.begin(), module.errors.end(),
[](const TypeError& e1, const TypeError& e2) -> bool
{
return e1.location.begin > e2.location.begin;
});
result.insert(result.end(), module.errors.begin(), module.errors.end());
}
@ -609,8 +618,9 @@ CheckResult Frontend::check(const ModuleName& name, std::optional<FrontendOption
const bool recordJsonLog = FFlag::DebugLuauLogSolverToJson && moduleName == name;
ModulePtr module = FFlag::DebugLuauDeferredConstraintResolution ? check(sourceModule, mode, requireCycles, /*forAutocomplete*/ false, recordJsonLog)
: typeChecker.check(sourceModule, mode, environmentScope);
ModulePtr module = FFlag::DebugLuauDeferredConstraintResolution
? check(sourceModule, mode, requireCycles, /*forAutocomplete*/ false, recordJsonLog)
: typeChecker.check(sourceModule, mode, environmentScope);
stats.timeCheck += getTimestamp() - timestamp;
stats.filesStrict += mode == Mode::Strict;
@ -994,7 +1004,8 @@ ModulePtr check(const SourceModule& sourceModule, const std::vector<RequireCycle
return result;
}
ModulePtr Frontend::check(const SourceModule& sourceModule, Mode mode, std::vector<RequireCycle> requireCycles, bool forAutocomplete, bool recordJsonLog)
ModulePtr Frontend::check(
const SourceModule& sourceModule, Mode mode, std::vector<RequireCycle> requireCycles, bool forAutocomplete, bool recordJsonLog)
{
return Luau::check(sourceModule, requireCycles, builtinTypes, NotNull{&iceHandler},
NotNull{forAutocomplete ? &moduleResolverForAutocomplete : &moduleResolver}, NotNull{fileResolver},