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")]
24pub mod wasm_libc;
25
26#[cfg(any(target_arch = "wasm32", test))]
30pub mod strtod_shim;
31
32pub use functions::assert_call_handler::assert_call_handler;
35pub use records::f_value::set_luau_bool_flags;
36
37#[allow(non_snake_case)]
40pub fn set_all_flags(value: bool) {
41 FFlag::DesugaredArrayTypeReferenceIsEmpty.set(value);
42 FFlag::FixMathNoisePrecision.set(value);
43 FFlag::LuauAddRecursionCounterToNonStrictTypeChecker.set(value);
44 FFlag::LuauAllowGlobalDeclarationToBeCalledClass.set(value);
45 FFlag::LuauAlsoInstantiateInferredArguments.set(value);
46 FFlag::LuauAutocompleteConst.set(value);
47 FFlag::LuauAutocompleteExport.set(value);
48 FFlag::LuauAutocompleteStringSingletonIntersection.set(value);
49 FFlag::LuauBidirectionalInferenceBetterUnionHandling.set(value);
50 FFlag::LuauCallFeedback.set(value);
51 FFlag::LuauCheckFunctionStatementTypes.set(value);
52 FFlag::LuauClosureUsageCounter.set(value);
53 FFlag::LuauCodeGenCallWrapperEmitInst.set(value);
54 FFlag::LuauCodegenBufferInteger.set(value);
55 FFlag::LuauCodegenDsePtrStoreTagCheck.set(value);
56 FFlag::LuauCodegenDseRestoreHints.set(value);
57 FFlag::LuauCodegenExtraTableOpts.set(value);
58 FFlag::LuauCodegenFixBufferLenCheck.set(value);
59 FFlag::LuauCodegenForwardRematerialize.set(value);
60 FFlag::LuauCodegenFreeBlocks.set(value);
61 FFlag::LuauCodegenInteger2.set(value);
62 FFlag::LuauCodegenIntegerArg3Fix.set(value);
63 FFlag::LuauCodegenIntegerFastcall2k.set(value);
64 FFlag::LuauCodegenLinearSetupEntryState3.set(value);
65 FFlag::LuauCodegenLoadPropagateOrigin.set(value);
66 FFlag::LuauCodegenNopPadding.set(value);
67 FFlag::LuauCodegenProtectData.set(value);
68 FFlag::LuauCodegenRecordAllBlockExitInfo.set(value);
69 FFlag::LuauCodegenRegTag2.set(value);
70 FFlag::LuauCodegenSuggestArgumentRegisterX64.set(value);
71 FFlag::LuauCodegenVmExitSync.set(value);
72 FFlag::LuauCodegenVmExitSyncFix.set(value);
73 FFlag::LuauCompileDuptableConstantPack2.set(value);
74 FFlag::LuauCompileFastcall3CostModel.set(value);
75 FFlag::LuauCompileFoldOptimize.set(value);
76 FFlag::LuauCompileInlineTableFunctions.set(value);
77 FFlag::LuauCompileNewTableMutationTracker.set(value);
78 FFlag::LuauCompileNoOptNext.set(value);
79 FFlag::LuauCompilePropagateTableProps2.set(value);
80 FFlag::LuauCompileStringInterpTargetTop.set(value);
81 FFlag::LuauCompileTypeAliases.set(value);
82 FFlag::LuauCompileUdataDirect.set(value);
83 FFlag::LuauConcatDoesntAlwaysReturnString.set(value);
84 FFlag::LuauConst2.set(value);
85 FFlag::LuauConstJustReportErrorForUnderfill.set(value);
86 FFlag::LuauConstraintGraph.set(value);
87 FFlag::LuauCstExprGroup.set(value);
88 FFlag::LuauCstTypeGroup.set(value);
89 FFlag::LuauDirectFieldGet.set(value);
90 FFlag::LuauDisallowRedefiningBuiltinTypes.set(value);
91 FFlag::LuauEmitCallFeedback.set(value);
92 FFlag::LuauErrorTolerantPrettyPrinting.set(value);
93 FFlag::LuauExplicitTypeInstantiationSupport.set(value);
94 FFlag::LuauExportValueSyntax.set(false);
101 FFlag::LuauExportValueTypecheck.set(false);
102 FFlag::LuauExternTypesNormalizeWithShapes.set(value);
103 FFlag::LuauFixIndexerSubtypingOrdering.set(value);
104 FFlag::LuauFixPropReadsOnMetatableTypes.set(value);
105 FFlag::LuauInstantiateFunctionTypeBeforePush.set(value);
106 FFlag::LuauInstantiateInSubtyping.set(value);
107 FFlag::LuauInstantiationUsesPolarity.set(value);
108 FFlag::LuauIntegerBufferFastcalls.set(value);
109 FFlag::LuauIntegerFastcalls.set(value);
110 FFlag::LuauIntegerLibrary.set(value);
111 FFlag::LuauIntegerType2.set(value);
112 FFlag::LuauIterativeInstantiationQueuer.set(value);
113 FFlag::LuauKnowsTheDataModel3.set(value);
114 FFlag::LuauLValueCompoundAssignmentVisitLhs.set(value);
115 FFlag::LuauLimitUnificationRecursion.set(value);
116 FFlag::LuauNativeCodeTargetCheck.set(value);
117 FFlag::LuauNonStrictModeUseErrorSupressingTag.set(value);
118 FFlag::LuauOccursCheckForAllBindings.set(value);
119 FFlag::LuauPropagateFreeTypesIntoUnionAndIntersectionBounds.set(value);
120 FFlag::LuauPropagateTypeAnnotationsInForInLoops.set(value);
121 FFlag::LuauPropertyModifierMismatchErrors.set(value);
122 FFlag::LuauReadOnlyIndexers.set(value);
123 FFlag::LuauRefineNilFromTableIndexerResultType.set(value);
124 FFlag::LuauRemoveConstraintSolverEmplace.set(value);
125 FFlag::LuauReplacerIsSolverAgnostic.set(value);
126 FFlag::LuauRequireResolveAliasNullCheck.set(value);
127 FFlag::LuauResumeRestoreCcalls.set(value);
128 FFlag::LuauSilenceDynamicFormatStringErrors.set(value);
129 FFlag::LuauSolverV2.set(value);
130 FFlag::LuauSubtypingMissingPropertiesAsNil.set(value);
131 FFlag::LuauSubtypingTablesHasBetterErrorSuppression.set(value);
132 FFlag::LuauTableEntriesDontNeedToMatchIndent.set(value);
133 FFlag::LuauTableFreezeCheckIsSubtype.set(value);
134 FFlag::LuauTidyTypePrototyping.set(value);
135 FFlag::LuauTransitiveSubtyping.set(value);
136 FFlag::LuauTweakAccessViolationReporting.set(value);
137 FFlag::LuauTypeFunctionRobustness.set(value);
138 FFlag::LuauTypeFunctionSerializeArgNames.set(value);
139 FFlag::LuauTypeFunctionStructuredErrors.set(value);
140 FFlag::LuauTypeFunctionSupportsFrozen.set(value);
141 FFlag::LuauUdataDirectAccess6.set(value);
142 FFlag::LuauUdtfTypeIsSubtypeOf.set(value);
143 FFlag::LuauUseNativeStackGuard.set(value);
144 FFlag::LuauVisitCallTypeArgsInDfg.set(value);
145 FFlag::LuauYieldIter2.set(value);
146}
147
148#[allow(non_snake_case)]
154pub mod FFlag {
155 crate::LUAU_FASTFLAGVARIABLE!(DebugCodegenChaosA64);
157 crate::LUAU_FASTFLAGVARIABLE!(DebugCodegenOptSize);
159 crate::LUAU_FASTFLAGVARIABLE!(DebugCodegenSkipNumbering);
161 crate::LUAU_FASTFLAGVARIABLE!(DebugLogFragmentsFromAutocomplete);
163 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauAbortingChecks);
165 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauAlwaysShowConstraintSolvingIncomplete);
167 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauAssertOnForcedConstraint);
169 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauCheckNormalizeInvariant);
171 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauDumpCFGJson);
173 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauForbidInternalTypes);
175 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauForceAllNewSolverTests);
177 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauForceAllOldSolverTests);
179 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauForceNonStrictMode);
181 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauForceOldSolver);
183 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauForceStrictMode);
185 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauFreezeArena);
187 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauFreezeDuringUnification);
189 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauLogBindings);
191 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauLogCFG);
193 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauLogSolver);
195 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauLogSolverToJson);
197 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauLogSolverToJsonFile);
199 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauLogTypeFamilies);
201 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauMagicTypes);
203 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauMagicVariableNames);
205 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauNoInline);
207 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauSubtypingCheckPathValidity);
209 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauTimeTracing);
211 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauToStringNoLexicalSort);
213 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauUserDefinedClasses);
215 crate::LUAU_FASTFLAGVARIABLE!(DebugLuauUserDefinedClassesRuntime);
217 crate::LUAU_FASTFLAGVARIABLE!(DesugaredArrayTypeReferenceIsEmpty);
219 crate::LUAU_FASTFLAGVARIABLE!(FixMathNoisePrecision);
221 crate::LUAU_FASTFLAGVARIABLE!(LuauAddRecursionCounterToNonStrictTypeChecker);
223 crate::LUAU_FASTFLAGVARIABLE!(LuauAllowGlobalDeclarationToBeCalledClass);
225 crate::LUAU_FASTFLAGVARIABLE!(LuauAlsoInstantiateInferredArguments);
227 crate::LUAU_FASTFLAGVARIABLE!(LuauAutocompleteConst);
229 crate::LUAU_FASTFLAGVARIABLE!(LuauAutocompleteExport);
231 crate::LUAU_FASTFLAGVARIABLE!(LuauAutocompleteStringSingletonIntersection);
233 crate::LUAU_FASTFLAGVARIABLE!(LuauBidirectionalInferenceBetterUnionHandling);
235 crate::LUAU_FASTFLAGVARIABLE!(LuauCallFeedback);
237 crate::LUAU_FASTFLAGVARIABLE!(LuauCheckFunctionStatementTypes);
239 crate::LUAU_FASTFLAGVARIABLE!(LuauClosureUsageCounter);
241 crate::LUAU_FASTFLAGVARIABLE!(LuauCodeGenCallWrapperEmitInst);
243 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenBufferInteger);
245 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenDsePtrStoreTagCheck);
247 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenDseRestoreHints);
249 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenExtraTableOpts);
251 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenFixBufferLenCheck);
253 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenForwardRematerialize);
255 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenFreeBlocks);
257 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenInteger2);
259 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenIntegerArg3Fix);
261 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenIntegerFastcall2k);
263 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenLinearSetupEntryState3);
265 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenLoadPropagateOrigin);
267 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenNopPadding);
269 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenProtectData);
271 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenRecordAllBlockExitInfo);
273 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenRegTag2);
275 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenSuggestArgumentRegisterX64);
277 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenVmExitSync);
279 crate::LUAU_FASTFLAGVARIABLE!(LuauCodegenVmExitSyncFix);
281 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileDuptableConstantPack2);
283 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileFastcall3CostModel);
285 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileFoldOptimize);
287 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileInlineTableFunctions);
289 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileNewTableMutationTracker);
291 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileNoOptNext);
293 crate::LUAU_FASTFLAGVARIABLE!(LuauCompilePropagateTableProps2);
295 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileStringInterpTargetTop);
297 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileTypeAliases);
299 crate::LUAU_FASTFLAGVARIABLE!(LuauCompileUdataDirect);
301 crate::LUAU_FASTFLAGVARIABLE!(LuauConcatDoesntAlwaysReturnString);
303 crate::LUAU_FASTFLAGVARIABLE!(LuauConst2);
305 crate::LUAU_FASTFLAGVARIABLE!(LuauConstJustReportErrorForUnderfill);
307 crate::LUAU_FASTFLAGVARIABLE!(LuauConstraintGraph);
309 crate::LUAU_FASTFLAGVARIABLE!(LuauCstExprGroup);
311 crate::LUAU_FASTFLAGVARIABLE!(LuauCstTypeGroup);
313 crate::LUAU_FASTFLAGVARIABLE!(LuauDirectFieldGet);
315 crate::LUAU_FASTFLAGVARIABLE!(LuauDisallowRedefiningBuiltinTypes);
317 crate::LUAU_FASTFLAGVARIABLE!(LuauEmitCallFeedback);
319 crate::LUAU_FASTFLAGVARIABLE!(LuauErrorTolerantPrettyPrinting);
321 crate::LUAU_FASTFLAGVARIABLE!(LuauExplicitTypeInstantiationSupport);
323 crate::LUAU_FASTFLAGVARIABLE!(LuauExportValueSyntax);
325 crate::LUAU_FASTFLAGVARIABLE!(LuauExportValueTypecheck);
327 crate::LUAU_FASTFLAGVARIABLE!(LuauExternTypesNormalizeWithShapes);
329 crate::LUAU_FASTFLAGVARIABLE!(LuauFixIndexerSubtypingOrdering);
331 crate::LUAU_FASTFLAGVARIABLE!(LuauFixPropReadsOnMetatableTypes);
333 crate::LUAU_FASTFLAGVARIABLE!(LuauInstantiateFunctionTypeBeforePush);
335 crate::LUAU_FASTFLAGVARIABLE!(LuauInstantiateInSubtyping);
337 crate::LUAU_FASTFLAGVARIABLE!(LuauInstantiationUsesPolarity);
339 crate::LUAU_FASTFLAGVARIABLE!(LuauIntegerBufferFastcalls);
341 crate::LUAU_FASTFLAGVARIABLE!(LuauIntegerFastcalls);
343 crate::LUAU_FASTFLAGVARIABLE!(LuauIntegerLibrary);
345 crate::LUAU_FASTFLAGVARIABLE!(LuauIntegerType2);
347 crate::LUAU_FASTFLAGVARIABLE!(LuauIterativeInstantiationQueuer);
349 crate::LUAU_FASTFLAGVARIABLE!(LuauKnowsTheDataModel3);
351 crate::LUAU_FASTFLAGVARIABLE!(LuauLValueCompoundAssignmentVisitLhs);
353 crate::LUAU_FASTFLAGVARIABLE!(LuauLimitUnificationRecursion);
355 crate::LUAU_FASTFLAGVARIABLE!(LuauNativeCodeTargetCheck);
357 crate::LUAU_FASTFLAGVARIABLE!(LuauNonStrictModeUseErrorSupressingTag);
359 crate::LUAU_FASTFLAGVARIABLE!(LuauOccursCheckForAllBindings);
361 crate::LUAU_FASTFLAGVARIABLE!(LuauPropagateFreeTypesIntoUnionAndIntersectionBounds);
363 crate::LUAU_FASTFLAGVARIABLE!(LuauPropagateTypeAnnotationsInForInLoops);
365 crate::LUAU_FASTFLAGVARIABLE!(LuauPropertyModifierMismatchErrors);
367 crate::LUAU_FASTFLAGVARIABLE!(LuauReadOnlyIndexers);
369 crate::LUAU_FASTFLAGVARIABLE!(LuauRefineNilFromTableIndexerResultType);
371 crate::LUAU_FASTFLAGVARIABLE!(LuauRemoveConstraintSolverEmplace);
373 crate::LUAU_FASTFLAGVARIABLE!(LuauReplacerIsSolverAgnostic);
375 crate::LUAU_FASTFLAGVARIABLE!(LuauRequireResolveAliasNullCheck);
377 crate::LUAU_FASTFLAGVARIABLE!(LuauResumeRestoreCcalls);
379 crate::LUAU_FASTFLAGVARIABLE!(LuauSilenceDynamicFormatStringErrors);
381 crate::LUAU_FASTFLAGVARIABLE!(LuauSolverV2);
383 crate::LUAU_FASTFLAGVARIABLE!(LuauSubtypingMissingPropertiesAsNil);
385 crate::LUAU_FASTFLAGVARIABLE!(LuauSubtypingTablesHasBetterErrorSuppression);
387 crate::LUAU_FASTFLAGVARIABLE!(LuauTableEntriesDontNeedToMatchIndent);
389 crate::LUAU_FASTFLAGVARIABLE!(LuauTableFreezeCheckIsSubtype);
391 crate::LUAU_FASTFLAGVARIABLE!(LuauTidyTypePrototyping);
393 crate::LUAU_FASTFLAGVARIABLE!(LuauTransitiveSubtyping);
395 crate::LUAU_FASTFLAGVARIABLE!(LuauTweakAccessViolationReporting);
397 crate::LUAU_FASTFLAGVARIABLE!(LuauTypeFunctionRobustness);
399 crate::LUAU_FASTFLAGVARIABLE!(LuauTypeFunctionSerializeArgNames);
401 crate::LUAU_FASTFLAGVARIABLE!(LuauTypeFunctionStructuredErrors);
403 crate::LUAU_FASTFLAGVARIABLE!(LuauTypeFunctionSupportsFrozen);
405 crate::LUAU_FASTFLAGVARIABLE!(LuauUdataDirectAccess6);
407 crate::LUAU_FASTFLAGVARIABLE!(LuauUdtfTypeIsSubtypeOf);
409 crate::LUAU_FASTFLAGVARIABLE!(LuauUseNativeStackGuard);
411 crate::LUAU_FASTFLAGVARIABLE!(LuauVisitCallTypeArgsInDfg);
413 crate::LUAU_FASTFLAGVARIABLE!(LuauYieldIter2);
415}
416
417#[allow(non_snake_case)]
421pub mod FInt {
422 crate::LUAU_FASTINTVARIABLE!(CodegenHeuristicsBlockInstructionLimit, 65_536);
424 crate::LUAU_FASTINTVARIABLE!(CodegenHeuristicsBlockLimit, 32_768);
426 crate::LUAU_FASTINTVARIABLE!(CodegenHeuristicsInstructionLimit, 1_048_576);
428 crate::LUAU_FASTINTVARIABLE!(LuauCodeGenBlockSize, 4 * 1024 * 1024);
430 crate::LUAU_FASTINTVARIABLE!(LuauCodeGenMaxTotalSize, 256 * 1024 * 1024);
432 crate::LUAU_FASTINTVARIABLE!(LuauTypeCloneIterationLimit, 100_000);
434 crate::LUAU_FASTINTVARIABLE!(DebugLuauVerboseTypeNames, 0);
436 crate::LUAU_FASTINTVARIABLE!(LuauCheckRecursionLimit, 300);
438 crate::LUAU_FASTINTVARIABLE!(LuauCodeGenLiveSlotReuseLimit, 8);
440 crate::LUAU_FASTINTVARIABLE!(LuauCodeGenMinLinearBlockPath, 3);
442 crate::LUAU_FASTINTVARIABLE!(LuauCodeGenReuseSlotLimit, 64);
444 crate::LUAU_FASTINTVARIABLE!(LuauCodeGenReuseUdataTagLimit, 64);
446 crate::LUAU_FASTINTVARIABLE!(LuauCompileInlineDepth, 5);
448 crate::LUAU_FASTINTVARIABLE!(LuauCompileInlineThreshold, 25);
450 crate::LUAU_FASTINTVARIABLE!(LuauCompileInlineThresholdMaxBoost, 300);
452 crate::LUAU_FASTINTVARIABLE!(LuauCompileLoopUnrollThreshold, 25);
454 crate::LUAU_FASTINTVARIABLE!(LuauCompileLoopUnrollThresholdMaxBoost, 300);
456 crate::LUAU_FASTINTVARIABLE!(LuauGenericCounterMaxDepth, 15);
458 crate::LUAU_FASTINTVARIABLE!(LuauGenericCounterMaxSteps, 1500);
460 crate::LUAU_FASTINTVARIABLE!(LuauIndentTypeMismatchMaxTypeLength, 10);
462 crate::LUAU_FASTINTVARIABLE!(LuauInlineHitsThreshold, 3);
464 crate::LUAU_FASTINTVARIABLE!(LuauNonStrictTypeCheckerRecursionLimit, 300);
466 crate::LUAU_FASTINTVARIABLE!(LuauNormalizeCacheLimit, 100000);
468 crate::LUAU_FASTINTVARIABLE!(LuauNormalizerInitialFuel, 3000);
470 crate::LUAU_FASTINTVARIABLE!(LuauParseErrorLimit, 100);
472 crate::LUAU_FASTINTVARIABLE!(LuauPrimitiveInferenceInTableLimit, 500);
474 crate::LUAU_FASTINTVARIABLE!(LuauRecursionLimit, 1000);
476 crate::LUAU_FASTINTVARIABLE!(LuauSolverConstraintLimit, 1000);
478 crate::LUAU_FASTINTVARIABLE!(LuauSolverRecursionLimit, 500);
480 crate::LUAU_FASTINTVARIABLE!(LuauStackGuardThreshold, 1024);
482 crate::LUAU_FASTINTVARIABLE!(LuauSubtypingIterationLimit, 20000);
484 crate::LUAU_FASTINTVARIABLE!(LuauSubtypingReasoningLimit, 100);
486 crate::LUAU_FASTINTVARIABLE!(LuauSuggestionDistance, 4);
488 crate::LUAU_FASTINTVARIABLE!(LuauTableTypeMaximumStringifierLength, 0);
490 crate::LUAU_FASTINTVARIABLE!(LuauTarjanChildLimit, 10000);
492 crate::LUAU_FASTINTVARIABLE!(LuauTarjanPreallocationSize, 256);
494 crate::LUAU_FASTINTVARIABLE!(LuauTypeInferIterationLimit, 20000);
496 crate::LUAU_FASTINTVARIABLE!(LuauTypeInferRecursionLimit, 165);
498 crate::LUAU_FASTINTVARIABLE!(LuauTypeInferTypePackLoopLimit, 5000);
500 crate::LUAU_FASTINTVARIABLE!(LuauTypeLengthLimit, 1000);
502 crate::LUAU_FASTINTVARIABLE!(LuauTypeMaximumStringifierLength, 500);
504 crate::LUAU_FASTINTVARIABLE!(LuauVisitRecursionLimit, 500);
506}
507
508#[allow(non_snake_case)]
510pub mod DFFlag {
511 crate::LUAU_DYNAMIC_FASTFLAGVARIABLE!(AddReturnExectargetCheck, false);
513 crate::LUAU_DYNAMIC_FASTFLAGVARIABLE!(DebugLuauReportReturnTypeVariadicWithTypeSuffix, false);
515 crate::LUAU_DYNAMIC_FASTFLAGVARIABLE!(LuauRequireAliasOverrideOrderFix, false);
517}
518
519#[allow(non_snake_case)]
521pub mod DFInt {
522 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauTypeFamilyApplicationCartesianProductLimit, 5_000);
524 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauTypeFamilyGraphReductionMaximumSteps, 1_000_000);
526 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauTypeFunctionSerdeIterationLimit, 100_000);
528 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauConstraintGeneratorRecursionLimit, 300);
530 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauSimplificationComplexityLimit, 8);
532 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauStepRefineRecursionLimit, 64);
534 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauSubtypingRecursionLimit, 100);
536 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauTypeFamilyUseGuesserDepth, -1);
538 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauTypePathMaximumTraverseSteps, 100);
540 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauTypeSimplificationIterationLimit, 128);
542 crate::LUAU_DYNAMIC_FASTINTVARIABLE!(LuauUnifierRecursionLimit, 100);
544}
545
546mod fastflag_timetrace_tests {
547 #[test]
550 fn flag_default_and_timetrace_noops() {
551 assert_eq!(crate::FFlag::DebugLuauTimeTracing.get(), false);
552 crate::LUAU_TIMETRACE_SCOPE!("name", "category");
553 crate::LUAU_TIMETRACE_OPTIONAL_TAIL_SCOPE!("name", "category", 100);
554 crate::LUAU_TIMETRACE_ARGUMENT!("k", "v");
555 crate::FFlag::DebugLuauTimeTracing.set(true);
556 assert_eq!(crate::FFlag::DebugLuauTimeTracing.get(), true);
557 }
558}