• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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);