From d36b5f7dee5e53a00b480ba94f9a9e6e7f29f3df Mon Sep 17 00:00:00 2001 From: JohnnyMorganz Date: Mon, 13 Mar 2023 19:07:50 +0000 Subject: [PATCH] Include module name for definitions files --- Analysis/src/Frontend.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/Analysis/src/Frontend.cpp b/Analysis/src/Frontend.cpp index 722f1a2c..1bc8a905 100644 --- a/Analysis/src/Frontend.cpp +++ b/Analysis/src/Frontend.cpp @@ -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 requireCycles, bool forAutocomplete, bool recordJsonLog) +ModulePtr Frontend::check( + const SourceModule& sourceModule, Mode mode, std::vector requireCycles, bool forAutocomplete, bool recordJsonLog) { return Luau::check(sourceModule, requireCycles, builtinTypes, NotNull{&iceHandler}, NotNull{forAutocomplete ? &moduleResolverForAutocomplete : &moduleResolver}, NotNull{fileResolver},