• Home
  • Raw
  • Download

Lines Matching +full:allocator +full:-

7  * http://www.apache.org/licenses/LICENSE-2.0
32 …return param->IsETSParameterExpression() && param->AsETSParameterExpression()->IsRestParameter() && in MethodDefinitionHasRestTuple()
33 param->AsETSParameterExpression()->TypeAnnotation() && in MethodDefinitionHasRestTuple()
34 param->AsETSParameterExpression()->TypeAnnotation()->IsETSTuple(); in MethodDefinitionHasRestTuple()
37 …bool isScriptFunction = def->IsMethodDefinition() && (def->AsMethodDefinition()->Value() != nullpt… in MethodDefinitionHasRestTuple()
38 … def->AsMethodDefinition()->Value()->AsFunctionExpression()->Function()->IsScriptFunction(); in MethodDefinitionHasRestTuple()
41 …def->AsMethodDefinition()->Value()->AsFunctionExpression()->Function()->AsScriptFunction()->Params… in MethodDefinitionHasRestTuple()
49 bool isClassDefinition = node->IsClassDefinition(); in IsClassDefinitionWithTupleRest()
51 auto definitions = node->AsClassDefinition()->Body(); in IsClassDefinitionWithTupleRest()
62 auto *allocator = ctx->allocator; in CreateMemberOrThisExpression() local
64 if (definition->IsConstructor()) { in CreateMemberOrThisExpression()
65 return ctx->AllocNode<ir::ThisExpression>(); in CreateMemberOrThisExpression()
68 auto scriptFunc = funcExpr->AsFunctionExpression()->Function()->AsScriptFunction(); in CreateMemberOrThisExpression()
72 if (definition->AsMethodDefinition()->IsStatic()) { in CreateMemberOrThisExpression()
75 …ident = parentClass->AsClassDefinition()->Ident()->AsIdentifier()->Clone(allocator, parentClass->P… in CreateMemberOrThisExpression()
77 ident = ctx->AllocNode<ir::ThisExpression>(); in CreateMemberOrThisExpression()
80 auto *newPropertyId = scriptFunc->Id()->Clone(allocator, nullptr); in CreateMemberOrThisExpression()
81 auto *memberExpr = ctx->AllocNode<ir::MemberExpression>(ident, newPropertyId, in CreateMemberOrThisExpression()
90 auto const allocator = ctx->allocator; in CreateTypeParameterInstantiation() local
92 if (paramDeclaration == nullptr || paramDeclaration->Params().empty()) { in CreateTypeParameterInstantiation()
95 ArenaVector<ir::TypeNode *> selfParams(allocator->Adapter()); in CreateTypeParameterInstantiation()
98 for (const auto &param : paramDeclaration->Params()) { in CreateTypeParameterInstantiation()
100 allocator, param->AsTSTypeParameter()->Name()->Name(), allocator); in CreateTypeParameterInstantiation()
102 …referencePart = util::NodeAllocator::ForceSetParent<ir::ETSTypeReferencePart>(allocator, identRef,… in CreateTypeParameterInstantiation()
103 … nullptr, allocator); in CreateTypeParameterInstantiation()
106 … util::NodeAllocator::ForceSetParent<ir::ETSTypeReference>(allocator, referencePart, allocator); in CreateTypeParameterInstantiation()
111 …return util::NodeAllocator::ForceSetParent<ir::TSTypeParameterInstantiation>(allocator, std::move(… in CreateTypeParameterInstantiation()
117 auto *allocator = ctx->allocator; in CreateNewCallExpression() local
119 ArenaVector<ir::Expression *> callArguments({}, allocator->Adapter()); in CreateNewCallExpression()
120 for (auto arg : funcExpr->AsFunctionExpression()->Function()->AsScriptFunction()->Params()) { in CreateNewCallExpression()
121 if (!arg->AsETSParameterExpression()->IsRestParameter()) { in CreateNewCallExpression()
122 auto *id = arg->AsETSParameterExpression()->Ident()->Clone(allocator, nullptr); in CreateNewCallExpression()
123 id->SetTsTypeAnnotation(nullptr); in CreateNewCallExpression()
127 … ctx->AllocNode<ir::SpreadElement>(ir::AstNodeType::SPREAD_ELEMENT, allocator, asExpression); in CreateNewCallExpression()
136 if (funcExpr->AsFunctionExpression()->Function()->AsScriptFunction()->TypeParams() != nullptr) { in CreateNewCallExpression()
137 auto typeParams = funcExpr->AsFunctionExpression() in CreateNewCallExpression()
138 ->Function() in CreateNewCallExpression()
139 ->AsScriptFunction() in CreateNewCallExpression()
140 ->TypeParams() in CreateNewCallExpression()
141 ->AsTSTypeParameterDeclaration(); in CreateNewCallExpression()
145 …auto *newCallExpr = ctx->AllocNode<ir::CallExpression>(memberExpr, std::move(callArguments), typeP… in CreateNewCallExpression()
147 for (auto *arg : newCallExpr->Arguments()) { in CreateNewCallExpression()
148 arg->SetParent(newCallExpr); in CreateNewCallExpression()
156 auto *allocator = ctx->allocator; in CreateFunctionRestParams() local
158 ArenaVector<ir::Expression *> params {allocator->Adapter()}; in CreateFunctionRestParams()
159 for (auto param : funcExpr->AsFunctionExpression()->Function()->AsScriptFunction()->Params()) { in CreateFunctionRestParams()
160 if (param->AsETSParameterExpression()->IsRestParameter()) { in CreateFunctionRestParams()
162 …param->AsETSParameterExpression()->TypeAnnotation()->AsETSTuple()->GetTupleTypeAnnotationsList()) { in CreateFunctionRestParams()
163 ir::Identifier *id = Gensym(allocator); in CreateFunctionRestParams()
164 auto *newParam = ctx->AllocNode<ir::ETSParameterExpression>(id, false, allocator); in CreateFunctionRestParams()
165 auto newAnnotation = tupleTypeAnno->Clone(allocator, id); in CreateFunctionRestParams()
166 id->SetTsTypeAnnotation(newAnnotation); in CreateFunctionRestParams()
176 auto *allocator = ctx->allocator; in CreateFunctionNormalParams() local
178 ArenaVector<ir::Expression *> params {allocator->Adapter()}; in CreateFunctionNormalParams()
179 for (auto param : funcExpr->AsFunctionExpression()->Function()->AsScriptFunction()->Params()) { in CreateFunctionNormalParams()
180 if (!param->AsETSParameterExpression()->IsRestParameter()) { in CreateFunctionNormalParams()
181 auto newParam = param->AsETSParameterExpression()->Clone(allocator, nullptr); in CreateFunctionNormalParams()
192 auto *allocator = ctx->allocator; in MergeParams() local
194 ArenaVector<ir::Expression *> params {allocator->Adapter()}; in MergeParams()
206 auto *allocator = ctx->allocator; in CreateArrayExpression() local
208 ArenaVector<ir::Expression *> elementsInit(ctx->Allocator()->Adapter()); in CreateArrayExpression()
209 ArenaVector<ir::Expression *> elements(ctx->Allocator()->Adapter()); in CreateArrayExpression()
211 … auto *arrayExpr = ctx->AllocNode<ir::ArrayExpression>(std::move(elementsInit), ctx->Allocator()); in CreateArrayExpression()
214 …auto &tupleElementName = tupleElementAnno->AsETSParameterExpression()->Ident()->AsIdentifier()->Na… in CreateArrayExpression()
215 ir::Expression *arg = ctx->AllocNode<ir::Identifier>(tupleElementName, allocator); in CreateArrayExpression()
216 arg->SetParent(arrayExpr); in CreateArrayExpression()
219 arrayExpr->SetElements(std::move(elements)); in CreateArrayExpression()
226 auto const allocator = ctx->allocator; in CreateNewParameterDeclaration() local
227 if (paramDeclaration == nullptr || paramDeclaration->Params().empty()) { in CreateNewParameterDeclaration()
231 ArenaVector<ir::TSTypeParameter *> typeParams(allocator->Adapter()); in CreateNewParameterDeclaration()
233 auto parentParams = paramDeclaration->Params(); in CreateNewParameterDeclaration()
234 …std::for_each(parentParams.begin(), parentParams.end(), [&typeParams, allocator](ir::TSTypeParamet… in CreateNewParameterDeclaration()
235 ir::Identifier *ident = par->Name()->Clone(allocator, nullptr)->AsIdentifier(); in CreateNewParameterDeclaration()
237 …par->Constraint() != nullptr ? par->Constraint()->Clone(allocator, nullptr)->AsTypeNode() : nullpt… in CreateNewParameterDeclaration()
239 …par->DefaultType() != nullptr ? par->DefaultType()->Clone(allocator, nullptr)->AsTypeNode() : null… in CreateNewParameterDeclaration()
240 …auto *typeParam = util::NodeAllocator::ForceSetParent<ir::TSTypeParameter>(allocator, ident, const… in CreateNewParameterDeclaration()
241 … defaultType, allocator); in CreateNewParameterDeclaration()
245 …return util::NodeAllocator::ForceSetParent<ir::TSTypeParameterDeclaration>(allocator, std::move(ty… in CreateNewParameterDeclaration()
252 auto *allocator = ctx->allocator; in CreateNewScriptFunction() local
254 ArenaVector<ir::Statement *> statements(allocator->Adapter()); in CreateNewScriptFunction()
255 auto *body = ctx->AllocNode<ir::BlockStatement>(allocator, std::move(statements)); in CreateNewScriptFunction()
257 if (scriptFunc->ReturnTypeAnnotation() != nullptr) { in CreateNewScriptFunction()
258 newReturnTypeAnno = scriptFunc->ReturnTypeAnnotation()->Clone(allocator, nullptr); in CreateNewScriptFunction()
260 auto *newParamDeclaration = CreateNewParameterDeclaration(ctx, scriptFunc->TypeParams()); in CreateNewScriptFunction()
262 auto *newScriptFunc = ctx->AllocNode<ir::ScriptFunction>( in CreateNewScriptFunction()
263 allocator, ir::ScriptFunction::ScriptFunctionData { in CreateNewScriptFunction()
265 scriptFunc->Flags()}); in CreateNewScriptFunction()
267 newScriptFunc->AddModifier(scriptFunc->AsScriptFunction()->Modifiers()); in CreateNewScriptFunction()
269 ArenaVector<ir::AnnotationUsage *> annotationUsages {allocator->Adapter()}; in CreateNewScriptFunction()
270 for (auto *annotationUsage : scriptFunc->Annotations()) { in CreateNewScriptFunction()
271 … annotationUsages.push_back(annotationUsage->Clone(allocator, newScriptFunc)->AsAnnotationUsage()); in CreateNewScriptFunction()
274 newScriptFunc->SetAnnotations(std::move(annotationUsages)); in CreateNewScriptFunction()
276 ir::Identifier *newScriptFuncId = scriptFunc->Id()->Clone(allocator, newScriptFunc); in CreateNewScriptFunction()
277 newScriptFunc->SetIdent(newScriptFuncId); in CreateNewScriptFunction()
285 auto *allocator = ctx->allocator; in CreateNewVariableDeclaration() local
287 util::StringView tupleIdentName = restParam->Ident()->Name(); in CreateNewVariableDeclaration()
288 auto *newId = ctx->AllocNode<ir::Identifier>(tupleIdentName, allocator); in CreateNewVariableDeclaration()
290 ir::TypeNode *typeAnnotation = restParam->TypeAnnotation()->Clone(allocator, newId); in CreateNewVariableDeclaration()
291 newId->SetTsTypeAnnotation(typeAnnotation); in CreateNewVariableDeclaration()
292 newTuple->SetParent(typeAnnotation); in CreateNewVariableDeclaration()
294 …auto *const declarator = ctx->AllocNode<ir::VariableDeclarator>(ir::VariableDeclaratorFlag::LET, n… in CreateNewVariableDeclaration()
295 ArenaVector<ir::VariableDeclarator *> declarators(ctx->Allocator()->Adapter()); in CreateNewVariableDeclaration()
298 auto *const declaration = ctx->AllocNode<ir::VariableDeclaration>( in CreateNewVariableDeclaration()
299 … ir::VariableDeclaration::VariableDeclarationKind::LET, ctx->Allocator(), std::move(declarators)); in CreateNewVariableDeclaration()
306 ArenaVector<ir::Statement *> statements(ctx->Allocator()->Adapter()); in CreateReturnOrExpressionStatement()
308 if (scriptFunc->ReturnTypeAnnotation() != nullptr) { in CreateReturnOrExpressionStatement()
309 auto returnStatement = ctx->AllocNode<ir::ReturnStatement>(callExpr); in CreateReturnOrExpressionStatement()
312 auto expressionStatement = ctx->AllocNode<ir::ExpressionStatement>(callExpr); in CreateReturnOrExpressionStatement()
314 callExpr->SetParent(expressionStatement); in CreateReturnOrExpressionStatement()
322 auto *allocator = ctx->allocator; in CreateNewMethodDefinition() local
324 …auto *methodKey = definition->AsMethodDefinition()->Key()->AsIdentifier()->Clone(allocator, nullpt… in CreateNewMethodDefinition()
326 …ctx->AllocNode<ir::MethodDefinition>(definition->AsMethodDefinition()->Kind(), methodKey, function, in CreateNewMethodDefinition()
327 … definition->AsMethodDefinition()->Modifiers(), allocator, false); in CreateNewMethodDefinition()
329 methodDef->SetParent(definition->Parent()); in CreateNewMethodDefinition()
336 auto *allocator = ctx->allocator; in CreateNewMethod() local
338 for (auto definition : node->AsClassDefinition()->Body()) { in CreateNewMethod()
339 …if (definition->IsMethodDefinition() && MethodDefinitionHasRestTuple(definition->AsMethodDefinitio… in CreateNewMethod()
340 auto funcExpr = definition->AsMethodDefinition()->Value(); in CreateNewMethod()
341 ir::ETSParameterExpression *restParam = funcExpr->AsFunctionExpression() in CreateNewMethod()
342 ->Function() in CreateNewMethod()
343 ->AsScriptFunction() in CreateNewMethod()
344 ->Params() in CreateNewMethod()
346 ->AsETSParameterExpression(); in CreateNewMethod()
347 … ir::ScriptFunction *scriptFunc = funcExpr->AsFunctionExpression()->Function()->AsScriptFunction(); in CreateNewMethod()
357 … ir::TypeNode *newTypeAnnotation = restParam->TypeAnnotation()->Clone(allocator, nullptr); in CreateNewMethod()
359 … auto *asExpression = ctx->AllocNode<ir::TSAsExpression>(newArrayExpr, newTypeAnnotation, false); in CreateNewMethod()
366 …newScriptFunc->AsScriptFunction()->Body()->AsBlockStatement()->SetStatements(std::move(statements)… in CreateNewMethod()
369 auto *function = ctx->AllocNode<ir::FunctionExpression>(newScriptFunc); in CreateNewMethod()
370 function->SetParent(funcExpr->Parent()); in CreateNewMethod()
373 …auto *const methodDef = CreateNewMethodDefinition(ctx, definition->AsMethodDefinition(), function); in CreateNewMethod()
375 node->AsClassDefinition()->Body().push_back(methodDef); in CreateNewMethod()
382 program->Ast()->TransformChildrenRecursively( in PerformForModule()
383 [ctx](ir::AstNode *const node) -> AstNodePtr { in PerformForModule()