1/* 2 * Copyright (c) 2022-2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { ProblemSeverity } from "../_namespaces/ts.ArkTSLinter_1_1"; 17export enum FaultID { 18 AnyType, SymbolType, ObjectLiteralNoContextType, ArrayLiteralNoContextType, 19 ComputedPropertyName, LiteralAsPropertyName, TypeQuery, IsOperator, 20 DestructuringParameter, YieldExpression, InterfaceMerging, EnumMerging, InterfaceExtendsClass, IndexMember, WithStatement, 21 ThrowStatement, IndexedAccessType, UnknownType, ForInStatement, InOperator, 22 FunctionExpression, IntersectionType, 23 ObjectTypeLiteral, CommaOperator, LimitedReturnTypeInference, 24 ClassExpression, DestructuringAssignment, 25 DestructuringDeclaration, VarDeclaration, CatchWithUnsupportedType, DeleteOperator, 26 DeclWithDuplicateName, UnaryArithmNotNumber, ConstructorType, ConstructorIface, ConstructorFuncs, CallSignature, 27 TypeAssertion, PrivateIdentifier, LocalFunction, 28 ConditionalType, MappedType, NamespaceAsObject, ClassAsObject, 29 NonDeclarationInNamespace, GeneratorFunction, FunctionContainsThis, PropertyAccessByIndex, JsxElement, 30 EnumMemberNonConstInit, ImplementsClass, MethodReassignment, MultipleStaticBlocks, ThisType, 31 IntefaceExtendDifProps, StructuralIdentity, 32 ExportAssignment, ImportAssignment, 33 GenericCallNoTypeArgs, ParameterProperties, 34 InstanceofUnsupported, ShorthandAmbientModuleDecl, WildcardsInModuleName, UMDModuleDefinition, 35 NewTarget, DefiniteAssignment, Prototype, GlobalThis, 36 UtilityType, PropertyDeclOnFunction, FunctionApplyCall, FunctionBind, ConstAssertion, ImportAssertion, 37 SpreadOperator, LimitedStdLibApi, ErrorSuppression, StrictDiagnostic, ImportAfterStatement, 38 EsObjectType, SendableClassInheritance, SendablePropType, SendableDefiniteAssignment, SendableGenericTypes, 39 SendableCapturedVars, SendableClassDecorator, SendableObjectInitialization, SendableComputedPropName, SendableAsExpr, 40 SharedNoSideEffectImport, SharedModuleExports, SharedModuleNoWildcardExport, NoTsImportEts, 41 SendableTypeInheritance, SendableTypeExported, NoTsReExportEts, NoNamespaceImportEtsToTs, NoSideEffectImportEtsToTs, 42 SendableExplicitFieldType, 43 SendableFunctionImportedVariables, SendableFunctionDecorator, SendableTypeAliasDecorator, SendableTypeAliasDeclaration, 44 SendableFunctionAssignment, SendableFunctionOverloadDecorator, SendableFunctionProperty, SendableFunctionAsExpr, 45 SendableDecoratorLimited, SharedModuleExportsWarning, SendableBetaCompatible, SendablePropTypeWarning, TaskpoolFunctionArg, 46 ObjectLiteralAmbiguity, 47 LAST_ID, // this should always be last enum 48} 49 50export class FaultAttributes { 51 constructor( 52 public cookBookRef: number, 53 public migratable: boolean = false, 54 public severity: ProblemSeverity = ProblemSeverity.ERROR 55 ) {} 56} 57 58export const faultsAttrs: FaultAttributes[] = []; 59 60faultsAttrs[FaultID.LiteralAsPropertyName] = new FaultAttributes(1, true); 61faultsAttrs[FaultID.ComputedPropertyName] = new FaultAttributes(1); 62faultsAttrs[FaultID.SymbolType] = new FaultAttributes(2); 63faultsAttrs[FaultID.PrivateIdentifier] = new FaultAttributes(3, true); 64faultsAttrs[FaultID.DeclWithDuplicateName] = new FaultAttributes(4, true); 65faultsAttrs[FaultID.VarDeclaration] = new FaultAttributes(5, true); 66faultsAttrs[FaultID.AnyType] = new FaultAttributes(8); 67faultsAttrs[FaultID.UnknownType] = new FaultAttributes(8); 68faultsAttrs[FaultID.CallSignature] = new FaultAttributes(14); 69faultsAttrs[FaultID.ConstructorType] = new FaultAttributes(15); 70faultsAttrs[FaultID.MultipleStaticBlocks] = new FaultAttributes(16); 71faultsAttrs[FaultID.IndexMember] = new FaultAttributes(17); 72faultsAttrs[FaultID.IntersectionType] = new FaultAttributes(19); 73faultsAttrs[FaultID.ThisType] = new FaultAttributes(21); 74faultsAttrs[FaultID.ConditionalType] = new FaultAttributes(22); 75faultsAttrs[FaultID.ParameterProperties] = new FaultAttributes(25, true); 76faultsAttrs[FaultID.ConstructorIface] = new FaultAttributes(27); 77faultsAttrs[FaultID.IndexedAccessType] = new FaultAttributes(28); 78faultsAttrs[FaultID.PropertyAccessByIndex] = new FaultAttributes(29, true); 79faultsAttrs[FaultID.StructuralIdentity] = new FaultAttributes(30); 80faultsAttrs[FaultID.GenericCallNoTypeArgs] = new FaultAttributes(34); 81faultsAttrs[FaultID.ObjectLiteralNoContextType] = new FaultAttributes(38); 82faultsAttrs[FaultID.ObjectTypeLiteral] = new FaultAttributes(40); 83faultsAttrs[FaultID.ArrayLiteralNoContextType] = new FaultAttributes(43); 84faultsAttrs[FaultID.FunctionExpression] = new FaultAttributes(46, true); 85faultsAttrs[FaultID.ClassExpression] = new FaultAttributes(50, true); 86faultsAttrs[FaultID.ImplementsClass] = new FaultAttributes(51); 87faultsAttrs[FaultID.MethodReassignment] = new FaultAttributes(52); 88faultsAttrs[FaultID.TypeAssertion] = new FaultAttributes(53, true); 89faultsAttrs[FaultID.JsxElement] = new FaultAttributes(54); 90faultsAttrs[FaultID.UnaryArithmNotNumber] = new FaultAttributes(55); 91faultsAttrs[FaultID.DeleteOperator] = new FaultAttributes(59); 92faultsAttrs[FaultID.TypeQuery] = new FaultAttributes(60); 93faultsAttrs[FaultID.InstanceofUnsupported] = new FaultAttributes(65); 94faultsAttrs[FaultID.InOperator] = new FaultAttributes(66); 95faultsAttrs[FaultID.DestructuringAssignment] = new FaultAttributes(69, true); 96faultsAttrs[FaultID.CommaOperator] = new FaultAttributes(71); 97faultsAttrs[FaultID.DestructuringDeclaration] = new FaultAttributes(74, true); 98faultsAttrs[FaultID.CatchWithUnsupportedType] = new FaultAttributes(79, true); 99faultsAttrs[FaultID.ForInStatement] = new FaultAttributes(80); 100faultsAttrs[FaultID.MappedType] = new FaultAttributes(83); 101faultsAttrs[FaultID.WithStatement] = new FaultAttributes(84); 102faultsAttrs[FaultID.ThrowStatement] = new FaultAttributes(87, true); 103faultsAttrs[FaultID.LimitedReturnTypeInference] = new FaultAttributes(90, true); 104faultsAttrs[FaultID.DestructuringParameter] = new FaultAttributes(91); 105faultsAttrs[FaultID.LocalFunction] = new FaultAttributes(92, true); 106faultsAttrs[FaultID.FunctionContainsThis] = new FaultAttributes(93); 107faultsAttrs[FaultID.GeneratorFunction] = new FaultAttributes(94); 108faultsAttrs[FaultID.YieldExpression] = new FaultAttributes(94); 109faultsAttrs[FaultID.IsOperator] = new FaultAttributes(96); 110faultsAttrs[FaultID.SpreadOperator] = new FaultAttributes(99); 111faultsAttrs[FaultID.IntefaceExtendDifProps] = new FaultAttributes(102); 112faultsAttrs[FaultID.InterfaceMerging] = new FaultAttributes(103); 113faultsAttrs[FaultID.InterfaceExtendsClass] = new FaultAttributes(104); 114faultsAttrs[FaultID.ConstructorFuncs] = new FaultAttributes(106); 115faultsAttrs[FaultID.EnumMemberNonConstInit] = new FaultAttributes(111); 116faultsAttrs[FaultID.EnumMerging] = new FaultAttributes(113); 117faultsAttrs[FaultID.NamespaceAsObject] = new FaultAttributes(114); 118faultsAttrs[FaultID.NonDeclarationInNamespace] = new FaultAttributes(116); 119faultsAttrs[FaultID.ImportAssignment] = new FaultAttributes(121); 120faultsAttrs[FaultID.ExportAssignment] = new FaultAttributes(126); 121faultsAttrs[FaultID.ShorthandAmbientModuleDecl] = new FaultAttributes(128); 122faultsAttrs[FaultID.WildcardsInModuleName] = new FaultAttributes(129); 123faultsAttrs[FaultID.UMDModuleDefinition] = new FaultAttributes(130); 124faultsAttrs[FaultID.NewTarget] = new FaultAttributes(132); 125faultsAttrs[FaultID.DefiniteAssignment] = new FaultAttributes(134, false, ProblemSeverity.WARNING); 126faultsAttrs[FaultID.Prototype] = new FaultAttributes(136); 127faultsAttrs[FaultID.GlobalThis] = new FaultAttributes(137, false, ProblemSeverity.WARNING); 128faultsAttrs[FaultID.UtilityType] = new FaultAttributes(138); 129faultsAttrs[FaultID.PropertyDeclOnFunction] = new FaultAttributes(139); 130faultsAttrs[FaultID.FunctionBind] = new FaultAttributes(140, false, ProblemSeverity.WARNING); 131faultsAttrs[FaultID.ConstAssertion] = new FaultAttributes(142); 132faultsAttrs[FaultID.ImportAssertion] = new FaultAttributes(143); 133faultsAttrs[FaultID.LimitedStdLibApi] = new FaultAttributes(144); 134faultsAttrs[FaultID.StrictDiagnostic] = new FaultAttributes(145); 135faultsAttrs[FaultID.ErrorSuppression] = new FaultAttributes(146); 136faultsAttrs[FaultID.ClassAsObject] = new FaultAttributes(149, false, ProblemSeverity.WARNING); 137faultsAttrs[FaultID.ImportAfterStatement] = new FaultAttributes(150); 138faultsAttrs[FaultID.EsObjectType] = new FaultAttributes(151, false, ProblemSeverity.WARNING); 139faultsAttrs[FaultID.FunctionApplyCall] = new FaultAttributes(152); 140faultsAttrs[FaultID.SendableClassInheritance] = new FaultAttributes(153); 141faultsAttrs[FaultID.SendablePropType] = new FaultAttributes(154); 142faultsAttrs[FaultID.SendableDefiniteAssignment] = new FaultAttributes(155); 143faultsAttrs[FaultID.SendableGenericTypes] = new FaultAttributes(156); 144faultsAttrs[FaultID.SendableCapturedVars] = new FaultAttributes(157); 145faultsAttrs[FaultID.SendableClassDecorator] = new FaultAttributes(158); 146faultsAttrs[FaultID.SendableObjectInitialization] = new FaultAttributes(159); 147faultsAttrs[FaultID.SendableComputedPropName] = new FaultAttributes(160); 148faultsAttrs[FaultID.SendableAsExpr] = new FaultAttributes(161); 149faultsAttrs[FaultID.SharedNoSideEffectImport] = new FaultAttributes(162); 150faultsAttrs[FaultID.SharedModuleExports] = new FaultAttributes(163); 151faultsAttrs[FaultID.SharedModuleNoWildcardExport] = new FaultAttributes(164); 152faultsAttrs[FaultID.NoTsImportEts] = new FaultAttributes(165); 153faultsAttrs[FaultID.SendableTypeInheritance] = new FaultAttributes(166); 154faultsAttrs[FaultID.SendableTypeExported] = new FaultAttributes(167); 155faultsAttrs[FaultID.NoTsReExportEts] = new FaultAttributes(168); 156faultsAttrs[FaultID.NoNamespaceImportEtsToTs] = new FaultAttributes(169); 157faultsAttrs[FaultID.NoSideEffectImportEtsToTs] = new FaultAttributes(170); 158faultsAttrs[FaultID.SendableExplicitFieldType] = new FaultAttributes(171); 159faultsAttrs[FaultID.SendableFunctionImportedVariables] = new FaultAttributes(172); 160faultsAttrs[FaultID.SendableFunctionDecorator] = new FaultAttributes(173); 161faultsAttrs[FaultID.SendableTypeAliasDecorator] = new FaultAttributes(174); 162faultsAttrs[FaultID.SendableTypeAliasDeclaration] = new FaultAttributes(175); 163faultsAttrs[FaultID.SendableFunctionAssignment] = new FaultAttributes(176); 164faultsAttrs[FaultID.SendableFunctionOverloadDecorator] = new FaultAttributes(177); 165faultsAttrs[FaultID.SendableFunctionProperty] = new FaultAttributes(178); 166faultsAttrs[FaultID.SendableFunctionAsExpr] = new FaultAttributes(179); 167faultsAttrs[FaultID.SendableDecoratorLimited] = new FaultAttributes(180); 168faultsAttrs[FaultID.SharedModuleExportsWarning] = new FaultAttributes(163, false, ProblemSeverity.WARNING); 169faultsAttrs[FaultID.SendableBetaCompatible] = new FaultAttributes(182); 170faultsAttrs[FaultID.SendablePropTypeWarning] = new FaultAttributes(154, false, ProblemSeverity.WARNING); 171faultsAttrs[FaultID.TaskpoolFunctionArg] = new FaultAttributes(183); 172faultsAttrs[FaultID.ObjectLiteralAmbiguity] = new FaultAttributes(184);