1 /* 2 * Copyright (c) 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 #include "TSAnalyzer.h" 17 18 namespace ark::es2panda::checker { 19 20 // from as folder Check(ir::NamedType * node) const21checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::NamedType *node) const 22 { 23 ES2PANDA_UNREACHABLE(); 24 } 25 Check(ir::PrefixAssertionExpression * expr) const26checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::PrefixAssertionExpression *expr) const 27 { 28 ES2PANDA_UNREACHABLE(); 29 } 30 Check(ir::ClassProperty * st) const31checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ClassProperty *st) const 32 { 33 ES2PANDA_UNREACHABLE(); 34 } 35 Check(ir::ClassStaticBlock * st) const36checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ClassStaticBlock *st) const 37 { 38 ES2PANDA_UNREACHABLE(); 39 } 40 Check(ir::Decorator * st) const41checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::Decorator *st) const 42 { 43 ES2PANDA_UNREACHABLE(); 44 } 45 Check(ir::MethodDefinition * node) const46checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::MethodDefinition *node) const 47 { 48 ES2PANDA_UNREACHABLE(); 49 } 50 Check(ir::Property * expr) const51checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::Property *expr) const 52 { 53 ES2PANDA_UNREACHABLE(); 54 } 55 Check(ir::ScriptFunction * node) const56checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ScriptFunction *node) const 57 { 58 ES2PANDA_UNREACHABLE(); 59 } 60 Check(ir::SpreadElement * expr) const61checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::SpreadElement *expr) const 62 { 63 ES2PANDA_UNREACHABLE(); 64 } 65 Check(ir::TemplateElement * expr) const66checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TemplateElement *expr) const 67 { 68 ES2PANDA_UNREACHABLE(); 69 } 70 71 // from ets folder Check(ir::ETSModule * expr) const72checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSModule *expr) const 73 { 74 ES2PANDA_UNREACHABLE(); 75 } 76 Check(ir::ETSClassLiteral * expr) const77checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSClassLiteral *expr) const 78 { 79 ES2PANDA_UNREACHABLE(); 80 } 81 Check(ir::ETSFunctionType * node) const82checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSFunctionType *node) const 83 { 84 ES2PANDA_UNREACHABLE(); 85 } 86 Check(ir::ETSImportDeclaration * node) const87checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSImportDeclaration *node) const 88 { 89 ES2PANDA_UNREACHABLE(); 90 } 91 Check(ir::ETSNewArrayInstanceExpression * expr) const92checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSNewArrayInstanceExpression *expr) const 93 { 94 ES2PANDA_UNREACHABLE(); 95 } 96 Check(ir::ETSNewClassInstanceExpression * expr) const97checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSNewClassInstanceExpression *expr) const 98 { 99 ES2PANDA_UNREACHABLE(); 100 } 101 Check(ir::ETSNewMultiDimArrayInstanceExpression * expr) const102checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSNewMultiDimArrayInstanceExpression *expr) const 103 { 104 ES2PANDA_UNREACHABLE(); 105 } 106 Check(ir::ETSPackageDeclaration * st) const107checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSPackageDeclaration *st) const 108 { 109 ES2PANDA_UNREACHABLE(); 110 } 111 Check(ir::ETSParameterExpression * expr) const112checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSParameterExpression *expr) const 113 { 114 ES2PANDA_UNREACHABLE(); 115 } 116 Check(ir::ETSPrimitiveType * node) const117checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSPrimitiveType *node) const 118 { 119 ES2PANDA_UNREACHABLE(); 120 } 121 Check(ir::ETSStructDeclaration * node) const122checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSStructDeclaration *node) const 123 { 124 ES2PANDA_UNREACHABLE(); 125 } 126 Check(ir::ETSTuple * node) const127checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSTuple *node) const 128 { 129 ES2PANDA_UNREACHABLE(); 130 } 131 Check(ir::ETSTypeReference * node) const132checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSTypeReference *node) const 133 { 134 ES2PANDA_UNREACHABLE(); 135 } 136 Check(ir::ETSTypeReferencePart * node) const137checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSTypeReferencePart *node) const 138 { 139 ES2PANDA_UNREACHABLE(); 140 } 141 Check(ir::ETSNonNullishTypeNode * node) const142checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSNonNullishTypeNode *node) const 143 { 144 ES2PANDA_UNREACHABLE(); 145 } 146 Check(ir::ETSNullType * node) const147checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSNullType *node) const 148 { 149 ES2PANDA_UNREACHABLE(); 150 } 151 Check(ir::ETSUndefinedType * node) const152checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSUndefinedType *node) const 153 { 154 ES2PANDA_UNREACHABLE(); 155 } 156 Check(ir::ETSNeverType * node) const157checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSNeverType *node) const 158 { 159 ES2PANDA_UNREACHABLE(); 160 } 161 Check(ir::ETSStringLiteralType * node) const162checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSStringLiteralType *node) const 163 { 164 ES2PANDA_UNREACHABLE(); 165 } 166 Check(ir::ETSUnionType * node) const167checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSUnionType *node) const 168 { 169 ES2PANDA_UNREACHABLE(); 170 } 171 Check(ir::ETSKeyofType * node) const172checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSKeyofType *node) const 173 { 174 ES2PANDA_UNREACHABLE(); 175 } 176 Check(ir::ETSWildcardType * node) const177checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSWildcardType *node) const 178 { 179 ES2PANDA_UNREACHABLE(); 180 } 181 Check(ir::BlockExpression * st) const182checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::BlockExpression *st) const 183 { 184 ES2PANDA_UNREACHABLE(); 185 } 186 Check(ir::ClassExpression * expr) const187checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ClassExpression *expr) const 188 { 189 ES2PANDA_UNREACHABLE(); 190 } 191 Check(ir::DirectEvalExpression * expr) const192checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::DirectEvalExpression *expr) const 193 { 194 ES2PANDA_UNREACHABLE(); 195 } 196 Check(ir::ImportExpression * expr) const197checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ImportExpression *expr) const 198 { 199 ES2PANDA_UNREACHABLE(); 200 } 201 Check(ir::CharLiteral * expr) const202checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::CharLiteral *expr) const 203 { 204 ES2PANDA_UNREACHABLE(); 205 } 206 Check(ir::UndefinedLiteral * expr) const207checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::UndefinedLiteral *expr) const 208 { 209 ES2PANDA_UNREACHABLE(); 210 } 211 212 // compile methods for MODULE-related nodes in alphabetical order Check(ir::ExportAllDeclaration * st) const213checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ExportAllDeclaration *st) const 214 { 215 ES2PANDA_UNREACHABLE(); 216 } 217 Check(ir::ExportDefaultDeclaration * st) const218checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ExportDefaultDeclaration *st) const 219 { 220 ES2PANDA_UNREACHABLE(); 221 } 222 Check(ir::ExportNamedDeclaration * st) const223checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ExportNamedDeclaration *st) const 224 { 225 ES2PANDA_UNREACHABLE(); 226 } 227 Check(ir::ExportSpecifier * st) const228checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ExportSpecifier *st) const 229 { 230 ES2PANDA_UNREACHABLE(); 231 } 232 Check(ir::ImportDeclaration * st) const233checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ImportDeclaration *st) const 234 { 235 ES2PANDA_UNREACHABLE(); 236 } 237 Check(ir::ImportDefaultSpecifier * st) const238checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ImportDefaultSpecifier *st) const 239 { 240 ES2PANDA_UNREACHABLE(); 241 } 242 Check(ir::ImportNamespaceSpecifier * st) const243checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ImportNamespaceSpecifier *st) const 244 { 245 ES2PANDA_UNREACHABLE(); 246 } 247 Check(ir::ImportSpecifier * st) const248checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ImportSpecifier *st) const 249 { 250 ES2PANDA_UNREACHABLE(); 251 } 252 // compile methods for STATEMENTS in alphabetical order Check(ir::AssertStatement * st) const253checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::AssertStatement *st) const 254 { 255 ES2PANDA_UNREACHABLE(); 256 } 257 Check(ir::ClassDeclaration * st) const258checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ClassDeclaration *st) const 259 { 260 ES2PANDA_UNREACHABLE(); 261 } 262 Check(ir::ContinueStatement * st) const263checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ContinueStatement *st) const 264 { 265 ES2PANDA_UNREACHABLE(); 266 } 267 Check(ir::DebuggerStatement * st) const268checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::DebuggerStatement *st) const 269 { 270 ES2PANDA_UNREACHABLE(); 271 } 272 Check(ir::ForInStatement * st) const273checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ForInStatement *st) const 274 { 275 ES2PANDA_UNREACHABLE(); 276 } 277 Check(ir::ForOfStatement * st) const278checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ForOfStatement *st) const 279 { 280 ES2PANDA_UNREACHABLE(); 281 } 282 Check(ir::LabelledStatement * st) const283checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::LabelledStatement *st) const 284 { 285 ES2PANDA_UNREACHABLE(); 286 } 287 Check(ir::SwitchCaseStatement * st) const288checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::SwitchCaseStatement *st) const 289 { 290 ES2PANDA_UNREACHABLE(); 291 } 292 Check(ir::ThrowStatement * st) const293checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ThrowStatement *st) const 294 { 295 ES2PANDA_UNREACHABLE(); 296 } 297 Check(ir::TSClassImplements * expr) const298checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSClassImplements *expr) const 299 { 300 ES2PANDA_UNREACHABLE(); 301 } 302 Check(ir::TSConditionalType * node) const303checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSConditionalType *node) const 304 { 305 ES2PANDA_UNREACHABLE(); 306 } 307 Check(ir::ETSReExportDeclaration * node) const308checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ETSReExportDeclaration *node) const 309 { 310 ES2PANDA_UNREACHABLE(); 311 } 312 Check(ir::TSEnumMember * st) const313checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSEnumMember *st) const 314 { 315 ES2PANDA_UNREACHABLE(); 316 } 317 Check(ir::TSExternalModuleReference * expr) const318checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSExternalModuleReference *expr) const 319 { 320 ES2PANDA_UNREACHABLE(); 321 } 322 Check(ir::TSImportEqualsDeclaration * st) const323checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSImportEqualsDeclaration *st) const 324 { 325 ES2PANDA_UNREACHABLE(); 326 } 327 Check(ir::TSImportType * node) const328checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSImportType *node) const 329 { 330 ES2PANDA_UNREACHABLE(); 331 } 332 Check(ir::TSInferType * node) const333checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSInferType *node) const 334 { 335 ES2PANDA_UNREACHABLE(); 336 } 337 Check(ir::TSInterfaceHeritage * expr) const338checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSInterfaceHeritage *expr) const 339 { 340 ES2PANDA_UNREACHABLE(); 341 } 342 Check(ir::TSIntersectionType * node) const343checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSIntersectionType *node) const 344 { 345 ES2PANDA_UNREACHABLE(); 346 } 347 Check(ir::TSMappedType * node) const348checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSMappedType *node) const 349 { 350 ES2PANDA_UNREACHABLE(); 351 } 352 Check(ir::TSModuleBlock * st) const353checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSModuleBlock *st) const 354 { 355 ES2PANDA_UNREACHABLE(); 356 } 357 Check(ir::TSModuleDeclaration * st) const358checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSModuleDeclaration *st) const 359 { 360 ES2PANDA_UNREACHABLE(); 361 } 362 Check(ir::TSNonNullExpression * expr) const363checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSNonNullExpression *expr) const 364 { 365 ES2PANDA_UNREACHABLE(); 366 } 367 Check(ir::TSObjectKeyword * node) const368checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSObjectKeyword *node) const 369 { 370 ES2PANDA_UNREACHABLE(); 371 } 372 Check(ir::TSParameterProperty * expr) const373checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSParameterProperty *expr) const 374 { 375 ES2PANDA_UNREACHABLE(); 376 } 377 Check(ir::TSThisType * node) const378checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSThisType *node) const 379 { 380 ES2PANDA_UNREACHABLE(); 381 } 382 Check(ir::TSTypeAssertion * expr) const383checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSTypeAssertion *expr) const 384 { 385 ES2PANDA_UNREACHABLE(); 386 } 387 Check(ir::TSTypeOperator * node) const388checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSTypeOperator *node) const 389 { 390 ES2PANDA_UNREACHABLE(); 391 } 392 Check(ir::TSTypeParameter * expr) const393checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSTypeParameter *expr) const 394 { 395 ES2PANDA_UNREACHABLE(); 396 } 397 Check(ir::TSTypeParameterDeclaration * expr) const398checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSTypeParameterDeclaration *expr) const 399 { 400 ES2PANDA_UNREACHABLE(); 401 } 402 Check(ir::TSTypeParameterInstantiation * expr) const403checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSTypeParameterInstantiation *expr) const 404 { 405 ES2PANDA_UNREACHABLE(); 406 } 407 Check(ir::TSTypePredicate * node) const408checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::TSTypePredicate *node) const 409 { 410 ES2PANDA_UNREACHABLE(); 411 } 412 Check(ir::DummyNode * node) const413checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::DummyNode *node) const 414 { 415 ES2PANDA_UNREACHABLE(); 416 } 417 } // namespace ark::es2panda::checker 418