| /arkcompiler/ets_frontend/ets2panda/checker/ |
| D | TSAnalyzer.cpp | 2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 18 #include "checker/TSchecker.h" 19 #include "checker/ts/destructuringContext.h" 21 namespace ark::es2panda::checker { namespace 29 checker::Type *TSAnalyzer::Check(ir::CatchClause *st) const in Check() 31 TSChecker *checker = GetTSChecker(); in Check() local 32 ir::Expression *typeAnnotation = st->Param()->AsAnnotatedExpression()->TypeAnnotation(); in Check() 35 checker::Type *catchParamType = typeAnnotation->Check(checker); in Check() 37 if (!catchParamType->HasTypeFlag(checker::TypeFlag::ANY_OR_UNKNOWN)) { in Check() [all …]
|
| D | ETSAnalyzerHelpers.h | 2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 19 #include "checker/types/type.h" 21 #include "checker/ETSchecker.h" 22 #include "checker/ets/castingContext.h" 23 #include "checker/ets/typeRelationContext.h" 28 namespace ark::es2panda::checker { 29 void CheckExtensionIsShadowedInCurrentClassOrInterface(checker::ETSChecker *checker, checker::ETSOb… 31 checker::Signature *signature); 32 void CheckExtensionIsShadowedByMethod(checker::ETSChecker *checker, checker::ETSObjectType *objType, [all …]
|
| D | ETSAnalyzer.cpp | 2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 18 #include "checker/ETSchecker.h" 21 #include "checker/types/globalTypesHolder.h" 22 #include "checker/types/ets/etsTupleType.h" 26 #include "checker/types/ets/etsAsyncFuncReturnType.h" 31 namespace ark::es2panda::checker { namespace 39 checker::Type *ETSAnalyzer::Check(ir::CatchClause *st) const in Check() 41 ETSChecker *checker = GetETSChecker(); in Check() local 42 checker::Type *exceptionType = checker->GlobalTypeError(); in Check() [all …]
|
| D | TSAnalyzer.h | 2 * Copyright (c) 2021 - 2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 18 #include "checker/SemanticAnalyzer.h" 19 #include "checker/TSchecker.h" 22 namespace ark::es2panda::checker { 26 explicit TSAnalyzer(Checker *checker) : SemanticAnalyzer(checker) {}; in TSAnalyzer() argument 27 /* CC-OFFNXT(G.PRE.02,G.PRE.09) name part*/ 28 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage) 29 #define DECLARE_TSANALYZER_CHECK_METHOD(_, nodeType) checker::Type *Check(ir::nodeType *node) const… 33 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage) [all …]
|
| D | ETSAnalyzerHelpers.cpp | 2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 17 #include "checker/types/ets/etsAsyncFuncReturnType.h" 19 namespace ark::es2panda::checker { namespace 27 if (thisType->IsETSArrayType() || thisType->IsETSTypeParameter()) { in IsValidReceiverParameter() 31 if (!thisType->IsETSObjectType() || thisType->IsETSEnumType()) { in IsValidReceiverParameter() 35 auto *const thisObjectType = thisType->AsETSObjectType(); in IsValidReceiverParameter() 36 return thisObjectType->HasObjectFlag(ETSObjectFlags::CLASS | ETSObjectFlags::INTERFACE); in IsValidReceiverParameter() 39 void CheckExtensionIsShadowedInCurrentClassOrInterface(checker::ETSChecker *checker, checker::ETSOb… in CheckExtensionIsShadowedInCurrentClassOrInterface() argument 40 … ir::ScriptFunction *extensionFunc, checker::Signature *signature) in CheckExtensionIsShadowedInCurrentClassOrInterface() [all …]
|
| D | ETSAnalyzer.h | 2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 19 #include "checker/SemanticAnalyzer.h" 20 #include "checker/ETSchecker.h" 23 namespace ark::es2panda::checker { 27 explicit ETSAnalyzer(Checker *checker) : SemanticAnalyzer(checker) {}; in ETSAnalyzer() argument 28 // CC-OFFNXT(G.PRE.02,G.PRE.09) name part 29 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage) 30 #define DECLARE_ETSANALYZER_CHECK_METHOD(_, nodeType) checker::Type *Check(ir::nodeType *node) cons… 34 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage) [all …]
|
| D | ETSAnalyzerUnreachable.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 18 namespace ark::es2panda::checker { namespace 21 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::NamedType *node) const in Check() 26 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::PrefixAssertionExpression *expr) const in Check() 31 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::Decorator *st) const in Check() 36 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::MetaProperty *expr) const in Check() 41 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::ScriptFunction *node) const in Check() 46 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::TSIndexSignature *node) const in Check() 51 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::TSMethodSignature *node) const in Check() 56 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::TSPropertySignature *node) const in Check() [all …]
|
| /arkcompiler/runtime_core/tests/checked/ |
| D | checker_tests.rb | 1 # Copyright (c) 2021-2022 Huawei Device Co., Ltd. 6 # http://www.apache.org/licenses/LICENSE-2.0 15 require_relative 'checker' 28 asm --- 46 # Checker will clear working directory, so create it before we create disasm.txt file 47 checker = $CheckerForTest.new(OpenStruct.new({arch: 'x64'}), "") 50 checker.ASM_METHOD(/main/) 51 checker.ASM(x64: '---') 52 checker.ASM(x64: '000') 53 checker.ASM(x64: '333') [all …]
|
| /arkcompiler/runtime_core/static_core/tests/checked/ |
| D | checker_tests.rb | 2 # Copyright (c) 2021-2024 Huawei Device Co., Ltd. 7 # http://www.apache.org/licenses/LICENSE-2.0 16 require_relative 'checker' 29 asm --- 47 # Checker will clear working directory, so create it before we create disasm.txt file 48 checker = $CheckerForTest.new(OpenStruct.new({arch: 'x64'}), "") 51 checker.ASM_METHOD(/main/) 52 checker.ASM(x64: '---') 53 checker.ASM(x64: '000') 54 checker.ASM(x64: '333') [all …]
|
| /arkcompiler/ets_frontend/ets2panda/ir/statements/ |
| D | forOfStatement.cpp | 2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 18 #include "checker/TSchecker.h" 24 checker::Type *ForOfStatement::CreateUnionIteratorTypes(checker::ETSChecker *checker, checker::Type… in CreateUnionIteratorTypes() argument 26 ArenaVector<checker::Type *> types(checker->Allocator()->Adapter()); in CreateUnionIteratorTypes() 28 for (auto it : exprType->AsETSUnionType()->ConstituentTypes()) { in CreateUnionIteratorTypes() 29 if (it->IsETSStringType()) { in CreateUnionIteratorTypes() 30 types.push_back(checker->GetGlobalTypesHolder()->GlobalCharType()); in CreateUnionIteratorTypes() 31 } else if (it->IsETSObjectType()) { in CreateUnionIteratorTypes() 32 types.push_back(this->CheckIteratorMethodForObject(checker, it->AsETSObjectType())); in CreateUnionIteratorTypes() [all …]
|
| D | forOfStatement.h | 2 * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 19 #include <checker/types/signature.h> 26 namespace ark::es2panda::checker { 29 } // namespace ark::es2panda::checker 34 // NOLINTBEGIN(modernize-avoid-c-arrays) 38 // NOLINTEND(modernize-avoid-c-arrays) 41 friend class checker::ETSAnalyzer; 99 checker::Type *Check(checker::TSChecker *checker) override; 100 checker::VerifiedType Check(checker::ETSChecker *checker) override; [all …]
|
| /arkcompiler/ets_frontend/ets2panda/test/unit/ |
| D | union_normalization_test_1.cpp | 2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 19 #include "checker/ETSAnalyzer.h" 20 #include "checker/ETSchecker.h" 35 #include "checker/types/globalTypesHolder.h" 46 auto checker = Checker(); in TEST_F() local 47 ASSERT(checker); in TEST_F() 49 ArenaVector<checker::Type *> unionConstituents(checker->Allocator()->Adapter()); in TEST_F() 50 unionConstituents.emplace_back(checker->GlobalIntType()); in TEST_F() 51 unionConstituents.emplace_back(checker->GetGlobalTypesHolder()->GlobalETSObjectType()); in TEST_F() [all …]
|
| D | union_normalization_test_2.cpp | 2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 19 #include "checker/ETSAnalyzer.h" 20 #include "checker/ETSchecker.h" 35 #include "checker/types/globalTypesHolder.h" 56 auto *const baseType = FindClassType(program->VarBinder()->AsETSBinder(), "Base"); in TEST_F() 58 auto *const derived1Type = FindClassType(program->VarBinder()->AsETSBinder(), "Derived1"); in TEST_F() 60 auto *const derived2Type = FindClassType(program->VarBinder()->AsETSBinder(), "Derived2"); in TEST_F() 63 auto checker = Checker(); in TEST_F() local 64 ASSERT(checker); in TEST_F() [all …]
|
| /arkcompiler/ets_frontend/es2panda/ir/ts/ |
| D | tsTupleType.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 18 #include <typescript/checker.h> 34 dumper->Add({{"type", "TSTupleType"}, {"elementTypes", elementTypes_}}); in Dump() 39 checker::Type *TSTupleType::GetType(checker::Checker *checker) const in GetType() 41 auto found = checker->NodeCache().find(this); in GetType() 42 if (found != checker->NodeCache().end()) { in GetType() 43 return found->second; in GetType() 46 …checker::ObjectDescriptor *desc = checker->Allocator()->New<checker::ObjectDescriptor>(checker->Al… in GetType() 48 checker::NamedTupleMemberPool namedMembers; in GetType() 49 ArenaVector<checker::ElementFlags> elementFlags(checker->Allocator()->Adapter()); in GetType() [all …]
|
| D | tsIndexedAccessType.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 18 #include <typescript/checker.h> 31 …dumper->Add({{"type", "TSIndexedAccessType"}, {"objectType", objectType_}, {"indexType", indexType… in Dump() 36 checker::Type *TSIndexedAccessType::Check(checker::Checker *checker) const in Check() 38 objectType_->Check(checker); in Check() 39 indexType_->Check(checker); in Check() 40 checker::Type *resolved = GetType(checker); in Check() 46 checker::Type *indexType = checker->CheckTypeCached(indexType_); in Check() 48 if (!indexType->HasTypeFlag(checker::TypeFlag::STRING_LIKE | checker::TypeFlag::NUMBER_LIKE)) { in Check() 49 …checker->ThrowTypeError({"Type ", indexType, " cannot be used as index type"}, indexType_->Start()… in Check() [all …]
|
| D | tsTypeLiteral.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 19 #include <typescript/checker.h> 32 dumper->Add({{"type", "TSTypeLiteral"}, {"members", members_}}); in Dump() 37 checker::Type *TSTypeLiteral::Check(checker::Checker *checker) const in Check() 40 it->Check(checker); in Check() 43 checker::Type *type = GetType(checker); in Check() 44 checker->CheckIndexConstraints(type); in Check() 49 checker::Type *TSTypeLiteral::GetType(checker::Checker *checker) const in GetType() 51 auto found = checker->NodeCache().find(this); in GetType() 52 if (found != checker->NodeCache().end()) { in GetType() [all …]
|
| /arkcompiler/ets_frontend/es2panda/ir/expressions/ |
| D | arrayExpression.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 33 switch (it->Type()) { in ConvertibleToArrayPattern() 35 convResult = it->AsArrayExpression()->ConvertibleToArrayPattern(); in ConvertibleToArrayPattern() 40 convResult = it->AsSpreadElement()->ConvertibleToRest(isDeclaration_); in ConvertibleToArrayPattern() 48 convResult = it->AsObjectExpression()->ConvertibleToObjectPattern(); in ConvertibleToArrayPattern() 52 convResult = it->AsAssignmentExpression()->ConvertibleToAssignmentPattern(); in ConvertibleToArrayPattern() 80 switch (it->Type()) { in ValidateExpression() 82 info = it->AsObjectExpression()->ValidateExpression(); in ValidateExpression() 86 info = it->AsArrayExpression()->ValidateExpression(); in ValidateExpression() 90 auto *assignmentExpr = it->AsAssignmentExpression(); in ValidateExpression() [all …]
|
| /arkcompiler/ets_frontend/ets2panda/ir/ts/ |
| D | tsTupleType.cpp | 2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 22 #include "checker/TSchecker.h" 23 #include "checker/types/ts/indexInfo.h" 34 it->SetTransformedNode(transformationName, transformedNode); in TransformChildren() 40 it->SetTransformedNode(transformationName, transformedNode); in TransformChildren() 41 it = transformedNode->AsAnnotationUsage(); in TransformChildren() 58 dumper->Add({{"type", "TSTupleType"}, in Dump() 66 anno->Dump(dumper); in Dump() 68 dumper->Add("TSTupleType"); in Dump() [all …]
|
| /arkcompiler/ets_frontend/ets2panda/ir/expressions/ |
| D | memberExpression.cpp | 2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 18 #include "checker/TSchecker.h" 19 #include "checker/ets/castingContext.h" 20 #include "checker/types/ets/etsTupleType.h" 30 …object_ = other.object_ != nullptr ? other.object_->Clone(allocator, this)->AsExpression() : nullp… in MemberExpression() 31 …property_ = other.property_ != nullptr ? other.property_->Clone(allocator, this)->AsExpression() :… in MemberExpression() 36 return property_->IsIdentifier() && property_->AsIdentifier()->IsPrivateIdent(); in IsPrivateReference() 42 object_->SetTransformedNode(transformationName, transformedNode); in TransformChildren() 43 object_ = transformedNode->AsExpression(); in TransformChildren() [all …]
|
| D | memberExpression.h | 2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 19 #include "checker/checkerContext.h" 20 #include "checker/types/ets/etsObjectType.h" 28 namespace ark::es2panda::checker { 31 } // namespace ark::es2panda::checker 35 // NOLINTBEGIN(modernize-avoid-c-arrays) 37 // NOLINTEND(modernize-avoid-c-arrays) 59 friend class checker::ETSAnalyzer; 100 object_->SetParent(this); [all …]
|
| D | arrayExpression.cpp | 2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 19 #include "checker/ETSchecker.h" 20 #include "checker/TSchecker.h" 21 #include "checker/ets/typeRelationContext.h" 22 #include "checker/ts/destructuringContext.h" 23 #include "checker/types/ets/etsTupleType.h" 31 decorators_(allocator->Adapter()), in ArrayExpression() 32 elements_(allocator->Adapter()) in ArrayExpression() 40 elements_.emplace_back(element->Clone(allocator, this)->AsExpression()); in ArrayExpression() [all …]
|
| /arkcompiler/ets_frontend/ets2panda/checker/typeChecker/ |
| D | TypeChecker.h | 2 * Copyright (c) 2021 - 2025 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 21 namespace ark::es2panda::checker { 24 * This class should be launched after Checker pass. 25 …* Should contain all type checks, which are non-critical for `Checker` (`Checker` can keep working… 30 // NOTE(aleksisch): after merging #14938 add `const-AstVisitor` and make this pass const 33 node->Accept(this); in Check() 38 explicit TypeChecker(Checker *checker) : checker_(checker) {} in TypeChecker() argument 43 checker_->LogError(diagnostic, diagnosticParams, pos); in LogError() 47 Checker *const checker_; [all …]
|
| /arkcompiler/ets_frontend/ets2panda/lsp/src/ |
| D | isolated_declaration.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 16 #include "checker/ETSchecker.h" 17 #include "checker/types/ets/etsFunctionType.h" 47 …d::optional<std::string> GenReturnTypeStr(const checker::Type *checkerType, checker::ETSChecker *c… 48 …td::optional<std::string> GenUnionType(const checker::ETSUnionType *unionType, checker::ETSChecker… 52 …Type *> FilterUnionTypes(const ArenaVector<UnionType *> &originTypes, checker::ETSChecker *checker) in FilterUnionTypes() argument 61 std::string typeStr = originType->ToString(); in FilterUnionTypes() 63 if (originType->IsTSThisType()) { in FilterUnionTypes() 67 typeStr = originType->GetType(checker)->ToString(); in FilterUnionTypes() 86 std::optional<std::string> HandleSpecificObjectTypes(const checker::ETSObjectType *objectType, in HandleSpecificObjectTypes() [all …]
|
| /arkcompiler/ets_frontend/ets2panda/compiler/lowering/ets/ |
| D | asyncMethodLowering.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 18 #include "checker/ETSchecker.h" 19 #include "checker/types/ets/etsAsyncFuncReturnType.h" 29 static void CreateFuncDecl(checker::ETSChecker *checker, ir::MethodDefinition *func, varbinder::Loc… in CreateFuncDecl() argument 31 auto *allocator = checker->Allocator(); in CreateFuncDecl() 32 auto *varBinder = checker->VarBinder(); in CreateFuncDecl() 35 ES2PANDA_ASSERT(func->Id() != nullptr); in CreateFuncDecl() 36 …varbinder::Variable *var = scope->FindLocal(func->Id()->Name(), varbinder::ResolveBindingOptions::… in CreateFuncDecl() 39 …varBinder->NewVarDecl<varbinder::FunctionDecl>(func->Id()->Start(), allocator, func->Id()->Name(),… in CreateFuncDecl() 41 var->AddFlag(varbinder::VariableFlags::METHOD); in CreateFuncDecl() [all …]
|
| /arkcompiler/ets_frontend/ets2panda/compiler/core/ |
| D | ETSGen-inl.h | 7 * http://www.apache.org/licenses/LICENSE-2.0 21 #include "checker/ETSchecker.h" 26 void ETSGen::MoveImmediateToRegister(const ir::AstNode *node, VReg reg, const checker::TypeFlag val… in MoveImmediateToRegister() 30 case checker::TypeFlag::ETS_BOOLEAN: in MoveImmediateToRegister() 32 case checker::TypeFlag::BYTE: { in MoveImmediateToRegister() 33 Ra().Emit<Movi>(node, reg, static_cast<checker::ByteType::UType>(value)); in MoveImmediateToRegister() 34 SetVRegType(reg, Checker()->GlobalByteType()); in MoveImmediateToRegister() 37 case checker::TypeFlag::CHAR: { in MoveImmediateToRegister() 38 Ra().Emit<Movi>(node, reg, static_cast<checker::CharType::UType>(value)); in MoveImmediateToRegister() 39 SetVRegType(reg, Checker()->GlobalCharType()); in MoveImmediateToRegister() [all …]
|