Lines Matching refs:checker_

99         bodyBlock = checker_->AllocNode<ir::BlockStatement>(Allocator(), std::move(functionInfo.body));
103 auto *const function = checker_->AllocNode<ir::ScriptFunction>(
142 auto *const arrayExpr = checker_->AllocNode<ir::ArrayExpression>(std::move(elements), Allocator());
143 auto *const arrayIdent = checker_->AllocNode<ir::Identifier>(name, Allocator());
144 auto *const arrayClassProp = checker_->AllocNode<ir::ClassProperty>(
163 auto *const stringTypeAnnotation = MakeTypeReference(checker_, "String"); // NOTE String -> Builtin?
164 auto *const arrayTypeAnnotation = checker_->AllocNode<ir::TSArrayType>(stringTypeAnnotation);
170 checker_->AllocNode<ir::StringLiteral>(member->Key()->AsIdentifier()->Name());
179 auto *ident = Allocator()->New<ir::Identifier>(GetEnumClassName(checker_, enumDecl).View(), Allocator());
184 auto *classDef = checker_->AllocNode<ir::ClassDefinition>(
190 auto *classDecl = checker_->AllocNode<ir::ClassDeclaration>(classDef, Allocator());
207 auto *id = checker_->AllocNode<ir::Identifier>(compiler::Signatures::CCTOR, Allocator());
217 auto *body = checker_->AllocNode<ir::BlockStatement>(Allocator(), std::move(statements));
218 auto *func = checker_->AllocNode<ir::ScriptFunction>(
228 auto *funcExpr = checker_->AllocNode<ir::FunctionExpression>(func);
235 auto *const methodDef = checker_->AllocNode<ir::MethodDefinition>(
258 auto *field = checker_->AllocNode<ir::ClassProperty>(fieldIdent, nullptr, intTypeAnnotation,
279 auto *const intTypeAnnotation = checker_->AllocNode<ir::ETSPrimitiveType>(ir::PrimitiveType::INT);
280 auto *const inputOrdinalParam = MakeFunctionParam(checker_, varbinder_, paramScope, "ordinal", intTypeAnnotation);
283 auto *id = checker_->AllocNode<ir::Identifier>("constructor", Allocator());
289 auto *body = checker_->AllocNode<ir::BlockStatement>(Allocator(), std::move(statements));
290 auto *func = checker_->AllocNode<ir::ScriptFunction>(
299 auto *funcExpr = checker_->AllocNode<ir::FunctionExpression>(func);
308 auto *leftHandSide = checker_->AllocNode<ir::MemberExpression>(
310 auto *rightHandSide = checker_->AllocNode<ir::Identifier>("ordinal", Allocator());
312 auto *initializer = checker_->AllocNode<ir::AssignmentExpression>(leftHandSide, rightHandSide,
314 auto initStatement = checker_->AllocNode<ir::ExpressionStatement>(initializer);
319 auto *const methodDef = checker_->AllocNode<ir::MethodDefinition>(
366 GetEnumClassName(checker_, enumDecl).View());
398 GetEnumClassName(checker_, enumDecl).View());
415 checker_ = ctx->checker->AsETSChecker();
428 checker_->LogTypeError("Invalid enumeration value type.", enumDecl->Start());
439 auto *const intType = checker_->AllocNode<ir::ETSPrimitiveType>(ir::PrimitiveType::INT);
440 auto *const arrayTypeAnnotation = checker_->AllocNode<ir::TSArrayType>(intType);
444 auto *const enumValueLiteral = checker_->AllocNode<ir::NumberLiteral>(
458 auto *const stringTypeAnnotation = MakeTypeReference(checker_, "String"); // NOTE String -> Builtin?
459 auto *const arrayTypeAnnotation = checker_->AllocNode<ir::TSArrayType>(stringTypeAnnotation);
475 auto *const enumValueStringLiteral = checker_->AllocNode<ir::StringLiteral>(stringValue);
484 auto *const enumTypeAnnotation = MakeTypeReference(checker_, enumDecl->Key()->Name());
485 auto *const arrayTypeAnnotation = checker_->AllocNode<ir::TSArrayType>(enumTypeAnnotation);
490 checker_->AllocNode<ir::Identifier>(enumDecl->Key()->Name(), Allocator());
493 auto *const enumMemberIdent = checker_->AllocNode<ir::Identifier>(
496 auto *const enumMemberExpr = checker_->AllocNode<ir::MemberExpression>(
506 auto boxedClassName = GetEnumClassName(checker_, enumDecl).View();
507 auto *const enumTypeAnnotation = MakeTypeReference(checker_, boxedClassName);
508 auto *const arrayTypeAnnotation = checker_->AllocNode<ir::TSArrayType>(enumTypeAnnotation);
513 checker_->AllocNode<ir::Identifier>(enumDecl->Key()->Name(), Allocator());
516 auto *const enumMemberIdent = checker_->AllocNode<ir::Identifier>(
519 auto *const enumMemberExpr = checker_->AllocNode<ir::MemberExpression>(
522 auto intType = checker_->AllocNode<ir::ETSPrimitiveType>(ir::PrimitiveType::INT);
523 auto asExpression = checker_->AllocNode<ir::TSAsExpression>(enumMemberExpr, intType, false);
528 auto boxedTypeRef = MakeTypeReference(checker_, boxedClassName);
530 auto *const newExpression = checker_->AllocNode<ir::ETSNewClassInstanceExpression>(
610 auto *const intTypeAnnotation = checker_->AllocNode<ir::ETSPrimitiveType>(ir::PrimitiveType::INT);
612 MakeFunctionParam(checker_, varbinder_, paramScope, "ordinal", intTypeAnnotation);
615 auto *const ifOrdinalExistsStmt = checker_->AllocNode<ir::IfStatement>(inArraySizeExpr, returnEnumStmt, nullptr);
629 auto *const returnTypeAnnotation = MakeTypeReference(checker_, returnTypeName);
634 auto *const ident = checker_->AllocNode<ir::Identifier>(methodName, Allocator());
639 MakeMethodDef(checker_, enumClass, varbinder_, ident, function);
649 auto *const enumTypeAnnotation = MakeTypeReference(checker_, enumDecl->Key()->Name());
650 auto *const inputEnumIdent = MakeFunctionParam(checker_, varbinder_, paramScope, "ordinal", enumTypeAnnotation);
658 auto *const stringTypeAnnotation = MakeTypeReference(checker_, "String"); // NOTE String -> Builtin?
663 checker_->AllocNode<ir::Identifier>(checker::ETSEnumType::TO_STRING_METHOD_NAME, Allocator());
667 MakeMethodDef(checker_, enumClass, varbinder_, functionIdent, function);
678 auto *const enumTypeAnnotation = MakeTypeReference(checker_, enumDecl->Key()->Name());
679 auto *const inputEnumIdent = MakeFunctionParam(checker_, varbinder_, paramScope, "e", enumTypeAnnotation);
687 auto *const intTypeAnnotation = checker_->AllocNode<ir::ETSPrimitiveType>(ir::PrimitiveType::INT);
691 checker_->AllocNode<ir::Identifier>(checker::ETSEnumType::VALUE_OF_METHOD_NAME, Allocator());
695 MakeMethodDef(checker_, enumClass, varbinder_, functionIdent, function);
707 auto *const enumTypeAnnotation = MakeTypeReference(checker_, enumDecl->Key()->Name());
708 auto *const inputEnumIdent = MakeFunctionParam(checker_, varbinder_, paramScope, "ordinal", enumTypeAnnotation);
716 auto *const stringTypeAnnotation = MakeTypeReference(checker_, "String"); // NOTE String -> Builtin?
721 checker_->AllocNode<ir::Identifier>(checker::ETSEnumType::GET_NAME_METHOD_NAME, Allocator());
726 MakeMethodDef(checker_, enumClass, varbinder_, functionIdent, function);
819 auto *const stringTypeAnnotation = MakeTypeReference(checker_, "String"); // NOTE String -> Builtin?
820 auto *const inputNameIdent = MakeFunctionParam(checker_, varbinder_, paramScope, "name", stringTypeAnnotation);
826 checker_->AllocNode<ir::ForUpdateStatement>(forLoopInitVarDecl, forLoopTest, forLoopUpdate, ifStmt);
843 auto *const enumTypeAnnotation = MakeTypeReference(checker_, enumDecl->Key()->Name());
849 checker_->AllocNode<ir::Identifier>(checker::ETSEnumType::GET_VALUE_OF_METHOD_NAME, Allocator());
853 MakeMethodDef(checker_, enumClass, varbinder_, functionIdent, function);
863 auto *const returnStmt = checker_->AllocNode<ir::ReturnStatement>(itemsArrayIdent);
869 checker_->AllocNode<ir::TSArrayType>(MakeTypeReference(checker_, enumDecl->Key()->Name()));
874 checker_->AllocNode<ir::Identifier>(checker::ETSEnumType::VALUES_METHOD_NAME, Allocator());
878 MakeMethodDef(checker_, enumClass, varbinder_, functionIdent, function);
895 auto *arrayIndexExpr = checker_->AllocNode<ir::MemberExpression>(
898 auto itemsArrayIdentClone = itemsArrayIdent->Clone(checker_->Allocator(), nullptr);
899 auto *const arrayAccessExpr = checker_->AllocNode<ir::MemberExpression>(
902 auto *const returnStmt = checker_->AllocNode<ir::ReturnStatement>(arrayAccessExpr);
907 auto *const returnTypeAnnotation = MakeTypeReference(checker_, enumDecl->Key()->Name());
914 checker_->AllocNode<ir::Identifier>(checker::ETSEnumType::UNBOX_METHOD_NAME, Allocator());
918 MakeMethodDef(checker_, enumClass, varbinder_, functionIdent, function);
924 return checker_->Allocator();