Lines Matching full:auto
33 …auto *const paramIdent = checker->AllocNode<ir::Identifier>(name, typeAnnotation, checker->Allocat… in MakeFunctionParam()
34 auto *const param = checker->AllocNode<ir::ETSParameterExpression>(paramIdent, nullptr); in MakeFunctionParam()
42 …auto *const refIdent = checker->AllocNode<ir::Identifier>(paramExpr->Ident()->Name(), checker->All… in MakeParamRefIdent()
49 auto *const ident = checker->AllocNode<ir::Identifier>(name, checker->Allocator()); in MakeTypeReference()
50 auto *const referencePart = checker->AllocNode<ir::ETSTypeReferencePart>(ident); in MakeTypeReference()
57 auto *const functionExpr = checker->AllocNode<ir::FunctionExpression>(function); in MakeMethodDef()
58 auto *const identClone = ident->Clone(checker->Allocator(), nullptr); in MakeMethodDef()
60 auto *const methodDef = checker->AllocNode<ir::MethodDefinition>( in MakeMethodDef()
80 auto *const function = checker_->AllocNode<ir::ScriptFunction>( in MakeFunction()
107 for (const auto *const member : enumDecl->Members()) { in MakeArray()
110 …auto *const arrayExpr = checker_->AllocNode<ir::ArrayExpression>(std::move(elements), Allocator()); in MakeArray()
111 auto *const arrayIdent = checker_->AllocNode<ir::Identifier>(name, Allocator()); in MakeArray()
112 auto *const arrayClassProp = checker_->AllocNode<ir::ClassProperty>( in MakeArray()
124 …auto *const stringTypeAnnotation = MakeTypeReference(checker_, "String"); // NOTE String -> Built… in CreateEnumNamesArray()
125 auto *const arrayTypeAnnotation = checker_->AllocNode<ir::TSArrayType>(stringTypeAnnotation); in CreateEnumNamesArray()
130 auto *const enumNameStringLiteral = in CreateEnumNamesArray()
139 …auto *ident = Allocator()->New<ir::Identifier>(GetEnumClassName(checker_, enumDecl).View(), Alloca… in CreateClass()
142 auto *classDef = checker_->AllocNode<ir::ClassDefinition>( in CreateClass()
148 auto *classDecl = checker_->AllocNode<ir::ClassDeclaration>(classDef, Allocator()); in CreateClass()
173 auto *id = checker_->AllocNode<ir::Identifier>(compiler::Signatures::CCTOR, Allocator()); in CreateCCtorForEnumClass()
177 auto *body = checker_->AllocNode<ir::BlockStatement>(Allocator(), std::move(statements)); in CreateCCtorForEnumClass()
178 auto *func = checker_->AllocNode<ir::ScriptFunction>( in CreateCCtorForEnumClass()
187 auto *funcExpr = checker_->AllocNode<ir::FunctionExpression>(func); in CreateCCtorForEnumClass()
189 auto *const identClone = id->Clone(Allocator(), nullptr); in CreateCCtorForEnumClass()
190 auto *const methodDef = checker_->AllocNode<ir::MethodDefinition>( in CreateCCtorForEnumClass()
199 auto *const fieldIdent = Allocator()->New<ir::Identifier>("ordinal", Allocator()); in CreateOrdinalField()
200 auto *const intTypeAnnotation = Allocator()->New<ir::ETSPrimitiveType>(ir::PrimitiveType::INT); in CreateOrdinalField()
201 auto *field = checker_->AllocNode<ir::ClassProperty>(fieldIdent, nullptr, intTypeAnnotation, in CreateOrdinalField()
213 … auto *const intTypeAnnotation = checker_->AllocNode<ir::ETSPrimitiveType>(ir::PrimitiveType::INT); in CreateFunctionForCtorOfEnumClass()
214 auto *const inputOrdinalParam = MakeFunctionParam(checker_, "ordinal", intTypeAnnotation); in CreateFunctionForCtorOfEnumClass()
217 auto *id = checker_->AllocNode<ir::Identifier>("constructor", Allocator()); in CreateFunctionForCtorOfEnumClass()
220 auto *body = checker_->AllocNode<ir::BlockStatement>(Allocator(), std::move(statements)); in CreateFunctionForCtorOfEnumClass()
222 auto scriptFlags = ir::ScriptFunctionFlags::CONSTRUCTOR; in CreateFunctionForCtorOfEnumClass()
225 auto *func = checker_->AllocNode<ir::ScriptFunction>( in CreateFunctionForCtorOfEnumClass()
234 auto *thisExpr = Allocator()->New<ir::ThisExpression>(); in CreateFunctionForCtorOfEnumClass()
235 auto *fieldIdentifier = Allocator()->New<ir::Identifier>("ordinal", Allocator()); in CreateFunctionForCtorOfEnumClass()
236 auto *leftHandSide = checker_->AllocNode<ir::MemberExpression>( in CreateFunctionForCtorOfEnumClass()
238 auto *rightHandSide = checker_->AllocNode<ir::Identifier>("ordinal", Allocator()); in CreateFunctionForCtorOfEnumClass()
240 auto *initializer = checker_->AllocNode<ir::AssignmentExpression>(leftHandSide, rightHandSide, in CreateFunctionForCtorOfEnumClass()
242 auto initStatement = checker_->AllocNode<ir::ExpressionStatement>(initializer); in CreateFunctionForCtorOfEnumClass()
251 auto *func = CreateFunctionForCtorOfEnumClass(enumClass); in CreateCtorForEnumClass()
252 auto *funcExpr = checker_->AllocNode<ir::FunctionExpression>(func); in CreateCtorForEnumClass()
254 auto *const identClone = func->Id()->Clone(Allocator(), nullptr); in CreateCtorForEnumClass()
255 auto *const methodDef = checker_->AllocNode<ir::MethodDefinition>( in CreateCtorForEnumClass()
263 auto *const enumClassDecl = CreateClass(enumDecl); in CreateEnumIntClassFromEnumDeclaration()
264 auto *const enumClass = enumClassDecl->Definition(); in CreateEnumIntClassFromEnumDeclaration()
266 auto *const namesArrayIdent = CreateEnumNamesArray(enumDecl, enumClass); in CreateEnumIntClassFromEnumDeclaration()
267 auto *const valuesArrayIdent = CreateEnumValuesArray(enumDecl, enumClass); in CreateEnumIntClassFromEnumDeclaration()
268 auto *const stringValuesArrayIdent = CreateEnumStringValuesArray(enumDecl, enumClass); in CreateEnumIntClassFromEnumDeclaration()
269 auto *const itemsArrayIdent = CreateEnumItemsArray(enumDecl, enumClass); in CreateEnumIntClassFromEnumDeclaration()
270 auto *const boxedItemsArrayIdent = CreateBoxedEnumItemsArray(enumDecl, enumClass); in CreateEnumIntClassFromEnumDeclaration()
291 …auto localCtx = varbinder::LexicalScope<varbinder::Scope>::Enter(varbinder_, NearestScope(enumDecl… in CreateEnumIntClassFromEnumDeclaration()
294 …auto localCtx = varbinder::LexicalScope<varbinder::Scope>::Enter(varbinder_, program_->GlobalScope… in CreateEnumIntClassFromEnumDeclaration()
296 auto *ident = enumClass->Ident(); in CreateEnumIntClassFromEnumDeclaration()
297 …auto *var = varbinder_->GetScope()->FindLocal(ident->Name(), varbinder::ResolveBindingOptions::BIN… in CreateEnumIntClassFromEnumDeclaration()
304 auto *const enumClassDecl = CreateClass(enumDecl); in CreateEnumStringClassFromEnumDeclaration()
305 auto *const enumClass = enumClassDecl->Definition(); in CreateEnumStringClassFromEnumDeclaration()
307 auto *const namesArrayIdent = CreateEnumNamesArray(enumDecl, enumClass); in CreateEnumStringClassFromEnumDeclaration()
308 auto *const stringValuesArrayIdent = CreateEnumStringValuesArray(enumDecl, enumClass); in CreateEnumStringClassFromEnumDeclaration()
309 auto *const itemsArrayIdent = CreateEnumItemsArray(enumDecl, enumClass); in CreateEnumStringClassFromEnumDeclaration()
310 auto *const boxedItemsArrayIdent = CreateBoxedEnumItemsArray(enumDecl, enumClass); in CreateEnumStringClassFromEnumDeclaration()
329 …auto localCtx = varbinder::LexicalScope<varbinder::Scope>::Enter(varbinder_, NearestScope(enumDecl… in CreateEnumStringClassFromEnumDeclaration()
332 …auto localCtx = varbinder::LexicalScope<varbinder::Scope>::Enter(varbinder_, program_->GlobalScope… in CreateEnumStringClassFromEnumDeclaration()
334 auto *ident = enumClass->Ident(); in CreateEnumStringClassFromEnumDeclaration()
335 …auto *var = varbinder_->GetScope()->FindLocal(ident->Name(), varbinder::ResolveBindingOptions::BIN… in CreateEnumStringClassFromEnumDeclaration()
347 for (auto &[_, extPrograms] : program->ExternalSources()) { in Perform()
349 for (auto *extProg : extPrograms) { in Perform()
359 auto *enumDecl = ast->AsTSEnumDeclaration(); in Perform()
361 if (auto *const itemInit = enumDecl->Members().front()->AsTSEnumMember()->Init(); in Perform()
378 auto *const intType = checker_->AllocNode<ir::ETSPrimitiveType>(ir::PrimitiveType::INT); in CreateEnumValuesArray()
379 auto *const arrayTypeAnnotation = checker_->AllocNode<ir::TSArrayType>(intType); in CreateEnumValuesArray()
383 auto *const enumValueLiteral = checker_->AllocNode<ir::NumberLiteral>( in CreateEnumValuesArray()
397 …auto *const stringTypeAnnotation = MakeTypeReference(checker_, "String"); // NOTE String -> Built… in CreateEnumStringValuesArray()
398 auto *const arrayTypeAnnotation = checker_->AllocNode<ir::TSArrayType>(stringTypeAnnotation); in CreateEnumStringValuesArray()
403 auto *const init = member->AsTSEnumMember()->Init(); in CreateEnumStringValuesArray()
409 auto str = std::to_string( in CreateEnumStringValuesArray()
414 … auto *const enumValueStringLiteral = checker_->AllocNode<ir::StringLiteral>(stringValue); in CreateEnumStringValuesArray()
423 auto *const enumTypeAnnotation = MakeTypeReference(checker_, enumDecl->Key()->Name()); in CreateEnumItemsArray()
424 auto *const arrayTypeAnnotation = checker_->AllocNode<ir::TSArrayType>(enumTypeAnnotation); in CreateEnumItemsArray()
428 auto *const enumTypeIdent = in CreateEnumItemsArray()
431 auto *const enumMemberIdent = checker_->AllocNode<ir::Identifier>( in CreateEnumItemsArray()
433 auto *const enumMemberExpr = checker_->AllocNode<ir::MemberExpression>( in CreateEnumItemsArray()
443 auto boxedClassName = GetEnumClassName(checker_, enumDecl).View(); in CreateBoxedEnumItemsArray()
444 auto *const enumTypeAnnotation = MakeTypeReference(checker_, boxedClassName); in CreateBoxedEnumItemsArray()
445 auto *const arrayTypeAnnotation = checker_->AllocNode<ir::TSArrayType>(enumTypeAnnotation); in CreateBoxedEnumItemsArray()
449 auto *const enumTypeIdent = in CreateBoxedEnumItemsArray()
452 auto *const enumMemberIdent = checker_->AllocNode<ir::Identifier>( in CreateBoxedEnumItemsArray()
454 auto *const enumMemberExpr = checker_->AllocNode<ir::MemberExpression>( in CreateBoxedEnumItemsArray()
457 … auto intType = checker_->AllocNode<ir::ETSPrimitiveType>(ir::PrimitiveType::INT); in CreateBoxedEnumItemsArray()
458 … auto asExpression = checker_->AllocNode<ir::TSAsExpression>(enumMemberExpr, intType, false); in CreateBoxedEnumItemsArray()
463 auto boxedTypeRef = MakeTypeReference(checker_, boxedClassName); in CreateBoxedEnumItemsArray()
465 … auto *const newExpression = checker_->AllocNode<ir::ETSNewClassInstanceExpression>( in CreateBoxedEnumItemsArray()
478 … auto *const enumClassIdentifierClone = enumClassIdentifier->Clone(checker->Allocator(), nullptr); in CreateStaticAccessMemberExpression()
479 auto *const arrayIdentifierClone = arrayIdentifier->Clone(checker->Allocator(), nullptr); in CreateStaticAccessMemberExpression()
489 auto *const lengthIdent = checker->AllocNode<ir::Identifier>("length", checker->Allocator()); in CreateIfTest()
490 auto *const propertyAccessExpr = in CreateIfTest()
492 auto *const valuesArrayLengthExpr = checker->AllocNode<ir::MemberExpression>( in CreateIfTest()
494 auto *const paramRefIdent = MakeParamRefIdent(checker, parameter); in CreateIfTest()
495 … auto *const expr = checker->AllocNode<ir::BinaryExpression>(paramRefIdent, valuesArrayLengthExpr, in CreateIfTest()
504 auto *const paramRefIdent = MakeParamRefIdent(checker, parameter); in CreateReturnEnumStatement()
505 auto *const propertyAccessExpr = in CreateReturnEnumStatement()
507 auto *const arrayAccessExpr = checker->AllocNode<ir::MemberExpression>( in CreateReturnEnumStatement()
509 auto *const returnStatement = checker->AllocNode<ir::ReturnStatement>(arrayAccessExpr); in CreateReturnEnumStatement()
516 auto *const paramRefIdent = MakeParamRefIdent(checker, parameter); in CreateThrowStatement()
517 auto *const message = checker->AllocNode<ir::StringLiteral>(messageString.View()); in CreateThrowStatement()
518 auto *const newExprArg = in CreateThrowStatement()
525 auto *const exceptionReference = MakeTypeReference(checker, "Exception"); in CreateThrowStatement()
526 auto *const newExpr = in CreateThrowStatement()
535 auto *const paramRefIdent = MakeParamRefIdent(checker, parameter); in CreateReturnWitAsStatement()
536 auto intType = checker->AllocNode<ir::ETSPrimitiveType>(ir::PrimitiveType::INT); in CreateReturnWitAsStatement()
537 auto asExpression = checker->AllocNode<ir::TSAsExpression>(paramRefIdent, intType, false); in CreateReturnWitAsStatement()
540 …auto *const propertyAccessExpr = CreateStaticAccessMemberExpression(checker, enumClassIdentifier, … in CreateReturnWitAsStatement()
542 auto *const arrayAccessExpr = checker->AllocNode<ir::MemberExpression>( in CreateReturnWitAsStatement()
555 … auto *const intTypeAnnotation = checker_->AllocNode<ir::ETSPrimitiveType>(ir::PrimitiveType::INT); in CreateEnumFromIntMethod()
556 auto *const inputOrdinalParameter = MakeFunctionParam(checker_, "ordinal", intTypeAnnotation); in CreateEnumFromIntMethod()
557 …auto *const inArraySizeExpr = CreateIfTest(checker_, enumClass->Ident(), arrayIdent, inputOrdinalP… in CreateEnumFromIntMethod()
558 auto *const returnEnumStmt = in CreateEnumFromIntMethod()
560 …auto *const ifOrdinalExistsStmt = checker_->AllocNode<ir::IfStatement>(inArraySizeExpr, returnEnum… in CreateEnumFromIntMethod()
562 auto const messageString = util::UString(std::string_view("No enum constant in "), Allocator()) in CreateEnumFromIntMethod()
566 …auto *const throwNoEnumStmt = CreateThrowStatement(checker_, inputOrdinalParameter, messageString); in CreateEnumFromIntMethod()
574 auto *const returnTypeAnnotation = MakeTypeReference(checker_, returnTypeName); in CreateEnumFromIntMethod()
576 …auto *const function = MakeFunction({std::move(params), std::move(body), returnTypeAnnotation, enu… in CreateEnumFromIntMethod()
579 auto *const ident = checker_->AllocNode<ir::Identifier>(methodName, Allocator()); in CreateEnumFromIntMethod()
590 auto *const enumTypeAnnotation = MakeTypeReference(checker_, enumDecl->Key()->Name()); in CreateEnumToStringMethod()
591 auto *const inputEnumIdent = MakeFunctionParam(checker_, "ordinal", enumTypeAnnotation); in CreateEnumToStringMethod()
592 auto *const returnStmt = in CreateEnumToStringMethod()
600 …auto *const stringTypeAnnotation = MakeTypeReference(checker_, "String"); // NOTE String -> Built… in CreateEnumToStringMethod()
601 …auto *const function = MakeFunction({std::move(params), std::move(body), stringTypeAnnotation, enu… in CreateEnumToStringMethod()
604 auto *const functionIdent = in CreateEnumToStringMethod()
615 auto *const enumTypeAnnotation = MakeTypeReference(checker_, enumDecl->Key()->Name()); in CreateEnumValueOfMethod()
616 auto *const inputEnumIdent = MakeFunctionParam(checker_, "e", enumTypeAnnotation); in CreateEnumValueOfMethod()
617 …auto *const returnStmt = CreateReturnWitAsStatement(checker_, enumClass->Ident(), valuesArrayIdent… in CreateEnumValueOfMethod()
624 … auto *const intTypeAnnotation = checker_->AllocNode<ir::ETSPrimitiveType>(ir::PrimitiveType::INT); in CreateEnumValueOfMethod()
625 …auto *const function = MakeFunction({std::move(params), std::move(body), intTypeAnnotation, enumDe… in CreateEnumValueOfMethod()
627 auto *const functionIdent = in CreateEnumValueOfMethod()
638 auto *const enumTypeAnnotation = MakeTypeReference(checker_, enumDecl->Key()->Name()); in CreateEnumGetNameMethod()
639 auto *const inputEnumIdent = MakeFunctionParam(checker_, "ordinal", enumTypeAnnotation); in CreateEnumGetNameMethod()
640 …auto *const returnStmt = CreateReturnWitAsStatement(checker_, enumClass->Ident(), namesArrayIdent,… in CreateEnumGetNameMethod()
647 …auto *const stringTypeAnnotation = MakeTypeReference(checker_, "String"); // NOTE String -> Built… in CreateEnumGetNameMethod()
649 …auto *const function = MakeFunction({std::move(params), std::move(body), stringTypeAnnotation, enu… in CreateEnumGetNameMethod()
651 auto *const functionIdent = in CreateEnumGetNameMethod()
664 auto *const init = checker->AllocNode<ir::NumberLiteral>("0"); in CreateForLoopInitVariableDeclaration()
665 auto *const decl = in CreateForLoopInitVariableDeclaration()
670 auto *const declaration = checker->AllocNode<ir::VariableDeclaration>( in CreateForLoopInitVariableDeclaration()
680 auto *const lengthIdent = checker->AllocNode<ir::Identifier>("length", checker->Allocator()); in CreateForLoopTest()
681 auto *const propertyAccessExpr = in CreateForLoopTest()
683 auto *const arrayLengthExpr = checker->AllocNode<ir::MemberExpression>( in CreateForLoopTest()
685 auto *const forLoopIdentClone = loopIdentifier->Clone(checker->Allocator(), nullptr); in CreateForLoopTest()
686 …auto *const binaryExpr = checker->AllocNode<ir::BinaryExpression>(forLoopIdentClone, arrayLengthEx… in CreateForLoopTest()
693 auto *const forLoopIdentClone = loopIdentifier->Clone(checker->Allocator(), nullptr); in CreateForLoopUpdate()
694 auto *const incrementExpr = in CreateForLoopUpdate()
703 auto *const forLoopIdentClone1 = loopIdentifier->Clone(checker->Allocator(), nullptr); in CreateIf()
704 auto *const namesArrayElementExpr = checker->AllocNode<ir::MemberExpression>( in CreateIf()
707 auto *const paramRefIdent = MakeParamRefIdent(checker, parameter); in CreateIf()
708 …auto *const namesEqualExpr = checker->AllocNode<ir::BinaryExpression>(paramRefIdent, namesArrayEle… in CreateIf()
711 auto *const forLoopIdentClone2 = loopIdentifier->Clone(checker->Allocator(), nullptr); in CreateIf()
712 auto *const enumTypeAnnotation = MakeTypeReference(checker, enumDecl->Key()->Name()); in CreateIf()
713 …auto asExpression = checker->AllocNode<ir::TSAsExpression>(forLoopIdentClone2, enumTypeAnnotation,… in CreateIf()
715 auto *const returnStmt = checker->AllocNode<ir::ReturnStatement>(asExpression); in CreateIf()
725 auto *const forLoopIIdent = checker_->AllocNode<ir::Identifier>("i", checker_->Allocator()); in CreateEnumGetValueOfMethod()
726 auto *const forLoopInitVarDecl = CreateForLoopInitVariableDeclaration(checker_, forLoopIIdent); in CreateEnumGetValueOfMethod()
727 …auto *const forLoopTest = CreateForLoopTest(checker_, enumClass->Ident(), namesArrayIdent, forLoop… in CreateEnumGetValueOfMethod()
728 auto *const forLoopUpdate = CreateForLoopUpdate(checker_, forLoopIIdent); in CreateEnumGetValueOfMethod()
729 …auto *const stringTypeAnnotation = MakeTypeReference(checker_, "String"); // NOTE String -> Built… in CreateEnumGetValueOfMethod()
730 auto *const inputNameIdent = MakeFunctionParam(checker_, "name", stringTypeAnnotation); in CreateEnumGetValueOfMethod()
731 auto *const ifStmt = in CreateEnumGetValueOfMethod()
735 auto *const forLoop = in CreateEnumGetValueOfMethod()
742 …[[maybe_unused]] auto *const throwStmt = CreateThrowStatement(checker_, inputNameIdent, messageStr… in CreateEnumGetValueOfMethod()
750 auto *const enumTypeAnnotation = MakeTypeReference(checker_, enumDecl->Key()->Name()); in CreateEnumGetValueOfMethod()
752 …auto *const function = MakeFunction({std::move(params), std::move(body), enumTypeAnnotation, enumD… in CreateEnumGetValueOfMethod()
755 auto *const functionIdent = in CreateEnumGetValueOfMethod()
766 …auto *const propertyAccessExpr = CreateStaticAccessMemberExpression(checker_, enumClass->Ident(), … in CreateEnumValuesMethod()
767 auto *const returnStmt = checker_->AllocNode<ir::ReturnStatement>(propertyAccessExpr); in CreateEnumValuesMethod()
772 auto *const enumArrayTypeAnnotation = in CreateEnumValuesMethod()
775 …auto *const function = MakeFunction({std::move(params), std::move(body), enumArrayTypeAnnotation, … in CreateEnumValuesMethod()
777 auto *const functionIdent = in CreateEnumValuesMethod()
791 auto *thisExpr = Allocator()->New<ir::ThisExpression>(); in CreateUnboxingMethod()
792 auto *fieldIdentifier = Allocator()->New<ir::Identifier>("ordinal", Allocator()); in CreateUnboxingMethod()
793 auto *arrayIndexExpr = checker_->AllocNode<ir::MemberExpression>( in CreateUnboxingMethod()
796 …auto *const propertyAccessExpr = CreateStaticAccessMemberExpression(checker_, enumClass->Ident(), … in CreateUnboxingMethod()
797 auto *const arrayAccessExpr = checker_->AllocNode<ir::MemberExpression>( in CreateUnboxingMethod()
800 auto *const returnStmt = checker_->AllocNode<ir::ReturnStatement>(arrayAccessExpr); in CreateUnboxingMethod()
805 auto *const returnTypeAnnotation = MakeTypeReference(checker_, enumDecl->Key()->Name()); in CreateUnboxingMethod()
807 auto *const function = in CreateUnboxingMethod()
810 auto *const functionIdent = in CreateUnboxingMethod()