/arkcompiler/ets_frontend/ets2panda/varbinder/ |
H A D | recordTable.cpp | 27 BoundContext::BoundContext(RecordTable *recordTable, ir::ClassDefinition *classDef, bool force) in BoundContext() argument 30 currentRecord_(classDef), in BoundContext() 33 if (classDef == nullptr || (!force && !recordTable_->classDefinitions_.insert(classDef).second)) { in BoundContext() 38 recordTable_->record_ = classDef; in BoundContext() 39 recordIdent_ = classDef->Ident(); in BoundContext() 40 if (classDef->InternalName().Empty()) { in BoundContext() 41 classDef->SetInternalName(FormRecordName()); in BoundContext() 89 const auto *classDef = std::get<ir::ClassDefinition *>(currentRecord_); in FormRecordName() local 90 if (classDef in FormRecordName() [all...] |
H A D | varbinder.cpp | 226 auto *classDef = util::Helpers::GetContainingClassDefinition(ident); in InstantiatePrivateContext() local 228 while (classDef != nullptr) { in InstantiatePrivateContext() 229 auto *scope = classDef->Scope(); in InstantiatePrivateContext() 230 Variable *variable = scope->FindLocal(classDef->PrivateId(), varbinder::ResolveBindingOptions::BINDINGS); in InstantiatePrivateContext() 236 if (classDef->HasMatchingPrivateKey(ident->Name())) { in InstantiatePrivateContext() 241 classDef = util::Helpers::GetContainingClassDefinition(classDef->Parent()); in InstantiatePrivateContext() 379 void VarBinder::InitializeClassBinding(ir::ClassDefinition *classDef) in InitializeClassBinding() argument 381 auto res = scope_->Find(classDef->Ident()->Name()); in InitializeClassBinding() 387 void VarBinder::InitializeClassIdent(ir::ClassDefinition *classDef) in InitializeClassIdent() argument 396 BuildClassDefinition(ir::ClassDefinition *classDef) BuildClassDefinition() argument [all...] |
H A D | ETSBinder.cpp | 334 void ETSBinder::BuildClassDefinition(ir::ClassDefinition *classDef) in BuildClassDefinition() argument 336 auto boundCtx = BoundContext(recordTable_, classDef); in BuildClassDefinition() 338 if (classDef->TypeParams() != nullptr) { in BuildClassDefinition() 339 auto scopeCtx = LexicalScope<LocalScope>::Enter(this, classDef->TypeParams()->Scope()); in BuildClassDefinition() 340 ResolveReferences(classDef->TypeParams()); in BuildClassDefinition() 341 BuildClassDefinitionImpl(classDef); in BuildClassDefinition() 345 BuildClassDefinitionImpl(classDef); in BuildClassDefinition() 359 void ETSBinder::BuildClassDefinitionImpl(ir::ClassDefinition *classDef) in BuildClassDefinitionImpl() argument 361 auto classCtx = LexicalScope<ClassScope>::Enter(this, classDef->Scope()->AsClassScope()); in BuildClassDefinitionImpl() 363 if (classDef in BuildClassDefinitionImpl() 515 const auto *const classDef = var->Declaration()->Node()->AsClassDeclaration()->Definition(); ImportAllForeignBindings() local 1108 ImportGlobalProperties(const ir::ClassDefinition *const classDef) ImportGlobalProperties() argument [all...] |
/arkcompiler/ets_frontend/ets2panda/compiler/lowering/ets/ |
H A D | localClassLowering.cpp | 83 public_lib::Context *ctx, ir::ClassDefinition *classDef, ArenaSet<varbinder::Variable *> const &capturedVars, in CreateClassPropertiesForCapturedVariables() 91 ASSERT(classDef->Scope()->Type() == varbinder::ScopeType::CLASS); in CreateClassPropertiesForCapturedVariables() 92 auto *property = CreateCapturedField(checker, var, reinterpret_cast<varbinder::ClassScope *>(classDef->Scope()), in CreateClassPropertiesForCapturedVariables() 93 idx, classDef->Start()); in CreateClassPropertiesForCapturedVariables() 102 classDef->AddProperties(std::move(properties)); in CreateClassPropertiesForCapturedVariables() 121 public_lib::Context *ctx, ir::ClassDefinition *classDef, ArenaSet<varbinder::Variable *> const &capturedVars, in ModifyConstructorParameters() 126 auto *classType = classDef->TsType()->AsETSObjectType(); in ModifyConstructorParameters() 180 ir::ClassDefinition *classDef, ArenaMap<varbinder::Variable *, varbinder::Variable *> &variableMap) in RemapReferencesFromCapturedVariablesToClassProperties() 182 auto *classType = classDef->TsType()->AsETSObjectType(); in RemapReferencesFromCapturedVariablesToClassProperties() 198 for (auto *it : classDef in RemapReferencesFromCapturedVariablesToClassProperties() 82 CreateClassPropertiesForCapturedVariables( public_lib::Context *ctx, ir::ClassDefinition *classDef, ArenaSet<varbinder::Variable *> const &capturedVars, ArenaMap<varbinder::Variable *, varbinder::Variable *> &variableMap, ArenaMap<varbinder::Variable *, ir::ClassProperty *> &propertyMap) CreateClassPropertiesForCapturedVariables() argument 120 ModifyConstructorParameters( public_lib::Context *ctx, ir::ClassDefinition *classDef, ArenaSet<varbinder::Variable *> const &capturedVars, ArenaMap<varbinder::Variable *, varbinder::Variable *> &variableMap, ArenaMap<varbinder::Variable *, varbinder::Variable *> ¶meterMap) ModifyConstructorParameters() argument 179 RemapReferencesFromCapturedVariablesToClassProperties( ir::ClassDefinition *classDef, ArenaMap<varbinder::Variable *, varbinder::Variable *> &variableMap) RemapReferencesFromCapturedVariablesToClassProperties() argument [all...] |
H A D | localClassLowering.h | 29 void CreateClassPropertiesForCapturedVariables(public_lib::Context *ctx, ir::ClassDefinition *classDef, 34 void ModifyConstructorParameters(public_lib::Context *ctx, ir::ClassDefinition *classDef, 40 ir::ClassDefinition *classDef, ArenaMap<varbinder::Variable *, varbinder::Variable *> &variableMap);
|
H A D | unionLowering.cpp | 57 auto *classDef = in GetUnionFieldClass() local 60 classDef->SetScope(classCtx.GetScope()); in GetUnionFieldClass() 61 auto *classDecl = checker->AllocNode<ir::ClassDeclaration>(classDef, checker->Allocator()); in GetUnionFieldClass() 62 classDef->Scope()->BindNode(classDecl); in GetUnionFieldClass() 63 classDef->SetTsType(checker->GlobalETSObjectType()); in GetUnionFieldClass() 65 var->SetScope(classDef->Scope()); in GetUnionFieldClass() 67 varbinder->AsETSBinder()->BuildClassDefinition(classDef); in GetUnionFieldClass() 68 return classDef; in GetUnionFieldClass()
|
H A D | ambientLowering.cpp | 91 ir::ClassDefinition *AmbientLowering::CreateIndexerMethodIfNeeded(ir::ClassDefinition *classDef, in CreateIndexerMethodIfNeeded() argument 94 auto &classBody = classDef->Body(); in CreateIndexerMethodIfNeeded() 114 return classDef; in CreateIndexerMethodIfNeeded()
|
/arkcompiler/ets_frontend/ets2panda/checker/ets/ |
H A D | etsWarningAnalyzer.cpp | 41 void ETSWarningAnalyzer::AnalyzeClassDefForFinalModifier(const ir::ClassDefinition *classDef) in AnalyzeClassDefForFinalModifier() argument 43 ASSERT(classDef != nullptr); in AnalyzeClassDefForFinalModifier() 45 if (program_ == nullptr || classDef->IsFinal() || classDef->IsAbstract() || classDef->IsStatic() || in AnalyzeClassDefForFinalModifier() 46 classDef->IsGlobal() || classDef->IsExported()) { in AnalyzeClassDefForFinalModifier() 53 classDef->Ident()->Name() == it->AsClassDeclaration()->Definition()->Ident()->Name()) { in AnalyzeClassDefForFinalModifier() 67 superClass->AsETSTypeReference()->Part()->Name()->AsIdentifier()->Name() == classDef->Ident()->Name()) { in AnalyzeClassDefForFinalModifier() 73 ETSThrowWarning("Suggest 'final' modifier for class", classDef in AnalyzeClassDefForFinalModifier() 76 AnalyzeClassMethodForFinalModifier(const ir::MethodDefinition *methodDef, const ir::ClassDefinition *classDef) AnalyzeClassMethodForFinalModifier() argument 180 const auto *classDef = node->AsClassDeclaration()->Definition(); ETSWarningsProhibitTopLevelStatements() local [all...] |
H A D | utilityTypeHandlers.cpp | 81 auto *const classDef = typeToBePartial->Variable()->Declaration()->Node()->AsClassDefinition(); in HandlePartialType() local 87 util::UString(classDef->Ident()->Name().Mutf8() + PARTIAL_CLASS_SUFFIX, Allocator()).View(); in HandlePartialType() 89 auto *const classDefProgram = classDef->GetTopStatement()->AsETSScript()->Program(); in HandlePartialType() 112 util::UString(classDef->InternalName().Mutf8() + PARTIAL_CLASS_SUFFIX, Allocator()).View()); in HandlePartialType() 130 return CreatePartialTypeClassDef(partialClassDef, classDef, typeToBePartial, recordTableToUse); in HandlePartialType() 195 const ir::ClassDefinition *const classDef) in CreatePartialClassDeclaration() 199 for (auto *const prop : classDef->Body()) { in CreatePartialClassDeclaration() 214 newClassDefinition->AddModifier(static_cast<const ir::AstNode *>(classDef)->Modifiers()); in CreatePartialClassDeclaration() 216 if (classDef->TypeParams() != nullptr) { in CreatePartialClassDeclaration() 218 for (auto *const classDefTypeParam : classDef in CreatePartialClassDeclaration() 194 CreatePartialClassDeclaration(ir::ClassDefinition *const newClassDefinition, const ir::ClassDefinition *const classDef) CreatePartialClassDeclaration() argument 277 auto *const classDef = CreateClassPrototype() local 356 CreatePartialTypeClassDef(ir::ClassDefinition *const partialClassDef, ir::ClassDefinition *const classDef, const Type *const typeToBePartial, varbinder::RecordTable *const recordTableToUse) CreatePartialTypeClassDef() argument [all...] |
H A D | object.cpp | 71 auto *classDef = type->GetDeclNode()->AsClassDefinition(); in ComputeSuperType() local 73 if (classDef->Super() == nullptr) { in ComputeSuperType() 81 TypeStackElement tse(this, type, {"Cyclic inheritance involving ", type->Name(), "."}, classDef->Ident()->Start()); in ComputeSuperType() 87 Type *superType = classDef->Super()->AsTypeNode()->GetType(this); in ComputeSuperType() 92 LogTypeError({"The super type of '", classDef->Ident()->Name(), "' class is not extensible."}, in ComputeSuperType() 93 classDef->Super()->Start()); in ComputeSuperType() 102 LogTypeError({"struct ", classDef->Ident()->Name(), " is not extensible."}, classDef->Super()->Start()); in ComputeSuperType() 106 LogTypeError("Cannot inherit with 'final' modifier.", classDef->Super()->Start()); in ComputeSuperType() 367 ETSObjectType *ETSChecker::BuildBasicClassProperties(ir::ClassDefinition *classDef) in BuildBasicClassProperties() argument 417 BuildAnonymousClassProperties(ir::ClassDefinition *classDef, ETSObjectType *superType) BuildAnonymousClassProperties() argument [all...] |
H A D | etsWarningAnalyzer.h | 58 void AnalyzeClassDefForFinalModifier(const ir::ClassDefinition *classDef); 59 void AnalyzeClassMethodForFinalModifier(const ir::MethodDefinition *methodDef, const ir::ClassDefinition *classDef);
|
/arkcompiler/ets_frontend/ets2panda/compiler/lowering/ets/topLevelStmts/ |
H A D | globalClassHandler.cpp | 60 auto classDef = node->AsClassDefinition(); in SetupGlobalClass() 61 if (auto staticBlock = CreateStaticBlock(classDef); staticBlock != nullptr) { in SetupGlobalClass() 62 classDef->Body().emplace_back(staticBlock); // NOTE(vpukhov): inserted to end for some reason in SetupGlobalClass() 63 staticBlock->SetParent(classDef); in SetupGlobalClass() 249 ir::ClassStaticBlock *GlobalClassHandler::CreateStaticBlock(ir::ClassDefinition *classDef) in CreateStaticBlock() argument 252 for (const auto *prop : classDef->Body()) { in CreateStaticBlock() 261 if (!hasStaticField && !classDef->IsGlobal()) { in CreateStaticBlock() 283 staticBlock->SetRange({classDef->Start(), classDef->Start()}); in CreateStaticBlock() 288 ir::ClassDefinition *classDef, in CollectProgramGlobalStatements() 287 CollectProgramGlobalStatements(parser::Program *program, ir::ClassDefinition *classDef, bool addInitializer) CollectProgramGlobalStatements() argument 303 auto *classDef = CreateGlobalClass() local [all...] |
H A D | globalClassHandler.h | 53 ir::ClassStaticBlock *CreateStaticBlock(ir::ClassDefinition *classDef); 71 ArenaVector<ir::Statement *> CollectProgramGlobalStatements(parser::Program *program, ir::ClassDefinition *classDef,
|
/arkcompiler/ets_frontend/es2panda/binder/ |
H A D | binder.cpp | 578 void Binder::BuildClassDefinition(ir::ClassDefinition *classDef) in BuildClassDefinition() argument 580 if (classDef->Parent()->IsClassDeclaration()) { in BuildClassDefinition() 581 util::StringView className = classDef->GetName(); in BuildClassDefinition() 591 auto scopeCtx = LexicalScope<ClassScope>::Enter(this, classDef->Scope()); in BuildClassDefinition() 593 if (classDef->TypeParams()) { in BuildClassDefinition() 594 ResolveReference(classDef, classDef->TypeParams()); in BuildClassDefinition() 597 if (classDef->Super()) { in BuildClassDefinition() 598 ResolveReference(classDef, classDef in BuildClassDefinition() 851 const auto *classDef = parent->AsClassDefinition(); ResolveReference() local 1162 auto classDef = parent->Parent()->AsClassDefinition(); ClassTdz() local [all...] |
/arkcompiler/ets_frontend/ets2panda/compiler/core/ |
H A D | ETSemitter.cpp | 432 std::vector<pandasm::AnnotationData> ETSEmitter::GenAnnotations(const ir::ClassDefinition *classDef) in GenAnnotations() argument 435 const ir::AstNode *parent = classDef->Parent(); in GenAnnotations() 439 annotations.emplace_back(GenAnnotationInnerClass(classDef, parent)); in GenAnnotations() 445 annotations.emplace_back(GenAnnotationInnerClass(classDef, parent)); in GenAnnotations() 451 auto classIdent = classDef->Ident()->Name().Mutf8(); in GenAnnotations() 461 static uint32_t GetAccessFlags(const ir::ClassDefinition *classDef) in GetAccessFlags() argument 464 if (classDef->IsAbstract()) { in GetAccessFlags() 466 } else if (classDef->IsFinal()) { in GetAccessFlags() 470 if (classDef->IsStatic()) { in GetAccessFlags() 477 void ETSEmitter::GenClassRecord(const ir::ClassDefinition *classDef, boo argument 532 GenAnnotationSignature(const ir::ClassDefinition *classDef) GenAnnotationSignature() argument 612 GenAnnotationInnerClass(const ir::ClassDefinition *classDef, const ir::AstNode *parent) GenAnnotationInnerClass() argument 639 const ir::ClassDefinition *classDef = ownerNode->AsClassDefinition(); FindAsyncImpl() local [all...] |
H A D | ETSfunction.cpp | 105 const auto *classDef = etsg->ContainingObjectType()->GetDeclNode()->AsClassDefinition(); in CompileAsStaticBlock() local 118 bool const compileInitializer = classDef->IsGlobal() ? checkInitializer(classDef->Body()) : true; in CompileAsStaticBlock() 120 for (const auto *prop : classDef->Body()) { in CompileAsStaticBlock() 140 const auto *classDef = etsg->ContainingObjectType()->GetDeclNode()->AsClassDefinition(); in CompileAsConstructor() local 142 for (const auto *prop : classDef->Body()) { in CompileAsConstructor()
|
H A D | ETSemitter.h | 82 std::vector<pandasm::AnnotationData> GenAnnotations(const ir::ClassDefinition *classDef); 83 void GenClassRecord(const ir::ClassDefinition *classDef, bool external); 104 pandasm::AnnotationData GenAnnotationSignature(const ir::ClassDefinition *classDef); 107 pandasm::AnnotationData GenAnnotationInnerClass(const ir::ClassDefinition *classDef, const ir::AstNode *parent);
|
H A D | function.cpp | 130 auto *classDef = util::Helpers::GetContainingClassDefinition(node); in LoadClassContexts() local 133 auto res = pg->Scope()->Find(classDef->PrivateId()); in LoadClassContexts() 136 if (classDef->HasMatchingPrivateKey(name)) { in LoadClassContexts() 142 classDef = util::Helpers::GetContainingClassDefinition(classDef->Parent()); in LoadClassContexts() 143 } while (classDef != nullptr); in LoadClassContexts()
|
/arkcompiler/ets_frontend/ets2panda/compiler/lowering/scopesInit/ |
H A D | scopesInitPhase.cpp | 133 void ScopesInitPhase::VisitClassDefinition(ir::ClassDefinition *classDef) in VisitClassDefinition() argument 135 auto classCtx = LexicalScopeCreateOrEnter<varbinder::LocalScope>(VarBinder(), classDef); in VisitClassDefinition() 136 AddOrGetDecl<varbinder::ConstDecl>(VarBinder(), classDef->PrivateId(), classDef, classDef->Start(), in VisitClassDefinition() local 137 classDef->PrivateId()); in VisitClassDefinition() 138 BindClassName(classDef); in VisitClassDefinition() 141 BindScopeNode(classScope, classDef); in VisitClassDefinition() 142 Iterate(classDef); in VisitClassDefinition() 374 void ScopesInitPhase::IterateNoTParams(ir::ClassDefinition *classDef) in IterateNoTParams() argument 399 BindClassName(ir::ClassDefinition *classDef) BindClassName() argument 420 BindClassDefinition(ir::ClassDefinition *classDef) BindClassDefinition() argument 428 AddOrGetDecl<varbinder::ClassDecl>(VarBinder(), className, classDef, locStart, className, classDef); BindClassDefinition() local 430 AddOrGetDecl<varbinder::LetDecl>(VarBinder(), className, classDef, locStart, className, classDef); BindClassDefinition() local 622 VisitClassDefinition(ir::ClassDefinition *classDef) VisitClassDefinition() argument 629 AddOrGetDecl<varbinder::ConstDecl>(VarBinder(), classDef->PrivateId(), classDef, classDef->Start(), VisitClassDefinition() local 997 const auto classDef = newClassExpr->ClassDefinition(); VisitETSNewClassInstanceExpression() local 1098 VisitClassDefinition(ir::ClassDefinition *classDef) VisitClassDefinition() argument [all...] |
H A D | scopesInitPhase.h | 86 void IterateNoTParams(ir::ClassDefinition *classDef); 96 void VisitClassDefinition(ir::ClassDefinition *classDef) override; 172 virtual varbinder::Decl *BindClassName(ir::ClassDefinition *classDef); 185 void BindClassDefinition(ir::ClassDefinition *classDef); 229 void VisitClassDefinition(ir::ClassDefinition *classDef) override; 357 void VisitClassDefinition(ir::ClassDefinition *classDef) override;
|
/arkcompiler/ets_frontend/ets2panda/util/ast-builders/ |
H A D | etsNewClassInstanceExpressionBuilder.h | 38 ETSNewClassInstanceExpressionBuilder &SetClassDefinition(ir::ClassDefinition *classDef) in SetClassDefinition() argument 40 classDef_ = classDef; in SetClassDefinition()
|
/arkcompiler/ets_frontend/es2panda/compiler/core/ |
H A D | function.cpp | 175 const auto *classDef = decl->Parent()->Parent()->Parent()->AsClassDefinition(); in CompileClassInitializer() local 176 const auto &statements = classDef->Body(); in CompileClassInitializer() 184 if (!isStatic && classDef->HasInstancePrivateMethod()) { in CompileClassInitializer() 186 pg->LoadConst(classDef, Constant::JS_UNDEFINED); in CompileClassInitializer() 187 pg->DefineClassPrivateField(classDef, result.lexLevel, result.result.slot, thisReg); in CompileClassInitializer() 223 const auto *classDef = util::Helpers::GetClassDefiniton(decl); in CompileFunction() local 224 if (classDef->Super() == nullptr && classDef->NeedInstanceInitializer()) { in CompileFunction() 231 auto [level, slot] = pg->Scope()->Find(classDef->InstanceInitializer()->Key()); in CompileFunction()
|
/arkcompiler/ets_frontend/ets2panda/evaluate/debugInfoDeserialization/ |
H A D | classBuilder.cpp | 55 auto *classDef = checker_->AllocNode<ir::ClassDefinition>( in Build() local 61 classDef->AddProperties(std::move(classBody)); in Build() 64 auto *classDecl = checker_->AllocNode<ir::ClassDeclaration>(classDef, allocator); in Build()
|
/arkcompiler/ets_frontend/ets2panda/declgen_ets2ts/ |
H A D | declgenEts2Ts.cpp | 522 const auto *classDef = classDecl->Definition(); in GenClassDeclaration() local 523 std::string classDescriptor = "L" + classDef->InternalName().Mutf8() + ";"; in GenClassDeclaration() 526 const auto className = classDef->Ident()->Name().Mutf8(); in GenClassDeclaration() 527 state_.inGlobalClass = classDef->IsGlobal(); in GenClassDeclaration() 538 GenTypeParameters(classDef->TypeParams()); in GenClassDeclaration() 540 const auto *super = classDef->Super(); in GenClassDeclaration() 547 const auto &interfaces = classDef->TsType()->AsETSObjectType()->Interfaces(); in GenClassDeclaration() 550 ASSERT(classDef->TsType()->IsETSObjectType()); in GenClassDeclaration() 558 for (const auto *prop : classDef->Body()) { in GenClassDeclaration() 574 ExportIfNeeded(classDef in GenClassDeclaration() [all...] |
/arkcompiler/ets_frontend/es2panda/compiler/base/ |
H A D | lexenv.cpp | 54 auto classDef = decl->Node()->AsClassDefinition(); in ExpandLoadLexVar() local 55 if (classDef == util::Helpers::GetContainingSendableClass(node) && in ExpandLoadLexVar() 56 !util::Helpers::IsChildScope(classDef->StaticInitializer()->Function()->Scope(), pg->TopScope())) { in ExpandLoadLexVar()
|