mirror of
https://github.com/luau-lang/luau.git
synced 2024-11-15 14:25:44 +08:00
Use correct globalScope in on demand type checker (#923)
Fixes #922 Unsure if this needs to be put behind another FFlag, since the on demand type checker fflag currently exists
This commit is contained in:
parent
45c6476d41
commit
8d8c7974f5
@ -38,6 +38,7 @@ LUAU_FASTFLAGVARIABLE(DebugLuauLogSolverToJson, false)
|
||||
LUAU_FASTFLAG(LuauRequirePathTrueModuleName)
|
||||
LUAU_FASTFLAGVARIABLE(DebugLuauReadWriteProperties, false)
|
||||
LUAU_FASTFLAGVARIABLE(LuauSplitFrontendProcessing, false)
|
||||
LUAU_FASTFLAGVARIABLE(LuauTypeCheckerUseCorrectScope, false)
|
||||
|
||||
namespace Luau
|
||||
{
|
||||
@ -1397,7 +1398,9 @@ ModulePtr Frontend::check(const SourceModule& sourceModule, Mode mode, std::vect
|
||||
}
|
||||
else
|
||||
{
|
||||
TypeChecker typeChecker(globals.globalScope, forAutocomplete ? &moduleResolverForAutocomplete : &moduleResolver, builtinTypes, &iceHandler);
|
||||
TypeChecker typeChecker(FFlag::LuauTypeCheckerUseCorrectScope ? (forAutocomplete ? globalsForAutocomplete.globalScope : globals.globalScope)
|
||||
: globals.globalScope,
|
||||
forAutocomplete ? &moduleResolverForAutocomplete : &moduleResolver, builtinTypes, &iceHandler);
|
||||
|
||||
if (prepareModuleScope)
|
||||
{
|
||||
|
@ -3503,4 +3503,26 @@ local a: T@1
|
||||
CHECK_EQ(ac.context, AutocompleteContext::Type);
|
||||
}
|
||||
|
||||
TEST_CASE_FIXTURE(ACFixture, "frontend_use_correct_global_scope")
|
||||
{
|
||||
ScopedFastFlag sff("LuauTypeCheckerUseCorrectScope", true);
|
||||
|
||||
loadDefinition(R"(
|
||||
declare class Instance
|
||||
Name: string
|
||||
end
|
||||
)");
|
||||
|
||||
CheckResult result = check(R"(
|
||||
local a: unknown = nil
|
||||
if typeof(a) == "Instance" then
|
||||
local b = a.@1
|
||||
end
|
||||
)");
|
||||
auto ac = autocomplete('1');
|
||||
|
||||
CHECK_EQ(1, ac.entryMap.size());
|
||||
CHECK(ac.entryMap.count("Name"));
|
||||
}
|
||||
|
||||
TEST_SUITE_END();
|
||||
|
Loading…
Reference in New Issue
Block a user