swc_ecma_lexer/common/parser/
is_simple_param_list.rs

1use swc_ecma_ast::{Param, ParamOrTsParamProp, Pat};
2
3pub trait IsSimpleParameterList {
4    fn is_simple_parameter_list(&self) -> bool;
5}
6
7impl IsSimpleParameterList for Vec<Param> {
8    fn is_simple_parameter_list(&self) -> bool {
9        self.iter().all(|param| matches!(param.pat, Pat::Ident(_)))
10    }
11}
12
13impl IsSimpleParameterList for Vec<Pat> {
14    fn is_simple_parameter_list(&self) -> bool {
15        self.iter().all(|pat| matches!(pat, Pat::Ident(_)))
16    }
17}
18
19impl IsSimpleParameterList for Vec<ParamOrTsParamProp> {
20    fn is_simple_parameter_list(&self) -> bool {
21        self.iter().all(|param| {
22            matches!(
23                param,
24                ParamOrTsParamProp::TsParamProp(..)
25                    | ParamOrTsParamProp::Param(Param {
26                        pat: Pat::Ident(_),
27                        ..
28                    })
29            )
30        })
31    }
32}