-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Closed
Description
Describe the bug
swc_ecma_codegen does not render the return_type property of ArrowExpr
Input code
let cm = Lrc::new(SourceMap::default());
let code = {
let mut buf = vec![];
{
let mut emitter = Emitter {
cfg: swc_ecma_codegen::Config {
..Default::default()
},
cm: cm.clone(),
comments: None,
wr: JsWriter::new(cm.clone(), "\n", &mut buf, None),
};
emitter
.emit_module(&Module {
body: vec![ModuleItem::Stmt(Stmt::Expr(ExprStmt {
span: Default::default(),
expr: boxed(Expr::Arrow(ArrowExpr {
span: Default::default(),
params: vec![],
type_params: None,
is_async: false,
is_generator: false,
body: BlockStmtOrExpr::Expr(boxed(Expr::Lit(Lit::Bool(Bool {
span: Default::default(),
value: true,
})))),
return_type: Some(TsTypeAnn {
span: Default::default(),
type_ann: boxed(TsType::TsLitType(TsLitType {
span: Default::default(),
lit: TsLit::Bool(Bool {
span: Default::default(),
value: true,
}),
})),
}),
})),
}))],
span: Default::default(),
shebang: None,
})
.unwrap();
}
String::from_utf8_lossy(&buf).to_string()
};Config
N/APlayground link
No response
Expected behavior
The return type should be rendered if given, like it is for normal functions.
Actual behavior
The return type is not rendered.
Version
0.96.0 local, but issue also exists on the source of main branch
Additional context
No response