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