Lines Matching defs:expr
109 ir::MemberExpression *expr)
111 if (expr->PropVar() != nullptr) {
114 [[maybe_unused]] auto parent = expr->Parent();
115 ASSERT(!(parent->IsCallExpression() && parent->AsCallExpression()->Callee() == expr &&
117 expr->SetPropVar(
118 CreateUnionFieldClassProperty(checker, vbind, expr->TsType(), expr->Property()->AsIdentifier()->Name()));
119 ASSERT(expr->PropVar() != nullptr);
145 static ir::TSAsExpression *HandleUnionCastToPrimitive(checker::ETSChecker *checker, ir::TSAsExpression *expr)
147 auto *const unionType = expr->Expr()->TsType()->AsETSUnionType();
148 auto *sourceType = unionType->FindExactOrBoxedType(checker, expr->TsType());
150 sourceType = unionType->AsETSUnionType()->FindTypeIsCastableToSomeType(expr->Expr(), checker->Relation(),
151 expr->TsType());
153 if (sourceType != nullptr && expr->Expr()->GetBoxingUnboxingFlags() != ir::BoxingUnboxingFlags::NONE) {
154 if (expr->TsType()->HasTypeFlag(checker::TypeFlag::ETS_PRIMITIVE)) {
155 auto *const asExpr = GenAsExpression(checker, sourceType, expr->Expr(), expr);
158 expr->Expr()->SetBoxingUnboxingFlags(ir::BoxingUnboxingFlags::NONE);
159 expr->SetExpr(asExpr);
161 return expr;
166 UnionCastToPrimitive(checker, unboxableUnionType->AsETSObjectType(), unboxedUnionType, expr->Expr());
167 node->SetParent(expr->Parent());