Lines Matching defs:caseTest
1783 auto *caseTest = it->Test();
1784 if (caseTest == nullptr) {
1787 auto *caseType = caseTest->TsType();
1788 if (caseTest->TsType()->IsETSIntEnumType() || caseTest->TsType()->IsETSStringEnumType()) {
1792 if (caseTest->IsIdentifier() || caseTest->IsMemberExpression()) {
1793 if (!IsConstantMemberOrIdentifierExpression(caseTest)) {
1807 void CheckItemEnumType(ir::Expression const *const caseTest, ETSChecker *checker, ETSIntEnumType const *const type,
1810 if (caseTest->TsType()->AsETSIntEnumType()->IsSameEnumLiteralType(type)) {
1812 checker->LogTypeError("Case duplicate", caseTest->Start());
1816 void CheckItemStringEnumType(ir::Expression const *const caseTest, ETSChecker *checker,
1819 if (caseTest->TsType()->AsETSStringEnumType()->IsSameEnumLiteralType(type)) {
1821 checker->LogTypeError("Case duplicate", caseTest->Start());
1830 auto *caseTest = cases.at(caseNum)->Test();
1833 if (caseTest == nullptr || compareCaseTest == nullptr) {
1837 if (caseTest->TsType()->IsETSIntEnumType()) {
1838 CheckItemEnumType(caseTest, this, compareCaseTest->TsType()->AsETSIntEnumType(), isItemDuplicate);
1842 if (caseTest->TsType()->IsETSStringEnumType()) {
1843 CheckItemStringEnumType(caseTest, this, compareCaseTest->TsType()->AsETSStringEnumType(),
1848 if (caseTest->IsIdentifier() || caseTest->IsMemberExpression()) {
1849 CheckIdentifierSwitchCase(caseTest, compareCaseTest, cases.at(caseNum)->Start());
1854 CheckIdentifierSwitchCase(compareCaseTest, caseTest, cases.at(compareCase)->Start());
1858 if (caseTest->IsLiteral() && compareCaseTest->IsLiteral() &&
1859 GetStringFromLiteral(caseTest) != GetStringFromLiteral(compareCaseTest)) {
1863 if (!(IsConstantExpression(caseTest, caseTest->TsType()) || caseTest->IsLiteral()) ||
1909 std::string ETSChecker::GetStringFromLiteral(ir::Expression *caseTest) const
1911 switch (caseTest->Type()) {
1913 return std::to_string(caseTest->AsCharLiteral()->Char());
1917 return util::Helpers::LiteralToPropName(caseTest).Mutf8();