• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (c) 2021-2025 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 
16 #ifndef ES2PANDA_COMPILER_CHECKER_TYPES_TYPE_MAPPING_H
17 #define ES2PANDA_COMPILER_CHECKER_TYPES_TYPE_MAPPING_H
18 
19 #include "typeFlag.h"
20 
21 // CC-OFFNXT(G.PRE.06) solid logic
22 // NOLINTBEGIN(cppcoreguidelines-macro-usage)
23 #define TYPE_MAPPING(_)                                                \
24     _(TypeFlag::ARRAY, ArrayType)                                      \
25     _(TypeFlag::ANY, AnyType)                                          \
26     _(TypeFlag::BIGINT_LITERAL, BigintLiteralType)                     \
27     _(TypeFlag::NUMBER, NumberType)                                    \
28     _(TypeFlag::STRING, StringType)                                    \
29     _(TypeFlag::BOOLEAN, BooleanType)                                  \
30     _(TypeFlag::VOID, VoidType)                                        \
31     _(TypeFlag::NULL_TYPE, NullType)                                   \
32     _(TypeFlag::UNDEFINED, UndefinedType)                              \
33     _(TypeFlag::UNKNOWN, UnknownType)                                  \
34     _(TypeFlag::NEVER, NeverType)                                      \
35     _(TypeFlag::UNION, UnionType)                                      \
36     _(TypeFlag::OBJECT, ObjectType)                                    \
37     _(TypeFlag::BIGINT, BigintType)                                    \
38     _(TypeFlag::BOOLEAN_LITERAL, BooleanLiteralType)                   \
39     _(TypeFlag::NUMBER_LITERAL, NumberLiteralType)                     \
40     _(TypeFlag::STRING_LITERAL, StringLiteralType)                     \
41     _(TypeFlag::ENUM, EnumType)                                        \
42     _(TypeFlag::ENUM_LITERAL, EnumLiteralType)                         \
43     _(TypeFlag::TYPE_PARAMETER, TypeParameter)                         \
44     _(TypeFlag::TYPE_REFERENCE, TypeReference)                         \
45     _(TypeFlag::BYTE, ByteType)                                        \
46     _(TypeFlag::SHORT, ShortType)                                      \
47     _(TypeFlag::INT, IntType)                                          \
48     _(TypeFlag::LONG, LongType)                                        \
49     _(TypeFlag::FLOAT, FloatType)                                      \
50     _(TypeFlag::DOUBLE, DoubleType)                                    \
51     _(TypeFlag::CHAR, CharType)                                        \
52     _(TypeFlag::ETS_BOOLEAN, ETSBooleanType)                           \
53     _(TypeFlag::ETS_VOID, ETSVoidType)                                 \
54     _(TypeFlag::ETS_NULL, ETSNullType)                                 \
55     _(TypeFlag::ETS_UNDEFINED, ETSUndefinedType)                       \
56     _(TypeFlag::ETS_ANY, ETSAnyType)                                   \
57     _(TypeFlag::ETS_NEVER, ETSNeverType)                               \
58     _(TypeFlag::FUNCTION, ETSFunctionType)                             \
59     _(TypeFlag::ETS_OBJECT, ETSObjectType)                             \
60     _(TypeFlag::ETS_ARRAY, ETSArrayType)                               \
61     _(TypeFlag::ETS_UNION, ETSUnionType)                               \
62     _(TypeFlag::NON_PRIMITIVE, NonPrimitiveType)                       \
63     _(TypeFlag::WILDCARD, WildcardType)                                \
64     _(TypeFlag::ETS_TYPE_PARAMETER, ETSTypeParameter)                  \
65     _(TypeFlag::ETS_NONNULLISH, ETSNonNullishType)                     \
66     _(TypeFlag::ETS_READONLY, ETSReadonlyType)                         \
67     _(TypeFlag::ETS_INT_ENUM, ETSIntEnumType)                          \
68     _(TypeFlag::ETS_STRING_ENUM, ETSStringEnumType)                    \
69     _(TypeFlag::ETS_ENUM, ETSEnumType)                                 \
70     _(TypeFlag::ETS_EXTENSION_FUNC_HELPER, ETSExtensionFuncHelperType) \
71     _(TypeFlag::ETS_TUPLE, ETSTupleType)                               \
72     _(TypeFlag::ETS_PARTIAL_TYPE_PARAMETER, ETSPartialTypeParameter)   \
73     _(TypeFlag::TYPE_ERROR, TypeError)                                 \
74     _(TypeFlag::ETS_TYPE_ALIAS, ETSTypeAliasType)
75 
76 #define OBJECT_TYPE_MAPPING(_)                                \
77     _(ObjectType::ObjectTypeKind::FUNCTION, FunctionType)     \
78     _(ObjectType::ObjectTypeKind::TUPLE, TupleType)           \
79     _(ObjectType::ObjectTypeKind::LITERAL, ObjectLiteralType) \
80     _(ObjectType::ObjectTypeKind::INTERFACE, InterfaceType)
81 // NOLINTEND(cppcoreguidelines-macro-usage)
82 
83 #endif /* TYPE_MAPPING_H */
84