• Home
  • Raw
  • Download

Lines Matching full:checker

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()
243checker::Type *initializerType = checker->GetBaseTypeOfLiteralType(assignmentPattern->Right()->Che… in CheckAssignmentPattern()
247 … auto savedContext = checker::SavedCheckerContext(checker, checker::CheckerStatus::FORCE_TUPLE); in CheckAssignmentPattern()
248 auto destructuringContext = checker::ArrayDestructuringContext( in CheckAssignmentPattern()
249 …{checker, assignmentPattern->Left()->AsArrayPattern(), false, true, nullptr, assignmentPattern->Ri… in CheckAssignmentPattern()
254 … auto savedContext = checker::SavedCheckerContext(checker, checker::CheckerStatus::FORCE_TUPLE); in CheckAssignmentPattern()
255 auto destructuringContext = checker::ObjectDestructuringContext( in CheckAssignmentPattern()
256 …{checker, assignmentPattern->Left()->AsObjectPattern(), false, true, nullptr, assignmentPattern->R… in CheckAssignmentPattern()
262 memberFlag = checker::ElementFlags::OPTIONAL; in CheckAssignmentPattern()
264 memberFlag = checker::ElementFlags::REQUIRED; in CheckAssignmentPattern()
269 checker::Type *CheckElementPattern(Expression *it, checker::Type *elementType, checker::TSChecker * in CheckElementPattern() argument
270 bool &addOptional, checker::ElementFlags &memberFlag) in CheckElementPattern()
274 elementType = checker->Allocator()->New<checker::ArrayType>(checker->GlobalAnyType()); in CheckElementPattern()
275 memberFlag = checker::ElementFlags::REST; in CheckElementPattern()
280 elementType = it->AsObjectPattern()->CheckPattern(checker); in CheckElementPattern()
281 memberFlag = checker::ElementFlags::REQUIRED; in CheckElementPattern()
286 elementType = it->AsArrayPattern()->CheckPattern(checker); in CheckElementPattern()
287 memberFlag = checker::ElementFlags::REQUIRED; in CheckElementPattern()
292 return CheckAssignmentPattern(it, checker, elementType, addOptional, memberFlag); in CheckElementPattern()
295 elementType = checker->GlobalAnyType(); in CheckElementPattern()
296 memberFlag = checker::ElementFlags::REQUIRED; in CheckElementPattern()
303 elementType = checker->GlobalAnyType(); in CheckElementPattern()
305 memberFlag = checker::ElementFlags::REQUIRED; in CheckElementPattern()
315 checker::Type *ArrayExpression::CheckPattern(checker::TSChecker *checker) in CheckPattern() argument
317checker::ObjectDescriptor *desc = checker->Allocator()->New<checker::ObjectDescriptor>(checker->Al… in CheckPattern()
318 ArenaVector<checker::ElementFlags> elementFlags(checker->Allocator()->Adapter()); in CheckPattern()
319 checker::ElementFlags combinedFlags = checker::ElementFlags::NO_OPTS; in CheckPattern()
325 checker::Type *elementType = nullptr; in CheckPattern()
326 checker::ElementFlags memberFlag = checker::ElementFlags::NO_OPTS; in CheckPattern()
328 elementType = CheckElementPattern(*it, elementType, checker, addOptional, memberFlag); in CheckPattern()
330 util::StringView memberIndex = util::Helpers::ToStringView(checker->Allocator(), index - 1); in CheckPattern()
333 …varbinder::Scope::CreateVar(checker->Allocator(), memberIndex, varbinder::VariableFlags::PROPERTY,… in CheckPattern()
335 if (memberFlag == checker::ElementFlags::OPTIONAL) { in CheckPattern()
350 const checker::TupleTypeInfo tupleTypeInfo = {combinedFlags, minLength, in CheckPattern()
352 return checker->CreateTupleType(desc, std::move(elementFlags), tupleTypeInfo); in CheckPattern()
369 bool ArrayExpression::TrySetPreferredTypeForNestedArrayExpr(checker::ETSChecker *const checker, in TrySetPreferredTypeForNestedArrayExpr() argument
373 …auto doesArrayExprFitInTuple = [&checker, &nestedArrayExpr](const checker::Type *const possibleTup… in TrySetPreferredTypeForNestedArrayExpr()
375checker->IsArrayExprSizeValidForTuple(nestedArrayExpr, possibleTupleType->AsETSTupleType()); in TrySetPreferredTypeForNestedArrayExpr()
411 checker::VerifiedType ArrayExpression::Check(checker::ETSChecker *checker) in Check() argument
413 return {this, checker->GetAnalyzer()->Check(this)}; in Check()
416 std::optional<checker::Type *> ArrayExpression::ExtractPossiblePreferredType(checker::Type *type) in ExtractPossiblePreferredType()
424 for (checker::Type *const typeOfUnion : type->AsETSUnionType()->ConstituentTypes()) { in ExtractPossiblePreferredType()
435 void ArrayExpression::SetPreferredTypeBasedOnFuncParam(checker::ETSChecker *checker, checker::Type … in SetPreferredTypeBasedOnFuncParam() argument
436 checker::TypeRelationFlag flags) in SetPreferredTypeBasedOnFuncParam()
454 checker::Type *elementType = nullptr; in SetPreferredTypeBasedOnFuncParam()
464 checker->SetPreferredTypeIfPossible(elem, elementType); in SetPreferredTypeBasedOnFuncParam()
465checker::AssignmentContext assignCtx(checker->Relation(), elem, elem->Check(checker), elementType, in SetPreferredTypeBasedOnFuncParam()
466 … elem->Start(), std::nullopt, checker::TypeRelationFlag::NO_THROW | flags); in SetPreferredTypeBasedOnFuncParam()