Skip to content

Commit d5df9af

Browse files
Sync to upstream Luau 0.733 (#1578)
1 parent e14ae33 commit d5df9af

3 files changed

Lines changed: 45 additions & 13 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
1212

1313
### Changed
1414

15-
- Sync to upstream Luau 0.731
15+
- Sync to upstream Luau 0.733
1616

1717
## [1.69.0] - 2026-07-14
1818

luau

Submodule luau updated from f8ca77a to fd83819

src/platform/roblox/RobloxLuauExt.cpp

Lines changed: 43 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
#include "Luau/ConstraintSolver.h"
55
#include "Luau/TypeInfer.h"
66

7+
LUAU_FASTFLAG(LuauCyclicRequireTypeInference)
8+
79
// Parse class names from QueryDescendants CSS-like selector strings.
810
// Returns the class name from the last compound selector of each comma-separated group.
911
std::vector<std::string> parseClassNamesFromSelector(const std::string& selector)
@@ -136,8 +138,14 @@ bool MagicInstanceIsA::infer(const Luau::MagicFunctionCallContext& context)
136138
std::string className(str->value.data, str->value.size);
137139
std::optional<Luau::TypeFun> tfun = context.solver->rootScope->lookupType(className);
138140
if (!tfun)
139-
context.solver->reportError(
140-
Luau::TypeError{context.callSite->args.data[0]->location, Luau::UnknownSymbol{className, Luau::UnknownSymbol::Type}});
141+
{
142+
if (FFlag::LuauCyclicRequireTypeInference)
143+
context.solver->reportError(
144+
Luau::UnknownSymbol{className, Luau::UnknownSymbol::Type}, context.callSite->args.data[0]->location, *context.constraint->moduleName);
145+
else
146+
context.solver->DEPRECATED_reportError(
147+
Luau::TypeError{context.callSite->args.data[0]->location, Luau::UnknownSymbol{className, Luau::UnknownSymbol::Type}});
148+
}
141149

142150
return false;
143151
}
@@ -280,7 +288,10 @@ bool MagicInstanceFindFirstXWhichIsA::infer(const Luau::MagicFunctionCallContext
280288
std::optional<Luau::TypeFun> tfun = context.solver->rootScope->lookupType(className);
281289
if (!tfun || !tfun->typeParams.empty() || !tfun->typePackParams.empty())
282290
{
283-
context.solver->reportError(Luau::UnknownSymbol{className, Luau::UnknownSymbol::Type}, str->location);
291+
if (FFlag::LuauCyclicRequireTypeInference)
292+
context.solver->reportError(Luau::UnknownSymbol{className, Luau::UnknownSymbol::Type}, str->location, *context.constraint->moduleName);
293+
else
294+
context.solver->DEPRECATED_reportError(Luau::UnknownSymbol{className, Luau::UnknownSymbol::Type}, str->location);
284295
return false;
285296
}
286297

@@ -344,8 +355,14 @@ bool MagicEnumItemIsA::infer(const Luau::MagicFunctionCallContext& context)
344355
std::string enumItem(str->value.data, str->value.size);
345356
std::optional<Luau::TypeFun> tfun = context.constraint->scope->lookupImportedType("Enum", enumItem);
346357
if (!tfun)
347-
context.solver->reportError(
348-
Luau::TypeError{context.callSite->args.data[0]->location, Luau::UnknownSymbol{enumItem, Luau::UnknownSymbol::Type}});
358+
{
359+
if (FFlag::LuauCyclicRequireTypeInference)
360+
context.solver->reportError(
361+
Luau::UnknownSymbol{enumItem, Luau::UnknownSymbol::Type}, context.callSite->args.data[0]->location, *context.constraint->moduleName);
362+
else
363+
context.solver->DEPRECATED_reportError(
364+
Luau::TypeError{context.callSite->args.data[0]->location, Luau::UnknownSymbol{enumItem, Luau::UnknownSymbol::Type}});
365+
}
349366

350367
return false;
351368
}
@@ -433,7 +450,11 @@ bool MagicInstancePropertyCheck::infer(const Luau::MagicFunctionCallContext& con
433450
std::string property(str->value.data, str->value.size);
434451
if (!Luau::lookupExternTypeProp(ctv, property))
435452
{
436-
context.solver->reportError(Luau::TypeError{context.callSite->args.data[0]->location, Luau::UnknownProperty{*selfTy, property}});
453+
if (FFlag::LuauCyclicRequireTypeInference)
454+
context.solver->reportError(
455+
Luau::UnknownProperty{*selfTy, property}, context.callSite->args.data[0]->location, *context.constraint->moduleName);
456+
else
457+
context.solver->DEPRECATED_reportError(Luau::TypeError{context.callSite->args.data[0]->location, Luau::UnknownProperty{*selfTy, property}});
437458
}
438459

439460
return false;
@@ -513,7 +534,10 @@ bool MagicQueryDescendants::infer(const Luau::MagicFunctionCallContext& context)
513534
std::optional<Luau::TypeFun> tfun = context.solver->rootScope->lookupType(className);
514535
if (!tfun || !tfun->typeParams.empty() || !tfun->typePackParams.empty())
515536
{
516-
context.solver->reportError(Luau::UnknownSymbol{className, Luau::UnknownSymbol::Type}, str->location);
537+
if (FFlag::LuauCyclicRequireTypeInference)
538+
context.solver->reportError(Luau::UnknownSymbol{className, Luau::UnknownSymbol::Type}, str->location, *context.constraint->moduleName);
539+
else
540+
context.solver->DEPRECATED_reportError(Luau::UnknownSymbol{className, Luau::UnknownSymbol::Type}, str->location);
517541
return false;
518542
}
519543
classTypes.push_back(Luau::follow(tfun->type));
@@ -619,8 +643,12 @@ bool MagicTypeLookup::infer(const Luau::MagicFunctionCallContext& context)
619643
std::optional<Luau::TypeFun> tfun = context.solver->rootScope->lookupType(className);
620644
if (!tfun || !tfun->typeParams.empty() || !tfun->typePackParams.empty())
621645
{
622-
context.solver->reportError(
623-
Luau::TypeError{context.callSite->args.data[0]->location, Luau::UnknownSymbol{className, Luau::UnknownSymbol::Type}});
646+
if (FFlag::LuauCyclicRequireTypeInference)
647+
context.solver->reportError(Luau::UnknownSymbol{className, Luau::UnknownSymbol::Type}, context.callSite->args.data[0]->location,
648+
*context.constraint->moduleName);
649+
else
650+
context.solver->DEPRECATED_reportError(
651+
Luau::TypeError{context.callSite->args.data[0]->location, Luau::UnknownSymbol{className, Luau::UnknownSymbol::Type}});
624652
return false;
625653
}
626654

@@ -631,8 +659,12 @@ bool MagicTypeLookup::infer(const Luau::MagicFunctionCallContext& context)
631659
}
632660
else
633661
{
634-
context.solver->reportError(
635-
Luau::TypeError{context.callSite->args.data[0]->location, Luau::GenericError{errorMessagePrefix + " '" + className + "'"}});
662+
if (FFlag::LuauCyclicRequireTypeInference)
663+
context.solver->reportError(Luau::GenericError{errorMessagePrefix + " '" + className + "'"},
664+
context.callSite->args.data[0]->location, *context.constraint->moduleName);
665+
else
666+
context.solver->DEPRECATED_reportError(
667+
Luau::TypeError{context.callSite->args.data[0]->location, Luau::GenericError{errorMessagePrefix + " '" + className + "'"}});
636668
}
637669
}
638670

0 commit comments

Comments
 (0)