swc had a bug that occurs if an arrow parameter and local binding has a same name. Due to the bug, code like
was miscompiled. It is now fixed.
swc didn't detect type-only imports correctly if
as is used. It means,
was compiled as
Fix was quite simple. By making
swc drop type before visiting whole expression, typescript type casting expressions are now stripped out.