1extern crate alloc;
2
3#[cfg(test)]
4mod dense_hash_tests;
5pub mod enums;
6pub mod functions;
7#[cfg(test)]
8mod insertion_ordered_map_tests;
9pub mod macros;
10pub mod methods;
11pub mod records;
12#[cfg(test)]
13mod string_utils_tests;
14pub mod type_aliases;
15#[cfg(test)]
16mod vec_deque_tests;
17
18#[cfg(target_arch = "wasm32")]
21pub mod wasm_libc;
22
23pub use functions::assert_call_handler::assert_call_handler;
26pub use records::f_value::set_luau_bool_flags;
27
28#[allow(non_snake_case)]
31pub fn set_all_flags(value: bool) {
32 FFlag::DesugaredArrayTypeReferenceIsEmpty.set(value);
33 FFlag::FixMathNoisePrecision.set(value);
34 FFlag::LuauAddRecursionCounterToNonStrictTypeChecker.set(value);
35 FFlag::LuauAllowGlobalDeclarationToBeCalledClass.set(value);
36 FFlag::LuauAlsoInstantiateInferredArguments.set(value);
37 FFlag::LuauAutocompleteConst.set(value);
38 FFlag::LuauAutocompleteExport.set(value);
39 FFlag::LuauAutocompleteStringSingletonIntersection.set(value);
40 FFlag::LuauBidirectionalInferenceBetterUnionHandling.set(value);
41 FFlag::LuauCallFeedback.set(value);
42 FFlag::LuauCheckFunctionStatementTypes.set(value);
43 FFlag::LuauClosureUsageCounter.set(value);
44 FFlag::LuauCodeGenCallWrapperEmitInst.set(value);
45 FFlag::LuauCodegenBufferInteger.set(value);
46 FFlag::LuauCodegenDsePtrStoreTagCheck.set(value);
47 FFlag::LuauCodegenDseRestoreHints.set(value);
48 FFlag::LuauCodegenExtraTableOpts.set(value);
49 FFlag::LuauCodegenFixBufferLenCheck.set(value);
50 FFlag::LuauCodegenForwardRematerialize.set(value);
51 FFlag::LuauCodegenFreeBlocks.set(value);
52 FFlag::LuauCodegenInteger2.set(value);
53 FFlag::LuauCodegenIntegerArg3Fix.set(value);
54 FFlag::LuauCodegenIntegerFastcall2k.set(value);
55 FFlag::LuauCodegenLinearSetupEntryState3.set(value);
56 FFlag::LuauCodegenLoadPropagateOrigin.set(value);
57 FFlag::LuauCodegenNopPadding.set(value);
58 FFlag::LuauCodegenProtectData.set(value);
59 FFlag::LuauCodegenRecordAllBlockExitInfo.set(value);
60 FFlag::LuauCodegenRegTag2.set(value);
61 FFlag::LuauCodegenSuggestArgumentRegisterX64.set(value);
62 FFlag::LuauCodegenVmExitSync.set(value);
63 FFlag::LuauCodegenVmExitSyncFix.set(value);
64 FFlag::LuauCompileDuptableConstantPack2.set(value);
65 FFlag::LuauCompileFastcall3CostModel.set(value);
66 FFlag::LuauCompileFoldOptimize.set(value);
67 FFlag::LuauCompileInlineTableFunctions.set(value);
68 FFlag::LuauCompileNewTableMutationTracker.set(value);
69 FFlag::LuauCompileNoOptNext.set(value);
70 FFlag::LuauCompilePropagateTableProps2.set(value);
71 FFlag::LuauCompileStringInterpTargetTop.set(value);
72 FFlag::LuauCompileTypeAliases.set(value);
73 FFlag::LuauCompileUdataDirect.set(value);
74 FFlag::LuauConcatDoesntAlwaysReturnString.set(value);
75 FFlag::LuauConst2.set(value);
76 FFlag::LuauConstJustReportErrorForUnderfill.set(value);
77 FFlag::LuauConstraintGraph.set(value);
78 FFlag::LuauCstExprGroup.set(value);
79 FFlag::LuauCstTypeGroup.set(value);
80 FFlag::LuauDirectFieldGet.set(value);
81 FFlag::LuauDisallowRedefiningBuiltinTypes.set(value);
82 FFlag::LuauEmitCallFeedback.set(value);
83 FFlag::LuauErrorTolerantPrettyPrinting.set(value);
84 FFlag::LuauExplicitTypeInstantiationSupport.set(value);
85 FFlag::LuauExportValueSyntax.set(value);
86 FFlag::LuauExportValueTypecheck.set(value);
87 FFlag::LuauExternTypesNormalizeWithShapes.set(value);
88 FFlag::LuauFixIndexerSubtypingOrdering.set(value);
89 FFlag::LuauFixPropReadsOnMetatableTypes.set(value);
90 FFlag::LuauInstantiateFunctionTypeBeforePush.set(value);
91 FFlag::LuauInstantiateInSubtyping.set(value);
92 FFlag::LuauInstantiationUsesPolarity.set(value);
93 FFlag::LuauIntegerBufferFastcalls.set(value);
94 FFlag::LuauIntegerFastcalls.set(value);
95 FFlag::LuauIntegerLibrary.set(value);
96 FFlag::LuauIntegerType2.set(value);
97 FFlag::LuauIterativeInstantiationQueuer.set(value);
98 FFlag::LuauKnowsTheDataModel3.set(value);
99 FFlag::LuauLValueCompoundAssignmentVisitLhs.set(value);
100 FFlag::LuauLimitUnificationRecursion.set(value);
101 FFlag::LuauNativeCodeTargetCheck.set(value);
102 FFlag::LuauNonStrictModeUseErrorSupressingTag.set(value);
103 FFlag::LuauOccursCheckForAllBindings.set(value);
104 FFlag::LuauPropagateFreeTypesIntoUnionAndIntersectionBounds.set(value);
105 FFlag::LuauPropagateTypeAnnotationsInForInLoops.set(value);
106 FFlag::LuauPropertyModifierMismatchErrors.set(value);
107 FFlag::LuauReadOnlyIndexers.set(value);
108 FFlag::LuauRefineNilFromTableIndexerResultType.set(value);
109 FFlag::LuauRemoveConstraintSolverEmplace.set(value);
110 FFlag::LuauReplacerIsSolverAgnostic.set(value);
111 FFlag::LuauRequireResolveAliasNullCheck.set(value);
112 FFlag::LuauResumeRestoreCcalls.set(value);
113 FFlag::LuauSilenceDynamicFormatStringErrors.set(value);
114 FFlag::LuauSolverV2.set(value);
115 FFlag::LuauSubtypingMissingPropertiesAsNil.set(value);
116 FFlag::LuauSubtypingTablesHasBetterErrorSuppression.set(value);
117 FFlag::LuauTableEntriesDontNeedToMatchIndent.set(value);
118 FFlag::LuauTableFreezeCheckIsSubtype.set(value);
119 FFlag::LuauTidyTypePrototyping.set(value);
120 FFlag::LuauTransitiveSubtyping.set(value);
121 FFlag::LuauTweakAccessViolationReporting.set(value);
122 FFlag::LuauTypeFunctionRobustness.set(value);
123 FFlag::LuauTypeFunctionSerializeArgNames.set(value);
124 FFlag::LuauTypeFunctionStructuredErrors.set(value);
125 FFlag::LuauTypeFunctionSupportsFrozen.set(value);
126 FFlag::LuauUdataDirectAccess6.set(value);
127 FFlag::LuauUdtfTypeIsSubtypeOf.set(value);
128 FFlag::LuauUseNativeStackGuard.set(value);
129 FFlag::LuauVisitCallTypeArgsInDfg.set(value);
130 FFlag::LuauYieldIter2.set(value);
131}
132
133#[allow(non_snake_case)]
139pub mod FFlag {
140 crate::LUAU_FASTFLAGVARIABLE!(DebugCodegenChaosA64);
142 crate::LUAU_FASTFLAGVARIABLE!(DebugCodegenOptSize);
144 crate::LUAU_FASTFLAGVARIABLE!(DebugCodegenSkipNumbering);
146 crate::LUAU_FASTFLAGVARIABLE!(DebugLogFragmentsFromAutocomplete);
148 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauAbortingChecks);
150 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauAlwaysShowConstraintSolvingIncomplete);
152 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauAssertOnForcedConstraint);
154 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauCheckNormalizeInvariant);
156 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauDumpCFGJson);
158 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauForbidInternalTypes);
160 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauForceAllNewSolverTests);
162 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauForceAllOldSolverTests);
164 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauForceNonStrictMode);
166 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauForceOldSolver);
168 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauForceStrictMode);
170 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauFreezeArena);
172 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauFreezeDuringUnification);
174 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauLogBindings);
176 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauLogCFG);
178 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauLogSolver);
180 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauLogSolverToJson);
182 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauLogSolverToJsonFile);
184 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauLogTypeFamilies);
186 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauMagicTypes);
188 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauMagicVariableNames);
190 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauNoInline);
192 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauSubtypingCheckPathValidity);
194 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauTimeTracing);
196 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauToStringNoLexicalSort);
198 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauUserDefinedClasses);
200 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauUserDefinedClassesRuntime);
202 crate::LUAU_FASTFLAGVARIABLE!(DesugaredArrayTypeReferenceIsEmpty);
204 crate::LUAU_FASTFLAGVARIABLE!(FixMathNoisePrecision);
206 crate::LUAU_FASTFLAGVARIABLE!(LuauAddRecursionCounterToNonStrictTypeChecker);
208 crate::LUAU_FASTFLAGVARIABLE!(LuauAllowGlobalDeclarationToBeCalledClass);
210 crate::LUAU_FASTFLAGVARIABLE!(LuauAlsoInstantiateInferredArguments);
212 crate::LUAU_FASTFLAGVARIABLE!(LuauAutocompleteConst);
214 crate::LUAU_FASTFLAGVARIABLE!(LuauAutocompleteExport);
216 crate::LUAU_FASTFLAGVARIABLE!(LuauAutocompleteStringSingletonIntersection);
218 crate::LUAU_FASTFLAGVARIABLE!(LuauBidirectionalInferenceBetterUnionHandling);
220 crate::LUAU_FASTFLAGVARIABLE!(LuauCallFeedback);
222 crate::LUAU_FASTFLAGVARIABLE!(LuauCheckFunctionStatementTypes);
224 crate::LUAU_FASTFLAGVARIABLE!(LuauClosureUsageCounter);
226 crate::LUAU_FASTFLAGVARIABLE!(LuauCodeGenCallWrapperEmitInst);
228 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenBufferInteger);
230 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenDsePtrStoreTagCheck);
232 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenDseRestoreHints);
234 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenExtraTableOpts);
236 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenFixBufferLenCheck);
238 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenForwardRematerialize);
240 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenFreeBlocks);
242 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenInteger2);
244 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenIntegerArg3Fix);
246 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenIntegerFastcall2k);
248 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenLinearSetupEntryState3);
250 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenLoadPropagateOrigin);
252 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenNopPadding);
254 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenProtectData);
256 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenRecordAllBlockExitInfo);
258 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenRegTag2);
260 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenSuggestArgumentRegisterX64);
262 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenVmExitSync);
264 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenVmExitSyncFix);
266 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileDuptableConstantPack2);
268 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileFastcall3CostModel);
270 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileFoldOptimize);
272 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileInlineTableFunctions);
274 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileNewTableMutationTracker);
276 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileNoOptNext);
278 crate::LUAU_FASTFLAGVARIABLE!(LuauCompilePropagateTableProps2);
280 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileStringInterpTargetTop);
282 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileTypeAliases);
284 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileUdataDirect);
286 crate::LUAU_FASTFLAGVARIABLE!(LuauConcatDoesntAlwaysReturnString);
288 crate::LUAU_FASTFLAGVARIABLE!(LuauConst2);
290 crate::LUAU_FASTFLAGVARIABLE!(LuauConstJustReportErrorForUnderfill);
292 crate::LUAU_FASTFLAGVARIABLE!(LuauConstraintGraph);
294 crate::LUAU_FASTFLAGVARIABLE!(LuauCstExprGroup);
296 crate::LUAU_FASTFLAGVARIABLE!(LuauCstTypeGroup);
298 crate::LUAU_FASTFLAGVARIABLE!(LuauDirectFieldGet);
300 crate::LUAU_FASTFLAGVARIABLE!(LuauDisallowRedefiningBuiltinTypes);
302 crate::LUAU_FASTFLAGVARIABLE!(LuauEmitCallFeedback);
304 crate::LUAU_FASTFLAGVARIABLE!(LuauErrorTolerantPrettyPrinting);
306 crate::LUAU_FASTFLAGVARIABLE!(LuauExplicitTypeInstantiationSupport);
308 crate::LUAU_FASTFLAGVARIABLE!(LuauExportValueSyntax);
310 crate::LUAU_FASTFLAGVARIABLE!(LuauExportValueTypecheck);
312 crate::LUAU_FASTFLAGVARIABLE!(LuauExternTypesNormalizeWithShapes);
314 crate::LUAU_FASTFLAGVARIABLE!(LuauFixIndexerSubtypingOrdering);
316 crate::LUAU_FASTFLAGVARIABLE!(LuauFixPropReadsOnMetatableTypes);
318 crate::LUAU_FASTFLAGVARIABLE!(LuauInstantiateFunctionTypeBeforePush);
320 crate::LUAU_FASTFLAGVARIABLE!(LuauInstantiateInSubtyping);
322 crate::LUAU_FASTFLAGVARIABLE!(LuauInstantiationUsesPolarity);
324 crate::LUAU_FASTFLAGVARIABLE!(LuauIntegerBufferFastcalls);
326 crate::LUAU_FASTFLAGVARIABLE!(LuauIntegerFastcalls);
328 crate::LUAU_FASTFLAGVARIABLE!(LuauIntegerLibrary);
330 crate::LUAU_FASTFLAGVARIABLE!(LuauIntegerType2);
332 crate::LUAU_FASTFLAGVARIABLE!(LuauIterativeInstantiationQueuer);
334 crate::LUAU_FASTFLAGVARIABLE!(LuauKnowsTheDataModel3);
336 crate::LUAU_FASTFLAGVARIABLE!(LuauLValueCompoundAssignmentVisitLhs);
338 crate::LUAU_FASTFLAGVARIABLE!(LuauLimitUnificationRecursion);
340 crate::LUAU_FASTFLAGVARIABLE!(LuauNativeCodeTargetCheck);
342 crate::LUAU_FASTFLAGVARIABLE!(LuauNonStrictModeUseErrorSupressingTag);
344 crate::LUAU_FASTFLAGVARIABLE!(LuauOccursCheckForAllBindings);
346 crate::LUAU_FASTFLAGVARIABLE!(LuauPropagateFreeTypesIntoUnionAndIntersectionBounds);
348 crate::LUAU_FASTFLAGVARIABLE!(LuauPropagateTypeAnnotationsInForInLoops);
350 crate::LUAU_FASTFLAGVARIABLE!(LuauPropertyModifierMismatchErrors);
352 crate::LUAU_FASTFLAGVARIABLE!(LuauReadOnlyIndexers);
354 crate::LUAU_FASTFLAGVARIABLE!(LuauRefineNilFromTableIndexerResultType);
356 crate::LUAU_FASTFLAGVARIABLE!(LuauRemoveConstraintSolverEmplace);
358 crate::LUAU_FASTFLAGVARIABLE!(LuauReplacerIsSolverAgnostic);
360 crate::LUAU_FASTFLAGVARIABLE!(LuauRequireResolveAliasNullCheck);
362 crate::LUAU_FASTFLAGVARIABLE!(LuauResumeRestoreCcalls);
364 crate::LUAU_FASTFLAGVARIABLE!(LuauSilenceDynamicFormatStringErrors);
366 crate::LUAU_FASTFLAGVARIABLE!(LuauSolverV2);
368 crate::LUAU_FASTFLAGVARIABLE!(LuauSubtypingMissingPropertiesAsNil);
370 crate::LUAU_FASTFLAGVARIABLE!(LuauSubtypingTablesHasBetterErrorSuppression);
372 crate::LUAU_FASTFLAGVARIABLE!(LuauTableEntriesDontNeedToMatchIndent);
374 crate::LUAU_FASTFLAGVARIABLE!(LuauTableFreezeCheckIsSubtype);
376 crate::LUAU_FASTFLAGVARIABLE!(LuauTidyTypePrototyping);
378 crate::LUAU_FASTFLAGVARIABLE!(LuauTransitiveSubtyping);
380 crate::LUAU_FASTFLAGVARIABLE!(LuauTweakAccessViolationReporting);
382 crate::LUAU_FASTFLAGVARIABLE!(LuauTypeFunctionRobustness);
384 crate::LUAU_FASTFLAGVARIABLE!(LuauTypeFunctionSerializeArgNames);
386 crate::LUAU_FASTFLAGVARIABLE!(LuauTypeFunctionStructuredErrors);
388 crate::LUAU_FASTFLAGVARIABLE!(LuauTypeFunctionSupportsFrozen);
390 crate::LUAU_FASTFLAGVARIABLE!(LuauUdataDirectAccess6);
392 crate::LUAU_FASTFLAGVARIABLE!(LuauUdtfTypeIsSubtypeOf);
394 crate::LUAU_FASTFLAGVARIABLE!(LuauUseNativeStackGuard);
396 crate::LUAU_FASTFLAGVARIABLE!(LuauVisitCallTypeArgsInDfg);
398 crate::LUAU_FASTFLAGVARIABLE!(LuauYieldIter2);
400}
401
402#[allow(non_snake_case)]
406pub mod FInt {
407 crate::LUAU_FASTINTVARIABLE!(CodegenHeuristicsBlockInstructionLimit, 65_536);
409 crate::LUAU_FASTINTVARIABLE!(CodegenHeuristicsBlockLimit, 32_768);
411 crate::LUAU_FASTINTVARIABLE!(CodegenHeuristicsInstructionLimit, 1_048_576);
413 crate::LUAU_FASTINTVARIABLE!(LuauCodeGenBlockSize, 4 * 1024 * 1024);
415 crate::LUAU_FASTINTVARIABLE!(LuauCodeGenMaxTotalSize, 256 * 1024 * 1024);
417 crate::LUAU_FASTINTVARIABLE!(LuauTypeCloneIterationLimit, 100_000);
419 crate::LUAU_FASTINTVARIABLE!(DebugLuauVerboseTypeNames, 0);
421 crate::LUAU_FASTINTVARIABLE!(LuauCheckRecursionLimit, 300);
423 crate::LUAU_FASTINTVARIABLE!(LuauCodeGenLiveSlotReuseLimit, 8);
425 crate::LUAU_FASTINTVARIABLE!(LuauCodeGenMinLinearBlockPath, 3);
427 crate::LUAU_FASTINTVARIABLE!(LuauCodeGenReuseSlotLimit, 64);
429 crate::LUAU_FASTINTVARIABLE!(LuauCodeGenReuseUdataTagLimit, 64);
431 crate::LUAU_FASTINTVARIABLE!(LuauCompileInlineDepth, 5);
433 crate::LUAU_FASTINTVARIABLE!(LuauCompileInlineThreshold, 25);
435 crate::LUAU_FASTINTVARIABLE!(LuauCompileInlineThresholdMaxBoost, 300);
437 crate::LUAU_FASTINTVARIABLE!(LuauCompileLoopUnrollThreshold, 25);
439 crate::LUAU_FASTINTVARIABLE!(LuauCompileLoopUnrollThresholdMaxBoost, 300);
441 crate::LUAU_FASTINTVARIABLE!(LuauGenericCounterMaxDepth, 15);
443 crate::LUAU_FASTINTVARIABLE!(LuauGenericCounterMaxSteps, 1500);
445 crate::LUAU_FASTINTVARIABLE!(LuauIndentTypeMismatchMaxTypeLength, 10);
447 crate::LUAU_FASTINTVARIABLE!(LuauInlineHitsThreshold, 3);
449 crate::LUAU_FASTINTVARIABLE!(LuauNonStrictTypeCheckerRecursionLimit, 300);
451 crate::LUAU_FASTINTVARIABLE!(LuauNormalizeCacheLimit, 100000);
453 crate::LUAU_FASTINTVARIABLE!(LuauNormalizerInitialFuel, 3000);
455 crate::LUAU_FASTINTVARIABLE!(LuauParseErrorLimit, 100);
457 crate::LUAU_FASTINTVARIABLE!(LuauPrimitiveInferenceInTableLimit, 500);
459 crate::LUAU_FASTINTVARIABLE!(LuauRecursionLimit, 1000);
461 crate::LUAU_FASTINTVARIABLE!(LuauSolverConstraintLimit, 1000);
463 crate::LUAU_FASTINTVARIABLE!(LuauSolverRecursionLimit, 500);
465 crate::LUAU_FASTINTVARIABLE!(LuauStackGuardThreshold, 1024);
467 crate::LUAU_FASTINTVARIABLE!(LuauSubtypingIterationLimit, 20000);
469 crate::LUAU_FASTINTVARIABLE!(LuauSubtypingReasoningLimit, 100);
471 crate::LUAU_FASTINTVARIABLE!(LuauSuggestionDistance, 4);
473 crate::LUAU_FASTINTVARIABLE!(LuauTableTypeMaximumStringifierLength, 0);
475 crate::LUAU_FASTINTVARIABLE!(LuauTarjanChildLimit, 10000);
477 crate::LUAU_FASTINTVARIABLE!(LuauTarjanPreallocationSize, 256);
479 crate::LUAU_FASTINTVARIABLE!(LuauTypeInferIterationLimit, 20000);
481 crate::LUAU_FASTINTVARIABLE!(LuauTypeInferRecursionLimit, 165);
483 crate::LUAU_FASTINTVARIABLE!(LuauTypeInferTypePackLoopLimit, 5000);
485 crate::LUAU_FASTINTVARIABLE!(LuauTypeLengthLimit, 1000);
487 crate::LUAU_FASTINTVARIABLE!(LuauTypeMaximumStringifierLength, 500);
489 crate::LUAU_FASTINTVARIABLE!(LuauVisitRecursionLimit, 500);
491}
492
493#[allow(non_snake_case)]
495pub mod DFFlag {
496 crate::LUAU_DYNAMIC_FASTFLAGVARIABLE!(AddReturnExectargetCheck, false);
498 crate::LUAU_DYNAMIC_FASTFLAGVARIABLE!(DebugLuauReportReturnTypeVariadicWithTypeSuffix, false);
500 crate::LUAU_DYNAMIC_FASTFLAGVARIABLE!(LuauRequireAliasOverrideOrderFix, false);
502}
503
504#[allow(non_snake_case)]
506pub mod DFInt {
507 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauTypeFamilyApplicationCartesianProductLimit, 5_000);
509 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauTypeFamilyGraphReductionMaximumSteps, 1_000_000);
511 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauTypeFunctionSerdeIterationLimit, 100_000);
513 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauConstraintGeneratorRecursionLimit, 300);
515 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauSimplificationComplexityLimit, 8);
517 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauStepRefineRecursionLimit, 64);
519 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauSubtypingRecursionLimit, 100);
521 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauTypeFamilyUseGuesserDepth, -1);
523 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauTypePathMaximumTraverseSteps, 100);
525 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauTypeSimplificationIterationLimit, 128);
527 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauUnifierRecursionLimit, 100);
529}
530
531mod fastflag_timetrace_tests {
532 #[test]
535 fn flag_default_and_timetrace_noops() {
536 assert_eq!(crate::FFlag::DebugLuauTimeTracing.get(), false);
537 crate::LUAU_TIMETRACE_SCOPE!("name", "category");
538 crate::LUAU_TIMETRACE_OPTIONAL_TAIL_SCOPE!("name", "category", 100);
539 crate::LUAU_TIMETRACE_ARGUMENT!("k", "v");
540 crate::FFlag::DebugLuauTimeTracing.set(true);
541 assert_eq!(crate::FFlag::DebugLuauTimeTracing.get(), true);
542 }
543}