Lines Matching full:checker
144 void GetSpreadElementType(checker::Checker *checker, checker::Type *spreadType, in GetSpreadElementType() argument
145 … ArenaVector<checker::Type *> &elementTypes, const lexer::SourcePosition &loc) in GetSpreadElementType()
147 bool inConstContext = checker->HasStatus(checker::CheckerStatus::IN_CONST_CONTEXT); in GetSpreadElementType()
150 ArenaVector<checker::Type *> tupleElementTypes(checker->Allocator()->Adapter()); in GetSpreadElementType()
151 checker::TupleType *spreadTuple = spreadType->AsObjectType()->AsTupleType(); in GetSpreadElementType()
166 elementTypes.push_back(checker->CreateUnionType(std::move(tupleElementTypes))); in GetSpreadElementType()
172 ArenaVector<checker::Type *> spreadTypes(checker->Allocator()->Adapter()); in GetSpreadElementType()
182 checker::TupleType *tuple = type->AsObjectType()->AsTupleType(); in GetSpreadElementType()
196 elementTypes.push_back(checker->CreateUnionType(std::move(spreadTypes))); in GetSpreadElementType()
201 checker->ThrowTypeError( in GetSpreadElementType()
205 checker::Type *ArrayExpression::Check(checker::Checker *checker) const in Check()
207 ArenaVector<checker::Type *> elementTypes(checker->Allocator()->Adapter()); in Check()
208 ArenaVector<checker::ElementFlags> elementFlags(checker->Allocator()->Adapter()); in Check()
209 bool inConstContext = checker->HasStatus(checker::CheckerStatus::IN_CONST_CONTEXT); in Check()
210 bool createTuple = checker->HasStatus(checker::CheckerStatus::FORCE_TUPLE); in Check()
214 checker::Type *spreadType = it->AsSpreadElement()->Argument()->Check(checker); in Check()
218 elementFlags.push_back(checker::ElementFlags::VARIADIC); in Check()
222 GetSpreadElementType(checker, spreadType, elementTypes, it->Start()); in Check()
223 elementFlags.push_back(checker::ElementFlags::REST); in Check()
227 checker::Type *elementType = it->Check(checker); in Check()
230 elementType = checker->GetBaseTypeOfLiteralType(elementType); in Check()
233 elementFlags.push_back(checker::ElementFlags::REQUIRED); in Check()
238 …checker::ObjectDescriptor *desc = checker->Allocator()->New<checker::ObjectDescriptor>(checker->Al… in Check()
243 util::StringView memberIndex = util::Helpers::ToStringView(checker->Allocator(), index); in Check()
245 …binder::Scope::CreateVar(checker->Allocator(), memberIndex, binder::VariableFlags::PROPERTY, nullp… in Check()
255 …return checker->CreateTupleType(desc, std::move(elementFlags), checker::ElementFlags::REQUIRED, in… in Check()
259 checker::Type *arrayElementType = nullptr; in Check()
261 arrayElementType = checker->GlobalAnyType(); in Check()
263 arrayElementType = checker->CreateUnionType(std::move(elementTypes)); in Check()
266 return checker->Allocator()->New<checker::ArrayType>(arrayElementType); in Check()
269 checker::Type *ArrayExpression::CheckPattern(checker::Checker *checker) const in CheckPattern()
271 …checker::ObjectDescriptor *desc = checker->Allocator()->New<checker::ObjectDescriptor>(checker->Al… in CheckPattern()
273 ArenaVector<checker::ElementFlags> elementFlags(checker->Allocator()->Adapter()); in CheckPattern()
274 checker::ElementFlags combinedFlags = checker::ElementFlags::NO_OPTS; in CheckPattern()
280 checker::Type *elementType = nullptr; in CheckPattern()
281 checker::ElementFlags memberFlag = checker::ElementFlags::NO_OPTS; in CheckPattern()
285 … elementType = checker->Allocator()->New<checker::ArrayType>(checker->GlobalAnyType()); in CheckPattern()
286 memberFlag = checker::ElementFlags::REST; in CheckPattern()
291 elementType = (*it)->AsObjectPattern()->CheckPattern(checker); in CheckPattern()
292 memberFlag = checker::ElementFlags::REQUIRED; in CheckPattern()
297 elementType = (*it)->AsArrayPattern()->CheckPattern(checker); in CheckPattern()
298 memberFlag = checker::ElementFlags::REQUIRED; in CheckPattern()
309 checker::Type *initializerType = in CheckPattern()
310 … checker->GetBaseTypeOfLiteralType(assignmentPattern->Right()->Check(checker)); in CheckPattern()
314 … auto savedContext = checker::SavedCheckerContext(checker, checker::CheckerStatus::FORCE_TUPLE); in CheckPattern()
316 … checker::ArrayDestructuringContext(checker, assignmentPattern->Left()->AsArrayPattern(), false, in CheckPattern()
322 … auto savedContext = checker::SavedCheckerContext(checker, checker::CheckerStatus::FORCE_TUPLE); in CheckPattern()
324 … checker::ObjectDestructuringContext(checker, assignmentPattern->Left()->AsObjectPattern(), in CheckPattern()
331 memberFlag = checker::ElementFlags::OPTIONAL; in CheckPattern()
333 memberFlag = checker::ElementFlags::REQUIRED; in CheckPattern()
339 elementType = checker->GlobalAnyType(); in CheckPattern()
340 memberFlag = checker::ElementFlags::REQUIRED; in CheckPattern()
347 elementType = checker->GlobalAnyType(); in CheckPattern()
349 memberFlag = checker::ElementFlags::REQUIRED; in CheckPattern()
358 util::StringView memberIndex = util::Helpers::ToStringView(checker->Allocator(), index - 1); in CheckPattern()
361 … binder::Scope::CreateVar(checker->Allocator(), memberIndex, binder::VariableFlags::PROPERTY, *it); in CheckPattern()
363 if (memberFlag == checker::ElementFlags::OPTIONAL) { in CheckPattern()
377 …return checker->CreateTupleType(desc, std::move(elementFlags), combinedFlags, minLength, desc->pro… in CheckPattern()