Ban variadic arguments on __Memoize functions
[hiphop-php.git] / hphp / hack / src / errors / error_codes.ml
blob9500d6cf6905f441d9a65d2142080373a88cb520
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 *)
11 Please change the error map file if you have changed the error codes.
12 The file is at hphp/hack/test/errors/error_map.ml
15 (*****************************************************************************)
16 (* Error codes.
17 * Each error has a unique number associated with it. The following modules
18 * define the error code associated with each kind of error.
19 * It is ok to extend the codes with new values, it is NOT OK to change the
20 * value of an existing error to a different error code!
21 * I added some comments to make that extra clear :-)
23 (*****************************************************************************)
25 (* Errors in the Temporary range are for errors that will disappear in the
26 * future. *)
27 module Temporary = struct
28 let darray_not_supported = 1
30 let varray_not_supported = 2
32 (* DEPRECATED let unknown_fields_not_supported = 3 *)
33 let varray_or_darray_not_supported = 4
35 (* DEPRECATED let goto_not_supported = 5 *)
36 let nonnull_not_supported = 6
37 end
39 module Parsing = struct
40 type t =
41 | FixmeFormat [@value 1001]
42 | ParsingError
43 | UnexpectedEofDEPRECATED
44 | UnterminatedCommentDEPRECATED
45 | UnterminatedXhpCommentDEPRECATED
46 | CallTimePassByReferenceDEPRECATED
47 | XhpParsingError (* EXTEND HERE WITH NEW VALUES IF NEEDED *)
48 [@@deriving enum, show { with_path = false }]
50 let err_code = to_enum
51 end
53 module Naming = struct
54 type t =
55 | AddATypehint [@value 2001]
56 | TypeparamAlokDEPRECATED
57 | AssertArity
58 | PrimitiveInvalidAlias
59 | CyclicConstraintDEPRECATED
60 | DidYouMeanNaming
61 | DifferentScopeDEPRECATED
62 | DisallowedXhpType
63 | DoubleInsteadOfFloatDEPRECATED
64 | DynamicClassDEPRECATED
65 | LvarInObjGet
66 | ErrorNameAlreadyBound
67 | ExpectedCollection
68 | ExpectedVariable
69 | FdNameAlreadyBound
70 | GenArrayRecArityDEPRECATED
71 | GenArrayVaRecArityDEPRECATED
72 | GenaArityDEPRECATED
73 | GenericClassVarDEPRECATED
74 | GenvaArityDEPRECATED
75 | IllegalClass
76 | IllegalClassMeth
77 | IllegalConstant
78 | IllegalFun
79 | IllegalInstMeth
80 | IllegalMethCaller
81 | IllegalMethFun
82 | IntegerInsteadOfIntDEPRECATED
83 | InvalidReqExtends
84 | InvalidReqImplements
85 | LocalConstDEPRECATED
86 | LowercaseThis
87 | MethodNameAlreadyBound
88 | MissingArrow
89 | MissingTypehint
90 | NameAlreadyBound
91 | NamingTooFewArguments
92 | NamingTooManyArguments
93 | PrimitiveToplevel
94 | RealInsteadOfFloatDEPRECATED
95 | ShadowedTypeParam
96 | StartWith_T
97 | ThisMustBeReturn
98 | ThisNoArgument
99 | ThisHintOutsideClass
100 | ThisReserved
101 | TparamWithTparam
102 | TypedefConstraintDEPRECATED
103 | UnboundName
104 | Undefined
105 | UnexpectedArrow
106 | UnexpectedTypedef
107 | UsingInternalClass
108 | VoidCast
109 | ObjectCast
110 | UnsetCast
111 | NullsafePropertyAccessDEPRECATED
112 | IllegalTrait
113 | ShapeTypehintDEPRECATED
114 | DynamicNewInStrictMode
115 | InvalidTypeAccessRoot
116 | DuplicateUserAttribute
117 | ReturnOnlyTypehint
118 | UnexpectedTypeArguments
119 | TooManyTypeArguments
120 | ClassnameParam
121 | InvalidInstanceofDEPRECATED
122 | NameIsReserved
123 | DollardollarUnused
124 | IllegalMemberVariableClass
125 | TooFewTypeArguments
126 | GotoLabelAlreadyDefined
127 | GotoLabelUndefined
128 | GotoLabelDefinedInFinally
129 | GotoInvokedInFinally
130 | DynamicClassPropertyNameInStrictModeDEPRECATED
131 | ThisAsLexicalVariable
132 | DynamicClassNameInStrictMode
133 | XhpOptionalRequiredAttr
134 | XhpRequiredWithDefault
135 | VariableVariablesDisallowedDEPRECATED
136 | ArrayTypehintsDisallowed
137 | ArrayLiteralsDisallowed
138 | WildcardDisallowed
139 | AttributeClassNameConflict
140 | MethodNeedsVisibility
141 | ReferenceInStrictModeDEPRECATED
142 | ReferenceInRxDEPRECATED
143 | DeclareStatementDEPRECATED
144 | MisplacedRxOfScopeDEPRECATED
145 | RxOfScopeAndExplicitRxDEPRECATED
146 | UnsupportedFeatureDEPRECATED
147 | TraitInterfaceConstructorPromoDEPRECATED
148 | NonstaticPropertyWithLSB
149 | ReferenceInAnonUseClauseDEPRECATED
150 | RxMoveInvalidLocation
151 | MisplacedMutabilityHint
152 | MutabilityHintInNonRx
153 | InvalidReturnMutableHint
154 | NoTparamsOnTypeConstsDEPRECATED
155 | PocketUniversesDuplication
156 | UnsupportedTraitUseAs
157 | UnsupportedInsteadOf
158 | InvalidTraitUseAsVisibility
159 | InvalidFunPointer
160 | IllegalUseOfDynamicallyCallable
161 | PocketUniversesNotInClass
162 | PocketUniversesAtomMissing
163 | PocketUniversesAtomUnknown
164 | PocketUniversesLocalization
165 | ClassMethNonFinalSelf (* EXTEND HERE WITH NEW VALUES IF NEEDED *)
166 [@@deriving enum, show { with_path = false }]
168 let err_code = to_enum
171 module NastCheck = struct
172 type t =
173 | AbstractBody [@value 3001]
174 | AbstractWithBody
175 | AwaitInSyncFunction
176 | CallBeforeInit
177 | CaseFallthrough
178 | ContinueInSwitch
179 | DangerousMethodNameDEPRECATED
180 | DefaultFallthrough
181 | InterfaceWithMemberVariable
182 | InterfaceWithStaticMemberVariable
183 | Magic
184 | NoConstructParent
185 | NonInterface
186 | NotAbstractWithoutBody
187 | NotInitialized
188 | NotPublicInterface
189 | RequiresNonClass
190 | ReturnInFinally
191 | ReturnInGen
192 | ToStringReturnsString
193 | ToStringVisibility
194 | ToplevelBreak
195 | ToplevelContinue
196 | UsesNonTrait
197 | IllegalFunctionName
198 | NotAbstractWithoutTypeconst
199 | TypeconstDependsOnExternalTparam
200 | TypeconstAssignedTparamDEPRECATED
201 | AbstractWithTypeconstDEPRECATED
202 | ConstructorRequired
203 | InterfaceWithPartialTypeconst
204 | MultipleXhpCategory
205 | OptionalShapeFieldsNotSupportedDEPRECATED
206 | AwaitNotAllowedDEPRECATED
207 | AsyncInInterfaceDEPRECATED
208 | AwaitInCoroutine
209 | YieldInCoroutine
210 | SuspendOutsideOfCoroutine
211 | SuspendInFinally
212 | BreakContinueNNotSupportedDEPRECATED
213 | StaticMemoizedFunction
214 | InoutParamsInCoroutine
215 | InoutParamsSpecial
216 | InoutParamsMixByrefDEPRECATED
217 | InoutParamsMemoize
218 | InoutParamsRetByRefDEPRECATED
219 | ReadingFromAppend
220 | ConstAttributeProhibitedDEPRECATED
221 | RetiredError3049DEPRECATED
222 | InoutArgumentBadExpr
223 | MutableParamsOutsideOfSyncDEPRECATED
224 | MutableAsyncMethodDEPRECATED
225 | MutableMethodsMustBeReactive
226 | MutableAttributeOnFunction
227 | MutableReturnAnnotatedDeclsMustBeReactive
228 | IllegalDestructor
229 | ConditionallyReactiveFunctionDEPRECATED
230 | MultipleConditionallyReactiveAnnotations
231 | ConditionallyReactiveAnnotationInvalidArguments
232 | MissingReactivityForConditionDEPRECATED
233 | MultipleReactivityAnnotationsDEPRECATED
234 | RxIsEnabledInvalidLocation
235 | MaybeRxInvalidLocation
236 | NoOnlyrxIfRxfuncForRxIfArgs
237 | CoroutineInConstructor
238 | IllegalReturnByRefDEPRECATED
239 | IllegalByRefExprDEPRECATED
240 | VariadicByRefParamDEPRECATED
241 | MaybeMutableAttributeOnFunction
242 | ConflictingMutableAndMaybeMutableAttributes
243 | MaybeMutableMethodsMustBeReactive
244 | RequiresFinalClass
245 | InterfaceUsesTrait
246 | NonstaticMethodInAbstractFinalClass
247 | MutableOnStaticDEPRECATED
248 | ClassnameConstInstanceOfDEPRECATED
249 | ByRefParamOnConstructDEPRECATED
250 | ByRefDynamicCallDEPRECATED
251 | ByRefPropertyDEPRECATED
252 | ByRefCallDEPRECATED
253 | SwitchNonTerminalDefault
254 | SwitchMultipleDefault
255 | RepeatedRecordFieldName
256 | PhpLambdaDisallowed
257 | EntryPointArguments
258 | VariadicMemoize (* EXTEND HERE WITH NEW VALUES IF NEEDED *)
259 [@@deriving enum, show { with_path = false }]
261 let err_code = to_enum
264 module Typing = struct
265 type t =
266 | AbstractClassFinalDEPRECATED [@value 4001]
267 | UninstantiableClass
268 | AnonymousRecursiveDEPRECATED
269 | AnonymousRecursiveCallDEPRECATED
270 | ArrayAccessRead
271 | ArrayAppend
272 | ArrayCast
273 | ArrayGetArity
274 | BadCall
275 | ClassArityDEPRECATED
276 | ConstMutation
277 | ConstructorNoArgs
278 | CyclicClassDef
279 | CyclicTypedef
280 | DiscardedAwaitable
281 | IssetEmptyInStrict
282 | DynamicYieldPrivateDEPRECATED
283 | EnumConstantTypeBad
284 | EnumSwitchNonexhaustive
285 | EnumSwitchNotConst
286 | EnumSwitchRedundant
287 | EnumSwitchRedundantDefault
288 | EnumSwitchWrongClass
289 | EnumTypeBad
290 | EnumTypeTypedefMixedDEPRECATED
291 | ExpectedClass
292 | ExpectedLiteralFormatString
293 | ExpectedStaticIntDEPRECATED
294 | ExpectedTparam
295 | ExpectingReturnTypeHint
296 | ExpectingReturnTypeHintSuggestDEPRECATED
297 | ExpectingTypeHint
298 | ExpectingTypeHintVariadic
299 | RetiredError4034DEPRECATED
300 | ExtendFinal
301 | FieldKinds
302 | FieldMissingDEPRECATED
303 | FormatString
304 | FunArityMismatch
305 | FunTooFewArgs
306 | FunTooManyArgs
307 | FunUnexpectedNonvariadic
308 | FunVariadicityHhVsPhp56
309 | GenaExpectsArrayDEPRECATED
310 | GenericArrayStrict
311 | GenericStatic
312 | ImplementAbstract
313 | InterfaceFinalDEPRECATED
314 | InvalidShapeFieldConst
315 | InvalidShapeFieldLiteral
316 | InvalidShapeFieldName
317 | InvalidShapeFieldType
318 | MemberNotFound
319 | MemberNotImplemented
320 | MissingAssign
321 | MissingConstructor
322 | MissingField
323 | NegativeTupleIndexDEPRECATED
324 | SelfOutsideClass
325 | NewStaticInconsistent
326 | StaticOutsideClass
327 | NonObjectMemberRead
328 | NullContainer
329 | NullMemberRead
330 | NullableParameterDEPRECATED
331 | OptionReturnOnlyTypehint
332 | ObjectString
333 | OptionMixed
334 | OverflowDEPRECATED
335 | OverrideFinal
336 | OverridePerTrait
337 | PairArityDEPRECATED
338 | AbstractCall
339 | ParentInTrait
340 | ParentOutsideClass
341 | ParentUndefined
342 | PreviousDefault
343 | PrivateClassMeth
344 | PrivateInstMeth
345 | PrivateOverride
346 | ProtectedClassMeth
347 | ProtectedInstMeth
348 | ReadBeforeWrite
349 | ReturnInVoid
350 | ShapeFieldClassMismatch
351 | ShapeFieldTypeMismatch
352 | ShouldBeOverride
353 | SketchyNullCheckDEPRECATED
354 | SketchyNullCheckPrimitiveDEPRECATED
355 | SmemberNotFound
356 | StaticDynamic
357 | StaticOverflowDEPRECATED
358 | RetiredError4093DEPRECATED
359 | ThisInStaticDEPRECATED
360 | ThisVarOutsideClass
361 | TraitFinalDEPRECATED
362 | TupleArityDEPRECATED
363 | TupleArityMismatchDEPRECATED
364 | TupleIndexTooLargeDEPRECATED
365 | TupleSyntax
366 | TypeArityMismatch
367 | TypeParamArityDEPRECATED
368 | RetiredError4103DEPRECATED
369 | TypingTooFewArgs
370 | TypingTooManyArgs
371 | UnboundGlobal
372 | UnboundNameTyping
373 | UndefinedField
374 | UndefinedParent
375 | UnifyError
376 | UnsatisfiedReq
377 | Visibility
378 | VisibilityExtends
379 | VoidParameterDEPRECATED
380 | WrongExtendKind
381 | GenericUnify
382 | NullsafeNotNeeded
383 | TrivialStrictEq
384 | VoidUsage
385 | DeclaredCovariant
386 | DeclaredContravariant
387 | UnsetInStrictDEPRECATED
388 | StrictMembersNotKnown
389 | ErasedGenericAtRuntime
390 | DynamicClassDEPRECATED
391 | AttributeTooManyArguments
392 | AttributeParamType
393 | DeprecatedUse
394 | AbstractConstUsage
395 | CannotDeclareConstant
396 | CyclicTypeconst
397 | NullsafePropertyWriteContext
398 | NoreturnUsage
399 | ThisLvalueDEPRECATED
400 | UnsetNonidxInStrict
401 | InvalidShapeFieldNameEmpty
402 | InvalidShapeFieldNameNumberDEPRECATED
403 | ShapeFieldsUnknown
404 | InvalidShapeRemoveKey
405 | MissingOptionalFieldDEPRECATED
406 | ShapeFieldUnset
407 | AbstractConcreteOverride
408 | LocalVariableModifedAndUsed
409 | LocalVariableModifedTwice
410 | AssignDuringCase
411 | CyclicEnumConstraint
412 | UnpackingDisallowed
413 | InvalidClassname
414 | InvalidMemoizedParam
415 | IllegalTypeStructure
416 | NotNullableCompareNullTrivial
417 | ClassPropertyOnlyStaticLiteralDEPRECATED
418 | AttributeTooFewArguments
419 | ReferenceExprDEPRECATED
420 | UnificationCycle
421 | KeysetSet
422 | EqIncompatibleTypes
423 | ContravariantThis
424 | InstanceofAlwaysFalseDEPRECATED
425 | InstanceofAlwaysTrueDEPRECATED
426 | AmbiguousMember
427 | InstanceofGenericClassnameDEPRECATED
428 | RequiredFieldIsOptional
429 | FinalProperty
430 | ArrayGetWithOptionalField
431 | UnknownFieldDisallowedInShape
432 | NullableCast
433 | PassByRefAnnotationMissingDEPRECATED
434 | NonCallArgumentInSuspend
435 | NonCoroutineCallInSuspend
436 | CoroutineCallOutsideOfSuspend
437 | FunctionIsNotCoroutine
438 | CoroutinnessMismatch
439 | ExpectingAwaitableReturnTypeHint
440 | ReffinessInvariantDEPRECATED
441 | DollardollarLvalue
442 | StaticMethodOnInterfaceDEPRECATED
443 | DuplicateUsingVar
444 | IllegalDisposable
445 | EscapingDisposable
446 | PassByRefAnnotationUnexpectedDEPRECATED
447 | InoutAnnotationMissing
448 | InoutAnnotationUnexpected
449 | InoutnessMismatch
450 | StaticSyntheticMethod
451 | TraitReuse
452 | InvalidNewDisposable
453 | EscapingDisposableParameter
454 | AcceptDisposableInvariant
455 | InvalidDisposableHint
456 | XhpRequired
457 | EscapingThis
458 | IllegalXhpChild
459 | MustExtendDisposable
460 | InvalidIsAsExpressionHint
461 | AssigningToConst
462 | SelfConstParentNot
463 | ParentConstSelfNotDEPRECATED
464 | PartiallyValidIsAsExpressionHintDEPRECATED
465 | NonreactiveFunctionCall
466 | NonreactiveIndexing
467 | ObjSetReactive
468 | FunReactivityMismatch
469 | OverridingPropConstMismatch
470 | InvalidReturnDisposable
471 | InvalidDisposableReturnHint
472 | ReturnDisposableMismatch
473 | InoutArgumentBadType
474 | InconsistentUnsetDEPRECATED
475 | ReassignMutableVar
476 | InvalidFreezeTarget
477 | InvalidFreezeUse
478 | FreezeInNonreactiveContext
479 | MutableCallOnImmutable
480 | MutableArgumentMismatch
481 | InvalidMutableReturnResult
482 | MutableReturnResultMismatch
483 | NonreactiveCallFromShallow
484 | EnumTypeTypedefNonnull
485 | RxEnabledInNonRxContext
486 | RxEnabledInLambdasDEPRECATED
487 | AmbiguousLambda
488 | EllipsisStrictMode
489 | UntypedLambdaStrictMode
490 | BindingRefInArrayDEPRECATED
491 | EchoInReactiveContext
492 | SuperglobalInReactiveContext
493 | StaticPropertyInReactiveContext
494 | StaticInReactiveContextDEPRECATED
495 | GlobalInReactiveContextDEPRECATED
496 | WrongExpressionKindAttribute
497 | AttributeClassNoConstructorArgsDEPRECATED
498 | InvalidTypeForOnlyrxIfRxfuncParameter
499 | MissingAnnotationForOnlyrxIfRxfuncParameter
500 | CannotReturnBorrowedValueAsImmutable
501 | DeclOverrideMissingHint
502 | InvalidConditionallyReactiveCall
503 | ExtendSealed
504 | SealedFinalDEPRECATED
505 | ComparisonInvalidTypes
506 | OptionVoidDEPRECATED
507 | MutableInNonreactiveContext
508 | InvalidArgumentOfRxMutableFunction
509 | LetVarImmutabilityViolation
510 | UnsealableDEPRECATED
511 | ReturnVoidToRxMismatch
512 | ReturnsVoidToRxAsNonExpressionStatement
513 | NonawaitedAwaitableInReactiveContext
514 | ShapesKeyExistsAlwaysTrue
515 | ShapesKeyExistsAlwaysFalse
516 | ShapesMethodAccessWithNonExistentField
517 | NonClassMember
518 | PassingArrayCellByRefDEPRECATED
519 | CallSiteReactivityMismatch
520 | RxParameterConditionMismatch
521 | AmbiguousObjectAccess
522 | ExtendPPL
523 | ReassignMaybeMutableVar
524 | MaybeMutableArgumentMismatch
525 | ImmutableArgumentMismatch
526 | ImmutableCallOnMutable
527 | InvalidCallMaybeMutable
528 | MutabilityMismatch
529 | InvalidPPLCall
530 | InvalidPPLStaticCall
531 | TypeTestInLambdaDEPRECATED
532 | InvalidTraversableInRx
533 | ReassignMutableThis
534 | MutableExpressionAsMultipleMutableArguments
535 | InvalidUnsetTargetInRx
536 | CoroutineOutsideExperimental
537 | PPLMethPointer
538 | InvalidTruthinessTestDEPRECATED
539 | RePrefixedNonString
540 | BadRegexPattern
541 | SketchyTruthinessTestDEPRECATED
542 | LateInitWithDefault
543 | OverrideMemoizeLSB
544 | ClassVarTypeGenericParam
545 | InvalidSwitchCaseValueType
546 | StringCast
547 | BadLateInitOverride
548 | EscapingMutableObject
549 | OverrideLSB
550 | MultipleConcreteDefs
551 | MoveInNonreactiveContext
552 | InvalidMoveUse
553 | InvalidMoveTarget
554 | IgnoredResultOfFreezeDEPRECATED
555 | IgnoredResultOfMoveDEPRECATED
556 | UnexpectedTy
557 | UnserializableType
558 | InconsistentMutability
559 | InvalidMutabilityFlavorInAssignment
560 | OptionNull
561 | UnknownObjectMember
562 | UnknownType
563 | InvalidArrayKeyRead
564 | ReferenceExprNotFunctionArgDEPRECATED
565 | RedundantRxCondition
566 | RedeclaringMissingMethod
567 | InvalidEnforceableTypeArgument
568 | RequireArgsReify
569 | TypecheckerTimeout
570 | InvalidReifiedArgument
571 | GenericsNotAllowed
572 | InvalidNewableTypeArgument
573 | InvalidNewableTypeParamConstraints
574 | NewWithoutNewable
575 | NewStaticClassReified
576 | MemoizeReified
577 | ConsistentConstructReified
578 | MethodVariance
579 | MissingXhpRequiredAttr
580 | BadXhpAttrRequiredOverride
581 | ReifiedTparamVariadicDEPRECATED
582 | UnresolvedTypeVariable
583 | InvalidSubString
584 | InvalidArrayKeyConstraint
585 | OverrideNoDefaultTypeconst
586 | ShapeAccessWithNonExistentField
587 | DisallowPHPArraysAttr
588 | TypeConstraintViolation
589 | IndexTypeMismatch
590 | ExpectedStringlike
591 | TypeConstantMismatch
592 | TypeConstantRedeclarationDEPRECATED
593 | ConstantDoesNotMatchEnumType
594 | EnumConstraintMustBeArraykey
595 | EnumSubtypeMustHaveCompatibleConstraint
596 | ParameterDefaultValueWrongType
597 | NewtypeAliasMustSatisfyConstraint
598 | BadFunctionTypevar
599 | BadClassTypevar
600 | BadMethodTypevar
601 | MissingReturnInNonVoidFunction
602 | InoutReturnTypeMismatch
603 | ClassConstantValueDoesNotMatchHint
604 | ClassPropertyInitializerTypeDoesNotMatchHint
605 | BadDeclOverride
606 | BadMethodOverride
607 | BadEnumExtends
608 | XhpAttributeValueDoesNotMatchHint
609 | TraitPropConstClass
610 | EnumUnderlyingTypeMustBeArraykey
611 | ClassGetReified
612 | RequireGenericExplicit
613 | ClassConstantTypeMismatch
614 | PocketUniversesExpansion
615 | PocketUniversesTyping
616 | RecordInitValueDoesNotMatchHint
617 | AbstractTconstNotAllowed
618 | NewAbstractRecord
619 | RecordMissingRequiredField
620 | RecordUnknownField
621 | CyclicRecordDef
622 | InvalidDestructure
623 | StaticCallWithClassLevelReifiedGeneric
624 | SplatArrayRequired
625 | SplatArrayVariadic
626 | ExceptionOccurred
627 | InvalidReifiedFunctionPointer
628 | BadFunctionPointerConstruction
629 | NotARecord
630 | TraitReuseInsideClass
631 | RedundantGeneric
632 | PocketUniversesInvalidUpperBounds
633 | PocketUniversesRefinement
634 | PocketUniversesReservedSyntax
635 | ArrayAccessWrite
636 | InvalidArrayKeyWrite
637 | NullMemberWrite
638 | NonObjectMemberWrite (* EXTEND HERE WITH NEW VALUES IF NEEDED *)
639 [@@deriving enum, show { with_path = false }]
641 let err_code = to_enum
644 (* 5xxx: reserved for FB lint *)
645 (* 6xxx: reserved for FB ai *)
646 (* 7xxx: reserved for FB ai *)
648 module Init = struct
649 type t =
650 | ForwardCompatibilityNotCurrent [@value 8001]
651 | ForwardCompatibilityBelowMinimum
652 [@@deriving enum, show { with_path = false }]
654 let err_code = to_enum
657 (* 9xxx: reserved for FB ai *)
658 (* 10xxx: reserved for FB ai *)