Enable pyre for mutable struct tests
[hiphop-php.git] / hphp / hack / src / errors / error_codes.ml
blobfa3b1266017cef85475ae1cbf2f218786fb37d80
1 (*
2 * Copyright (c) 2015, Facebook, Inc.
3 * All rights reserved.
5 * This source code is licensed under the MIT license found in the
6 * LICENSE file in the "hack" directory of this source tree.
8 *)
10 (*****************************************************************************)
11 (* Error codes.
12 * Each error has a unique number associated with it. The following modules
13 * define the error code associated with each kind of error.
14 * It is ok to extend the codes with new values, it is NOT OK to change the
15 * value of an existing error to a different error code!
17 * When removing error codes, you should NOT delete them! Instead, prefer to
18 * comment them out as documentation and append DEPRECATED to the name.
19 * See below for plenty of examples.
21 (*****************************************************************************)
23 module Parsing = struct
24 type t =
25 | FixmeFormat [@value 1001]
26 | ParsingError [@value 1002]
27 (* | UnexpectedEofDEPRECATED [@value 1003] *)
28 (* | UnterminatedCommentDEPRECATED [@value 1004] *)
29 (* | UnterminatedXhpCommentDEPRECATED [@value 1005] *)
30 (* | CallTimePassByReferenceDEPRECATED [@value 1006] *)
31 | XhpParsingError [@value 1007]
32 | HhIgnoreComment [@value 1008]
33 | PackageConfigError [@value 1009]
34 (* Add new Parsing codes here! Comment out when deprecating. *)
35 [@@deriving enum, show { with_path = false }]
37 let err_code = to_enum
38 end
40 module Naming = struct
41 type t =
42 | AddATypehint [@value 2001]
43 (* | TypeparamAlokDEPRECATED [@value 2002] *)
44 | AssertArity [@value 2003]
45 | PrimitiveInvalidAlias [@value 2004]
46 (* | CyclicConstraintDEPRECATED [@value 2005] *)
47 | DidYouMeanNaming [@value 2006]
48 (* | DifferentScopeDEPRECATED [@value 2007] *)
49 | DisallowedXhpType [@value 2008]
50 (* | DoubleInsteadOfFloatDEPRECATED [@value 2009] *)
51 (* | DynamicClassDEPRECATED [@value 2010] *)
52 | LvarInObjGet [@value 2011]
53 | ErrorNameAlreadyBound [@value 2012]
54 | ExpectedCollection [@value 2013]
55 | ExpectedVariable [@value 2014]
56 | FdNameAlreadyBound [@value 2015]
57 (* | GenArrayRecArityDEPRECATED [@value 2016] *)
58 (* | GenArrayVaRecArityDEPRECATED [@value 2017] *)
59 (* | GenaArityDEPRECATED [@value 2018] *)
60 (* | GenericClassVarDEPRECATED [@value 2019] *)
61 (* | GenvaArityDEPRECATED [@value 2020] *)
62 | IllegalClass [@value 2021]
63 | IllegalClassMeth [@value 2022]
64 | IllegalConstant [@value 2023]
65 | IllegalFun [@value 2024]
66 | IllegalInstMeth [@value 2025]
67 | IllegalMethCaller [@value 2026]
68 | IllegalMethFun [@value 2027]
69 (* | IntegerInsteadOfIntDEPRECATED [@value 2028] *)
70 | InvalidReqExtends [@value 2029]
71 | InvalidReqImplements [@value 2030]
72 (* | LocalConstDEPRECATED [@value 2031] *)
73 | LowercaseThis [@value 2032]
74 | MethodNameAlreadyBound [@value 2033]
75 | MissingArrow [@value 2034]
76 | MissingTypehint [@value 2035]
77 | NameAlreadyBound [@value 2036]
78 | NamingTooFewArguments [@value 2037]
79 | NamingTooManyArguments [@value 2038]
80 | PrimitiveToplevel [@value 2039]
81 (* | RealInsteadOfFloatDEPRECATED [@value 2040] *)
82 | ShadowedTypeParam [@value 2041]
83 | StartWith_T [@value 2042]
84 | ThisMustBeReturn [@value 2043]
85 | ThisNoArgument [@value 2044]
86 | ThisHintOutsideClass [@value 2045]
87 | ThisReserved [@value 2046]
88 | HigherKindedTypesUnsupportedFeature [@value 2047]
89 (* | TypedefConstraintDEPRECATED [@value 2048] *)
90 | UnboundName [@value 2049]
91 | Undefined [@value 2050]
92 | UnexpectedArrow [@value 2051]
93 | UnexpectedTypedef [@value 2052]
94 | UsingInternalClass [@value 2053]
95 | VoidCast [@value 2054]
96 | ObjectCast [@value 2055]
97 | UnsetCast [@value 2056]
98 (* | NullsafePropertyAccessDEPRECATED [@value 2057] *)
99 | IllegalTrait [@value 2058]
100 (* | ShapeTypehintDEPRECATED [@value 2059] *)
101 | DynamicNewInStrictMode [@value 2060]
102 | InvalidTypeAccessRoot [@value 2061]
103 | DuplicateUserAttribute [@value 2062]
104 | ReturnOnlyTypehint [@value 2063]
105 | UnexpectedTypeArguments [@value 2064]
106 | TooManyTypeArguments [@value 2065]
107 | ClassnameParam [@value 2066]
108 (* | InvalidInstanceofDEPRECATED [@value 2067] *)
109 | NameIsReserved [@value 2068]
110 | DollardollarUnused [@value 2069]
111 | IllegalMemberVariableClass [@value 2070]
112 | TooFewTypeArguments [@value 2071]
113 (* | GotoLabelAlreadyDefinedDEPRECATED [@value 2072] *)
114 (* | GotoLabelUndefinedDEPRECATED [@value 2073] *)
115 (* | GotoLabelDefinedInFinallyDEPRECATED [@value 2074] *)
116 (* | GotoInvokedInFinallyDEPRECATED [@value 2075] *)
117 (* | DynamicClassPropertyNameInStrictModeDEPRECATED [@value 2076] *)
118 | ThisAsLexicalVariable [@value 2077]
119 | DynamicClassNameInStrictMode [@value 2078]
120 | XhpOptionalRequiredAttr [@value 2079]
121 | XhpRequiredWithDefault [@value 2080]
122 (* | VariableVariablesDisallowedDEPRECATED [@value 2081] *)
123 | ArrayTypehintsDisallowed [@value 2082]
124 (* | ArrayLiteralsDisallowedDEPRECATED [@value 2083] *)
125 | WildcardHintDisallowed [@value 2084]
126 (* | AttributeClassNameConflictDEPRECATED [@value 2085] *)
127 | MethodNeedsVisibility [@value 2086]
128 (* | ReferenceInStrictModeDEPRECATED [@value 2087] *)
129 (* | ReferenceInRxDEPRECATED [@value 2088] *)
130 (* | DeclareStatementDEPRECATED [@value 2089] *)
131 (* | MisplacedRxOfScopeDEPRECATED [@value 2090] *)
132 (* | RxOfScopeAndExplicitRxDEPRECATED [@value 2091] *)
133 (* | UnsupportedFeatureDEPRECATED [@value 2092] *)
134 (* | TraitInterfaceConstructorPromoDEPRECATED [@value 2093] *)
135 | NonstaticPropertyWithLSB [@value 2094]
136 (* | ReferenceInAnonUseClauseDEPRECATED [@value 2095] *)
137 (* | RxMoveInvalidLocationDEPRECATED [@value 2096] *)
138 (* | MisplacedMutabilityHintDEPRECATED [@value 2097] *)
139 (* | MutabilityHintInNonRxDEPRECATED [@value 2098] *)
140 (* | InvalidReturnMutableHintDEPRECATED [@value 2099] *)
141 (* | NoTparamsOnTypeConstsDEPRECATED [@value 2100] *)
142 (* | PocketUniversesDuplicationDEPRECATED [@value 2101] *)
143 | UnsupportedTraitUseAs [@value 2102]
144 | UnsupportedInsteadOf [@value 2103]
145 (* | InvalidTraitUseAsVisibilityDEPRECATED [@value 2104] *)
146 | InvalidFunPointer [@value 2105]
147 | IllegalUseOfDynamicallyCallable [@value 2106]
148 (* | PocketUniversesNotInClassDEPRECATED [@value 2107] *)
149 (* | PocketUniversesAtomMissingDEPRECATED [@value 2108] *)
150 (* | PocketUniversesAtomUnknownDEPRECATED [@value 2109] *)
151 (* | PocketUniversesLocalizationDEPRECATED [@value 2110] *)
152 | ClassMethNonFinalSelf [@value 2111]
153 | ParentInFunctionPointer [@value 2112]
154 | SelfInNonFinalFunctionPointer [@value 2113]
155 | ClassMethNonFinalCLASS [@value 2114]
156 | WildcardTypeParamDisallowed [@value 2115]
157 (* | CallingAssertDEPRECATED [@value 2116] *)
158 | InvalidWildcardContext [@value 2117]
159 | ExplicitConsistentConstructor [@value 2118]
160 | InvalidReqClass [@value 2119]
161 | ModuleDeclarationOutsideAllowedFiles [@value 2120]
162 | DynamicMethodAccess [@value 2121]
163 | TypeConstantInEnumClassOutsideAllowedLocations [@value 2122]
164 | InvalidBuiltinType [@value 2123]
165 | InvalidMemoizeLabel [@value 2124]
166 | DynamicHintDisallowed [@value 2125]
167 | IllegalTypedLocal [@value 2126]
168 | InternalModuleLevelTrait [@value 2127]
169 | ToplevelStatement [@value 2128]
170 | InvalidTypeAccessInWhere [@value 2129]
171 | AttributeOutsideAllowedFiles [@value 2130]
172 (* Add new Naming codes here! Comment out when deprecating. *)
173 [@@deriving enum, show { with_path = false }]
175 let err_code = to_enum
178 module NastCheck = struct
179 type t =
180 | AbstractBody [@value 3001]
181 | AbstractWithBody [@value 3002]
182 | AwaitInSyncFunction [@value 3003]
183 | CallBeforeInit [@value 3004]
184 | CaseFallthrough [@value 3005]
185 | ContinueInSwitch [@value 3006]
186 (* | DangerousMethodNameDEPRECATED [@value 3007] *)
187 | DefaultFallthrough [@value 3008]
188 | InterfaceWithMemberVariable [@value 3009]
189 | InterfaceWithStaticMemberVariable [@value 3010]
190 | Magic [@value 3011]
191 | NoConstructParent [@value 3012]
192 | NonInterface [@value 3013]
193 | NotAbstractWithoutBody [@value 3014]
194 | NotInitialized [@value 3015]
195 | NotPublicInterface [@value 3016]
196 | RequiresNonClass [@value 3017]
197 | ReturnInFinally [@value 3018]
198 | ReturnInGen [@value 3019]
199 | ToStringReturnsString [@value 3020]
200 | ToStringVisibility [@value 3021]
201 | ToplevelBreak [@value 3022]
202 | ToplevelContinue [@value 3023]
203 | UsesNonTrait [@value 3024]
204 | IllegalFunctionName [@value 3025]
205 | NotAbstractWithoutTypeconst [@value 3026]
206 | TypeconstDependsOnExternalTparam [@value 3027]
207 (* | TypeconstAssignedTparamDEPRECATED [@value 3028] *)
208 (* | AbstractWithTypeconstDEPRECATED [@value 3029] *)
209 | ConstructorRequired [@value 3030]
210 | InterfaceWithPartialTypeconst [@value 3031]
211 | MultipleXhpCategory [@value 3032]
212 (* | OptionalShapeFieldsNotSupportedDEPRECATED [@value 3033] *)
213 (* | AwaitNotAllowedDEPRECATED [@value 3034] *)
214 (* | AsyncInInterfaceDEPRECATED [@value 3035] *)
215 (* | AwaitInCoroutineDEPRECATED [@value 3036] *)
216 (* | YieldInCoroutineDEPRECATED [@value 3037] *)
217 (* | SuspendOutsideOfCoroutineDEPRECATED [@value 3038] *)
218 (* | SuspendInFinallyDEPRECATED [@value 3039] *)
219 (* | BreakContinueNNotSupportedDEPRECATED [@value 3040] *)
220 | StaticMemoizedFunction [@value 3041]
221 (* | InoutParamsInCoroutineDEPRECATED [@value 3042] *)
222 | InoutParamsSpecial [@value 3043]
223 (* | InoutParamsMixByrefDEPRECATED [@value 3044] *)
224 | InoutParamsMemoize [@value 3045]
225 (* | InoutParamsRetByRefDEPRECATED [@value 3046] *)
226 | ReadingFromAppend [@value 3047]
227 (* | ConstAttributeProhibitedDEPRECATED [@value 3048] *)
228 (* | GlobalInReactiveContextDEPRECATED [@value 3049] *)
229 (* | InoutArgumentBadExprDEPRECATED [@value 3050] *)
230 (* | MutableParamsOutsideOfSyncDEPRECATED [@value 3051] *)
231 (* | MutableAsyncMethodDEPRECATED [@value 3052] *)
232 (* | MutableMethodsMustBeReactiveDEPRECATED [@value 3053] *)
233 (* | MutableAttributeOnFunctionDEPRECATED [@value 3054] *)
234 (* | MutableReturnAnnotatedDeclsMustBeReactiveDEPRECATED [@value 3055] *)
235 | IllegalDestructor [@value 3056]
236 (* | ConditionallyReactiveFunctionDEPRECATED [@value 3057] *)
237 (* | MultipleConditionallyReactiveAnnotationsDEPRECATED [@value 3058] *)
238 (* | ConditionallyReactiveAnnotationInvalidArgumentsDEPRECATED [@value 3059] *)
239 (* | MissingReactivityForConditionDEPRECATED [@value 3060] *)
240 (* | MultipleReactivityAnnotationsDEPRECATED [@value 3061] *)
241 (* | RxIsEnabledInvalidLocationDEPRECATED [@value 3062] *)
242 (* | MaybeRxInvalidLocationDEPRECATED [@value 3063] *)
243 (* | NoOnlyrxIfRxfuncForRxIfArgsDEPRECATED [@value 3064] *)
244 (* | CoroutineInConstructorDEPRECATED [@value 3065] *)
245 (* | IllegalReturnByRefDEPRECATED [@value 3066] *)
246 (* | IllegalByRefExprDEPRECATED [@value 3067] *)
247 (* | VariadicByRefParamDEPRECATED [@value 3068] *)
248 (* | MaybeMutableAttributeOnFunctionDEPRECATED [@value 3069] *)
249 (* | ConflictingMutableAndMaybeMutableAttributesDEPRECATED [@value 3070] *)
250 (* | MaybeMutableMethodsMustBeReactiveDEPRECATED [@value 3071] *)
251 | RequiresFinalClass [@value 3072]
252 | InterfaceUsesTrait [@value 3073]
253 | NonstaticMethodInAbstractFinalClass [@value 3074]
254 (* | MutableOnStaticDEPRECATED [@value 3075] *)
255 (* | ClassnameConstInstanceOfDEPRECATED [@value 3076] *)
256 (* | ByRefParamOnConstructDEPRECATED [@value 3077] *)
257 (* | ByRefDynamicCallDEPRECATED [@value 3078] *)
258 (* | ByRefPropertyDEPRECATED [@value 3079] *)
259 (* | ByRefCallDEPRECATED [@value 3080] *)
260 | SwitchNonTerminalDefault [@value 3081]
261 | SwitchMultipleDefault [@value 3082]
262 | RepeatedRecordFieldName [@value 3083]
263 | PhpLambdaDisallowed [@value 3084]
264 | EntryPointArguments [@value 3085]
265 | VariadicMemoize [@value 3086]
266 | AbstractMethodMemoize [@value 3087]
267 | InstancePropertyInAbstractFinalClass [@value 3088]
268 | DynamicallyCallableReified [@value 3089]
269 | IllegalContext [@value 3090]
270 (* | InvalidConstFunAttributeDEPRECATED [@value 3091] *)
271 | ListRvalue [@value 3092]
272 | PartiallyAbstractTypeconstDefinition [@value 3093]
273 | EntryPointGenerics [@value 3094]
274 | InternalProtectedOrPrivate [@value 3095]
275 | InoutInTransformedPsuedofunction [@value 3096]
276 | PrivateAndFinal [@value 3097]
277 (* | InternalOutsideModuleDEPRECATED [@value 3098] *)
278 | InternalMemberInsidePublicTrait [@value 3099]
279 | AttributeConflictingMemoize [@value 3100]
280 | RefinementInTypeStruct [@value 3101]
281 | Soft_internal_without_internal [@value 3102]
282 | CloneReturnType [@value 3104]
283 (* Add new NastCheck codes here! Comment out when deprecating. *)
284 [@@deriving enum, show { with_path = false }]
286 let err_code = to_enum
289 module Typing = struct
290 type t =
291 | InternalError [@value 0]
292 (* | AbstractClassFinalDEPRECATED [@value 4001] *)
293 | UninstantiableClass [@value 4002]
294 (* | AnonymousRecursiveDEPRECATED [@value 4003] *)
295 (* | AnonymousRecursiveCallDEPRECATED [@value 4004] *)
296 | ArrayAccessRead [@value 4005]
297 | ArrayAppend [@value 4006]
298 | ArrayCast [@value 4007]
299 | ArrayGetArity [@value 4008]
300 | BadCall [@value 4009]
301 (* | ClassArityDEPRECATED [@value 4010] *)
302 | ConstMutation [@value 4011]
303 | ConstructorNoArgs [@value 4012]
304 | CyclicClassDef [@value 4013]
305 | CyclicTypedef [@value 4014]
306 | DiscardedAwaitable [@value 4015]
307 | IssetEmptyInStrict [@value 4016]
308 (* | DynamicYieldPrivateDEPRECATED [@value 4017] *)
309 | EnumConstantTypeBad [@value 4018]
310 | EnumSwitchNonexhaustive [@value 4019]
311 | EnumSwitchNotConst [@value 4020]
312 | EnumSwitchRedundant [@value 4021]
313 | EnumSwitchRedundantDefault [@value 4022]
314 | EnumSwitchWrongClass [@value 4023]
315 | EnumTypeBad [@value 4024]
316 (* | EnumTypeTypedefMixedDEPRECATED [@value 4025] *)
317 | ExpectedClass [@value 4026]
318 | ExpectedLiteralFormatString [@value 4027]
319 (* | ExpectedStaticIntDEPRECATED [@value 4028] *)
320 | ExpectedTparam [@value 4029]
321 | ExpectingReturnTypeHint [@value 4030]
322 (* | ExpectingReturnTypeHintSuggestDEPRECATED [@value 4031] *)
323 | ExpectingTypeHint [@value 4032]
324 | ExpectingTypeHintVariadic [@value 4033]
325 (* | RetiredError4034DEPRECATED [@value 4034] *)
326 | ExtendFinal [@value 4035]
327 | FieldKinds [@value 4036]
328 (* | FieldMissingDEPRECATED [@value 4037] *)
329 | FormatString [@value 4038]
330 | FunArityMismatch [@value 4039]
331 | FunTooFewArgs [@value 4040]
332 | FunTooManyArgs [@value 4041]
333 | FunUnexpectedNonvariadic [@value 4042]
334 | FunVariadicityHhVsPhp56 [@value 4043]
335 (* | GenaExpectsArrayDEPRECATED [@value 4044] *)
336 | GenericArrayStrict [@value 4045]
337 | GenericStatic [@value 4046]
338 | ImplementAbstract [@value 4047]
339 (* | InterfaceFinalDEPRECATED [@value 4048] *)
340 | InvalidShapeFieldConst [@value 4049]
341 | InvalidShapeFieldLiteral [@value 4050]
342 | InvalidShapeFieldName [@value 4051]
343 | InvalidShapeFieldType [@value 4052]
344 | MemberNotFound [@value 4053]
345 | MemberNotImplemented [@value 4054]
346 | MissingAssign [@value 4055]
347 | MissingConstructor [@value 4056]
348 | MissingField [@value 4057]
349 (* | NegativeTupleIndexDEPRECATED [@value 4058] *)
350 | SelfOutsideClass [@value 4059]
351 | NewStaticInconsistent [@value 4060]
352 | StaticOutsideClass [@value 4061]
353 | NonObjectMemberRead [@value 4062]
354 | NullContainer [@value 4063]
355 | NullMemberRead [@value 4064]
356 (* | NullableParameterDEPRECATED [@value 4065] *)
357 | OptionReturnOnlyTypehint [@value 4066]
358 | ObjectString [@value 4067]
359 (* | OptionMixedDEPRECATED [@value 4068] *)
360 (* | OverflowDEPRECATED [@value 4069] *)
361 | OverrideFinal [@value 4070]
362 | OverridePerTrait [@value 4071]
363 (* | PairArityDEPRECATED [@value 4072] *)
364 | AbstractCall [@value 4073]
365 | ParentInTrait [@value 4074]
366 | ParentOutsideClass [@value 4075]
367 | ParentUndefined [@value 4076]
368 | PreviousDefault [@value 4077]
369 (* | PrivateClassMethDEPRECATED [@value 4078] *)
370 (* | PrivateInstMethDEPRECATED [@value 4079] *)
371 | PrivateOverride [@value 4080]
372 (* | ProtectedClassMethDEPRECATED [@value 4081] *)
373 (* | ProtectedInstMethDEPRECATED [@value 4082] *)
374 | ReadBeforeWrite [@value 4083]
375 | ReturnInVoid [@value 4084]
376 | ShapeFieldClassMismatch [@value 4085]
377 | ShapeFieldTypeMismatch [@value 4086]
378 | ShouldNotBeOverride [@value 4087]
379 (* | SketchyNullCheckDEPRECATED [@value 4088] *)
380 (* | SketchyNullCheckPrimitiveDEPRECATED [@value 4089] *)
381 | SmemberNotFound [@value 4090]
382 | StaticDynamic [@value 4091]
383 (* | StaticOverflowDEPRECATED [@value 4092] *)
384 (* | RetiredError4093DEPRECATED [@value 4093] *)
385 (* | ThisInStaticDEPRECATED [@value 4094] *)
386 | ThisVarOutsideClass [@value 4095]
387 (* | TraitFinalDEPRECATED [@value 4096] *)
388 (* | TupleArityDEPRECATED [@value 4097] *)
389 (* | TupleArityMismatchDEPRECATED [@value 4098] *)
390 (* | TupleIndexTooLargeDEPRECATED [@value 4099] *)
391 | TupleSyntax [@value 4100]
392 | TypeArityMismatch [@value 4101]
393 (* | TypeParamArityDEPRECATED [@value 4102] *)
394 (* | RetiredError4103DEPRECATED [@value 4103] *)
395 | TypingTooFewArgs [@value 4104]
396 | TypingTooManyArgs [@value 4105]
397 | UnboundGlobal [@value 4106]
398 | UnboundNameTyping [@value 4107]
399 | UndefinedField [@value 4108]
400 | UndefinedParent [@value 4109]
401 | UnifyError [@value 4110]
402 | UnsatisfiedReq [@value 4111]
403 | Visibility [@value 4112]
404 | VisibilityExtends [@value 4113]
405 (* | VoidParameterDEPRECATED [@value 4114] *)
406 | WrongExtendKind [@value 4115]
407 | GenericUnify [@value 4116]
408 (* | NullsafeNotNeededDEPRECATED [@value 4117] *)
409 | TrivialStrictEq [@value 4118]
410 | VoidUsage [@value 4119]
411 | DeclaredCovariant [@value 4120]
412 | DeclaredContravariant [@value 4121]
413 (* | UnsetInStrictDEPRECATED [@value 4122] *)
414 | StrictMembersNotKnown [@value 4123]
415 | ErasedGenericAtRuntime [@value 4124]
416 (* | DynamicClassDEPRECATED [@value 4125] *)
417 | AttributeTooManyArguments [@value 4126]
418 | AttributeParamType [@value 4127]
419 | DeprecatedUse [@value 4128]
420 | AbstractConstUsage [@value 4129]
421 | CannotDeclareConstant [@value 4130]
422 | CyclicTypeconst [@value 4131]
423 | NullsafePropertyWriteContext [@value 4132]
424 | NoreturnUsage [@value 4133]
425 (* | ThisLvalueDEPRECATED [@value 4134] *)
426 | UnsetNonidxInStrict [@value 4135]
427 | InvalidShapeFieldNameEmpty [@value 4136]
428 (* | InvalidShapeFieldNameNumberDEPRECATED [@value 4137] *)
429 | ShapeFieldsUnknown [@value 4138]
430 | InvalidShapeRemoveKey [@value 4139]
431 (* | MissingOptionalFieldDEPRECATED [@value 4140] *)
432 | ShapeFieldUnset [@value 4141]
433 | AbstractConcreteOverride [@value 4142]
434 | LocalVariableModifedAndUsed [@value 4143]
435 | LocalVariableModifedTwice [@value 4144]
436 | AssignDuringCase [@value 4145]
437 | CyclicEnumConstraint [@value 4146]
438 | UnpackingDisallowed [@value 4147]
439 | InvalidClassname [@value 4148]
440 | InvalidMemoizedParam [@value 4149]
441 | IllegalTypeStructure [@value 4150]
442 | NotNullableCompareNullTrivial [@value 4151]
443 (* | ClassPropertyOnlyStaticLiteralDEPRECATED [@value 4152] *)
444 | AttributeTooFewArguments [@value 4153]
445 (* | ReferenceExprDEPRECATED [@value 4154] *)
446 | UnificationCycle [@value 4155]
447 | KeysetSet [@value 4156]
448 | EqIncompatibleTypes [@value 4157]
449 | ContravariantThis [@value 4158]
450 (* | InstanceofAlwaysFalseDEPRECATED [@value 4159] *)
451 (* | InstanceofAlwaysTrueDEPRECATED [@value 4160] *)
452 (* | AmbiguousMemberDEPRECATED [@value 4161] *)
453 (* | InstanceofGenericClassnameDEPRECATED [@value 4162] *)
454 | RequiredFieldIsOptional [@value 4163]
455 | FinalProperty [@value 4164]
456 | ArrayGetWithOptionalField [@value 4165]
457 | UnknownFieldDisallowedInShape [@value 4166]
458 | NullableCast [@value 4167]
459 (* | PassByRefAnnotationMissingDEPRECATED [@value 4168] *)
460 (* | NonCallArgumentInSuspendDEPRECATED [@value 4169] *)
461 (* | NonCoroutineCallInSuspendDEPRECATED [@value 4170] *)
462 (* | CoroutineCallOutsideOfSuspendDEPRECATED [@value 4171] *)
463 (* | FunctionIsNotCoroutineDEPRECATED [@value 4172] *)
464 (* | CoroutinnessMismatchDEPRECATED [@value 4173] *)
465 (* | ExpectingAwaitableReturnTypeHintDEPRECATED [@value 4174] *)
466 (* | ReffinessInvariantDEPRECATED [@value 4175] *)
467 (* | DollardollarLvalueDEPRECATED [@value 4176] *)
468 (* | StaticMethodOnInterfaceDEPRECATED [@value 4177] *)
469 | DuplicateUsingVar [@value 4178]
470 | IllegalDisposable [@value 4179]
471 | EscapingDisposable [@value 4180]
472 (* | PassByRefAnnotationUnexpectedDEPRECATED [@value 4181] *)
473 | InoutAnnotationMissing [@value 4182]
474 | InoutAnnotationUnexpected [@value 4183]
475 | InoutnessMismatch [@value 4184]
476 | StaticSyntheticMethod [@value 4185]
477 | TraitReuse [@value 4186]
478 | InvalidNewDisposable [@value 4187]
479 | EscapingDisposableParameter [@value 4188]
480 | AcceptDisposableInvariant [@value 4189]
481 | InvalidDisposableHint [@value 4190]
482 | XhpRequired [@value 4191]
483 | EscapingThis [@value 4192]
484 | IllegalXhpChild [@value 4193]
485 | MustExtendDisposable [@value 4194]
486 | InvalidIsAsExpressionHint [@value 4195]
487 | AssigningToConst [@value 4196]
488 | SelfConstParentNot [@value 4197]
489 (* | ParentConstSelfNotDEPRECATED [@value 4198] *)
490 (* | PartiallyValidIsAsExpressionHintDEPRECATED [@value 4199] *)
491 (* | NonreactiveFunctionCallDEPRECATED [@value 4200] *)
492 (* | NonreactiveIndexingDEPRECATED [@value 4201] *)
493 (* | ObjSetReactiveDEPRECATED [@value 4202] *)
494 (* | FunReactivityMismatchDEPRECATED [@value 4203] *)
495 | OverridingPropConstMismatch [@value 4204]
496 | InvalidReturnDisposable [@value 4205]
497 | InvalidDisposableReturnHint [@value 4206]
498 | ReturnDisposableMismatch [@value 4207]
499 | InoutArgumentBadType [@value 4208]
500 (* | InconsistentUnsetDEPRECATED [@value 4209] *)
501 (* | ReassignMutableVarDEPRECATED [@value 4210] *)
502 (* | InvalidFreezeTargetDEPRECATED [@value 4211] *)
503 (* | InvalidFreezeUseDEPRECATED [@value 4212] *)
504 (* | FreezeInNonreactiveContextDEPRECATED [@value 4213] *)
505 (* | MutableCallOnImmutableDEPRECATED [@value 4214] *)
506 (* | MutableArgumentMismatchDEPRECATED [@value 4215] *)
507 (* | InvalidMutableReturnResultDEPRECATED [@value 4216] *)
508 (* | MutableReturnResultMismatchDEPRECATED [@value 4217] *)
509 (* | NonreactiveCallFromShallowDEPRECATED [@value 4218] *)
510 | EnumTypeTypedefNonnull [@value 4219]
511 (* | RxEnabledInNonRxContextDEPRECATED [@value 4220] *)
512 (* | RxEnabledInLambdasDEPRECATED [@value 4221] *)
513 | AmbiguousLambda [@value 4222]
514 | EllipsisStrictMode [@value 4223]
515 (* | UntypedLambdaStrictModeDEPRECATED [@value 4224] *)
516 (* | BindingRefInArrayDEPRECATED [@value 4225] *)
517 | OutputInWrongContext [@value 4226]
518 (* | SuperglobalInReactiveContextDEPRECATED [@value 4227] *)
519 | StaticPropertyInWrongContext [@value 4228]
520 (* | StaticInReactiveContextDEPRECATED [@value 4229] *)
521 (* | GlobalInReactiveContextDEPRECATED [@value 4230] *)
522 | WrongExpressionKindAttribute [@value 4231]
523 (* | AttributeClassNoConstructorArgsDEPRECATED [@value 4232] *)
524 (* | InvalidTypeForOnlyrxIfRxfuncParameterDEPRECATED [@value 4233] *)
525 (* | MissingAnnotationForOnlyrxIfRxfuncParameterDEPRECATED [@value 4234] *)
526 (* | CannotReturnBorrowedValueAsImmutableDEPRECATED [@value 4235] *)
527 | DeclOverrideMissingHint [@value 4236]
528 (* | InvalidConditionallyReactiveCallDEPRECATED [@value 4237] *)
529 | ExtendSealed [@value 4238]
530 (* | SealedFinalDEPRECATED [@value 4239] *)
531 | ComparisonInvalidTypes [@value 4240]
532 (* | OptionVoidDEPRECATED [@value 4241] *)
533 (* | MutableInNonreactiveContextDEPRECATED [@value 4242] *)
534 (* | InvalidArgumentOfRxMutableFunctionDEPRECATED [@value 4243] *)
535 (* | LetVarImmutabilityViolationDEPRECATED [@value 4244] *)
536 (* | UnsealableDEPRECATED [@value 4245] *)
537 (* | ReturnVoidToRxMismatchDEPRECATED [@value 4246] *)
538 (* | ReturnsVoidToRxAsNonExpressionStatementDEPRECATED [@value 4247] *)
539 (* | NonawaitedAwaitableInReactiveContextDEPRECATED [@value 4248] *)
540 | ShapesKeyExistsAlwaysTrue [@value 4249]
541 | ShapesKeyExistsAlwaysFalse [@value 4250]
542 | ShapesMethodAccessWithNonExistentField [@value 4251]
543 | NonClassMember [@value 4252]
544 (* | PassingArrayCellByRefDEPRECATED [@value 4253] *)
545 (* | CallSiteReactivityMismatchDEPRECATED [@value 4254] *)
546 (* | RxParameterConditionMismatchDEPRECATED [@value 4255] *)
547 | AmbiguousObjectAccess [@value 4256]
548 (* | ExtendPPLDEPRECATED [@value 4257] *)
549 (* | ReassignMaybeMutableVarDEPRECATED [@value 4258] *)
550 (* | MaybeMutableArgumentMismatchDEPRECATED [@value 4259] *)
551 (* | ImmutableArgumentMismatchDEPRECATED [@value 4260] *)
552 (* | ImmutableCallOnMutableDEPRECATED [@value 4261] *)
553 (* | InvalidCallMaybeMutableDEPRECATED [@value 4262] *)
554 (* | MutabilityMismatchDEPRECATED [@value 4263] *)
555 (* | InvalidPPLCallDEPRECATED [@value 4264] *)
556 (* | InvalidPPLStaticCallDEPRECATED [@value 4265] *)
557 (* | TypeTestInLambdaDEPRECATED [@value 4266] *)
558 (* | InvalidTraversableInRxDEPRECATED [@value 4267] *)
559 (* | ReassignMutableThisDEPRECATED [@value 4268] *)
560 (* | MutableExpressionAsMultipleMutableArgumentsDEPRECATED [@value 4269] *)
561 (* | InvalidUnsetTargetInRxDEPRECATED [@value 4270] *)
562 (* | CoroutineOutsideExperimentalDEPRECATED [@value 4271] *)
563 (* | PPLMethPointerDEPRECATED [@value 4272] *)
564 (* | InvalidTruthinessTestDEPRECATED [@value 4273] *)
565 | RePrefixedNonString [@value 4274]
566 | BadRegexPattern [@value 4275]
567 (* | SketchyTruthinessTestDEPRECATED [@value 4276] *)
568 | LateInitWithDefault [@value 4277]
569 | OverrideMemoizeLSB [@value 4278]
570 | ClassVarTypeGenericParam [@value 4279]
571 | InvalidSwitchCaseValueType [@value 4280]
572 | StringCast [@value 4281]
573 | BadLateInitOverride [@value 4282]
574 (* | EscapingMutableObjectDEPRECATED [@value 4283] *)
575 | OverrideLSB [@value 4284]
576 | MultipleConcreteDefs [@value 4285]
577 (* | MoveInNonreactiveContextDEPRECATED [@value 4286] *)
578 | InvalidMoveUse [@value 4287]
579 | InvalidMoveTarget [@value 4288]
580 (* | IgnoredResultOfFreezeDEPRECATED [@value 4289] *)
581 (* | IgnoredResultOfMoveDEPRECATED [@value 4290] *)
582 | UnexpectedTy [@value 4291]
583 | UnserializableType [@value 4292]
584 (* | InconsistentMutabilityDEPRECATED [@value 4293] *)
585 (* | InvalidMutabilityFlavorInAssignmentDEPRECATED [@value 4294] *)
586 (* | OptionNullDEPRECATED [@value 4295] *)
587 | UnknownObjectMember [@value 4296]
588 | UnknownType [@value 4297]
589 | InvalidArrayKeyRead [@value 4298]
590 (* | ReferenceExprNotFunctionArgDEPRECATED [@value 4299] *)
591 (* | RedundantRxConditionDEPRECATED [@value 4300] *)
592 | RedeclaringMissingMethod [@value 4301]
593 | InvalidEnforceableTypeArgument [@value 4302]
594 | RequireArgsReify [@value 4303]
595 | TypecheckerTimeout [@value 4304]
596 | InvalidReifiedArgument [@value 4305]
597 | GenericsNotAllowed [@value 4306]
598 | InvalidNewableTypeArgument [@value 4307]
599 | InvalidNewableTypeParamConstraints [@value 4308]
600 | NewWithoutNewable [@value 4309]
601 | NewClassReified [@value 4310]
602 | MemoizeReified [@value 4311]
603 | ConsistentConstructReified [@value 4312]
604 | MethodVariance [@value 4313]
605 | MissingXhpRequiredAttr [@value 4314]
606 | BadXhpAttrRequiredOverride [@value 4315]
607 (* | ReifiedTparamVariadicDEPRECATED [@value 4316] *)
608 | UnresolvedTypeVariable [@value 4317]
609 | InvalidSubString [@value 4318]
610 | InvalidArrayKeyConstraint [@value 4319]
611 | OverrideNoDefaultTypeconst [@value 4320]
612 | ShapeAccessWithNonExistentField [@value 4321]
613 | DisallowPHPArraysAttr [@value 4322]
614 | TypeConstraintViolation [@value 4323]
615 | IndexTypeMismatch [@value 4324]
616 | ExpectedStringlike [@value 4325]
617 | TypeConstantMismatch [@value 4326]
618 (* | TypeConstantRedeclarationDEPRECATED [@value 4327] *)
619 | ConstantDoesNotMatchEnumType [@value 4328]
620 | EnumConstraintMustBeArraykey [@value 4329]
621 | EnumSubtypeMustHaveCompatibleConstraint [@value 4330]
622 | ParameterDefaultValueWrongType [@value 4331]
623 | NewtypeAliasMustSatisfyConstraint [@value 4332]
624 (* | BadFunctionTypevarDEPRECATED [@value 4333] *)
625 (* | BadClassTypevarDEPRECATED [@value 4334] *)
626 (* | BadMethodTypevarDEPRECATED [@value 4335] *)
627 | MissingReturnInNonVoidFunction [@value 4336]
628 | InoutReturnTypeMismatch [@value 4337]
629 | ClassConstantValueDoesNotMatchHint [@value 4338]
630 | ClassPropertyInitializerTypeDoesNotMatchHint [@value 4339]
631 | BadDeclOverride [@value 4340]
632 | BadMethodOverride [@value 4341]
633 | BadEnumExtends [@value 4342]
634 | XhpAttributeValueDoesNotMatchHint [@value 4343]
635 | TraitPropConstClass [@value 4344]
636 | EnumUnderlyingTypeMustBeArraykey [@value 4345]
637 | ClassGetReified [@value 4346]
638 | RequireGenericExplicit [@value 4347]
639 | ClassConstantTypeMismatch [@value 4348]
640 (* | PocketUniversesExpansionDEPRECATED [@value 4349] *)
641 (* | PocketUniversesTypingDEPRECATED [@value 4350] *)
642 | RecordInitValueDoesNotMatchHint [@value 4351]
643 | AbstractTconstNotAllowed [@value 4352]
644 (* | NewAbstractRecordDEPRECATED [@value 4353] *)
645 (* | RecordMissingRequiredFieldDEPRECATED [@value 4354] *)
646 (* | RecordUnknownFieldDEPRECATED [@value 4355] *)
647 (* | CyclicRecordDefDEPRECATED [@value 4356] *)
648 | InvalidDestructure [@value 4357]
649 | StaticMethWithClassReifiedGeneric [@value 4358]
650 | SplatArrayRequired [@value 4359]
651 | SplatArrayVariadic [@value 4360]
652 | ExceptionOccurred [@value 4361]
653 | InvalidReifiedFunctionPointer [@value 4362]
654 | BadFunctionPointerConstruction [@value 4363]
655 (* | NotARecordDEPRECATED [@value 4364] *)
656 | TraitReuseInsideClass [@value 4365]
657 | RedundantGeneric [@value 4366]
658 (* | PocketUniversesInvalidUpperBoundsDEPRECATED [@value 4367] *)
659 (* | PocketUniversesRefinementDEPRECATED [@value 4368] *)
660 (* | PocketUniversesReservedSyntaxDEPRECATED [@value 4369] *)
661 | ArrayAccessWrite [@value 4370]
662 | InvalidArrayKeyWrite [@value 4371]
663 | NullMemberWrite [@value 4372]
664 | NonObjectMemberWrite [@value 4373]
665 | ConcreteConstInterfaceOverride [@value 4374]
666 | MethCallerTrait [@value 4375]
667 (* | PocketUniversesAttributesDEPRECATED [@value 4376] *)
668 | DuplicateInterface [@value 4377]
669 | TypeParameterNameAlreadyUsedNonShadow [@value 4378]
670 | IllegalInformationFlow [@value 4379]
671 | ContextImplicitPolicyLeakage [@value 4380]
672 | ReifiedFunctionReference [@value 4381]
673 | ClassMethAbstractCall [@value 4382]
674 | KindMismatch [@value 4383]
675 | UnboundNameTypeConstantAccess [@value 4384]
676 | UnknownInformationFlow [@value 4385]
677 | CallsiteCIPPMismatch [@value 4386]
678 | NonpureFunctionCall [@value 4387]
679 | IncompatibleEnumInclusion [@value 4388]
680 | RedeclaringClassishConstant [@value 4389]
681 | CallCoeffects [@value 4390]
682 | AbstractFunctionPointer [@value 4391]
683 | UnnecessaryAttribute [@value 4392]
684 | InheritedMethodCaseDiffers [@value 4393]
685 | EnumClassLabelUnknown [@value 4394]
686 (* | ViaLabelInvalidParameterDEPRECATED [@value 4395] *)
687 | EnumClassLabelAsExpression [@value 4396]
688 (* | EnumClassLabelInvalidArgumentDEPRECATED [@value 4397] *)
689 (* | IFCInternalErrorDEPRECATED [@value 4398] *)
690 (* | IFCExternalContravariantDEPRECATED [@value 4399] *)
691 (* | IFCPolicyMismatchDEPRECATED [@value 4400] *)
692 | OpCoeffects [@value 4401]
693 | ImplementsDynamic [@value 4402]
694 | SubtypeCoeffects [@value 4403]
695 | ImmutableLocal [@value 4404]
696 | EnumClassesReservedSyntax [@value 4405]
697 | NonsenseMemberSelection [@value 4406]
698 | ConsiderMethCaller [@value 4407]
699 | EnumSupertypingReservedSyntax [@value 4408]
700 | ReadonlyValueModified [@value 4409]
701 (* | ReadonlyVarMismatchDEPRECATED [@value 4410] *)
702 | ReadonlyMismatch [@value 4411]
703 | ExplicitReadonlyCast [@value 4412]
704 | ReadonlyMethodCall [@value 4413]
705 | StrictStrConcatTypeMismatch [@value 4414]
706 | StrictStrInterpTypeMismatch [@value 4415]
707 | InvalidMethCallerCallingConvention [@value 4416]
708 (* | UnsafeCastDEPRECATED [@value 4417] *)
709 | ReadonlyException [@value 4418]
710 | InvalidTypeHint [@value 4419]
711 | ExperimentalExpressionTrees [@value 4420]
712 | ReturnsWithAndWithoutValue [@value 4421]
713 | NonVoidAnnotationOnReturnVoidFun [@value 4422]
714 | BitwiseMathInvalidArgument [@value 4423]
715 | CyclicClassConstant [@value 4424]
716 | PrivateDynamicRead [@value 4425]
717 | PrivateDynamicWrite [@value 4426]
718 | IncDecInvalidArgument [@value 4427]
719 | ReadonlyClosureCall [@value 4428]
720 | MathInvalidArgument [@value 4429]
721 | TypeconstConcreteConcreteOverride [@value 4430]
722 | PrivateMethCaller [@value 4431]
723 | ProtectedMethCaller [@value 4432]
724 | BadConditionalSupportDynamic [@value 4433]
725 | ReadonlyInvalidAsMut [@value 4434]
726 | InvalidKeysetValue [@value 4435]
727 | UnresolvedTypeVariableProjection [@value 4436]
728 (* | FunctionPointerWithViaLabelDEPRECATED [@value 4437] *)
729 | InvalidEchoArgument [@value 4438]
730 | DiamondTraitMethod [@value 4439]
731 | ReifiedStaticMethodInExprTree [@value 4440]
732 | InvariantViolated [@value 4441]
733 | RigidTVarEscape [@value 4442]
734 | StrictEqValueIncompatibleTypes [@value 4443]
735 | ModuleError [@value 4444]
736 | SealedNotSubtype [@value 4445]
737 | ModuleHintError [@value 4446]
738 | MemoizeObjectWithoutGlobals [@value 4447]
739 | ExpressionTreeNonPublicProperty [@value 4448]
740 | CovariantIndexTypeMismatch [@value 4449]
741 | InoutInPseudofunction [@value 4450]
742 | TraitParentConstructInconsistent [@value 4451]
743 | HHExpectEquivalentFailure [@value 4452]
744 | HHExpectFailure [@value 4453]
745 | CallLvalue [@value 4454]
746 | UnsafeCastAwait [@value 4455]
747 | HigherKindedTypesUnsupportedFeature [@value 4456]
748 | ThisFinal [@value 4457]
749 | ExactClassFinal [@value 4458]
750 (* | GlobalVariableWriteDEPRECATED [@value 4459] *)
751 (* | GlobalVariableInFunctionCallDEPRECATED [@value 4460] *)
752 (* | MemoizedFunctionCallDEPRECATED [@value 4461] *)
753 | DiamondTraitProperty [@value 4462]
754 | ConstructNotInstanceMethod [@value 4463]
755 | InvalidMethCallerReadonlyReturn [@value 4464]
756 | AbstractMemberInConcreteClass [@value 4465]
757 | TraitNotUsed [@value 4466]
758 | OverrideAsync [@value 4467]
759 | InexactTConstAccess [@value 4468]
760 | UnsupportedRefinement [@value 4469]
761 | InvalidClassRefinement [@value 4470]
762 | InvalidRefinedConstKind [@value 4471]
763 | InvalidCrossPackage [@value 4472]
764 | InvalidCrossPackageSoft [@value 4473]
765 | AttributeNoAutoDynamic [@value 4474]
766 | IllegalCaseTypeVariants [@value 4475]
767 | StaticCallOnTraitRequireClass [@value 4476]
768 | WrongUseKind [@value 4477]
769 | MatchNotExhaustive [@value 4478]
770 | MatchOnUnsupportedType [@value 4479]
771 | MultipleInstantiationInheritence [@value 4480]
772 | InternalMethCaller [@value 4481]
773 | ClassPointerToString [@value 4482]
774 | InvalidXhpAttributeValue [@value 4483]
775 | OptionalParameterNotSupported [@value 4484]
776 (* Add new Typing codes here! Comment out when deprecating. *)
777 [@@deriving enum, show { with_path = false }]
779 let err_code = to_enum
782 module Warning = struct
783 type t =
784 | SketchyEquality [@value 12001]
785 | SketchyNullCheck [@value 12003]
786 | NonDisjointCheck [@value 12004]
787 | CastNonPrimitive [@value 12005]
788 | TruthinessTest [@value 12006]
789 | EqualityCheck [@value 12007]
790 | DuplicateProperties [@value 12008]
791 | IsIsAlwaysTrue [@value 12009]
792 | IsIsAlwaysFalse [@value 12010]
793 | AsAlwaysSucceeds [@value 12011]
794 | AsAlwaysFails [@value 12012]
795 [@@deriving enum, ord, show { with_path = false }]
798 module Warning_set = Stdlib.Set.Make (Warning)
800 (* 5xxx: reserved for FB lint *)
801 (* 6xxx: reserved for FB ai *)
802 (* 7xxx: reserved for FB ai *)
803 (* 8xxx: had been used for forward/back-compat; no longer *)
804 (* 9xxx: reserved for FB ai *)
805 (* 10xxx: reserved for FB ai *)
806 (* 11xxx: reserved for global access check (fbcode/hphp/hack/src/typing/tast_check/global_access_check.ml),
807 * which is used to detect potential data leaks caused by global variable access.
808 * 11001 represents the error when a global variable is definitely written.
809 * 11002 represents the warning when a global variable is possibly written via reference.
810 * 11003 represents the warning when a global variable is possibly written via function calls.
811 * 11004 represents the error when a global variable is definitely read.
813 (* 12xxx: reserved for warnings, see module Warning above *)
815 module GlobalAccessCheck = struct
816 type t =
817 | DefiniteGlobalWrite [@value 11001]
818 | PossibleGlobalWriteViaReference [@value 11002]
819 | PossibleGlobalWriteViaFunctionCall [@value 11003]
820 | DefiniteGlobalRead [@value 11004]
821 (* Add new GlobalAccessCheck codes here! Comment out when deprecating. *)
822 [@@deriving enum, show { with_path = false }]
824 let err_code : t -> int = to_enum