| /arkcompiler/ets_frontend/ets2panda/checker/ |
| D | ETSAnalyzerHelpers.h | 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, 33 … ir::ScriptFunction *extensionFunc, checker::Signature *signature); 34 void CheckExtensionMethod(checker::ETSChecker *checker, ir::ScriptFunction *extensionFunc, ir::AstN… [all …]
|
| D | TSAnalyzer.cpp | 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 35 checker::Type *catchParamType = typeAnnotation->Check(checker); in Check() 37 if (!catchParamType->HasTypeFlag(checker::TypeFlag::ANY_OR_UNKNOWN)) { in Check() 38 …checker->ThrowTypeError("Catch clause variable type annotation must be 'any' or 'unknown' if speci… in Check() 43 st->Body()->Check(checker); in Check() 48 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ClassDefinition *node) const in Check() [all …]
|
| D | ETSAnalyzer.cpp | 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() 50 … checker::Type *catchParamAnnotationType = paramIdent->TypeAnnotation()->GetType(checker); in Check() 51 …exceptionType = checker->CheckExceptionOrErrorType(catchParamAnnotationType, st->Param()->Start()); in Check() [all …]
|
| D | TSAnalyzer.h | 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 29 #define DECLARE_TSANALYZER_CHECK_METHOD(_, nodeType) checker::Type *Check(ir::nodeType *node) const… 35 …virtual checker::Type *Check(ir::nodeType *node) const override; // CC-OFF(G.PRE.02,G.PRE.09) nam… 39 …checker::Type *CheckDeleteKeyword([[maybe_unused]] checker::TSChecker *checker, ir::UnaryExpressio… 40 …checker::Type *CheckLiteral([[maybe_unused]] checker::TSChecker *checker, ir::UnaryExpression *exp… 41 …checker::Type *CheckAssignmentExprOperatorType(ir::AssignmentExpression *expr, checker::Type *left… 42 checker::Type *rightType) const; [all …]
|
| D | ETSAnalyzerUnreachable.cpp | 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() 61 checker::Type *ETSAnalyzer::Check([[maybe_unused]] ir::TSSignatureDeclaration *node) const in Check() [all …]
|
| D | TSAnalyzerUnreachable.cpp | 18 namespace ark::es2panda::checker { namespace 21 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::NamedType *node) const in Check() 26 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::PrefixAssertionExpression *expr) const in Check() 31 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ClassProperty *st) const in Check() 36 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ClassStaticBlock *st) const in Check() 41 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::Decorator *st) const in Check() 46 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::MethodDefinition *node) const in Check() 51 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::Property *expr) const in Check() 56 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::ScriptFunction *node) const in Check() 61 checker::Type *TSAnalyzer::Check([[maybe_unused]] ir::SpreadElement *expr) const in Check() [all …]
|
| D | ETSAnalyzer.h | 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 30 #define DECLARE_ETSANALYZER_CHECK_METHOD(_, nodeType) checker::Type *Check(ir::nodeType *node) cons… 36 …virtual checker::Type *Check(ir::nodeType *node) const override; // CC-OFF(G.PRE.02,G.PRE.09) nam… 39 checker::Type *PreferredType(ir::ObjectExpression *expr) const; 40 checker::Type *CheckDynamic(ir::ObjectExpression *expr) const; 41 checker::Type *GetPreferredType(ir::ArrayExpression *expr) const; 43 …void CheckObjectExprProps(const ir::ObjectExpression *expr, checker::ETSObjectType *objectTypeForP… [all …]
|
| D | ETSAnalyzerHelpers.cpp | 17 #include "checker/types/ets/etsAsyncFuncReturnType.h" 19 namespace ark::es2panda::checker { namespace 39 void CheckExtensionIsShadowedInCurrentClassOrInterface(checker::ETSChecker *checker, checker::ETSOb… in CheckExtensionIsShadowedInCurrentClassOrInterface() argument 40 … ir::ScriptFunction *extensionFunc, checker::Signature *signature) in CheckExtensionIsShadowedInCurrentClassOrInterface() 45 …auto *const fieldVariable = objType->GetOwnProperty<checker::PropertyType::INSTANCE_FIELD>(methodN… in CheckExtensionIsShadowedInCurrentClassOrInterface() 47 … checker->LogError(diagnostic::EXTENSION_NAME_CONFLICT_WITH_FIELD, {methodName, objType->Name()}, in CheckExtensionIsShadowedInCurrentClassOrInterface() 53 …auto *const methodVariable = objType->GetOwnProperty<checker::PropertyType::INSTANCE_METHOD>(metho… in CheckExtensionIsShadowedInCurrentClassOrInterface() 62 if (!checker->Relation()->SignatureIsSupertypeOf(signature, funcSignature) && in CheckExtensionIsShadowedInCurrentClassOrInterface() 63 !checker->HasSameAssemblySignature(signature, funcSignature)) { in CheckExtensionIsShadowedInCurrentClassOrInterface() 68 …checker->LogError(diagnostic::EXTENSION_NAME_CONFLICT_WITH_METHOD, {funcType->Name(), objType->Nam… in CheckExtensionIsShadowedInCurrentClassOrInterface() [all …]
|
| /arkcompiler/runtime_core/tests/checked/ |
| D | checker_tests.rb | 15 require_relative 'checker' 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') 54 checker.ASM(x64: '666') 55 checker.ASM_NOT(x64: '777') 56 checker.ASM_INST('IR inst 1') [all …]
|
| /arkcompiler/runtime_core/static_core/tests/checked/ |
| D | checker_tests.rb | 16 require_relative 'checker' 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') 55 checker.ASM(x64: '666') 56 checker.ASM_NOT(x64: '777') 57 checker.ASM_INST('IR inst 1') [all …]
|
| /arkcompiler/ets_frontend/ets2panda/ir/statements/ |
| D | forOfStatement.cpp | 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() 30 types.push_back(checker->GetGlobalTypesHolder()->GlobalCharType()); in CreateUnionIteratorTypes() 32 types.push_back(this->CheckIteratorMethodForObject(checker, it->AsETSObjectType())); in CreateUnionIteratorTypes() 34 …es.push_back(it->AsETSArrayType()->ElementType()->Instantiate(checker->Allocator(), checker->Relat… in CreateUnionIteratorTypes() 35 … checker->GetGlobalTypesHolder())); in CreateUnionIteratorTypes() 36 types.back()->RemoveTypeFlag(checker::TypeFlag::CONSTANT); in CreateUnionIteratorTypes() 38 return checker->GlobalTypeError(); in CreateUnionIteratorTypes() 42 return checker->CreateETSUnionType(std::move(types)); in CreateUnionIteratorTypes() [all …]
|
| D | forOfStatement.h | 19 #include <checker/types/signature.h> 26 namespace ark::es2panda::checker { 29 } // namespace ark::es2panda::checker 41 friend class checker::ETSAnalyzer; 99 checker::Type *Check(checker::TSChecker *checker) override; 100 checker::VerifiedType Check(checker::ETSChecker *checker) override; 108 [[nodiscard]] checker::Type *CheckIteratorMethod(checker::ETSChecker *checker); 109 [[nodiscard]] checker::Type *CheckIteratorMethodForObject(checker::ETSChecker *checker, 110 checker::ETSObjectType *sourceType); 111 …static bool CheckReturnTypeOfIteratorMethod(checker::ETSChecker *checker, checker::ETSObjectType *… [all …]
|
| /arkcompiler/ets_frontend/ets2panda/test/unit/ |
| D | union_normalization_test_1.cpp | 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() 52 unionConstituents.emplace_back(checker->GetGlobalTypesHolder()->GlobalETSStringBuiltinType()); in TEST_F() 55 auto *const normalizedType = checker->CreateETSUnionType(std::move(unionConstituents)); in TEST_F() [all …]
|
| D | union_normalization_test_2.cpp | 19 #include "checker/ETSAnalyzer.h" 20 #include "checker/ETSchecker.h" 35 #include "checker/types/globalTypesHolder.h" 63 auto checker = Checker(); in TEST_F() local 64 ASSERT(checker); in TEST_F() 67 ArenaVector<checker::Type *> unionConstituents1(checker->Allocator()->Adapter()); in TEST_F() 72 auto *const normalizedType1 = checker->CreateETSUnionType(std::move(unionConstituents1)); in TEST_F() 78 ArenaVector<checker::Type *> unionConstituents2(checker->Allocator()->Adapter()); in TEST_F() 83 auto *const normalizedType2 = checker->CreateETSUnionType(std::move(unionConstituents2)); in TEST_F() 89 ArenaVector<checker::Type *> unionConstituents3(checker->Allocator()->Adapter()); in TEST_F() [all …]
|
| /arkcompiler/ets_frontend/es2panda/ir/ts/ |
| D | tsTupleType.cpp | 18 #include <typescript/checker.h> 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() 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() 50 checker::ElementFlags combinedFlags = checker::ElementFlags::NO_OPTS; in GetType() 53 ArenaVector<checker::Type *> numberIndexTypes(checker->Allocator()->Adapter()); in GetType() 55 util::StringView memberIndex = util::Helpers::ToStringView(checker->Allocator(), index); in GetType() [all …]
|
| D | tsIndexedAccessType.cpp | 18 #include <typescript/checker.h> 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() 53 checker->ThrowTypeError("Type has no matching singature for type 'number'", Start()); in Check() 56 checker->ThrowTypeError("Type has no matching singature for type 'string'", Start()); in Check() [all …]
|
| D | tsTypeLiteral.cpp | 19 #include <typescript/checker.h> 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() 56 …checker::ObjectDescriptor *desc = checker->Allocator()->New<checker::ObjectDescriptor>(checker->Al… in GetType() 57 checker::Type *type = checker->Allocator()->New<checker::ObjectLiteralType>(desc); in GetType() [all …]
|
| /arkcompiler/ets_frontend/es2panda/ir/expressions/ |
| D | arrayExpression.cpp | 144 void GetSpreadElementType(checker::Checker *checker, checker::Type *spreadType, in GetSpreadElementType() argument 145 … ArenaVector<checker::Type *> &elementTypes, const lexer::SourcePosition &loc) in GetSpreadElementType() 147 bool inConstContext = checker->HasStatus(checker::CheckerStatus::IN_CONST_CONTEXT); in GetSpreadElementType() 150 ArenaVector<checker::Type *> tupleElementTypes(checker->Allocator()->Adapter()); in GetSpreadElementType() 151 checker::TupleType *spreadTuple = spreadType->AsObjectType()->AsTupleType(); in GetSpreadElementType() 166 elementTypes.push_back(checker->CreateUnionType(std::move(tupleElementTypes))); in GetSpreadElementType() 172 ArenaVector<checker::Type *> spreadTypes(checker->Allocator()->Adapter()); in GetSpreadElementType() 182 checker::TupleType *tuple = type->AsObjectType()->AsTupleType(); in GetSpreadElementType() 196 elementTypes.push_back(checker->CreateUnionType(std::move(spreadTypes))); in GetSpreadElementType() 201 checker->ThrowTypeError( in GetSpreadElementType() [all …]
|
| /arkcompiler/ets_frontend/ets2panda/ir/ts/ |
| D | tsTupleType.cpp | 22 #include "checker/TSchecker.h" 23 #include "checker/types/ts/indexInfo.h" 81 checker::Type *GetNumberIndexType(ArenaVector<checker::Type *> numberIndexTypes, checker::TSChecker… in GetNumberIndexType() argument 83 checker::Type *numberIndexType = nullptr; in GetNumberIndexType() 85 numberIndexType = checker->GlobalNeverType(); in GetNumberIndexType() 89 numberIndexType = checker->CreateUnionType(std::move(numberIndexTypes)); in GetNumberIndexType() 94 static void SetMemberVarType(checker::Type *memberType, varbinder::LocalVariable *memberVar) in SetMemberVarType() 101 checker::Type *TSTupleType::GetType(checker::TSChecker *checker) in GetType() argument 107 …checker::ObjectDescriptor *desc = checker->Allocator()->New<checker::ObjectDescriptor>(checker->Al… in GetType() 109 checker::NamedTupleMemberPool namedMembers(checker->Allocator()->Adapter()); in GetType() [all …]
|
| /arkcompiler/ets_frontend/ets2panda/checker/typeChecker/ |
| D | TypeChecker.h | 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… 38 explicit TypeChecker(Checker *checker) : checker_(checker) {} in TypeChecker() argument 47 Checker *const checker_; 52 explicit ETSTypeChecker(Checker *checker) : TypeChecker(checker) {} in ETSTypeChecker() argument 60 explicit JSTypeChecker(Checker *checker) : TypeChecker(checker) {} in JSTypeChecker() argument 65 explicit TSTypeChecker(Checker *checker) : TypeChecker(checker) {} in TSTypeChecker() argument 70 explicit ASTypeChecker(Checker *checker) : TypeChecker(checker) {} in ASTypeChecker() argument 73 bool RunTypeChecker(Checker *checker, ScriptExtension ext, ir::AstNode *node); [all …]
|
| /arkcompiler/ets_frontend/ets2panda/ir/expressions/ |
| D | memberExpression.h | 19 #include "checker/checkerContext.h" 20 #include "checker/types/ets/etsObjectType.h" 28 namespace ark::es2panda::checker { 31 } // namespace ark::es2panda::checker 59 friend class checker::ETSAnalyzer; 160 [[nodiscard]] checker::ETSObjectType *ObjType() const noexcept 165 [[nodiscard]] checker::ETSFunctionType *ExtensionAccessorType() const 170 void SetExtensionAccessorType(checker::ETSFunctionType *eAccessorType) 182 void SetObjectType(checker::ETSObjectType *objType) noexcept 197 [[nodiscard]] checker::Type *UncheckedType() const noexcept [all …]
|
| D | memberExpression.cpp | 18 #include "checker/TSchecker.h" 19 #include "checker/ets/castingContext.h" 20 #include "checker/types/ets/etsTupleType.h" 147 checker::Type *MemberExpression::Check(checker::TSChecker *checker) in Check() argument 149 return checker->GetAnalyzer()->Check(this); in Check() 152 std::pair<checker::Type *, varbinder::LocalVariable *> MemberExpression::ResolveObjectMember( in ResolveObjectMember() 153 checker::ETSChecker *checker) const in ResolveObjectMember() 155 auto resolveRes = checker->ResolveMemberReference(this, objType_); in ResolveObjectMember() 162 if (resolveRes[0]->Kind() == checker::ResolvedKind::PROPERTY) { in ResolveObjectMember() 164 checker->ValidatePropertyAccess(var, objType_, property_->Start()); in ResolveObjectMember() [all …]
|
| D | arrayExpression.cpp | 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" 230 checker::Type *ArrayExpression::Check(checker::TSChecker *checker) in Check() argument 232 return checker->GetAnalyzer()->Check(this); in Check() 235 checker::Type *CheckAssignmentPattern(Expression *it, checker::TSChecker *checker, checker::Type *e… in CheckAssignmentPattern() argument 236 bool &addOptional, checker::ElementFlags &memberFlag) in CheckAssignmentPattern() 243 …checker::Type *initializerType = checker->GetBaseTypeOfLiteralType(assignmentPattern->Right()->Che… in CheckAssignmentPattern() [all …]
|
| /arkcompiler/ets_frontend/ets2panda/lsp/src/ |
| D | isolated_declaration.cpp | 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 67 typeStr = originType->GetType(checker)->ToString(); in FilterUnionTypes() 86 std::optional<std::string> HandleSpecificObjectTypes(const checker::ETSObjectType *objectType, in HandleSpecificObjectTypes() 87 [[maybe_unused]] checker::ETSChecker *checker) in HandleSpecificObjectTypes() argument 101 …::optional<std::string> GenObjectType(const checker::ETSObjectType *objectType, checker::ETSChecke… in GenObjectType() argument 103 …if (auto specificTypeStr = HandleSpecificObjectTypes(objectType, checker); specificTypeStr.has_val… in GenObjectType() [all …]
|
| /arkcompiler/ets_frontend/ets2panda/compiler/core/ |
| D | ETSGen-inl.h | 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() 42 case checker::TypeFlag::SHORT: { in MoveImmediateToRegister() [all …]
|