@@ -510,13 +510,21 @@ def add_method(name, receiver_name:, receiver_fallback_type:, visibility:, singl
510
510
511
511
receiver = receiver_name ? find_or_create_module_path ( receiver_name , receiver_fallback_type ) : @container
512
512
meth = RDoc ::AnyMethod . new ( nil , name , singleton : singleton )
513
+
513
514
if ( comment = consecutive_comment ( start_line ) )
514
515
handle_consecutive_comment_directive ( @container , comment )
515
516
handle_consecutive_comment_directive ( meth , comment )
516
517
517
518
comment . normalize
518
519
meth . call_seq = comment . extract_call_seq
520
+
521
+ # Save visibility before comment assignment (where YARD processing happens)
522
+ visibility_before = meth . visibility
519
523
meth . comment = comment
524
+ # Check if YARD tags changed the visibility
525
+ if meth . visibility != visibility_before
526
+ visibility = meth . visibility
527
+ end
520
528
end
521
529
handle_modifier_directive ( meth , start_line )
522
530
handle_modifier_directive ( meth , args_end_line )
@@ -527,7 +535,7 @@ def add_method(name, receiver_name:, receiver_fallback_type:, visibility:, singl
527
535
receiver ,
528
536
meth ,
529
537
line_no : start_line ,
530
- visibility : visibility ,
538
+ visibility : visibility , # Use YARD visibility if set, otherwise use Ruby visibility
531
539
params : params ,
532
540
calls_super : calls_super ,
533
541
block_params : block_params ,
0 commit comments