@@ -62,6 +62,26 @@ declare_oxc_lint!(
6262 suggestion
6363) ;
6464
65+ impl Rule for ForwardRefUsesRef {
66+ fn run < ' a > ( & self , node : & AstNode < ' a > , ctx : & LintContext < ' a > ) {
67+ let AstKind :: CallExpression ( call_expr) = node. kind ( ) else {
68+ return ;
69+ } ;
70+
71+ let Some ( "forwardRef" ) = call_expr. callee_name ( ) else {
72+ return ;
73+ } ;
74+ let Some ( first_arg) = call_expr. arguments . first ( ) else {
75+ return ;
76+ } ;
77+ let Some ( first_arg_as_exp) = first_arg. as_expression ( ) else {
78+ return ; // SpreadElement like forwardRef(...x)
79+ } ;
80+
81+ check_forward_ref_inner ( first_arg_as_exp, call_expr, ctx) ;
82+ }
83+ }
84+
6585fn check_forward_ref_inner < ' a > (
6686 exp : & Expression ,
6787 call_expr : & CallExpression ,
@@ -97,26 +117,6 @@ fn check_forward_ref_inner<'a>(
97117 ) ;
98118}
99119
100- impl Rule for ForwardRefUsesRef {
101- fn run < ' a > ( & self , node : & AstNode < ' a > , ctx : & LintContext < ' a > ) {
102- let AstKind :: CallExpression ( call_expr) = node. kind ( ) else {
103- return ;
104- } ;
105-
106- let Some ( "forwardRef" ) = call_expr. callee_name ( ) else {
107- return ;
108- } ;
109- let Some ( first_arg) = call_expr. arguments . first ( ) else {
110- return ;
111- } ;
112- let Some ( first_arg_as_exp) = first_arg. as_expression ( ) else {
113- return ; // SpreadElement like forwardRef(...x)
114- } ;
115-
116- check_forward_ref_inner ( first_arg_as_exp, call_expr, ctx) ;
117- }
118- }
119-
120120#[ test]
121121fn test ( ) {
122122 use crate :: tester:: Tester ;
0 commit comments