swc_ecma_lexer/common/parser/
is_invalid_class_name.rs

1use swc_common::Span;
2use swc_ecma_ast::Ident;
3
4pub trait IsInvalidClassName {
5    fn invalid_class_name(&self) -> Option<Span>;
6}
7
8impl IsInvalidClassName for Ident {
9    fn invalid_class_name(&self) -> Option<Span> {
10        match &*self.sym {
11            "string" | "null" | "number" | "object" | "any" | "unknown" | "boolean" | "bigint"
12            | "symbol" | "void" | "never" | "intrinsic" => Some(self.span),
13            _ => None,
14        }
15    }
16}
17impl IsInvalidClassName for Option<Ident> {
18    fn invalid_class_name(&self) -> Option<Span> {
19        self.as_ref().and_then(|i| i.invalid_class_name())
20    }
21}