fix(es/typescript): Treat export default declarations as declarations (#7017)

**Related issue:**

 - Closes https://github.com/swc-project/swc/issues/6953.
This commit is contained in:
Donny/강동윤 2023-03-06 16:51:52 +09:00 committed by GitHub
parent 66247f0c49
commit 34f9ad3778
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 0 deletions

View File

@ -1581,6 +1581,23 @@ where
self.non_top_level = old;
}
fn visit_default_decl(&mut self, decl: &DefaultDecl) {
decl.visit_children_with(self);
match decl {
DefaultDecl::Class(d) => {
if let Some(id) = &d.ident {
self.store(id.sym.clone(), id.span.ctxt, true);
}
}
DefaultDecl::Fn(d) => {
if let Some(id) = &d.ident {
self.store(id.sym.clone(), id.span.ctxt, true);
}
}
_ => {}
}
}
fn visit_expr(&mut self, n: &Expr) {
let old = self.in_var_pat;
self.in_var_pat = false;

View File

@ -0,0 +1,15 @@
import { Scope } from "../../scopes";
import {
AnyNode,
TSUnknownKeywordTypeAnnotation,
tsUnknownKeywordTypeAnnotation,
} from "@internal/ast";
export default function TSUnknownKeywordTypeAnnotation(
node: AnyNode,
scope: Scope,
) {
node = tsUnknownKeywordTypeAnnotation.assert(node);
scope;
throw new Error("unimplemented");
}

View File

@ -0,0 +1,6 @@
import { tsUnknownKeywordTypeAnnotation } from "@internal/ast";
export default function TSUnknownKeywordTypeAnnotation(node, scope) {
node = tsUnknownKeywordTypeAnnotation.assert(node);
scope;
throw new Error("unimplemented");
}