use super::super::error::GenResult;
use super::super::*;
impl Codegen {
pub(in super::super::super) fn try_generate_as_expr(
&self,
node: &IrNode,
) -> GenResult<Option<TokenStream>> {
match node {
IrNode::Ident { .. }
| IrNode::StrLit { .. }
| IrNode::NumLit { .. }
| IrNode::BoolLit { .. }
| IrNode::NullLit { .. }
| IrNode::ThisExpr { .. }
| IrNode::CallExpr { .. }
| IrNode::MemberExpr { .. }
| IrNode::ObjectLit { .. }
| IrNode::ArrayLit { .. }
| IrNode::BinExpr { .. }
| IrNode::AssignExpr { .. }
| IrNode::CondExpr { .. }
| IrNode::ArrowExpr { .. }
| IrNode::NewExpr { .. }
| IrNode::TplLit { .. }
| IrNode::Placeholder { .. }
| IrNode::IdentBlock { .. }
| IrNode::StringInterp { .. }
| IrNode::TsAsExpr { .. }
| IrNode::TsSatisfiesExpr { .. }
| IrNode::TsNonNullExpr { .. }
| IrNode::TsInstantiation { .. }
| IrNode::AwaitExpr { .. }
| IrNode::YieldExpr { .. }
| IrNode::PrivateName { .. }
| IrNode::BigIntLit { .. }
| IrNode::UpdateExpr { .. }
| IrNode::OptChainExpr { .. }
| IrNode::FnExpr { .. }
| IrNode::ClassExpr { .. }
| IrNode::ParenExpr { .. }
| IrNode::SeqExpr { .. }
| IrNode::TaggedTpl { .. } => Ok(Some(self.generate_expr(node)?)),
_ => Ok(None),
}
}
}