Repository navigation
Commit 4274b2a
committed
Handle mixed visibility arguments
Ruby allows mixing inline and retroactive visibility arguments in a
single call (`private def foo; end, :bar`), where both methods should
become private. The previous implementation made a binary call-level
decision based on the first argument, routing all args to either the
inline or retroactive path and silently dropping arguments that didn't
match the chosen path.
We now classify and dispatch each argument independently instead of
making a single call-level decision. Inline defs and retroactive
literal targets can coexist in the same visibility call, and invalid
arguments now emit diagnostics at their own locations instead of once
for the whole call.
This also preserves the existing `attr_*` special case only for the
sole-argument form (`private attr_reader(:foo)`). In mixed calls like
`private attr_reader(:foo), :bar`, the `attr_reader` call is no longer
treated as an inline visibility target.1 parent 25cab1a commit 4274b2a
2 files changed
Lines changed: 200 additions & 88 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1260 | 1260 | | |
1261 | 1261 | | |
1262 | 1262 | | |
1263 | | - | |
1264 | | - | |
1265 | | - | |
1266 | | - | |
1267 | | - | |
1268 | | - | |
1269 | | - | |
1270 | | - | |
1271 | | - | |
1272 | | - | |
1273 | | - | |
| 1263 | + | |
1274 | 1264 | | |
1275 | 1265 | | |
1276 | 1266 | | |
| |||
1282 | 1272 | | |
1283 | 1273 | | |
1284 | 1274 | | |
1285 | | - | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
1286 | 1281 | | |
1287 | | - | |
1288 | 1282 | | |
1289 | 1283 | | |
1290 | 1284 | | |
1291 | 1285 | | |
1292 | 1286 | | |
1293 | 1287 | | |
| 1288 | + | |
1294 | 1289 | | |
1295 | | - | |
1296 | | - | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
1297 | 1297 | | |
1298 | 1298 | | |
1299 | | - | |
1300 | | - | |
1301 | | - | |
1302 | | - | |
1303 | | - | |
1304 | | - | |
1305 | | - | |
| 1299 | + | |
| 1300 | + | |
1306 | 1301 | | |
1307 | | - | |
1308 | | - | |
1309 | | - | |
1310 | | - | |
1311 | | - | |
1312 | | - | |
1313 | | - | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
1314 | 1313 | | |
| 1314 | + | |
1315 | 1315 | | |
1316 | | - | |
1317 | | - | |
1318 | | - | |
1319 | | - | |
1320 | | - | |
1321 | | - | |
1322 | | - | |
1323 | | - | |
1324 | | - | |
1325 | | - | |
1326 | | - | |
1327 | | - | |
1328 | | - | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
1329 | 1333 | | |
1330 | | - | |
1331 | | - | |
1332 | | - | |
| 1334 | + | |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
| 1341 | + | |
| 1342 | + | |
| 1343 | + | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
1333 | 1348 | | |
1334 | 1349 | | |
1335 | 1350 | | |
| |||
1949 | 1964 | | |
1950 | 1965 | | |
1951 | 1966 | | |
1952 | | - | |
1953 | | - | |
1954 | | - | |
1955 | | - | |
1956 | | - | |
1957 | | - | |
1958 | | - | |
1959 | | - | |
1960 | | - | |
1961 | | - | |
1962 | | - | |
1963 | | - | |
| 1967 | + | |
1964 | 1968 | | |
1965 | 1969 | | |
1966 | 1970 | | |
1967 | 1971 | | |
1968 | 1972 | | |
1969 | 1973 | | |
1970 | 1974 | | |
1971 | | - | |
1972 | | - | |
1973 | | - | |
1974 | | - | |
1975 | | - | |
1976 | | - | |
1977 | | - | |
1978 | | - | |
| 1975 | + | |
1979 | 1976 | | |
1980 | 1977 | | |
1981 | 1978 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3406 | 3406 | | |
3407 | 3407 | | |
3408 | 3408 | | |
3409 | | - | |
| 3409 | + | |
3410 | 3410 | | |
3411 | 3411 | | |
3412 | | - | |
3413 | | - | |
3414 | | - | |
3415 | | - | |
3416 | | - | |
3417 | | - | |
3418 | | - | |
| 3412 | + | |
| 3413 | + | |
| 3414 | + | |
| 3415 | + | |
| 3416 | + | |
3419 | 3417 | | |
3420 | | - | |
3421 | 3418 | | |
3422 | 3419 | | |
3423 | 3420 | | |
| |||
3460 | 3457 | | |
3461 | 3458 | | |
3462 | 3459 | | |
3463 | | - | |
| 3460 | + | |
3464 | 3461 | | |
3465 | 3462 | | |
3466 | 3463 | | |
| |||
3484 | 3481 | | |
3485 | 3482 | | |
3486 | 3483 | | |
3487 | | - | |
| 3484 | + | |
3488 | 3485 | | |
3489 | 3486 | | |
3490 | 3487 | | |
| |||
3508 | 3505 | | |
3509 | 3506 | | |
3510 | 3507 | | |
3511 | | - | |
| 3508 | + | |
3512 | 3509 | | |
3513 | 3510 | | |
3514 | 3511 | | |
| |||
3548 | 3545 | | |
3549 | 3546 | | |
3550 | 3547 | | |
| 3548 | + | |
3551 | 3549 | | |
3552 | 3550 | | |
3553 | | - | |
| 3551 | + | |
| 3552 | + | |
| 3553 | + | |
3554 | 3554 | | |
3555 | 3555 | | |
3556 | | - | |
3557 | | - | |
3558 | | - | |
3559 | | - | |
3560 | | - | |
3561 | | - | |
3562 | | - | |
3563 | | - | |
3564 | | - | |
| 3556 | + | |
3565 | 3557 | | |
3566 | 3558 | | |
3567 | | - | |
3568 | 3559 | | |
3569 | 3560 | | |
3570 | 3561 | | |
| |||
3613 | 3604 | | |
3614 | 3605 | | |
3615 | 3606 | | |
| 3607 | + | |
| 3608 | + | |
| 3609 | + | |
| 3610 | + | |
| 3611 | + | |
| 3612 | + | |
| 3613 | + | |
| 3614 | + | |
| 3615 | + | |
| 3616 | + | |
| 3617 | + | |
| 3618 | + | |
| 3619 | + | |
| 3620 | + | |
| 3621 | + | |
| 3622 | + | |
| 3623 | + | |
| 3624 | + | |
| 3625 | + | |
| 3626 | + | |
| 3627 | + | |
| 3628 | + | |
| 3629 | + | |
| 3630 | + | |
| 3631 | + | |
| 3632 | + | |
| 3633 | + | |
| 3634 | + | |
| 3635 | + | |
| 3636 | + | |
| 3637 | + | |
| 3638 | + | |
| 3639 | + | |
| 3640 | + | |
| 3641 | + | |
| 3642 | + | |
| 3643 | + | |
| 3644 | + | |
| 3645 | + | |
| 3646 | + | |
| 3647 | + | |
| 3648 | + | |
| 3649 | + | |
| 3650 | + | |
| 3651 | + | |
| 3652 | + | |
| 3653 | + | |
| 3654 | + | |
| 3655 | + | |
| 3656 | + | |
| 3657 | + | |
| 3658 | + | |
| 3659 | + | |
| 3660 | + | |
| 3661 | + | |
| 3662 | + | |
| 3663 | + | |
| 3664 | + | |
| 3665 | + | |
| 3666 | + | |
| 3667 | + | |
| 3668 | + | |
| 3669 | + | |
| 3670 | + | |
| 3671 | + | |
| 3672 | + | |
| 3673 | + | |
| 3674 | + | |
| 3675 | + | |
| 3676 | + | |
| 3677 | + | |
| 3678 | + | |
| 3679 | + | |
| 3680 | + | |
| 3681 | + | |
| 3682 | + | |
| 3683 | + | |
| 3684 | + | |
| 3685 | + | |
| 3686 | + | |
| 3687 | + | |
| 3688 | + | |
| 3689 | + | |
| 3690 | + | |
| 3691 | + | |
| 3692 | + | |
| 3693 | + | |
| 3694 | + | |
| 3695 | + | |
| 3696 | + | |
| 3697 | + | |
| 3698 | + | |
| 3699 | + | |
| 3700 | + | |
| 3701 | + | |
| 3702 | + | |
| 3703 | + | |
| 3704 | + | |
| 3705 | + | |
| 3706 | + | |
| 3707 | + | |
| 3708 | + | |
| 3709 | + | |
| 3710 | + | |
| 3711 | + | |
| 3712 | + | |
| 3713 | + | |
| 3714 | + | |
| 3715 | + | |
| 3716 | + | |
| 3717 | + | |
| 3718 | + | |
| 3719 | + | |
| 3720 | + | |
| 3721 | + | |
| 3722 | + | |
| 3723 | + | |
| 3724 | + | |
| 3725 | + | |
| 3726 | + | |
| 3727 | + | |
| 3728 | + | |
| 3729 | + | |
| 3730 | + | |
3616 | 3731 | | |
3617 | 3732 | | |
3618 | 3733 | | |
| |||
0 commit comments