sbuild (Debian sbuild) 0.89.3+deb13u1 (16 August 2025) on +=====================================================================================+ | ruby-rubocop-ast 1.24.0-2+rebuild1766607576 (amd64) Wed, 24 Dec 2025 20:19:37 +0000 | +=====================================================================================+ Package: ruby-rubocop-ast Version: 1.24.0-2+rebuild1766607576 Source Version: 1.24.0-2+rebuild1766607576 Distribution: unstable Machine Architecture: amd64 Host Architecture: amd64 Build Architecture: amd64 Build Type: binary I: No tarballs found in /home/admin/.cache/sbuild I: Creating chroot on-demand by running: mmdebstrap --variant=buildd --arch=amd64 --skip=output/mknod --format=tar unstable - I: Unpacking tarball from STDIN to /tmp/tmp.sbuild._5FjJZI0pl... I: automatically chosen mode: unshare I: chroot architecture amd64 is equal to the host's architecture I: finding correct signed-by value... I: using /tmp/mmdebstrap.X3dJbulpWh as tempdir I: skipping output/mknod as requested for ./dev/console I: skipping output/mknod as requested for ./dev/full I: skipping output/mknod as requested for ./dev/null I: skipping output/mknod as requested for ./dev/ptmx I: skipping output/mknod as requested for ./dev/random I: skipping output/mknod as requested for ./dev/tty I: skipping output/mknod as requested for ./dev/urandom I: skipping output/mknod as requested for ./dev/zero I: running apt-get update... I: downloading packages with apt... I: extracting archives... I: installing essential packages... I: installing remaining packages inside the chroot... I: cleaning package lists and apt cache... I: creating tarball... I: done I: removing tempdir /tmp/mmdebstrap.X3dJbulpWh... I: success in 11.9971 seconds I: The chroot directory at /tmp/tmp.sbuild._5FjJZI0pl will be removed at the end of the build I: To avoid creating a new chroot from scratch every time, either: I: - place a chroot tarball at /home/admin/.cache/sbuild/unstable-amd64.tar and update it manually, for example by running: mmdebstrap --variant=buildd --arch=amd64 --skip=output/mknod --format=tar unstable /home/admin/.cache/sbuild/unstable-amd64.tar I: - or let sbuild take care of this via the setting UNSHARE_MMDEBSTRAP_KEEP_TARBALL by adding '$unshare_mmdebstrap_keep_tarball = 1;' to your ~/.config/sbuild/config.pl. I: - or completely disable this behaviour via the setting UNSHARE_MMDEBSTRAP_AUTO_CREATE by adding '$unshare_mmdebstrap_auto_create = 0;' to your ~/.config/sbuild/config.pl. I: Refer to UNSHARE_MMDEBSTRAP_KEEP_TARBALL in sbuild.conf(5) for more information I: Setting up the chroot... I: Creating chroot session... I: Setting up log color... I: Setting up apt archive... +------------------------------------------------------------------------------+ | Update chroot Wed, 24 Dec 2025 20:19:52 +0000 | +------------------------------------------------------------------------------+ Ign:1 file:/mass-rebuild ./ InRelease Get:2 file:/mass-rebuild ./ Release [1617 B] Get:2 file:/mass-rebuild ./ Release [1617 B] Ign:3 file:/mass-rebuild ./ Release.gpg Get:4 file:/mass-rebuild ./ Packages [70.4 kB] Get:5 http://deb.debian.org/debian unstable InRelease [187 kB] Get:6 http://deb.debian.org/debian experimental InRelease [90.7 kB] Get:7 http://deb.debian.org/debian unstable/main amd64 Packages [10.2 MB] Get:8 http://deb.debian.org/debian experimental/main amd64 Packages [432 kB] Get:9 http://incoming.debian.org/debian-buildd buildd-unstable InRelease [48.9 kB] Get:10 http://incoming.debian.org/debian-buildd buildd-unstable/main amd64 Packages [84.0 kB] Fetched 11.1 MB in 1s (9108 kB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... Calculating upgrade... The following packages will be upgraded: libselinux1 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/85.8 kB of archives. After this operation, 1024 B disk space will be freed. Get:1 file:/mass-rebuild ./ libselinux1 3.9-4+rebuild1766544377 [85.8 kB] (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 11800 files and directories currently installed.) Preparing to unpack .../libselinux1_3.9-4+rebuild1766544377_amd64.deb ... Unpacking libselinux1:amd64 (3.9-4+rebuild1766544377) over (3.9-4+b1) ... Setting up libselinux1:amd64 (3.9-4+rebuild1766544377) ... Processing triggers for libc-bin (2.42-6) ... +------------------------------------------------------------------------------+ | Fetch source files Wed, 24 Dec 2025 20:19:54 +0000 | +------------------------------------------------------------------------------+ Local sources ------------- /home/admin/mass-rebuild/builds/3/ruby-rubocop-ast/ruby-rubocop-ast_1.24.0-2+rebuild1766607576.dsc exists in /home/admin/mass-rebuild/builds/3/ruby-rubocop-ast; copying to chroot +------------------------------------------------------------------------------+ | Install package build dependencies Wed, 24 Dec 2025 20:19:55 +0000 | +------------------------------------------------------------------------------+ Setup apt archive ----------------- Merged Build-Depends: debhelper-compat (= 13), gem2deb (>= 1), racc, rake, ruby-oedipus-lex, ruby-rspec, ruby-whitequark-parser (>= 3.1.1.0), build-essential Filtered Build-Depends: debhelper-compat (= 13), gem2deb (>= 1), racc, rake, ruby-oedipus-lex, ruby-rspec, ruby-whitequark-parser (>= 3.1.1.0), build-essential dpkg-deb: building package 'sbuild-build-depends-main-dummy' in '/build/reproducible-path/resolver-Ri6kxi/apt_archive/sbuild-build-depends-main-dummy.deb'. Ign:1 copy:/build/reproducible-path/resolver-Ri6kxi/apt_archive ./ InRelease Get:2 copy:/build/reproducible-path/resolver-Ri6kxi/apt_archive ./ Release [609 B] Ign:3 copy:/build/reproducible-path/resolver-Ri6kxi/apt_archive ./ Release.gpg Get:4 copy:/build/reproducible-path/resolver-Ri6kxi/apt_archive ./ Sources [695 B] Get:5 copy:/build/reproducible-path/resolver-Ri6kxi/apt_archive ./ Packages [734 B] Fetched 2038 B in 0s (0 B/s) Reading package lists... Ign:1 file:/mass-rebuild ./ InRelease Get:2 file:/mass-rebuild ./ Release [1617 B] Get:2 file:/mass-rebuild ./ Release [1617 B] Ign:3 file:/mass-rebuild ./ Release.gpg Hit:4 http://deb.debian.org/debian experimental InRelease Hit:5 http://incoming.debian.org/debian-buildd buildd-unstable InRelease Reading package lists... Reading package lists... Install main build dependencies (apt-based resolver) ---------------------------------------------------- Installing build dependencies Reading package lists... Building dependency tree... Reading state information... Solving dependencies... The following additional packages will be installed: autoconf automake autopoint autotools-dev bsdextrautils ca-certificates debhelper dh-autoreconf dh-strip-nondeterminism dwz file gem2deb gem2deb-test-runner gettext gettext-base groff-base intltool-debian libarchive-zip-perl libdebhelper-perl libelf1t64 libffi8 libfile-stripnondeterminism-perl libgmp-dev libgmpxx4ldbl libmagic-mgc libmagic1t64 libpipeline1 libruby libruby3.3 libtool libuchardet0 libunistring5 libxml2-16 libyaml-0-2 m4 man-db openssl po-debconf racc rake ruby ruby-all-dev ruby-ast ruby-csv ruby-did-you-mean ruby-diff-lcs ruby-minitest ruby-net-telnet ruby-oedipus-lex ruby-power-assert ruby-rspec ruby-rspec-core ruby-rspec-expectations ruby-rspec-mocks ruby-rspec-support ruby-ruby2-keywords ruby-rubygems ruby-test-unit ruby-webrick ruby-whitequark-parser ruby-xmlrpc ruby3.3 ruby3.3-dev rubygems-integration sensible-utils Suggested packages: autoconf-archive gnu-standards autoconf-doc dh-make git-buildpackage pristine-tar gettext-doc libasprintf-dev libgettextpo-dev gnulib-l10n groff gmp-doc libgmp10-doc libmpfr-dev libtool-doc gfortran | fortran95-compiler m4-doc apparmor less www-browser libmail-box-perl ri ruby-dev bundler Recommended packages: apt-file debian-policy devscripts python3-debian curl | wget | lynx libarchive-cpio-perl ruby-sdbm libltdl-dev libmail-sendmail-perl zip fonts-lato libjs-jquery ruby3.3-doc The following NEW packages will be installed: autoconf automake autopoint autotools-dev bsdextrautils ca-certificates debhelper dh-autoreconf dh-strip-nondeterminism dwz file gem2deb gem2deb-test-runner gettext gettext-base groff-base intltool-debian libarchive-zip-perl libdebhelper-perl libelf1t64 libffi8 libfile-stripnondeterminism-perl libgmp-dev libgmpxx4ldbl libmagic-mgc libmagic1t64 libpipeline1 libruby libruby3.3 libtool libuchardet0 libunistring5 libxml2-16 libyaml-0-2 m4 man-db openssl po-debconf racc rake ruby ruby-all-dev ruby-ast ruby-csv ruby-did-you-mean ruby-diff-lcs ruby-minitest ruby-net-telnet ruby-oedipus-lex ruby-power-assert ruby-rspec ruby-rspec-core ruby-rspec-expectations ruby-rspec-mocks ruby-rspec-support ruby-ruby2-keywords ruby-rubygems ruby-test-unit ruby-webrick ruby-whitequark-parser ruby-xmlrpc ruby3.3 ruby3.3-dev rubygems-integration sbuild-build-depends-main-dummy sensible-utils 0 upgraded, 66 newly installed, 0 to remove and 0 not upgraded. Need to get 24.0 MB of archives. After this operation, 99.0 MB of additional disk space will be used. Get:1 copy:/build/reproducible-path/resolver-Ri6kxi/apt_archive ./ sbuild-build-depends-main-dummy 0.invalid.0 [912 B] Get:2 http://deb.debian.org/debian unstable/main amd64 sensible-utils all 0.0.26 [27.0 kB] Get:3 http://deb.debian.org/debian unstable/main amd64 openssl amd64 3.5.4-1 [1496 kB] Get:4 http://deb.debian.org/debian unstable/main amd64 ca-certificates all 20250419 [162 kB] Get:5 http://deb.debian.org/debian unstable/main amd64 libmagic-mgc amd64 1:5.46-5 [338 kB] Get:6 http://deb.debian.org/debian unstable/main amd64 libmagic1t64 amd64 1:5.46-5 [109 kB] Get:7 http://deb.debian.org/debian unstable/main amd64 file amd64 1:5.46-5 [43.6 kB] Get:8 http://deb.debian.org/debian unstable/main amd64 gettext-base amd64 0.23.2-1 [245 kB] Get:9 http://deb.debian.org/debian unstable/main amd64 libuchardet0 amd64 0.0.8-2 [68.5 kB] Get:10 http://deb.debian.org/debian unstable/main amd64 groff-base amd64 1.23.0-10 [1194 kB] Get:11 http://deb.debian.org/debian unstable/main amd64 bsdextrautils amd64 2.41.3-2 [98.9 kB] Get:12 http://deb.debian.org/debian unstable/main amd64 libpipeline1 amd64 1.5.8-2 [42.1 kB] Get:13 http://deb.debian.org/debian unstable/main amd64 man-db amd64 2.13.1-1 [1469 kB] Get:14 http://deb.debian.org/debian unstable/main amd64 m4 amd64 1.4.20-2 [325 kB] Get:15 http://deb.debian.org/debian unstable/main amd64 autoconf all 2.72-3.1 [494 kB] Get:16 http://deb.debian.org/debian unstable/main amd64 autotools-dev all 20240727.1 [60.2 kB] Get:17 http://deb.debian.org/debian unstable/main amd64 automake all 1:1.18.1-3 [878 kB] Get:18 http://deb.debian.org/debian unstable/main amd64 autopoint all 0.23.2-1 [772 kB] Get:19 http://deb.debian.org/debian unstable/main amd64 libdebhelper-perl all 13.29 [92.6 kB] Get:20 http://deb.debian.org/debian unstable/main amd64 libtool all 2.5.4-9 [540 kB] Get:21 http://deb.debian.org/debian unstable/main amd64 dh-autoreconf all 21 [12.2 kB] Get:22 http://deb.debian.org/debian unstable/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get:23 http://deb.debian.org/debian unstable/main amd64 libfile-stripnondeterminism-perl all 1.15.0-1 [19.9 kB] Get:24 http://deb.debian.org/debian unstable/main amd64 dh-strip-nondeterminism all 1.15.0-1 [8812 B] Get:25 http://deb.debian.org/debian unstable/main amd64 libelf1t64 amd64 0.194-1 [185 kB] Get:26 http://deb.debian.org/debian unstable/main amd64 dwz amd64 0.16-2 [108 kB] Get:27 http://deb.debian.org/debian unstable/main amd64 libunistring5 amd64 1.3-2 [477 kB] Get:28 http://deb.debian.org/debian unstable/main amd64 libxml2-16 amd64 2.15.1+dfsg-2+b1 [641 kB] Get:29 http://deb.debian.org/debian unstable/main amd64 gettext amd64 0.23.2-1 [1687 kB] Get:30 http://deb.debian.org/debian unstable/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get:31 http://deb.debian.org/debian unstable/main amd64 po-debconf all 1.0.22 [216 kB] Get:32 http://deb.debian.org/debian unstable/main amd64 debhelper all 13.29 [943 kB] Get:33 http://deb.debian.org/debian unstable/main amd64 rubygems-integration all 1.19 [5488 B] Get:34 http://deb.debian.org/debian unstable/main amd64 ruby-csv all 3.3.4-1 [42.2 kB] Get:35 http://deb.debian.org/debian unstable/main amd64 ruby-did-you-mean all 1.6.3-2 [20.9 kB] Get:36 http://deb.debian.org/debian unstable/main amd64 ruby-net-telnet all 0.2.0-1 [13.1 kB] Get:37 http://deb.debian.org/debian unstable/main amd64 ruby-ruby2-keywords all 0.0.5-1 [4300 B] Get:38 http://deb.debian.org/debian unstable/main amd64 ruby-webrick all 1.9.1-1 [59.6 kB] Get:39 http://deb.debian.org/debian unstable/main amd64 ruby-xmlrpc all 0.3.3-2 [24.4 kB] Get:40 http://deb.debian.org/debian unstable/main amd64 libffi8 amd64 3.5.2-3 [26.1 kB] Get:41 http://deb.debian.org/debian unstable/main amd64 libyaml-0-2 amd64 0.2.5-2+b1 [53.8 kB] Get:42 http://deb.debian.org/debian unstable/main amd64 libruby3.3 amd64 3.3.8-2 [6301 kB] Get:43 http://deb.debian.org/debian unstable/main amd64 ruby3.3 amd64 3.3.8-2 [834 kB] Get:44 http://deb.debian.org/debian unstable/main amd64 libruby amd64 1:3.3+b1 [5440 B] Get:45 http://deb.debian.org/debian unstable/main amd64 ruby-rubygems all 3.6.7-2 [407 kB] Get:46 http://deb.debian.org/debian unstable/main amd64 ruby amd64 1:3.3+b1 [6560 B] Get:47 http://deb.debian.org/debian unstable/main amd64 rake all 13.2.1-1 [65.2 kB] Get:48 http://deb.debian.org/debian unstable/main amd64 ruby-minitest all 5.26.1-1 [67.3 kB] Get:49 http://deb.debian.org/debian unstable/main amd64 ruby-power-assert all 2.0.5-1 [11.7 kB] Get:50 http://deb.debian.org/debian unstable/main amd64 ruby-test-unit all 3.6.2-1 [79.1 kB] Get:51 http://deb.debian.org/debian unstable/main amd64 gem2deb-test-runner amd64 2.2.6 [18.4 kB] Get:52 http://deb.debian.org/debian unstable/main amd64 libgmpxx4ldbl amd64 2:6.3.0+dfsg-5 [330 kB] Get:53 http://deb.debian.org/debian unstable/main amd64 libgmp-dev amd64 2:6.3.0+dfsg-5 [658 kB] Get:54 http://deb.debian.org/debian unstable/main amd64 ruby3.3-dev amd64 3.3.8-2 [1045 kB] Get:55 http://deb.debian.org/debian unstable/main amd64 ruby-all-dev amd64 1:3.3+b1 [6496 B] Get:56 http://deb.debian.org/debian unstable/main amd64 gem2deb amd64 2.2.6 [48.3 kB] Get:57 http://deb.debian.org/debian unstable/main amd64 racc all 1.8.1-2 [75.6 kB] Get:58 http://deb.debian.org/debian unstable/main amd64 ruby-ast all 2.4.3-1 [10.7 kB] Get:59 http://deb.debian.org/debian unstable/main amd64 ruby-diff-lcs all 1.6.2-1 [29.8 kB] Get:60 http://deb.debian.org/debian unstable/main amd64 ruby-oedipus-lex all 2.6.2-1 [19.2 kB] Get:61 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-support all 3.13.0c0e0m0s1-2 [28.5 kB] Get:62 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB] Get:63 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get:64 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get:65 http://deb.debian.org/debian unstable/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get:66 http://deb.debian.org/debian unstable/main amd64 ruby-whitequark-parser all 3.3.4.2-2 [507 kB] Preconfiguring packages ... Fetched 24.0 MB in 0s (67.6 MB/s) Selecting previously unselected package sensible-utils. (Reading database ... 11799 files and directories currently installed.) Preparing to unpack .../00-sensible-utils_0.0.26_all.deb ... Unpacking sensible-utils (0.0.26) ... Selecting previously unselected package openssl. Preparing to unpack .../01-openssl_3.5.4-1_amd64.deb ... Unpacking openssl (3.5.4-1) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../02-ca-certificates_20250419_all.deb ... Unpacking ca-certificates (20250419) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../03-libmagic-mgc_1%3a5.46-5_amd64.deb ... Unpacking libmagic-mgc (1:5.46-5) ... Selecting previously unselected package libmagic1t64:amd64. Preparing to unpack .../04-libmagic1t64_1%3a5.46-5_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.46-5) ... Selecting previously unselected package file. Preparing to unpack .../05-file_1%3a5.46-5_amd64.deb ... Unpacking file (1:5.46-5) ... Selecting previously unselected package gettext-base. Preparing to unpack .../06-gettext-base_0.23.2-1_amd64.deb ... Unpacking gettext-base (0.23.2-1) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../07-libuchardet0_0.0.8-2_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.8-2) ... Selecting previously unselected package groff-base. Preparing to unpack .../08-groff-base_1.23.0-10_amd64.deb ... Unpacking groff-base (1.23.0-10) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../09-bsdextrautils_2.41.3-2_amd64.deb ... Unpacking bsdextrautils (2.41.3-2) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../10-libpipeline1_1.5.8-2_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-2) ... Selecting previously unselected package man-db. Preparing to unpack .../11-man-db_2.13.1-1_amd64.deb ... Unpacking man-db (2.13.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../12-m4_1.4.20-2_amd64.deb ... Unpacking m4 (1.4.20-2) ... Selecting previously unselected package autoconf. Preparing to unpack .../13-autoconf_2.72-3.1_all.deb ... Unpacking autoconf (2.72-3.1) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../14-autotools-dev_20240727.1_all.deb ... Unpacking autotools-dev (20240727.1) ... Selecting previously unselected package automake. Preparing to unpack .../15-automake_1%3a1.18.1-3_all.deb ... Unpacking automake (1:1.18.1-3) ... Selecting previously unselected package autopoint. Preparing to unpack .../16-autopoint_0.23.2-1_all.deb ... Unpacking autopoint (0.23.2-1) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../17-libdebhelper-perl_13.29_all.deb ... Unpacking libdebhelper-perl (13.29) ... Selecting previously unselected package libtool. Preparing to unpack .../18-libtool_2.5.4-9_all.deb ... Unpacking libtool (2.5.4-9) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../19-dh-autoreconf_21_all.deb ... Unpacking dh-autoreconf (21) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../20-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../21-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../22-dh-strip-nondeterminism_1.15.0-1_all.deb ... Unpacking dh-strip-nondeterminism (1.15.0-1) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../23-libelf1t64_0.194-1_amd64.deb ... Unpacking libelf1t64:amd64 (0.194-1) ... Selecting previously unselected package dwz. Preparing to unpack .../24-dwz_0.16-2_amd64.deb ... Unpacking dwz (0.16-2) ... Selecting previously unselected package libunistring5:amd64. Preparing to unpack .../25-libunistring5_1.3-2_amd64.deb ... Unpacking libunistring5:amd64 (1.3-2) ... Selecting previously unselected package libxml2-16:amd64. Preparing to unpack .../26-libxml2-16_2.15.1+dfsg-2+b1_amd64.deb ... Unpacking libxml2-16:amd64 (2.15.1+dfsg-2+b1) ... Selecting previously unselected package gettext. Preparing to unpack .../27-gettext_0.23.2-1_amd64.deb ... Unpacking gettext (0.23.2-1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../28-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../29-po-debconf_1.0.22_all.deb ... Unpacking po-debconf (1.0.22) ... Selecting previously unselected package debhelper. Preparing to unpack .../30-debhelper_13.29_all.deb ... Unpacking debhelper (13.29) ... Selecting previously unselected package rubygems-integration. Preparing to unpack .../31-rubygems-integration_1.19_all.deb ... Unpacking rubygems-integration (1.19) ... Selecting previously unselected package ruby-csv. Preparing to unpack .../32-ruby-csv_3.3.4-1_all.deb ... Unpacking ruby-csv (3.3.4-1) ... Selecting previously unselected package ruby-did-you-mean. Preparing to unpack .../33-ruby-did-you-mean_1.6.3-2_all.deb ... Unpacking ruby-did-you-mean (1.6.3-2) ... Selecting previously unselected package ruby-net-telnet. Preparing to unpack .../34-ruby-net-telnet_0.2.0-1_all.deb ... Unpacking ruby-net-telnet (0.2.0-1) ... Selecting previously unselected package ruby-ruby2-keywords. Preparing to unpack .../35-ruby-ruby2-keywords_0.0.5-1_all.deb ... Unpacking ruby-ruby2-keywords (0.0.5-1) ... Selecting previously unselected package ruby-webrick. Preparing to unpack .../36-ruby-webrick_1.9.1-1_all.deb ... Unpacking ruby-webrick (1.9.1-1) ... Selecting previously unselected package ruby-xmlrpc. Preparing to unpack .../37-ruby-xmlrpc_0.3.3-2_all.deb ... Unpacking ruby-xmlrpc (0.3.3-2) ... Selecting previously unselected package libffi8:amd64. Preparing to unpack .../38-libffi8_3.5.2-3_amd64.deb ... Unpacking libffi8:amd64 (3.5.2-3) ... Selecting previously unselected package libyaml-0-2:amd64. Preparing to unpack .../39-libyaml-0-2_0.2.5-2+b1_amd64.deb ... Unpacking libyaml-0-2:amd64 (0.2.5-2+b1) ... Selecting previously unselected package libruby3.3:amd64. Preparing to unpack .../40-libruby3.3_3.3.8-2_amd64.deb ... Unpacking libruby3.3:amd64 (3.3.8-2) ... Selecting previously unselected package ruby3.3. Preparing to unpack .../41-ruby3.3_3.3.8-2_amd64.deb ... Unpacking ruby3.3 (3.3.8-2) ... Selecting previously unselected package libruby:amd64. Preparing to unpack .../42-libruby_1%3a3.3+b1_amd64.deb ... Unpacking libruby:amd64 (1:3.3+b1) ... Selecting previously unselected package ruby-rubygems. Preparing to unpack .../43-ruby-rubygems_3.6.7-2_all.deb ... Unpacking ruby-rubygems (3.6.7-2) ... Selecting previously unselected package ruby. Preparing to unpack .../44-ruby_1%3a3.3+b1_amd64.deb ... Unpacking ruby (1:3.3+b1) ... Selecting previously unselected package rake. Preparing to unpack .../45-rake_13.2.1-1_all.deb ... Unpacking rake (13.2.1-1) ... Selecting previously unselected package ruby-minitest. Preparing to unpack .../46-ruby-minitest_5.26.1-1_all.deb ... Unpacking ruby-minitest (5.26.1-1) ... Selecting previously unselected package ruby-power-assert. Preparing to unpack .../47-ruby-power-assert_2.0.5-1_all.deb ... Unpacking ruby-power-assert (2.0.5-1) ... Selecting previously unselected package ruby-test-unit. Preparing to unpack .../48-ruby-test-unit_3.6.2-1_all.deb ... Unpacking ruby-test-unit (3.6.2-1) ... Selecting previously unselected package gem2deb-test-runner. Preparing to unpack .../49-gem2deb-test-runner_2.2.6_amd64.deb ... Unpacking gem2deb-test-runner (2.2.6) ... Selecting previously unselected package libgmpxx4ldbl:amd64. Preparing to unpack .../50-libgmpxx4ldbl_2%3a6.3.0+dfsg-5_amd64.deb ... Unpacking libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-5) ... Selecting previously unselected package libgmp-dev:amd64. Preparing to unpack .../51-libgmp-dev_2%3a6.3.0+dfsg-5_amd64.deb ... Unpacking libgmp-dev:amd64 (2:6.3.0+dfsg-5) ... Selecting previously unselected package ruby3.3-dev:amd64. Preparing to unpack .../52-ruby3.3-dev_3.3.8-2_amd64.deb ... Unpacking ruby3.3-dev:amd64 (3.3.8-2) ... Selecting previously unselected package ruby-all-dev:amd64. Preparing to unpack .../53-ruby-all-dev_1%3a3.3+b1_amd64.deb ... Unpacking ruby-all-dev:amd64 (1:3.3+b1) ... Selecting previously unselected package gem2deb. Preparing to unpack .../54-gem2deb_2.2.6_amd64.deb ... Unpacking gem2deb (2.2.6) ... Selecting previously unselected package racc. Preparing to unpack .../55-racc_1.8.1-2_all.deb ... Unpacking racc (1.8.1-2) ... Selecting previously unselected package ruby-ast. Preparing to unpack .../56-ruby-ast_2.4.3-1_all.deb ... Unpacking ruby-ast (2.4.3-1) ... Selecting previously unselected package ruby-diff-lcs. Preparing to unpack .../57-ruby-diff-lcs_1.6.2-1_all.deb ... Unpacking ruby-diff-lcs (1.6.2-1) ... Selecting previously unselected package ruby-oedipus-lex. Preparing to unpack .../58-ruby-oedipus-lex_2.6.2-1_all.deb ... Unpacking ruby-oedipus-lex (2.6.2-1) ... Selecting previously unselected package ruby-rspec-support. Preparing to unpack .../59-ruby-rspec-support_3.13.0c0e0m0s1-2_all.deb ... Unpacking ruby-rspec-support (3.13.0c0e0m0s1-2) ... Selecting previously unselected package ruby-rspec-core. Preparing to unpack .../60-ruby-rspec-core_3.13.0c0e0m0s1-2_all.deb ... Unpacking ruby-rspec-core (3.13.0c0e0m0s1-2) ... Selecting previously unselected package ruby-rspec-expectations. Preparing to unpack .../61-ruby-rspec-expectations_3.13.0c0e0m0s1-2_all.deb ... Unpacking ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... Selecting previously unselected package ruby-rspec-mocks. Preparing to unpack .../62-ruby-rspec-mocks_3.13.0c0e0m0s1-2_all.deb ... Unpacking ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... Selecting previously unselected package ruby-rspec. Preparing to unpack .../63-ruby-rspec_3.13.0c0e0m0s1-2_all.deb ... Unpacking ruby-rspec (3.13.0c0e0m0s1-2) ... Selecting previously unselected package ruby-whitequark-parser. Preparing to unpack .../64-ruby-whitequark-parser_3.3.4.2-2_all.deb ... Unpacking ruby-whitequark-parser (3.3.4.2-2) ... Selecting previously unselected package sbuild-build-depends-main-dummy. Preparing to unpack .../65-sbuild-build-depends-main-dummy_0.invalid.0_amd64.deb ... Unpacking sbuild-build-depends-main-dummy (0.invalid.0) ... Setting up libpipeline1:amd64 (1.5.8-2) ... Setting up ruby-ruby2-keywords (0.0.5-1) ... Setting up ruby-oedipus-lex (2.6.2-1) ... Setting up bsdextrautils (2.41.3-2) ... Setting up ruby-power-assert (2.0.5-1) ... Setting up libmagic-mgc (1:5.46-5) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libyaml-0-2:amd64 (0.2.5-2+b1) ... Setting up libxml2-16:amd64 (2.15.1+dfsg-2+b1) ... Setting up libdebhelper-perl (13.29) ... Setting up libmagic1t64:amd64 (1:5.46-5) ... Setting up gettext-base (0.23.2-1) ... Setting up m4 (1.4.20-2) ... Setting up file (1:5.46-5) ... Setting up libelf1t64:amd64 (0.194-1) ... Setting up ruby-minitest (5.26.1-1) ... Setting up autotools-dev (20240727.1) ... Setting up libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-5) ... Setting up ruby-test-unit (3.6.2-1) ... Setting up ruby-ast (2.4.3-1) ... Setting up ruby-net-telnet (0.2.0-1) ... Setting up ruby-csv (3.3.4-1) ... Setting up libunistring5:amd64 (1.3-2) ... Setting up autopoint (0.23.2-1) ... Setting up autoconf (2.72-3.1) ... Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ... Setting up ruby-webrick (1.9.1-1) ... Setting up libffi8:amd64 (3.5.2-3) ... Setting up dwz (0.16-2) ... Setting up sensible-utils (0.0.26) ... Setting up libuchardet0:amd64 (0.0.8-2) ... Setting up ruby-did-you-mean (1.6.3-2) ... Setting up openssl (3.5.4-1) ... Setting up ruby-xmlrpc (0.3.3-2) ... Setting up automake (1:1.18.1-3) ... update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... Setting up gettext (0.23.2-1) ... Setting up libgmp-dev:amd64 (2:6.3.0+dfsg-5) ... Setting up libtool (2.5.4-9) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (21) ... Setting up ca-certificates (20250419) ... Updating certificates in /etc/ssl/certs... 150 added, 0 removed; done. Setting up dh-strip-nondeterminism (1.15.0-1) ... Setting up groff-base (1.23.0-10) ... Setting up po-debconf (1.0.22) ... Setting up rubygems-integration (1.19) ... Setting up man-db (2.13.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up debhelper (13.29) ... Setting up rake (13.2.1-1) ... Setting up libruby3.3:amd64 (3.3.8-2) ... Setting up ruby-rubygems (3.6.7-2) ... Setting up ruby3.3-dev:amd64 (3.3.8-2) ... Setting up ruby3.3 (3.3.8-2) ... Setting up libruby:amd64 (1:3.3+b1) ... Setting up ruby-all-dev:amd64 (1:3.3+b1) ... Setting up ruby (1:3.3+b1) ... Setting up racc (1.8.1-2) ... Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ... Setting up ruby-diff-lcs (1.6.2-1) ... Setting up ruby-whitequark-parser (3.3.4.2-2) ... Setting up gem2deb-test-runner (2.2.6) ... Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... Setting up gem2deb (2.2.6) ... Setting up ruby-rspec (3.13.0c0e0m0s1-2) ... Setting up sbuild-build-depends-main-dummy (0.invalid.0) ... Processing triggers for libc-bin (2.42-6) ... Processing triggers for ca-certificates (20250419) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. +------------------------------------------------------------------------------+ | Check architectures Wed, 24 Dec 2025 20:20:03 +0000 | +------------------------------------------------------------------------------+ Arch check ok (amd64 included in all) +------------------------------------------------------------------------------+ | Build environment Wed, 24 Dec 2025 20:20:03 +0000 | +------------------------------------------------------------------------------+ Kernel: Linux 6.12.57+deb13-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.57-1 (2025-11-05) amd64 (x86_64) Toolchain package versions: binutils_2.45.50.20251209-1 dpkg-dev_1.23.3 g++-15_15.2.0-12 gcc-15_15.2.0-12 libc6-dev_2.42-6 libstdc++-15-dev_15.2.0-12 libstdc++6_15.2.0-12 linux-libc-dev_6.17.13-1 Package versions: apt_3.1.12 autoconf_2.72-3.1 automake_1:1.18.1-3 autopoint_0.23.2-1 autotools-dev_20240727.1 base-files_14 base-passwd_3.6.8 bash_5.3-1 binutils_2.45.50.20251209-1 binutils-common_2.45.50.20251209-1 binutils-x86-64-linux-gnu_2.45.50.20251209-1 bsdextrautils_2.41.3-2 build-essential_12.12 bzip2_1.0.8-6 ca-certificates_20250419 coreutils_9.7-3 cpp_4:15.2.0-4 cpp-15_15.2.0-12 cpp-15-x86-64-linux-gnu_15.2.0-12 cpp-x86-64-linux-gnu_4:15.2.0-4 dash_0.5.12-12 debconf_1.5.91 debhelper_13.29 debian-archive-keyring_2025.1 debianutils_5.23.2 dh-autoreconf_21 dh-strip-nondeterminism_1.15.0-1 diffutils_1:3.12-1 dpkg_1.23.3 dpkg-dev_1.23.3 dwz_0.16-2 file_1:5.46-5 findutils_4.10.0-3 g++_4:15.2.0-4 g++-15_15.2.0-12 g++-15-x86-64-linux-gnu_15.2.0-12 g++-x86-64-linux-gnu_4:15.2.0-4 gcc_4:15.2.0-4 gcc-15_15.2.0-12 gcc-15-base_15.2.0-12 gcc-15-x86-64-linux-gnu_15.2.0-12 gcc-x86-64-linux-gnu_4:15.2.0-4 gem2deb_2.2.6 gem2deb-test-runner_2.2.6 gettext_0.23.2-1 gettext-base_0.23.2-1 grep_3.12-1 groff-base_1.23.0-10 gzip_1.13-1 hostname_3.25 init-system-helpers_1.69 intltool-debian_0.35.0+20060710.6 libacl1_2.3.2-2+b1 libapt-pkg7.0_3.1.12 libarchive-zip-perl_1.68-1 libasan8_15.2.0-12 libatomic1_15.2.0-12 libattr1_1:2.5.2-3 libaudit-common_1:4.1.2-1 libaudit1_1:4.1.2-1+b1 libbinutils_2.45.50.20251209-1 libblkid1_2.41.3-2 libbz2-1.0_1.0.8-6 libc-bin_2.42-6 libc-dev-bin_2.42-6 libc-gconv-modules-extra_2.42-6 libc6_2.42-6 libc6-dev_2.42-6 libcap-ng0_0.8.5-4+b2 libcap2_1:2.75-10+b5 libcc1-0_15.2.0-12 libcrypt-dev_1:4.5.1-1 libcrypt1_1:4.5.1-1 libctf-nobfd0_2.45.50.20251209-1 libctf0_2.45.50.20251209-1 libdb5.3t64_5.3.28+dfsg2-11 libdebconfclient0_0.282+b2 libdebhelper-perl_13.29 libdpkg-perl_1.23.3 libelf1t64_0.194-1 libffi8_3.5.2-3 libfile-stripnondeterminism-perl_1.15.0-1 libgcc-15-dev_15.2.0-12 libgcc-s1_15.2.0-12 libgdbm-compat4t64_1.26-1 libgdbm6t64_1.26-1 libgmp-dev_2:6.3.0+dfsg-5 libgmp10_2:6.3.0+dfsg-5 libgmpxx4ldbl_2:6.3.0+dfsg-5 libgomp1_15.2.0-12 libgprofng0_2.45.50.20251209-1 libhogweed6t64_3.10.2-1 libhwasan0_15.2.0-12 libisl23_0.27-1 libitm1_15.2.0-12 libjansson4_2.14-2+b4 liblsan0_15.2.0-12 liblz4-1_1.10.0-6 liblzma5_5.8.1-2 libmagic-mgc_1:5.46-5 libmagic1t64_1:5.46-5 libmd0_1.1.0-2+b1 libmount1_2.41.3-2 libmpc3_1.3.1-2 libmpfr6_4.2.2-2 libnettle8t64_3.10.2-1 libpam-modules_1.7.0-5 libpam-modules-bin_1.7.0-5 libpam-runtime_1.7.0-5 libpam0g_1.7.0-5 libpcre2-8-0_10.46-1 libperl5.40_5.40.1-7 libpipeline1_1.5.8-2 libquadmath0_15.2.0-12 libruby_1:3.3+b1 libruby3.3_3.3.8-2 libseccomp2_2.6.0-2+b1 libselinux1_3.9-4+rebuild1766544377 libsframe2_2.45.50.20251209-1 libsmartcols1_2.41.3-2 libssl3t64_3.5.4-1 libstdc++-15-dev_15.2.0-12 libstdc++6_15.2.0-12 libsystemd0_259-1 libtinfo6_6.5+20251123-1 libtool_2.5.4-9 libtsan2_15.2.0-12 libubsan1_15.2.0-12 libuchardet0_0.0.8-2 libudev1_259-1 libunistring5_1.3-2 libuuid1_2.41.3-2 libxml2-16_2.15.1+dfsg-2+b1 libxxhash0_0.8.3-2 libyaml-0-2_0.2.5-2+b1 libzstd1_1.5.7+dfsg-2 linux-libc-dev_6.17.13-1 m4_1.4.20-2 make_4.4.1-3 man-db_2.13.1-1 mawk_1.3.4.20250131-2 ncurses-base_6.5+20251123-1 ncurses-bin_6.5+20251123-1 openssl_3.5.4-1 openssl-provider-legacy_3.5.4-1 patch_2.8-2 perl_5.40.1-7 perl-base_5.40.1-7 perl-modules-5.40_5.40.1-7 po-debconf_1.0.22 racc_1.8.1-2 rake_13.2.1-1 rpcsvc-proto_1.4.3-1 ruby_1:3.3+b1 ruby-all-dev_1:3.3+b1 ruby-ast_2.4.3-1 ruby-csv_3.3.4-1 ruby-did-you-mean_1.6.3-2 ruby-diff-lcs_1.6.2-1 ruby-minitest_5.26.1-1 ruby-net-telnet_0.2.0-1 ruby-oedipus-lex_2.6.2-1 ruby-power-assert_2.0.5-1 ruby-rspec_3.13.0c0e0m0s1-2 ruby-rspec-core_3.13.0c0e0m0s1-2 ruby-rspec-expectations_3.13.0c0e0m0s1-2 ruby-rspec-mocks_3.13.0c0e0m0s1-2 ruby-rspec-support_3.13.0c0e0m0s1-2 ruby-ruby2-keywords_0.0.5-1 ruby-rubygems_3.6.7-2 ruby-test-unit_3.6.2-1 ruby-webrick_1.9.1-1 ruby-whitequark-parser_3.3.4.2-2 ruby-xmlrpc_0.3.3-2 ruby3.3_3.3.8-2 ruby3.3-dev_3.3.8-2 rubygems-integration_1.19 sbuild-build-depends-main-dummy_0.invalid.0 sed_4.9-2 sensible-utils_0.0.26 sqv_1.3.0-5 sysvinit-utils_3.15-6 tar_1.35+dfsg-3.1 util-linux_2.41.3-2 xz-utils_5.8.1-2 zlib1g_1:1.3.dfsg+really1.3.1-1+b2 +------------------------------------------------------------------------------+ | Build Wed, 24 Dec 2025 20:20:03 +0000 | +------------------------------------------------------------------------------+ Unpack source ------------- Format: 3.0 (quilt) Source: ruby-rubocop-ast Binary: ruby-rubocop-ast Architecture: all Version: 1.24.0-2+rebuild1766607576 Maintainer: Debian Ruby Team Uploaders: Antonio Terceiro , Utkarsh Gupta Homepage: https://github.com/rubocop/rubocop-ast Standards-Version: 4.6.1 Vcs-Browser: https://salsa.debian.org/ruby-team/ruby-rubocop-ast Vcs-Git: https://salsa.debian.org/ruby-team/ruby-rubocop-ast.git Testsuite: autopkgtest-pkg-ruby Build-Depends: debhelper-compat (= 13), gem2deb (>= 1), racc, rake, ruby-oedipus-lex, ruby-rspec, ruby-whitequark-parser (>= 3.1.1.0) Package-List: ruby-rubocop-ast deb ruby optional arch=all Checksums-Sha1: 4f979a247f95a082504e80645154f4a4b30e5caf 128125 ruby-rubocop-ast_1.24.0.orig.tar.gz c20d96cd111be3f54e6dc5bead055d926a6ae5ea 3668 ruby-rubocop-ast_1.24.0-2+rebuild1766607576.debian.tar.xz Checksums-Sha256: feadaaa1a1f0675e43c64a06a356645521e3c5da944b69f1303a89d70f0fd97d 128125 ruby-rubocop-ast_1.24.0.orig.tar.gz 2f5e11e854cdd2961686eee4502d00fd09404cd42618ebcf25799eb7a4d5daec 3668 ruby-rubocop-ast_1.24.0-2+rebuild1766607576.debian.tar.xz Files: c1f6cccee88a2266c9d5404090c89202 128125 ruby-rubocop-ast_1.24.0.orig.tar.gz 97a9b4232095a267d7c9592c492e5bb6 3668 ruby-rubocop-ast_1.24.0-2+rebuild1766607576.debian.tar.xz Ruby-Versions: all dpkg-source: warning: extracting unsigned source package (ruby-rubocop-ast_1.24.0-2+rebuild1766607576.dsc) dpkg-source: info: extracting ruby-rubocop-ast in /build/reproducible-path/ruby-rubocop-ast-1.24.0 dpkg-source: info: unpacking ruby-rubocop-ast_1.24.0.orig.tar.gz dpkg-source: info: unpacking ruby-rubocop-ast_1.24.0-2+rebuild1766607576.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying 0001-gemspec-drop-git-usage.patch dpkg-source: info: applying 0002-Fix-compile-task.patch Check disk space ---------------- Sufficient free space for build +------------------------------------------------------------------------------+ | Starting Timed Build Commands Wed, 24 Dec 2025 20:20:04 +0000 | +------------------------------------------------------------------------------+ apt-get update -q && apt-get install -t experimental -qy ruby-all-dev --------------------------------------------------------------------- Ign:1 copy:/build/reproducible-path/resolver-Ri6kxi/apt_archive ./ InRelease Ign:2 file:/mass-rebuild ./ InRelease Get:3 file:/mass-rebuild ./ Release [1617 B] Get:4 copy:/build/reproducible-path/resolver-Ri6kxi/apt_archive ./ Release [609 B] Ign:5 copy:/build/reproducible-path/resolver-Ri6kxi/apt_archive ./ Release.gpg Get:3 file:/mass-rebuild ./ Release [1617 B] Ign:6 file:/mass-rebuild ./ Release.gpg Hit:7 http://deb.debian.org/debian unstable InRelease Hit:8 http://deb.debian.org/debian experimental InRelease Hit:9 http://incoming.debian.org/debian-buildd buildd-unstable InRelease Fetched 609 B in 0s (4061 B/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... Solving dependencies... The following additional packages will be installed: libruby3.4 ruby3.4 ruby3.4-dev Recommended packages: ruby-sdbm fonts-lato libjs-jquery ruby3.4-doc The following NEW packages will be installed: libruby3.4 ruby3.4 ruby3.4-dev The following packages will be upgraded: ruby-all-dev 1 upgraded, 3 newly installed, 0 to remove and 26 not upgraded. Need to get 8784 kB of archives. After this operation, 36.3 MB of additional disk space will be used. Get:1 http://deb.debian.org/debian experimental/main amd64 libruby3.4 amd64 3.4.5-1~exp1 [6731 kB] Get:2 http://deb.debian.org/debian experimental/main amd64 ruby3.4 amd64 3.4.5-1~exp1 [920 kB] Get:3 http://deb.debian.org/debian experimental/main amd64 ruby3.4-dev amd64 3.4.5-1~exp1 [1127 kB] Get:4 http://deb.debian.org/debian experimental/main amd64 ruby-all-dev amd64 1:3.3+support3.4~0 [6292 B] debconf: unable to initialize frontend: Dialog debconf: (TERM is not set, so the dialog frontend is not usable.) debconf: falling back to frontend: Readline Fetched 8784 kB in 0s (95.7 MB/s) Selecting previously unselected package libruby3.4:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 18923 files and directories currently installed.) Preparing to unpack .../libruby3.4_3.4.5-1~exp1_amd64.deb ... Unpacking libruby3.4:amd64 (3.4.5-1~exp1) ... Selecting previously unselected package ruby3.4. Preparing to unpack .../ruby3.4_3.4.5-1~exp1_amd64.deb ... Unpacking ruby3.4 (3.4.5-1~exp1) ... Selecting previously unselected package ruby3.4-dev:amd64. Preparing to unpack .../ruby3.4-dev_3.4.5-1~exp1_amd64.deb ... Unpacking ruby3.4-dev:amd64 (3.4.5-1~exp1) ... Preparing to unpack .../ruby-all-dev_1%3a3.3+support3.4~0_amd64.deb ... Unpacking ruby-all-dev:amd64 (1:3.3+support3.4~0) over (1:3.3+b1) ... Setting up libruby3.4:amd64 (3.4.5-1~exp1) ... Setting up ruby3.4 (3.4.5-1~exp1) ... Setting up ruby3.4-dev:amd64 (3.4.5-1~exp1) ... Setting up ruby-all-dev:amd64 (1:3.3+support3.4~0) ... Processing triggers for man-db (2.13.1-1) ... Not building database; man-db/auto-update is not 'true'. Processing triggers for libc-bin (2.42-6) ... I: Finished running 'apt-get update -q && apt-get install -t experimental -qy ruby-all-dev'. Finished processing commands. -------------------------------------------------------------------------------- User Environment ---------------- APT_CONFIG=/var/lib/sbuild/apt.conf HOME=/sbuild-nonexistent LANG=C.UTF-8 LC_ADDRESS=pt_BR.UTF-8 LC_ALL=C.UTF-8 LC_IDENTIFICATION=pt_BR.UTF-8 LC_MEASUREMENT=pt_BR.UTF-8 LC_MONETARY=pt_BR.UTF-8 LC_NAME=pt_BR.UTF-8 LC_NUMERIC=pt_BR.UTF-8 LC_PAPER=pt_BR.UTF-8 LC_TELEPHONE=pt_BR.UTF-8 LC_TIME=pt_BR.UTF-8 LOGNAME=sbuild PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games SHELL=/bin/sh USER=sbuild dpkg-buildpackage ----------------- Command: dpkg-buildpackage --sanitize-env -us -uc -mAutomated rebuild -b dpkg-buildpackage: info: source package ruby-rubocop-ast dpkg-buildpackage: info: source version 1.24.0-2+rebuild1766607576 dpkg-buildpackage: info: source distribution UNRELEASED dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 debian/rules clean dh clean --buildsystem=ruby --with ruby dh_auto_clean -O--buildsystem=ruby dh_ruby --clean W: XS-Ruby-Versions is deprecated, and will be ignored dh_autoreconf_clean -O--buildsystem=ruby dh_clean -O--buildsystem=ruby debian/rules binary dh binary --buildsystem=ruby --with ruby dh_update_autotools_config -O--buildsystem=ruby dh_autoreconf -O--buildsystem=ruby dh_auto_configure -O--buildsystem=ruby dh_ruby --configure debian/rules override_dh_auto_build make[1]: Entering directory '/build/reproducible-path/ruby-rubocop-ast-1.24.0' rake -f tasks/compile.rake generate Generating lib/rubocop/ast/node_pattern/lexer.rex.rb from lib/rubocop/ast/node_pattern/lexer.rex racc -l -v -o lib/rubocop/ast/node_pattern/parser.racc.rb lib/rubocop/ast/node_pattern/parser.y dh_auto_build dh_ruby --build make[1]: Leaving directory '/build/reproducible-path/ruby-rubocop-ast-1.24.0' dh_auto_test -O--buildsystem=ruby dh_ruby --test create-stamp debian/debhelper-build-stamp dh_testroot -O--buildsystem=ruby dh_prep -O--buildsystem=ruby dh_auto_install --destdir=debian/ruby-rubocop-ast/ -O--buildsystem=ruby dh_ruby --install /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast ┌──────────────────────────────────────────────────────────────────────────────┐ │ ruby-rubocop-ast: Installing files and building extensions for ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ /usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20251224-69-69fmki/gemspec WARNING: open-ended dependency on parser (>= 3.1.1.0) is not recommended if parser is semantically versioned, use: add_runtime_dependency "parser", "~> 3.1", ">= 3.1.1.0" WARNING: See https://guides.rubygems.org/specification-reference/ for help Successfully built RubyGem Name: rubocop-ast Version: 1.24.0 File: rubocop-ast-1.24.0.gem /usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-rubocop-ast/usr/share/rubygems-integration/all /tmp/d20251224-69-69fmki/rubocop-ast-1.24.0.gem /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop-ast.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/builder.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/ext/range.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/ext/range_min_max.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/alias_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/and_asgn_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/and_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/arg_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/args_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/array_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/asgn_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/block_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/break_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/case_match_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/case_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/casgn_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/class_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/const_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/def_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/defined_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/dstr_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/ensure_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/float_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/for_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/forward_args_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/hash_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/if_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/in_pattern_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/index_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/indexasgn_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/int_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/keyword_splat_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/lambda_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/basic_literal_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/binary_operator_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/collection_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/conditional_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/descendence.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/hash_element_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/method_dispatch_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/method_identifier_predicates.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/modifier_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/numeric_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/parameterized_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/predicate_operator_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/module_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/next_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/op_asgn_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/or_asgn_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/or_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/pair_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/procarg0_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/range_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/regexp_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/resbody_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/rescue_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/return_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/self_class_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/send_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/str_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/super_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/symbol_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/until_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/when_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/while_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/yield_node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/builder.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/comment.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler/binding.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler/debug.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler/subcompiler.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/lexer.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/lexer.rex.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/method_definer.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/node.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/parser.racc.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/parser.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/sets.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/with_meta.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/processed_source.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/rubocop_compatibility.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/sexp.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/token.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/traversal.rb /build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/version.rb Successfully installed rubocop-ast-1.24.0 1 gem installed cd debian/ruby-rubocop-ast/usr/share/rubygems-integration/all rm -rf bin rm -rf build_info rm -rf cache rm -rf doc rm -rf extensions rmdir plugins cd gems/rubocop-ast-1.24.0 rm -f chmod 644 lib/rubocop/ast/builder.rb lib/rubocop/ast/ext/range.rb lib/rubocop/ast/ext/range_min_max.rb lib/rubocop/ast/node/alias_node.rb lib/rubocop/ast/node/and_asgn_node.rb lib/rubocop/ast/node/and_node.rb lib/rubocop/ast/node/arg_node.rb lib/rubocop/ast/node/args_node.rb lib/rubocop/ast/node/array_node.rb lib/rubocop/ast/node/asgn_node.rb lib/rubocop/ast/node/block_node.rb lib/rubocop/ast/node/break_node.rb lib/rubocop/ast/node/case_match_node.rb lib/rubocop/ast/node/case_node.rb lib/rubocop/ast/node/casgn_node.rb lib/rubocop/ast/node/class_node.rb lib/rubocop/ast/node/const_node.rb lib/rubocop/ast/node/def_node.rb lib/rubocop/ast/node/defined_node.rb lib/rubocop/ast/node/dstr_node.rb lib/rubocop/ast/node/ensure_node.rb lib/rubocop/ast/node/float_node.rb lib/rubocop/ast/node/for_node.rb lib/rubocop/ast/node/forward_args_node.rb lib/rubocop/ast/node/hash_node.rb lib/rubocop/ast/node/if_node.rb lib/rubocop/ast/node/in_pattern_node.rb lib/rubocop/ast/node/index_node.rb lib/rubocop/ast/node/indexasgn_node.rb lib/rubocop/ast/node/int_node.rb lib/rubocop/ast/node/keyword_splat_node.rb lib/rubocop/ast/node/lambda_node.rb lib/rubocop/ast/node/mixin/basic_literal_node.rb lib/rubocop/ast/node/mixin/binary_operator_node.rb lib/rubocop/ast/node/mixin/collection_node.rb lib/rubocop/ast/node/mixin/conditional_node.rb lib/rubocop/ast/node/mixin/descendence.rb lib/rubocop/ast/node/mixin/hash_element_node.rb lib/rubocop/ast/node/mixin/method_dispatch_node.rb lib/rubocop/ast/node/mixin/method_identifier_predicates.rb lib/rubocop/ast/node/mixin/modifier_node.rb lib/rubocop/ast/node/mixin/numeric_node.rb lib/rubocop/ast/node/mixin/parameterized_node.rb lib/rubocop/ast/node/mixin/predicate_operator_node.rb lib/rubocop/ast/node/module_node.rb lib/rubocop/ast/node/next_node.rb lib/rubocop/ast/node/op_asgn_node.rb lib/rubocop/ast/node/or_asgn_node.rb lib/rubocop/ast/node/or_node.rb lib/rubocop/ast/node/pair_node.rb lib/rubocop/ast/node/procarg0_node.rb lib/rubocop/ast/node/range_node.rb lib/rubocop/ast/node/regexp_node.rb lib/rubocop/ast/node/resbody_node.rb lib/rubocop/ast/node/rescue_node.rb lib/rubocop/ast/node/return_node.rb lib/rubocop/ast/node/self_class_node.rb lib/rubocop/ast/node/send_node.rb lib/rubocop/ast/node/str_node.rb lib/rubocop/ast/node/super_node.rb lib/rubocop/ast/node/symbol_node.rb lib/rubocop/ast/node/until_node.rb lib/rubocop/ast/node/when_node.rb lib/rubocop/ast/node/while_node.rb lib/rubocop/ast/node/yield_node.rb lib/rubocop/ast/node.rb lib/rubocop/ast/node_pattern/builder.rb lib/rubocop/ast/node_pattern/comment.rb lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb lib/rubocop/ast/node_pattern/compiler/binding.rb lib/rubocop/ast/node_pattern/compiler/debug.rb lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb lib/rubocop/ast/node_pattern/compiler/subcompiler.rb lib/rubocop/ast/node_pattern/compiler.rb lib/rubocop/ast/node_pattern/lexer.rb lib/rubocop/ast/node_pattern/lexer.rex.rb lib/rubocop/ast/node_pattern/method_definer.rb lib/rubocop/ast/node_pattern/node.rb lib/rubocop/ast/node_pattern/parser.racc.rb lib/rubocop/ast/node_pattern/parser.rb lib/rubocop/ast/node_pattern/sets.rb lib/rubocop/ast/node_pattern/with_meta.rb lib/rubocop/ast/node_pattern.rb lib/rubocop/ast/processed_source.rb lib/rubocop/ast/rubocop_compatibility.rb lib/rubocop/ast/sexp.rb lib/rubocop/ast/token.rb lib/rubocop/ast/traversal.rb lib/rubocop/ast/version.rb lib/rubocop/ast.rb lib/rubocop-ast.rb find lib/ -type d -empty -delete cd - cd - dh_installchangelogs -pruby-rubocop-ast /build/reproducible-path/ruby-rubocop-ast-1.24.0/CHANGELOG.md upstream /usr/bin/ruby3.3 /usr/bin/gem2deb-test-runner ┌──────────────────────────────────────────────────────────────────────────────┐ │ Checking Rubygems dependency resolution on ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.3.0:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -e gem\ \"rubocop-ast\" ┌──────────────────────────────────────────────────────────────────────────────┐ │ Run tests for ruby3.3 from debian/ruby-tests.rake │ └──────────────────────────────────────────────────────────────────────────────┘ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.3.0:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /usr/bin/ruby3.3 -ruri -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation warning: parser/current is loading parser/ruby33, which recognizes 3.3.4-compliant syntax, but you are running 3.3.8. Please see https://github.com/whitequark/parser#compatibility-with-ruby-mri. Randomized with seed 65490 RuboCop::AST::Node #recursive_basic_literal? behaves like non literal returns false for `{ some_method_call => :sym }` behaves like non literal returns false for `some_method_call(x, y)` behaves like literal returns true for `{ :a => 1, :b => 2 }` behaves like literal returns true for `[1, 2, 3]` behaves like literal returns true for `false` behaves like non literal returns false for `[some_method_call]` behaves like non literal returns false for `%r{abx#{foo}}ixo` behaves like non literal returns false for `some_method_call` behaves like literal returns true for `1` behaves like literal returns true for `!true` behaves like literal returns true for `1.0` behaves like literal returns true for `(false <=> true)` behaves like non literal returns false for `/.#{some_method_call}/` behaves like non literal returns false for `(x == false)` behaves like literal returns true for `(false or true)` behaves like literal returns true for `(false && true)` behaves like literal returns true for `nil` behaves like non literal returns false for `(x or false)` behaves like literal returns true for `{ a: 1, b: 2 }` behaves like literal returns true for `'str'` behaves like literal returns true for `"#{2}"` behaves like literal returns true for `(1)` behaves like non literal returns false for `{ :sym => some_method_call }` behaves like literal returns true for `%r{abx}ixo` behaves like literal returns true for `/./` behaves like non literal returns false for `(x && false)` #argument_type? method arguments returns true for all argument types block arguments returns true for all argument types #numeric_type? when complex literal is true when string literal is true when float literal is true when rational literal is true when complex literal whose imaginary part is a rational is true when integer literal is true #parent_module_name when node on module is expected to eq "Foo" when node on class in singleton class is expected to eq "Foo::#::Bar" when node on singleton class is expected to eq "Foo::#" when node on top level is expected to eq "Object" when node nested in an unknown block is expected to be nil when node nested in a class << exp is expected to be nil #value_used? within a while node is true only for the condition within a module definition node is always true within an if...else..end node nested in a method call is always true at the top level is true only for the condition within a class definition node is always true at the end of a block is always true within a method call node is always true at the top level is false within an array literal at the top level is always false assigned to an ivar is always true within a singleton class node is always true sibling_access returns trivial values for a root node for a single child returns the expected values for a node with siblings returns the expected values #struct_constructor? ::Struct matches struct definition without block does not match struct definition with a block matches #pure? for a regexp with options returns true with no interpolation returns true with interpolated segments returns false for a nested if where one branch contains a method call returns false where the innermost descendants are local vars and literals returns true where one branch contains an assignment statement returns false for an lvar assignment returns false for a method call returns false for an integer literal returns true for a gvar assignment returns false for an ivar assignment returns false for a cvar assignment returns false for a module definition returns false for a hash literal with only literal children returns true which contains a method call returns false for a class definition returns false for an array literal which contains a method call returns false with only literal children returns true #module_definition? with Module.new matches when using numbered parameter matches namespaced modules matches with ::ModuleName matches included module definition matches prepend Module.new matches using module keyword matches nested modules matches #class_definition? constant defined as Struct without block does not match with ::ClassName matches without inheritance matches with Struct matches when using numbered parameter matches with inheritance matches with object singleton class matches with self singleton class matches namespaced class matches with Class.new matches when using numbered parameter matches #conditional? when `until` node is true when `case` node is true when `if` node is true when `case_match` node is true when `while` node is true when post condition loop node is false #class_constructor? class definition on outer scope matches module definition with a block matches class definition with a block matches class definition does not match RuboCop::AST::ModuleNode .new is expected to be a kind of RuboCop::AST::ModuleNode #identifier is expected to be const type #body with a multi-expression body is expected to be begin type with an empty body is expected to be nil with a single expression body is expected to be send type RuboCop::AST::ResbodyNode #exception_variable for an implicit rescue is expected to eq "ex" when an exception variable is not given is expected to be nil for an explicit rescue is expected to eq "ex" #body is expected to be sym type #branch_index is expected to eq 2 is expected to eq 0 is expected to eq 1 .new is expected to be a kind of RuboCop::AST::ResbodyNode #exceptions with a single exception is expected to all be const type is expected to eq 1 without exception is expected to eq 0 with multiple exceptions is expected to eq 2 is expected to all be const type RuboCop::AST::PairNode #inverse_delimiter when using a colon delimiter is expected to eq " => " is expected to eq "=>" when using a hash rocket delimiter is expected to eq ": " is expected to eq ":" #value_delta when using colon delimiters when both pairs are on the same line is expected to eq 0 when receiver value is ahead is expected to eq 2 when values are aligned when both pairs are explicit pairs is expected to eq 0 when second pair is a keyword splat is expected to eq 0 when receiver value is behind is expected to eq -2 when using hash rocket delimiters when both pairs are on the same line is expected to eq 0 when receiver value is ahead is expected to eq 2 when receiver value is behind is expected to eq -2 when values are aligned when second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq 0 #delimiter when using a hash rocket delimiter is expected to eq " => " is expected to eq "=>" when using a colon delimiter is expected to eq ": " is expected to eq ":" #key when using a symbol key is expected to be sym type when using a string key is expected to be str type #value is expected to be int type #value_on_new_line? when value starts on a new line is expected to be value on new line when pair is on a single line is expected not to be value on new line when value spans multiple lines is expected not to be value on new line #value_omission? when using hash value omission is expected to be value omission when not using hash value omission is expected not to be value omission .new is expected to be a kind of RuboCop::AST::PairNode #hash_rocket? when using a hash rocket delimiter is expected to be hash rocket when using a colon delimiter is expected not to be hash rocket #key_delta with alignment set to :left when using colon delimiters when both keys are on the same line when second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq 0 when receiver key is behind when second pair is a keyword splat is expected to eq -2 when both pairs are reail pairs is expected to eq -2 when keys are aligned when second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq 0 when receiver key is ahead when second pair is a keyword splat is expected to eq 2 when both pairs are explicit pairs is expected to eq 2 when using hash rocket delimiters when receiver key is ahead when both pairs are explicit pairs is expected to eq 2 when second pair is a keyword splat is expected to eq 2 when receiver key is behind when both pairs are explicit pairs is expected to eq -2 when second pair is a keyword splat is expected to eq -2 when keys are aligned when both keys are explicit keys is expected to eq 0 when second key is a keyword splat is expected to eq 0 when both keys are on the same line when second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq 0 with alignment set to :right when using colon delimiters when both keys are on the same line when second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq 0 when receiver key is ahead when second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq 2 when keys are aligned when both pairs are explicit pairs is expected to eq 0 when second pair is a keyword splat is expected to eq 0 when receiver key is behind when both pairs are reail pairs is expected to eq -2 when second pair is a keyword splat is expected to eq 0 when using hash rocket delimiters when keys are aligned when second key is a keyword splat is expected to eq 0 when both keys are explicit keys is expected to eq 0 when both keys are on the same line when both pairs are explicit pairs is expected to eq 0 when second pair is a keyword splat is expected to eq 0 when receiver key is ahead when both pairs are explicit pairs is expected to eq 2 when second pair is a keyword splat is expected to eq 0 when receiver key is behind when second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq -2 #colon? when using a colon delimiter is expected to be colon when using a hash rocket delimiter is expected not to be colon #same_line? when both pairs are on the same line when both pair is a keyword splat is expected to be same line s(:kwsplat, s(:send, nil, :foo)) when both pairs are explicit pairs is expected to be same line s(:pair, s(:sym, :b), s(:int, 2)) when pairs are on separate lines when last pair is a keyword splat is expected not to be same line s(:kwsplat, s(:send, nil, :foo)) when both pairs are explicit pairs is expected not to be same line s(:pair, s(:sym, :b), s(:int, 2)) when a multiline pair shares the same line when both pairs are explicit pairs is expected to be same line s(:pair, s(:sym, :a), s(:begin)) is expected to be same line s(:pair, s(:sym, :b), s(:int, 2)) when last pair is a keyword splat is expected to be same line s(:kwsplat, s(:send, nil, :foo)) is expected to be same line s(:pair, s(:sym, :a), s(:begin)) RuboCop::AST::HashNode #braces? as an argument with braces is expected to be braces as an argument with no braces is expected not to be braces with braces is expected to be braces #values with a hash with literal values is expected to all be literal is expected to eq 3 with an empty hash is expected to be empty with a hash with string keys is expected to all be send type is expected to eq 2 #each_key when not passed a block is expected to be a kind of Enumerator when passed a block yields all the pairs #empty? with a hash containing a keyword splat is expected not to be empty with an empty hash is expected to be empty with a hash containing pairs is expected not to be empty #each_value when not passed a block is expected to be a kind of Enumerator when passed a block yields all the pairs #pairs with a hash of literals is expected to all be pair type is expected to eq 3 with an empty hash is expected to be empty with a hash of variables is expected to all be pair type is expected to eq 2 .new is expected to be a kind of RuboCop::AST::HashNode #pairs_on_same_line? with no pairs on the same line is expected not to be pairs on same line with some pairs on the same line is expected to be pairs on same line with all pairs on the same line is expected to be pairs on same line #keys with a hash with symbol keys is expected to eq 3 is expected to all be sym type with an empty hash is expected to be empty with a hash with string keys is expected to all be str type is expected to eq 2 #mixed_delimiters? when all pairs are using a colon delimiter is expected not to be mixed delimiters when pairs are using different delimiters is expected to be mixed delimiters when all pairs are using a hash rocket delimiter is expected not to be mixed delimiters #each_pair when passed a block yields all the pairs when not passed a block is expected to be a kind of Enumerator RuboCop::AST::WhenNode #body without a then keyword is expected to be array type with a then keyword is expected to be sym type #conditions with a multiple conditions is expected to eq 3 is expected to all be literal with a single condition is expected to eq 1 is expected to all be literal .new is expected to be a kind of RuboCop::AST::WhenNode #then? without a then keyword is expected not to be then with a then keyword is expected to be then #branch_index is expected to eq 0 is expected to eq 1 is expected to eq 2 #each_condition when passed a block yields all the conditions when not passed a block is expected to be a kind of Enumerator RuboCop::AST::AndNode #alternate_operator with a logical and node is expected to eq "and" with a semantic and node is expected to eq "&&" #logical_operator? with a logical and node is expected to be logical operator with a semantic and node is expected not to be logical operator #lhs with a semantic and node is expected to be sym type with a logical and node is expected to be sym type #operator with a logical and node is expected to eq "&&" with a semantic and node is expected to eq "and" #semantic_operator? with a semantic and node is expected to be semantic operator with a logical and node is expected not to be semantic operator .new with a semantic and node is expected to be a kind of RuboCop::AST::AndNode with a logical and node is expected to be a kind of RuboCop::AST::AndNode #rhs with a logical and node is expected to be int type with a semantic and node is expected to be int type #inverse_operator with a logical and node is expected to eq "||" with a semantic and node is expected to eq "or" RuboCop::AST::RangeNode .new with an inclusive range is expected to be a kind of RuboCop::AST::RangeNode is expected to be range type with a beignless range is expected to be range type is expected to be a kind of RuboCop::AST::RangeNode with an exclusive range is expected to be range type is expected to be a kind of RuboCop::AST::RangeNode with an infinite range is expected to be range type is expected to be a kind of RuboCop::AST::RangeNode RuboCop::AST::NodePattern::Lexer provides tokens via next_token with $type+ is parsed as `$ int + x` when given a regexp /[abc]+\/()?/x round trips when given a regexp /test/ round trips when given a regexp /back\\slash/ round trips when given node types and constants distinguishes them when given arithmetic symbols is parsed as `:&` when given a regexp ending with a backslash does not lexes it properly RuboCop::AST::DstrNode #value with a multiline string is expected to eq "this is a multiline string" with interpolation is expected to eq "foo \#{bar} baz" with implicit concatenation is expected to eq "foo bar baz" RuboCop::AST::RescueNode .new is expected to be a kind of RuboCop::AST::RescueNode #body is expected to be send type #resbody_branches is expected to eq 2 is expected to all be resbody type #else_branch with an else statement is expected to be send type without an else statement is expected to be nil #else? with an else statement is expected to be else without an else statement is expected not to be else #branches when there is an else returns all the bodies with an empty else returns all the bodies when there is no else keyword returns only then rescue bodies RuboCop::AST::ConstNode #each_path yields all parts of the namespace #absolute? is expected to be absolute with a constant not starting with :: is expected not to be absolute with a non-namespaced constant is expected not to be absolute #relative? with a non-namespaced constant is expected to be relative #namespace is expected to eq "::Foo::Bar" #short_name is expected to eq :BAZ #module_name? is expected not to be module name with a constant with a lowercase letter is expected to be module name RuboCop::AST::NodePattern nil against a node pattern (bug #5470) behaves like nonmatching doesn't match nil value in AST behaves like nonmatching doesn't match nil literals is expected to match code nil value in AST, use nil? method is expected to match code nil and :foo node type for a child on a child litteral behaves like nonmatching doesn't match on a child with the same type is expected to match code s(:send, nil, :foo) and :bar on a child with a different type behaves like nonmatching doesn't match in seq head on a child with a different type behaves like nonmatching doesn't match on a node with the same type is expected to match code s(:ivar, :@ivar), :+, and s(:int, 2) sequence with trailing ... on a node with fewer children, with a wildcard preceding behaves like nonmatching doesn't match on a node with a different type behaves like nonmatching doesn't match on a node with the same type and fewer children behaves like nonmatching doesn't match on a node with non-matching children behaves like nonmatching doesn't match on a node with the same type and exact number of children is expected to match code s(:int, 1) and :blah on a node with the same type and more children with 1 child more is expected to match code s(:int, 1), :blah, and s(:int, 1) with 2 children more is expected to match code s(:int, 1), :blah, s(:int, 1), and s(:sym, :something) .descend yields the given argument if it is not a Node yields all children depth first bare node type on a node with a different type behaves like nonmatching doesn't match #dup is expected to match code s(:send, nil, :obj) and :method on a node with a matching, hyphenated type is expected to match code s(:lvasgn, :a), :+, and s(:int, 1) #to_s is instructive #== returns true iff the patterns are similar marshal compatibility is expected to match code s(:send, nil, :obj) and :method on a node with the same type is expected to match code s(:send, nil, :obj) and :method #pattern returns the pattern yaml compatibility is expected to match code s(:send, nil, :obj) and :method funcalls without extra arguments is expected to match code :a and s(:int, 1) with multiple arguments is expected to match code s(:str, "c"), "a", and "d" with one argument is expected to match code s(:str, "foo") and "foo" captures which also perform a match on a literal behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block when nested behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block on a sequence behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block on a node type behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block on [] behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block on a set behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block macros with a pattern with a constant is expected to match code :hello when the value is not in the set behaves like nonmatching doesn't match with a pattern without captures def_node_matcher returns the method name when called on matching code is expected to match code :hello when called on non-matching code behaves like nonmatching doesn't match when it errors raises an error with the right location def_node_search returns the method name with a predicate name when it errors raises an error with the right location when called on non-matching code behaves like nonmatching doesn't match when called on matching code is expected to match code nil, :foo, s(:sym, :hello), and s(:sym, :world) without a predicate name when it errors raises an error with the right location when called on non-matching code returns an enumerator yielding nothing when called on matching code returns an enumerator yielding the matches with a pattern with captures def_node_matcher when it errors raises an error with the right location when called on non-matching code behaves like nonmatching doesn't match when called on matching code is expected to eq :hello def_node_search with a predicate name when it errors raises an error with the right location when called on matching code is expected to match code nil, :foo, s(:sym, :hello), and s(:sym, :world) when called on non-matching code behaves like nonmatching doesn't match without a predicate name when called on matching code returns an enumerator yielding the captures when the pattern contains keyword_params returns an enumerator yielding the captures when helper is called with default keyword_params is overridden when calling the matcher some defaults are not params raises an error and no value is given to the matcher uses the defaults when it errors raises an error with the right location when called on non-matching code returns an enumerator yielding nothing with a pattern with a namespaced call is expected to match code :hello when the value is not in the set behaves like nonmatching doesn't match bad syntax with negated closing paren behaves like invalid is invalid with leading comma in arg list behaves like invalid is invalid with negated closing curly behaves like invalid is invalid with unmatched opening paren behaves like invalid is invalid with doubled comma in arg list behaves like invalid is invalid with empty union behaves like invalid is invalid with unmatched opening curly behaves like invalid is invalid with doubled ellipsis is expected to match code "foo" with empty parentheses behaves like invalid is invalid with empty union subsequence in seq head behaves like invalid is invalid with variadic unions where not supported behaves like invalid is invalid with negated ellipsis behaves like invalid is invalid with empty intersection behaves like invalid is invalid with unmatched opening paren and `...` behaves like invalid is invalid with unsupported subsequence in seq head within union behaves like invalid is invalid with unmatched closing paren behaves like invalid is invalid with unmatched closing curly behaves like invalid is invalid repeated using ? with too many matching children behaves like nonmatching doesn't match with zero match behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block behaves like repeated pattern with an ellipsis in the same sequence is expected to match code "[:hello, 1, 2, 3]" with one match behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block at beginning of sequence behaves like invalid is invalid using + with zero match behaves like nonmatching doesn't match with matching children behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block behaves like repeated pattern with one match behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block at beginning of sequence behaves like invalid is invalid with an ellipsis in the same sequence is expected to match code "[:hello, 1, 2, 3]" using * with no match behaves like nonmatching doesn't match with zero match behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with multiple subcaptures behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with matching children behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block without capture is expected to match code s(:sym, :hello), s(:int, 1), s(:int, 2), and s(:int, 3) behaves like repeated pattern with one match behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block at beginning of sequence behaves like invalid is invalid with an ellipsis in the same sequence is expected to match code "[:hello, 1, 2, 3]" nested with multiple subcaptures behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block params when inside a union, with a matching value is expected to match code s(:int, 10) and 10 param number zero in a position which matches original target node is expected to match code 1 in a position which does not match original target node behaves like nonmatching doesn't match when captured behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block as named parameters when provided as argument to match is expected to match code s(:int, 10) and {:foo=>#} when not provided raises an ArgumentError when extra are provided raises an ArgumentError when preceded by $... behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block without explicit number is expected to match code s(:const, s(:const, nil, :Namespace), :A), :A, and s(:const, nil, :Namespace) when inside an intersection is expected to match code s(:int, 20), 10, and 20 when negated, with a nonmatching value is expected to match code s(:const, s(:const, nil, :Namespace), :B) and :A when inside a union, with a nonmatching value behaves like nonmatching doesn't match when preceded by ... is expected to match code s(:send, s(:int, 1), :+, s(:int, 10)) and s(:int, 10) in a nested sequence is expected to match code s(:send, s(:send, s(:int, 5), :dec), :inc), :inc, and :dec in root position is expected to match code s(:int, 10) and s(:int, 10) in root position is expected to match code s(:int, 10) and # when negated, with a matching value behaves like nonmatching doesn't match wildcards unnamed wildcards at the root level is expected to match code s(:sclass, s(:self), s(:def, :something, s(:args), s(:int, 1))) and :freeze within a sequence with other patterns intervening is expected to match code :@abc and s(:int, 22) in head position of a sequence is expected to match code s(:int, 1), :+, and s(:send, nil, :a) within a sequence is expected to match code nil and :Const negated behaves like nonmatching doesn't match named wildcards at the root level is expected to match code s(:sclass, s(:self), s(:def, :something, s(:args), s(:int, 1))) and :freeze within a sequence with values which cannot be unified behaves like nonmatching doesn't match unifying the node type with an argument is expected to match code s(:send, nil, :obj) and :send with values which can be unified is expected to match code s(:int, 5), :+, and s(:int, 5) within a sequence with other patterns intervening is expected to match code :@abc and s(:int, 22) within a union with a succeeding unifying constraint with branches without the wildcard encountered first behaves like invalid is invalid encountered after behaves like invalid is invalid with all branches with the wildcard that can not be unified behaves like nonmatching doesn't match matching another branch is expected to match code s(:array, s(:int, 2), s(:int, 1)) and s(:int, 2) matching the first branch is expected to match code s(:array, s(:int, 1), s(:int, 2)) and s(:int, 2) with a preceding unifying constraint that can not be unified behaves like nonmatching doesn't match matching a branch is expected to match code s(:int, 2) and s(:array, s(:int, 2), s(:int, 1)) confined to the union with partial unification that can not be unified behaves like nonmatching doesn't match matching the free branch is expected to match code s(:int, 2) and s(:int, 1) matching the unified branch is expected to match code s(:int, 5) and s(:int, 5) without unification is expected to match code s(:int, 2) and s(:int, 1) in head position of a sequence is expected to match code s(:int, 1), :+, and s(:send, nil, :a) descend with a match multiple levels, depth first behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block nested behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a literal match is expected to match code s(:int, 1) and s(:array, s(:array, s(:int, 2), s(:int, 3), s(:array, s(:array, s(:int, 5)))), s(:int, 4)) without match behaves like nonmatching doesn't match with an immediate match behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block predicates when in last-child position, but all children have already been matched behaves like nonmatching doesn't match with a constant argument for which the predicate is false behaves like nonmatching doesn't match for which the predicate is true is expected to match code s(:int, 1), :+, and s(:int, 2) when captured behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with an expression argument for which the predicate is false behaves like nonmatching doesn't match for which the predicate is true is expected to match code s(:int, 2), :+, and s(:float, 2.0) with a named argument with extra arguments raises an error for which the predicate is true is expected to match code s(:send, s(:int, 1), :+, s(:int, 2)) and {:param=>1} when not given raises an error for which the predicate is false behaves like nonmatching doesn't match in root position is expected to match code s(:int, 1) and :inc with name containing a numeral is expected to match code s(:int, 1) and :inc when negated is expected to match code s(:int, 1) and :inc applied to an integer for which the predicate is false behaves like nonmatching doesn't match at head position of a sequence is expected to match code s(:int, 1) and :inc with multiple arguments for which the predicate is false behaves like nonmatching doesn't match for which the predicate is true is expected to match code s(:str, "c"), "a", and "d" applied to an integer for which the predicate is true is expected to match code s(:int, 1) and :inc with one extra argument for which the predicate is true is expected to match code s(:send, s(:int, 1), :+, s(:int, 2)) and 1 for which the predicate is false behaves like nonmatching doesn't match in any order captured without ellipsis behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a captured ellipsis matching all children behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block matching non sequential children behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block nested behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block without ellipsis with too few children behaves like nonmatching doesn't match with matching children behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with too many children behaves like nonmatching doesn't match with an ellipsis behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block invalid containing ellipsis not at the end behaves like invalid is invalid nested behaves like invalid is invalid with an ellipsis inside and outside behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block at the beginning of a sequence behaves like invalid is invalid doubled with ellipsis behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block doubled with ellipsis in wrong order behaves like nonmatching doesn't match doubled separated by fixed argument behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block separated by an ellipsis behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block caret (ascend) inside a union is expected to match code "abc" repeated twice is expected to match code 1 inside an intersection is expected to match code 1 used with a node type which doesn't match behaves like nonmatching doesn't match which matches is expected to match code 1 using unification to match self within parent with self in the wrong position behaves like nonmatching doesn't match with self in the right position is expected to match code 2 within sequence not in head is expected to match code s(:int, 1) and :inc of a sequence is expected to match code s(:int, 1) and :inc in head is expected to match code 1 of a sequence is expected to match code 1 captures on a wildcard in non-head position in a sequence behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block nested in any child behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block in head position in a sequence against literal (bug #5470) behaves like nonmatching doesn't match in a nested sequence behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block in head position in a sequence against nil (bug #5470) behaves like nonmatching doesn't match at the root level behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block in head position in a sequence behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block simple sequence on a node with the same type and matching children is expected to match code s(:int, 1), :+, and s(:int, 1) on a node with too many children behaves like nonmatching doesn't match on a node with a different type behaves like nonmatching doesn't match with a nested sequence in head position behaves like invalid is invalid on a node with the same type and non-matching children with non-matching receiver type behaves like nonmatching doesn't match with non-matching selector behaves like nonmatching doesn't match with a nested sequence in non-head position is expected to match code s(:send, s(:send, nil, :obj), :a) and :b commas with commas randomly strewn around behaves like invalid is invalid ellipsis with a nested sequence at the end, but no remaining child behaves like nonmatching doesn't match with a wildcard at the end, but no remaining child to match it behaves like nonmatching doesn't match preceding multiple captures behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block preceding a capture behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with [] at the end, but no remaining child to match it behaves like nonmatching doesn't match with a set at the end, but no remaining child to match it behaves like nonmatching doesn't match with a nodetype at the end, but no remaining child to match it behaves like nonmatching doesn't match at the very beginning of a sequence is expected to match code s(:int, 10), :*, and s(:int, 1) literals single quoted string literals is expected to match code "foo" negative integer literals is expected to match code -100 symbol literals is expected to match code :foo positive float literals is expected to match code 1.0 double quoted string literals is expected to match code "foo" bare literal on a node behaves like nonmatching doesn't match on a matching literal is expected to match code :bar negative float literals is expected to match code -2.5 captures on ... with remaining patterns at the end behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a remaining set at the end behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with no remaining pattern at the end behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block after a child behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a remaining sequence at the end behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with a remaining capture at the end behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a remaining wildcard at the end behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a remaining node type at the end behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block at the very beginning of a sequence behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a remaining [] at the end behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with a remaining literal at the end behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block comments behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block captures within union with a different number of captures in each branch behaves like invalid is invalid within nested sequences behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with complex nesting behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block on simple subpatterns behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block unions with a nested sequence is expected to match code s(:const, nil, :Const) and :method variadic with fixed terms works for cases with variadic terms after union works for cases with fixed arity before and after union works for cases with variadic terms before and after union multiple works for complex cases with variadic terms works for cases with fixed arity before and after union works for cases with variadic terms before and after union works for cases with variadic terms after union at the top level containing multiple [] on a node which meets all requirements of the second [] is expected to match code 2.4 on a node which meets some requirements but not all behaves like nonmatching doesn't match on a node which meets all requirements of the first [] is expected to match code 3 containing symbol literals when the AST does not have a matching symbol behaves like nonmatching doesn't match when the AST has a matching symbol is expected to match code s(:send, nil, :obj) and :b containing integer literals is expected to match code s(:int, 10) and :abs containing mixed node and literals is expected to match code nil and :obj containing string literals is expected to match code s(:str, "a") and :upcase nested inside a sequence is expected to match code s(:const, nil, :Const) and :method negation on a string with a non-matching symbol is expected to match code s(:str, "bar") and :upcase with a matching string behaves like nonmatching doesn't match on a set with a matching value behaves like nonmatching doesn't match with a non-matching value is expected to match code :@a and s(:int, 3) on square brackets with a node which meets all requirements of [] behaves like nonmatching doesn't match with a node which meets only 1 requirement of [] is expected to match code 1 when nested in complex ways with (send int :- int) is expected to match code s(:int, 1), :-, and s(:int, 1) with (send str :+ (send str :to_i)) is expected to match code s(:str, "abc"), :+, and s(:send, s(:str, "1"), :to_i) with (send str :<< str) behaves like nonmatching doesn't match on a symbol with a non-matching symbol is expected to match code s(:send, nil, :obj) and :xyz with a non-matching symbol, but too many children behaves like nonmatching doesn't match with a matching symbol behaves like nonmatching doesn't match on a sequence with a node of different type is expected to match code :@@a and s(:int, 1) with a matching node behaves like nonmatching doesn't match with a node with non-matching children is expected to match code :@b and s(:int, 1) regexp matches symbols or strings RuboCop::AST::NodePattern::Parser sequences expands ... in sequence head deep inside unions generates specialized nodes parses capture vs repetition with correct priority parses function calls parses simple sequences properly parses unions of literals as a set RuboCop::AST::IfNode #keyword with an unless statement is expected to eq "unless" with a ternary operator is expected to eq "" with an if statement is expected to eq "if" #nested_conditional? with nested conditionals in else clause is expected to be nested conditional with nested conditionals in if clause is expected to be nested conditional with nested ternary operators when nested in the falsey branch is expected to be nested conditional when nested in the truthy branch is expected to be nested conditional with no nested conditionals is expected not to be nested conditional with nested conditionals in elsif clause is expected to be nested conditional #if_branch with an unless statement is expected to be sym type with an if statement is expected to be sym type with a ternary operator is expected to be sym type #elsif_conditional? with nested conditionals in else clause is expected not to be elsif conditional with one elsif conditional is expected to be elsif conditional with nested conditionals in if clause is expected not to be elsif conditional with multiple elsif conditionals is expected to be elsif conditional with nested ternary operators when nested in the falsey branch is expected not to be elsif conditional when nested in the truthy branch is expected not to be elsif conditional #each_branch when passed a block yields all the branches when not passed a block is expected to be a kind of Enumerator #else? with an elsif statement is expected to be else without an else statement is expected not to be elsif #ternary? with an unless statement is expected not to be ternary with a ternary operator is expected to be ternary with an if statement is expected not to be ternary #inverse_keyword? with a ternary operator is expected to eq "" with an if statement is expected to eq "unless" with an unless statement is expected to eq "if" #if? with an if statement is expected to be if with a ternary operator is expected not to be if with an unless statement is expected not to be if .new with a modifier statement is expected to be a kind of RuboCop::AST::IfNode with a ternary operator is expected to be a kind of RuboCop::AST::IfNode with a regular if statement is expected to be a kind of RuboCop::AST::IfNode #branches with an unless statement is expected to all be literal is expected to eq 1 with a ternary operator is expected to all be literal is expected to eq 2 with an else statement is expected to all be literal is expected to eq 2 with an elsif statement is expected to eq 3 is expected to all be literal with an if statement is expected to eq 1 is expected to all be literal #modifier_form? with a modifier if statement is expected to be modifier form with a non-modifier unless statement is expected not to be modifier form with a modifier unless statement is expected to be modifier form with a non-modifier if statement is expected not to be modifier form with a ternary operator is expected not to be modifier form #unless? with an if statement is expected not to be unless with a ternary operator is expected not to be unless with an unless statement is expected to be unless #else_branch with an if statement is expected to be int type with a ternary operator is expected to be int type with an unless statement is expected to be int type #elsif? without an elsif statement is expected not to be elsif with an if statement comtaining an elsif is expected not to be elsif with an elsif statement is expected to be elsif RuboCop::AST::InPatternNode when using Ruby 2.7 or newer #pattern with an array pattern is expected to be array pattern type with a variable pattern is expected to be match var type with a pin operator is expected to be pin type with a hash pattern is expected to be hash pattern type with a value pattern is expected to be int type with an alternative pattern is expected to be match alt type with an as pattern is expected to be match as type .new is expected to be a kind of RuboCop::AST::InPatternNode #body with a then keyword is expected to be sym type without a then keyword is expected to be array type #then? without a then keyword is expected not to be then with a then keyword is expected to be then #branch_index is expected to eq 1 is expected to eq 2 is expected to eq 0 RuboCop::AST::ArrayNode #percent_literal? with a string percent literal is expected not to be percent literal :symbol is expected to be percent literal is expected to be percent literal :string with a symbol percent literal is expected to be percent literal is expected to be percent literal :symbol is expected not to be percent literal :string with square brackets is expected not to be percent literal :string is expected not to be percent literal :symbol is expected not to be percent literal #each_value without block is expected to be a kind of Enumerator with block is expected to eq ["(int 1)", "(int 2)", "(int 3)"] is expected to be a kind of RuboCop::AST::ArrayNode #square_brackets? with a percent literal is expected not to be square brackets with square brackets is expected to be square brackets .new is expected to be a kind of RuboCop::AST::ArrayNode #bracketed? unbracketed is expected to be nil with a percent literal is expected to be bracketed with square brackets is expected to be bracketed #values with an empty array is expected to be empty with an array of variables is expected to eq 2 is expected to all be send type with an array of literals is expected to all be literal is expected to eq 3 RuboCop::AST::AliasNode #new_identifier is expected to eq :foo is expected to be sym type #old_identifier is expected to eq :bar is expected to be sym type .new is expected to be a kind of RuboCop::AST::AliasNode RuboCop::AST::ArgsNode #argument_list is expected to eq [s(:arg, :a), s(:optarg, :b, s(:int, 42)), s(:arg, :c), s(:restarg, :d), s(:kwarg, :e), s(:kwoptarg, :f, s(:int, 42)), s(:kwrestarg, :g), s(:blockarg, :h), s(:shadowarg, :i)] when using Ruby 2.7 or newer with argument forwarding is expected to eq [s(:forward_arg)] #empty_and_without_delimiters? with arguments with a method definition is expected to equal false with a lambda literal is expected to equal false with delimiters with a lambda literal is expected to equal false with a method definition is expected to equal false with a block is expected to equal false with empty arguments with a method definition is expected to equal true with a block is expected to equal true with a lambda literal is expected to equal true .new with a method definition is expected to be a kind of RuboCop::AST::ArgsNode with a block is expected to be a kind of RuboCop::AST::ArgsNode with a lambda literal is expected to be a kind of RuboCop::AST::ArgsNode RuboCop::AST::NextNode behaves like wrapped arguments node .new without arguments is expected to be a kind of RuboCop::AST::NextNode with arguments is expected to be a kind of RuboCop::AST::NextNode #arguments with multiple literal arguments is expected to eq 2 with a single splat argument is expected to eq 1 with no arguments and braces is expected to be empty with a single argument is expected to eq 1 with no arguments is expected to be empty with a single argument and braces is expected to eq 1 RuboCop::AST::OrAsgnNode #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode #expression is expected to eq s(:send, nil, :value) #operator is expected to eq :"||" #name is expected to eq :var .new is expected to be a kind of RuboCop::AST::OrAsgnNode RuboCop::AST::Traversal knows all current node types for example { foo: 2 } traverses all nodes for example if foo; bar; else baz; end traverses all nodes for example <<-'HERE' #@@1 HERE traverses all nodes for example m ->(a = ->{_1}) {a} traverses all nodes for example '#@@1' traverses all nodes for example def f a, *r, p, &b; end traverses all nodes for example %r{#@1} traverses all nodes for example %W() traverses all nodes for example begin; meth; rescue; foo; else; bar; end traverses all nodes for example self.a, self[1, 2] = foo traverses all nodes for example def f a, o=1, *r, p, &b; end traverses all nodes for example def String=; end traverses all nodes for example while def foo a = tap do end; end; break; end traverses all nodes for example foo::fun (1) {} traverses all nodes for example %Q{#@@1} traverses all nodes for example foo || bar traverses all nodes for example unless foo; bar; end traverses all nodes for example foo[1, 2] = 3 traverses all nodes for example case foo; when 'bar', 'baz'; bar; end traverses all nodes for example foo ** 1 traverses all nodes for example foo.C += raise(bar) rescue nil traverses all nodes for example f{ |a,| } traverses all nodes for example if (bar); foo; end traverses all nodes for example a += b += raise :x traverses all nodes for example fun (1) {} traverses all nodes for example return fun foo do end traverses all nodes for example f{ |a, *s, &b| } traverses all nodes for example case foo; in [x, y, *z] then true; end traverses all nodes for example foo, bar, baz = 1, 2 traverses all nodes for example ::Foo traverses all nodes for example fun do end traverses all nodes for example def f (foo: 1, bar: 2, **baz, &b); end traverses all nodes for example f{ |o=1, *r, p, &b| } traverses all nodes for example break traverses all nodes for example f{ |a, c| } traverses all nodes for example f{ |foo: 1, bar: 2, **baz, &b| } traverses all nodes for example tap (proc do end) traverses all nodes for example -> a: { } traverses all nodes for example /a\ b/ traverses all nodes for example begin; rescue LoadError; else; end traverses all nodes for example a b{c(d)}, /x/m do end traverses all nodes for example fun! traverses all nodes for example meth 1 do end::fun bar traverses all nodes for example td (1_500).toString(); td.num do; end traverses all nodes for example <<-'HERE' #@1 HERE traverses all nodes for example meth until foo traverses all nodes for example m1 :k => m2 do; m3() do end; end traverses all nodes for example foo[0, 1] += m foo traverses all nodes for example <<-`HERE` #@@1 HERE traverses all nodes for example f{ |a, o=1, o1=2, *r, &b| } traverses all nodes for example %i{a\ b} traverses all nodes for example __LINE__ traverses all nodes for example %r{#@@1} traverses all nodes for example case foo; in ..2 then true; end traverses all nodes for example foo = bar, 1 traverses all nodes for example case foo; in 1; end traverses all nodes for example foo[0, 1] += 2 traverses all nodes for example f{ |*, &b| } traverses all nodes for example foo <=> 1 traverses all nodes for example case foo; in x, y then nil; end traverses all nodes for example meth 1 do end.fun(bar) {} traverses all nodes for example %I[#@@1] traverses all nodes for example def self::foo; end traverses all nodes for example foo traverses all nodes for example def f o=1, *r, p, &b; end traverses all nodes for example foo[:baz => 1,] traverses all nodes for example f{ |a, &b| } traverses all nodes for example module Bar::Foo; end traverses all nodes for example a b{c d}, "x" do end traverses all nodes for example while class << self; a = tap do end; end; break; end traverses all nodes for example %W[#@1] traverses all nodes for example case foo; in A(x:) then true; end traverses all nodes for example foo[0] += raise bar rescue nil traverses all nodes for example case foo; in 1..2 then true; end traverses all nodes for example class Foo; end traverses all nodes for example ...100 traverses all nodes for example 42r traverses all nodes for example "a\ b" traverses all nodes for example -> a: 1 { } traverses all nodes for example case foo; in * then nil; end traverses all nodes for example -> * { } traverses all nodes for example case foo; in 1...2 then true; end traverses all nodes for example proc {_1 = nil} traverses all nodes for example o = { a: 1 } traverses all nodes for example %x{#@@1} traverses all nodes for example ->(**nil) {} traverses all nodes for example %{a\ b} traverses all nodes for example module ::Foo; end traverses all nodes for example a, (b, c) = foo traverses all nodes for example next(foo) traverses all nodes for example foo.a += m foo traverses all nodes for example def x; self::A ||= 1; end traverses all nodes for example +42 traverses all nodes for example foo.m += raise(bar) rescue nil traverses all nodes for example fun (f bar) traverses all nodes for example not foo traverses all nodes for example return() traverses all nodes for example case foo; in x then x; end traverses all nodes for example [1, *foo, 2] traverses all nodes for example a &&= 1 traverses all nodes for example foo::A += m foo traverses all nodes for example unless foo; bar; else baz; end traverses all nodes for example a b(c d), :e do end traverses all nodes for example @@var = 10 traverses all nodes for example case foo; in 1, "a", [], {} then nil; end traverses all nodes for example def f(foo); end traverses all nodes for example meth rescue bar traverses all nodes for example break fun foo do end traverses all nodes for example f{ |a, o=1, *r, p, &b| } traverses all nodes for example foo::a += m foo traverses all nodes for example def f ((a, *)); end traverses all nodes for example lambda{|;a|a} traverses all nodes for example def foo(...); end traverses all nodes for example f{ } traverses all nodes for example case foo; in { a: 1 } then true; end traverses all nodes for example case 1; in 2; 3; else; end traverses all nodes for example next foo traverses all nodes for example %s{#@@1} traverses all nodes for example foo = raise(bar) rescue nil traverses all nodes for example a b{c d}, :e do end traverses all nodes for example case foo; in a: 1 then true; end traverses all nodes for example a += b = raise :x traverses all nodes for example p -> { :hello }, a: 1 do end traverses all nodes for example foo[1, 2] traverses all nodes for example def f(*foo); end traverses all nodes for example /foo#{bar}baz/ traverses all nodes for example foo =~ 1 traverses all nodes for example fun(*bar) traverses all nodes for example 42 traverses all nodes for example foo::(1) traverses all nodes for example case foo; in **a then true; end traverses all nodes for example super foo, bar do end traverses all nodes for example /#)/x traverses all nodes for example f (g rescue nil) traverses all nodes for example %W"#{1}" traverses all nodes for example [1, *foo] traverses all nodes for example foo ^ 1 traverses all nodes for example yield(foo) traverses all nodes for example while foo do meth end traverses all nodes for example def x; ::A ||= 1; end traverses all nodes for example <<-`HERE` a\ b HERE traverses all nodes for example def f(foo=1, bar=2); end traverses all nodes for example *, c, d = bar traverses all nodes for example f{ |;a| } traverses all nodes for example { foo: 2, **bar } traverses all nodes for example %i[ #@1 ] traverses all nodes for example BEGIN { 1 } traverses all nodes for example a @b do |c|;end traverses all nodes for example case foo; in **nil then true; end traverses all nodes for example case foo; in "a": then true; end traverses all nodes for example ->(scope) {}; scope traverses all nodes for example def foo a:b end traverses all nodes for example case foo; in x unless true; nil; end traverses all nodes for example return(foo) traverses all nodes for example case foo; in A(1, 2) then true; end traverses all nodes for example a # # .foo traverses all nodes for example foo and bar traverses all nodes for example $10 traverses all nodes for example f(a ? "a":1) traverses all nodes for example super foo traverses all nodes for example a b(c(d)), 1.0i do end traverses all nodes for example def f **baz, &b; end traverses all nodes for example fun traverses all nodes for example return foo traverses all nodes for example <<-`HERE` #@1 HERE traverses all nodes for example yield() traverses all nodes for example alias :foo bar traverses all nodes for example case foo; in x, then nil; end traverses all nodes for example [/()\1/, ?#] traverses all nodes for example {a: if true then 42 end} traverses all nodes for example %I{a\ b} traverses all nodes for example foo[0, 1] ||= 2 traverses all nodes for example foo + 1 traverses all nodes for example assert dogs traverses all nodes for example case foo; in [*x, y] then true; end traverses all nodes for example p <<~E x \ y E traverses all nodes for example p <<~E x y E traverses all nodes for example if (a, b = foo); end traverses all nodes for example `foo#{bar}baz` traverses all nodes when given an unexpected AST with too few children raises debugging error with too many children raises debugging error for example case foo; in a: 1, b: 2 then true; end traverses all nodes for example case foo; in x, y, then nil; end traverses all nodes for example !m foo traverses all nodes for example *b, c = bar traverses all nodes for example def (foo).foo; end traverses all nodes for example { 'foo': 2, 'bar': {}} traverses all nodes for example -> do rescue; end traverses all nodes for example def self._6; end traverses all nodes for example /#{1}(?bar)/ =~ 'bar' traverses all nodes for example -> { _1 + _9} traverses all nodes for example %Q{#@1} traverses all nodes for example :'foo' traverses all nodes for example foo.a &&= 1 traverses all nodes for example %w[] traverses all nodes for example true ? 1.tap do |n| p n end : 0 traverses all nodes for example module Foo; end traverses all nodes for example END { 1 } traverses all nodes for example begin; meth; rescue Exception; bar; end traverses all nodes for example class Foo < a:b; end traverses all nodes for example 1..2 traverses all nodes for example meth do; foo; rescue; bar; end traverses all nodes for example def f foo: -1 ; end traverses all nodes for example { 1 => 2, :foo => "bar" } traverses all nodes for example foo[0, 1] &&= 2 traverses all nodes for example def foo; end traverses all nodes for example foo ? 1 : 2 traverses all nodes for example foo += raise bar rescue nil traverses all nodes for example case foo; in [x,] then nil; end traverses all nodes for example %{#@1} traverses all nodes for example p <<~E x \ y E traverses all nodes for example f <<-TABLE do TABLE end traverses all nodes for example while not (true) do end traverses all nodes for example if foo; bar; end traverses all nodes for example fun (1).to_i traverses all nodes for example case foo; in x, *y, z then nil; end traverses all nodes for example ->{ } traverses all nodes for example def f &b; end traverses all nodes for example ~foo traverses all nodes for example let () { m(a) do; end } traverses all nodes for example case foo; in [x, y, *] then true; end traverses all nodes for example a&.b traverses all nodes for example case foo; in "#{ %Q{a} }": 1 then true; end traverses all nodes for example bar unless foo traverses all nodes for example case foo; in [x] then nil; end traverses all nodes for example case foo; in "#{ %q{a} }": then true; end traverses all nodes for example foo * 1 traverses all nodes for example $var = 10 traverses all nodes for example @foo, @@bar = *foo traverses all nodes for example f x: -> do meth do end end traverses all nodes for example @var = 10 traverses all nodes for example a # # &.foo traverses all nodes for example a b{c(d)}, /x/ do end traverses all nodes for example a ? b & '': nil traverses all nodes for example %I[#@1] traverses all nodes for example def _5; end traverses all nodes for example case foo; in self then true; end traverses all nodes for example -1.33 traverses all nodes for example f{ |; a | } traverses all nodes for example def f(**); end traverses all nodes for example def f a, o=1, *r, &b; end traverses all nodes for example super() traverses all nodes for example if foo...bar; end traverses all nodes for example <<-"HERE" a\ b HERE traverses all nodes for example "#@1" traverses all nodes for example defined? foo traverses all nodes for example foo[1, 2] traverses all nodes for example "foo#{bar}baz" traverses all nodes for example __FILE__ traverses all nodes for example a # # &.foo traverses all nodes for example :'a\ b' traverses all nodes for example foo::fun bar traverses all nodes for example { 'foo': 2 } traverses all nodes for example -> (a) { } traverses all nodes for example foo::a = 1 traverses all nodes for example %x{a\ b} traverses all nodes for example a, * = bar traverses all nodes for example f { || a:b } traverses all nodes for example class A < B end traverses all nodes for example %i[foo bar] traverses all nodes for example foo::Fun bar traverses all nodes for example %q(foobar) traverses all nodes for example def foo(_, _); end traverses all nodes for example def f *r, &b; end traverses all nodes for example until foo do meth end traverses all nodes for example { 1 => 2 } traverses all nodes for example case; when foo; 'foo'; end traverses all nodes for example case foo; in "a": 1 then true; end traverses all nodes for example m def x(); end; 1.tap do end traverses all nodes for example *b = bar traverses all nodes for example :"foo#{bar}baz" traverses all nodes for example foo || (a, b = bar) traverses all nodes for example foo::A = 1 traverses all nodes for example p :foo, {a: proc do end, b: proc do end} traverses all nodes for example %i[] traverses all nodes for example foo = m foo traverses all nodes for example foo&.bar {} traverses all nodes for example case foo; in a: 1, _a:, ** then true; end traverses all nodes for example foo::Fun() traverses all nodes for example p <<~`E` x #{foo} E traverses all nodes for example # coding:utf-8 "\xD0\xBF\xD1\x80\xD0\xBE\xD0\xB2\xD0\xB5\xD1\x80\xD0\xBA\xD0\xB0" traverses all nodes for example -foo traverses all nodes for example meth 1 do end::fun(bar) traverses all nodes for example a b{c(d)}, "x" do end traverses all nodes for example foo[bar, :baz => 1,] traverses all nodes for example def foo(...); bar(...); end traverses all nodes for example %I[foo#{bar}] traverses all nodes for example !/wat/ traverses all nodes for example begin; meth; ensure; bar; end traverses all nodes for example :foo traverses all nodes for example nil traverses all nodes for example def foo(...); super(...); end traverses all nodes for example [*foo] traverses all nodes for example bar if foo traverses all nodes for example def m; class << self; A = nil; end; end traverses all nodes for example def f ((a, a1)); end traverses all nodes for example f{ |o=1, &b| } traverses all nodes for example f{ |foo: 1, &b| } traverses all nodes for example case foo; when 'bar'; bar; else baz; end traverses all nodes for example 42ri traverses all nodes for example f{ |a| } traverses all nodes for example %Q{a\ b} traverses all nodes for example while def foo; tap do end; end; break; end traverses all nodes for example begin meth end while foo traverses all nodes for example foo, bar = m foo traverses all nodes for example 42.1i traverses all nodes for example f{ |foo:| } traverses all nodes for example f{ |a| } traverses all nodes for example self::a, foo = foo traverses all nodes for example foo += m foo traverses all nodes for example %w[ #@@1 ] traverses all nodes for example class << foo; _1; end traverses all nodes for example case foo; in ::A then true; end traverses all nodes for example def f(*); end traverses all nodes for example :'#@1' traverses all nodes for example /(?bar)/ =~ 'bar'; match traverses all nodes for example case foo; in (1) then true; end traverses all nodes for example m ->(a: ->{_1}) {a} traverses all nodes for example a ||= 1 traverses all nodes for example "#{-> foo {}}" traverses all nodes for example def a; @@var |= 10; end traverses all nodes for example -> do _1 + _9 end traverses all nodes for example foo = raise bar rescue nil traverses all nodes for example foo !~ 1 traverses all nodes for example def f(**foo); end traverses all nodes for example fun(&bar) traverses all nodes for example fun(:foo => 1, &baz) traverses all nodes for example break(foo) traverses all nodes for example p :foo, {:a => proc do end, b: proc do end} traverses all nodes for example fun(foo, *bar, &baz) traverses all nodes for example f{ |a| } traverses all nodes for example a, b = *foo, bar traverses all nodes for example def BEGIN; end traverses all nodes for example def f ((a, *, p)); end traverses all nodes for example `foobar` traverses all nodes for example self.A, foo = foo traverses all nodes for example a += 1 traverses all nodes for example foo::a += 1 traverses all nodes for example if (bar; a, b = foo); end traverses all nodes for example @@var |= 10 traverses all nodes for example begin; meth; rescue => @ex; bar; end traverses all nodes for example let (:a) { m do; end } traverses all nodes for example _2 = 1 traverses all nodes for example unless foo then bar; end traverses all nodes for example foo != 1 traverses all nodes for example a b{c(d)}, 1.0r do end traverses all nodes for example fun(foo, :foo => 1) traverses all nodes for example class A; _1; end traverses all nodes for example alias $a $+ traverses all nodes for example m "#{[]}" traverses all nodes for example foo.a ||= 1 traverses all nodes for example fun(1) { } traverses all nodes for example foo.fun (1) {} traverses all nodes for example foo, bar = 1, 2 traverses all nodes for example def f(foo:); end traverses all nodes for example p <<~E x y E traverses all nodes for example self traverses all nodes for example case foo; in 1 | 2 then true; end traverses all nodes for example m { |**nil| } traverses all nodes for example p :foo, {"a": proc do end, b: proc do end} traverses all nodes for example a b(c d), /x/ do end traverses all nodes for example (foo, bar) = 1, 2 traverses all nodes for example !foo traverses all nodes for example f{ |a, b,| } traverses all nodes for example p ->() do a() do end end traverses all nodes for example __ENCODING__ traverses all nodes for example 42.1ri traverses all nodes for example undef foo, :bar, :"foo#{1}" traverses all nodes for example foo - 1 traverses all nodes for example def f(**nil); end traverses all nodes for example %q{a\ b} traverses all nodes for example ((b, )) = foo traverses all nodes for example m [], 1 do end traverses all nodes for example def foo(...); bar(...); end traverses all nodes for example def f a, o=1, p, &b; end traverses all nodes for example def String; end traverses all nodes for example 'foobar' traverses all nodes for example case foo; in "#{ 'a' }": then true; end traverses all nodes for example begin; meth; rescue => ex; bar; end traverses all nodes for example f{ |*s, &b| } traverses all nodes for example foo <= 1 traverses all nodes for example a, *, c = bar traverses all nodes for example meth 1 do end.fun bar traverses all nodes for example m do _1 + _9 end traverses all nodes for example ->{ } traverses all nodes for example a = b += raise :x traverses all nodes for example p <<~E x y E traverses all nodes for example 42i traverses all nodes for example %w[foo bar] traverses all nodes for example case foo; in a: then true; end traverses all nodes for example fun (1) traverses all nodes for example 1... traverses all nodes for example !(foo...bar) traverses all nodes for example meth (-1.3).abs traverses all nodes for example 42.1r traverses all nodes for example a # # .foo traverses all nodes for example foo.fun bar traverses all nodes for example foo >> 1 traverses all nodes for example m [] do end traverses all nodes for example case foo; in {a: 1 } false ; end traverses all nodes for example fun(foo, *bar) traverses all nodes for example def foo(_a, _a); end traverses all nodes for example Foo traverses all nodes for example :"a\ b" traverses all nodes for example super traverses all nodes for example def f *r, p, &b; end traverses all nodes for example fun(:foo => 1) traverses all nodes for example [ 1, 2 => 3 ] traverses all nodes for example for a in foo; p a; end traverses all nodes for example fun(f bar) traverses all nodes for example def self.m; _1; end traverses all nodes for example begin ensure end traverses all nodes for example p <<~E " y" x E traverses all nodes for example foo | 1 traverses all nodes for example next traverses all nodes for example 'a\ b' traverses all nodes for example if foo; bar; elsif baz; 1; else 2; end traverses all nodes for example false traverses all nodes for example <<~E 1 \ 2 3 E traverses all nodes for example case foo; in *x then nil; end traverses all nodes for example m { _1 + _9 } traverses all nodes for example %q{#@@1} traverses all nodes for example -42 traverses all nodes for example a b(c(d)), "x" do end traverses all nodes for example `#@@1` traverses all nodes for example yield foo traverses all nodes for example _1 traverses all nodes for example foo && bar traverses all nodes for example case foo; in { a: 1, } then true; end traverses all nodes for example foo.A += 1 traverses all nodes for example foo.a += 1 traverses all nodes for example f{ |a, *s| } traverses all nodes for example not(foo) traverses all nodes for example <<-"HERE" #@1 HERE traverses all nodes for example def f a, o=1, &b; end traverses all nodes for example a b(c d), 1.0i do end traverses all nodes for example fun (1 ) traverses all nodes when a class defines on_arg calls it for all arguments for example begin; meth; rescue; foo; end traverses all nodes for example %I() traverses all nodes for example def f foo = 1; end traverses all nodes for example /#@@1/ traverses all nodes for example fun(foo, :foo => 1, &baz) traverses all nodes for example redo traverses all nodes for example def f o=1, *r, &b; end traverses all nodes for example "#@a #@@a #$a" traverses all nodes for example while foo; meth end traverses all nodes for example f{ |o=1, p, &b| } traverses all nodes for example case foo; in A::B then true; end traverses all nodes for example a b{c(d)}, 1.0 do end traverses all nodes for example ..100 traverses all nodes for example foo > 1 traverses all nodes for example def f foo: ; end traverses all nodes for example foo = meth rescue bar traverses all nodes for example foo or bar traverses all nodes for example def f ((*)); end traverses all nodes for example * = bar traverses all nodes for example begin meth end until foo traverses all nodes for example %W[#@@1] traverses all nodes for example /source/im traverses all nodes for example foo[bar,] traverses all nodes for example -2.0 ** 10 traverses all nodes for example case foo; in ** then true; end traverses all nodes for example begin; meth; rescue; baz; else foo; ensure; bar end traverses all nodes for example ::A += 1 traverses all nodes for example @foo traverses all nodes for example case foo; in [x, *, y] then true; end traverses all nodes for example foo[0] += raise(bar) rescue nil traverses all nodes for example false ? raise do end : tap do end traverses all nodes for example if foo..bar; end traverses all nodes for example m a + b do end traverses all nodes for example case foo; in A[] then true; end traverses all nodes for example while class Foo a = tap do end; end; break; end traverses all nodes for example <<-"HERE" #@@1 HERE traverses all nodes for example meth 1 do end.fun(bar) traverses all nodes for example p <<~E x E traverses all nodes for example f{ |&b| } traverses all nodes for example :"#@1" traverses all nodes for example a b(c(d)), 1.0 do end traverses all nodes for example while def self.foo; tap do end; end; break; end traverses all nodes for example foo[1, 2] = 3 traverses all nodes for example $+ traverses all nodes for example if foo then bar end traverses all nodes for example f{ |a, o=1, &b| } traverses all nodes for example def foo =begin =end end traverses all nodes for example case foo; in A then true; end traverses all nodes for example foo.fun traverses all nodes for example p <<~"E" x #{" y"} E traverses all nodes for example super do end traverses all nodes for example case foo; in [x, *y, z] then true; end traverses all nodes for example begin; meth; rescue; baz; ensure; bar; end traverses all nodes for example f{ |*s| } traverses all nodes for example A += 1 traverses all nodes for example case foo; in x if true; nil; end traverses all nodes for example foo === 1 traverses all nodes for example 1...2 traverses all nodes for example @@foo traverses all nodes for example p <<~E x y E traverses all nodes for example %i[ #@@1 ] traverses all nodes for example f{ || } traverses all nodes for example !(foo..bar) traverses all nodes for example f{ |a, *r, p, &b| } traverses all nodes for example case foo; in {} then true; end traverses all nodes for example foo.A = 1 traverses all nodes for example f{ |a, *| } traverses all nodes for example for a, b in foo; p a, b; end traverses all nodes for example foo[m bar] traverses all nodes for example bar def foo; self.each do end end traverses all nodes for example meth 1 do end.fun {} traverses all nodes for example "foo#@a" "bar" traverses all nodes for example def f ((*r)); end traverses all nodes for example %w{a\ b} traverses all nodes for example desc "foo" do end traverses all nodes for example case 1; in 2; 3; else; 4; end traverses all nodes for example p <<~E x y E traverses all nodes for example proc {|_3|} traverses all nodes for example foo < 1 traverses all nodes for example case foo; in *x, y, z then nil; end traverses all nodes for example __ENCODING__ traverses all nodes for example def m; class << self; module M; end; end; end traverses all nodes for example <<-E 1 \ 2 3 E traverses all nodes for example t=1;(foo)?t:T traverses all nodes for example %w[ #@1 ] traverses all nodes for example foo << 1 traverses all nodes for example -> (arg={}) {} traverses all nodes for example def self.foo; end traverses all nodes for example f{ |o=1, *r, &b| } traverses all nodes for example case foo; in ...2 then true; end traverses all nodes for example def f ((*, p)); end traverses all nodes for example for a in foo do p a; end traverses all nodes for example fun () {} traverses all nodes for example case foo; when 1, *baz; bar; when *foo; end traverses all nodes for example fun(*bar, &baz) traverses all nodes for example foo "#{(1+1).to_i}" do; end traverses all nodes for example def f ((a, *r, p)); end traverses all nodes for example a b(c(d)), /x/m do end traverses all nodes for example assert do: true traverses all nodes for example [ 1 => 2 ] traverses all nodes for example foo::C ||= raise bar rescue nil traverses all nodes for example class << foo; nil; end traverses all nodes for example { } traverses all nodes for example def f(foo, bar); end traverses all nodes for example Bar::Foo traverses all nodes for example a b(c d), 1.0 do end traverses all nodes for example case foo; in [x, y,] then true; end traverses all nodes for example def m; class << self; class C; end; end; end traverses all nodes for example a b{c d}, /x/m do end traverses all nodes for example a b{c(d)}, 1.0i do end traverses all nodes for example a b{c d}, /x/ do end traverses all nodes for example <<'HERE' foo bar HERE traverses all nodes for example ->(a) { } traverses all nodes for example fun(1) traverses all nodes for example -> do end traverses all nodes for example foo::fun traverses all nodes for example until foo; meth end traverses all nodes for example case foo; in a:, b: then true; end traverses all nodes for example %W[foo #{bar}foo#@baz] traverses all nodes for example case foo; in 1 => a then true; end traverses all nodes for example foo.A += m foo traverses all nodes for example a, *b, c = bar traverses all nodes for example case foo; in 1... then true; end traverses all nodes for example foo = bar = m foo traverses all nodes for example +foo traverses all nodes for example def f (foo: 1, &b); end traverses all nodes for example foo.(1) traverses all nodes for example %r{a\ b} traverses all nodes for example <<~FOO baz\ qux FOO traverses all nodes for example p <<~E E traverses all nodes for example a = b = raise :x traverses all nodes for example begin; meth; rescue foo => ex; bar; end traverses all nodes for example fun() { } traverses all nodes for example `#@1` traverses all nodes for example %W[foo #{bar}] traverses all nodes for example p p{p(p);p p}, tap do end traverses all nodes for example () traverses all nodes for example if foo then bar; end traverses all nodes for example def f o=1, p, &b; end traverses all nodes for example def until; end traverses all nodes for example -2 ** 10 traverses all nodes for example foo = baz, *bar traverses all nodes for example not m foo traverses all nodes for example case foo; in {a: } true ; end traverses all nodes for example p :foo, {** proc do end, b: proc do end} traverses all nodes for example case foo; in "#{ %q{a} }": 1 then true; end traverses all nodes for example defined? @foo traverses all nodes for example foo.C += raise bar rescue nil traverses all nodes for example a&.b = 1 traverses all nodes for example case foo; in {a: 2} false ; end traverses all nodes for example a b(c d), 1 do end traverses all nodes for example var = 10; var traverses all nodes for example case foo; in a: {b:}, c: p c ; end traverses all nodes for example /#@1/ traverses all nodes for example case foo; in 1.. then true; end traverses all nodes for example "#@@1" traverses all nodes for example foo::m += raise bar rescue nil traverses all nodes for example :'#@@1' traverses all nodes for example foo.m += raise bar rescue nil traverses all nodes for example foo::m += raise(bar) rescue nil traverses all nodes for example ::A, foo = foo traverses all nodes for example foo >= 1 traverses all nodes for example def f *, **; end traverses all nodes for example def foo raise; raise A::B, ''; end traverses all nodes for example a, *b = bar traverses all nodes for example def f ; end traverses all nodes for example case foo; in ->{ 42 } then true; end traverses all nodes for example def f(&block); end traverses all nodes for example "#{1}" traverses all nodes for example return traverses all nodes for example case foo; in A() then true; end traverses all nodes for example foo && (a, b = bar) traverses all nodes for example p begin 1.times do 1 end end traverses all nodes for example %I[foo #{bar}] traverses all nodes for example case foo; in A[1, 2] then true; end traverses all nodes for example def f (((a))); end traverses all nodes for example f{ |a, *, &b| } traverses all nodes for example meth 1 do end.fun bar do end traverses all nodes for example a b(c(d)), 1 do end traverses all nodes for example proc {_1 = nil} traverses all nodes for example if foo then bar; else baz; end traverses all nodes for example a b{c d}, 1 do end traverses all nodes for example case foo; in "#{ %Q{a} }": then true; end traverses all nodes for example foo, bar = meth rescue [1, 2] traverses all nodes for example m = -> *args do end traverses all nodes for example def f(foo: 1); end traverses all nodes for example retry traverses all nodes when a class defines `on_block_pass` calls it for all block-pass arguments for example a = 1; a b: 1 traverses all nodes for example def String.foo; end traverses all nodes for example a&.b &&= 1 traverses all nodes for example Foo = 10 traverses all nodes for example while def self.foo a = tap do end; end; break; end traverses all nodes for example case foo; when 'bar' then bar; end traverses all nodes for example meth while foo traverses all nodes for example def END; end traverses all nodes for example a b{c d}, 1.0 do end traverses all nodes for example begin end traverses all nodes for example foo / 1 traverses all nodes for example '#@1' traverses all nodes for example case foo; in [x, y] then true; end traverses all nodes for example a b{c(d)}, 1 do end traverses all nodes for example unless foo then bar; else baz; end traverses all nodes for example ::Foo = 10 traverses all nodes for example self::A, foo = foo traverses all nodes for example while class Foo; tap do end; end; break; end traverses all nodes for example m "#{}#{()}" traverses all nodes for example %{#@@1} traverses all nodes for example f{ | | } traverses all nodes for example /\xa8/n =~ "" traverses all nodes for example def x(_4) end traverses all nodes for example foo.a = 1 traverses all nodes for example p <<~E E traverses all nodes for example 1.. traverses all nodes for example def foo() a:b end traverses all nodes for example a b{c(d)}, :e do end traverses all nodes for example defined?(foo) traverses all nodes for example next() traverses all nodes for example %q{#@1} traverses all nodes for example case [__FILE__, __LINE__ + 1, __ENCODING__] in [__FILE__, __LINE__, __ENCODING__] end traverses all nodes for example a b(c d), /x/m do end traverses all nodes for example fun { } traverses all nodes for example @a |= 1 traverses all nodes for example break foo traverses all nodes for example case foo; when 'bar'; bar; end traverses all nodes for example foo += meth rescue bar traverses all nodes for example case foo; in {Foo: 42 } false ; end traverses all nodes for example next fun foo do end traverses all nodes for example p <<~"E" x\n y E traverses all nodes for example def String::foo; end traverses all nodes for example foo % 1 traverses all nodes for example false ? raise {} : tap {} traverses all nodes for example Bar::Foo = 10 traverses all nodes for example <(a; foo, bar) { } traverses all nodes for example a b{c d}, 1.0i do end traverses all nodes for example :"#@@1" traverses all nodes for example def f a, &b; end traverses all nodes for example not() traverses all nodes for example class Foo < Bar; end traverses all nodes for example a b(c(d)), :e do end traverses all nodes for example true traverses all nodes for example case foo; in A[x:] then true; end traverses all nodes for example def a b: return end traverses all nodes for example def f ((a, *r)); end traverses all nodes for example begin foo!; bar! end traverses all nodes for example p <<~E x y E traverses all nodes for example yield traverses all nodes for example def f o=1, &b; end traverses all nodes for example def f a, *r, &b; end traverses all nodes for example f{ |**baz, &b| } traverses all nodes for example p :foo, {proc do end => proc do end, b: proc do end} traverses all nodes for example module A; _1; end traverses all nodes for example $foo traverses all nodes for example f{ |*| } traverses all nodes for example case; when foo; 'foo'; else 'bar'; end traverses all nodes for example <<-'HERE' a\ b HERE traverses all nodes for example %x{#@1} traverses all nodes for example a b(c(d)), /x/ do end traverses all nodes for example begin; meth; rescue Exception, foo; bar; end traverses all nodes for example %s{#@1} traverses all nodes for example +2.0 ** 10 traverses all nodes for example case foo; in [*, x] then true; end traverses all nodes for example B::A += 1 traverses all nodes for example %W{a\ b} traverses all nodes for example a b(c d), 1.0r do end traverses all nodes for example a b(c(d)), 1.0r do end traverses all nodes for example class Foo end traverses all nodes for example f{ |a, o=1, p, &b| } traverses all nodes for example m { |(foo, bar)| } traverses all nodes for example `a\ b` traverses all nodes for example def f ((*r, p)); end traverses all nodes for example 1.33 traverses all nodes for example foo += raise(bar) rescue nil traverses all nodes for example break() traverses all nodes for example [1, 2] traverses all nodes for example # Extracted from `parser` gem. # Add the following code at the beginning of `def assert_parses`: # # File.open('./out.rb', 'a+') do |f| # f << code << "\n\n#----\n" if versions.include? '2.7' # end alias $a $b traverses all nodes for example a b{c d}, 1.0r do end traverses all nodes for example case foo; in "#{ 'a' }": 1 then true; end traverses all nodes for example <<`HERE` foo bar HERE traverses all nodes for example p <<~E x y E traverses all nodes for example foo == 1 traverses all nodes for example foo (-1.3).abs traverses all nodes for example foo & 1 traverses all nodes for example p <<~"E" x #{foo} E traverses all nodes RuboCop::AST::ForNode #post_condition_loop? is expected not to be post condition loop #void_context? without a do keyword is expected to be void context with a do keyword is expected to be void context .new is expected to be a kind of RuboCop::AST::ForNode #do? with a do keyword is expected to be do without a do keyword is expected not to be do #body is expected to be sym type #collection is expected to be sym type #variable is expected to be lvasgn type #keyword is expected to eq "for" #loop_keyword? is expected to be loop keyword RuboCop::AST::DefNode #method? when message matches when argument is a string is expected to be method "bar" when argument is a symbol is expected to be method :bar when message does not match when argument is a string is expected not to be method "foo" when argument is a symbol is expected not to be method :foo #method_name with a setter method is expected to eq :foo= with a unary method is expected to eq :-@ with a plain method is expected to eq :foo with an operator method is expected to eq :== .new with a defs node is expected to be a kind of RuboCop::AST::DefNode with a def node is expected to be a kind of RuboCop::AST::DefNode #last_argument with a single regular argument is expected to be arg type with no arguments is expected to be nil with a single rest argument is expected to be restarg type with a single keyword argument is expected to be kwoptarg type with multiple mixed arguments is expected to be restarg type with multiple regular arguments is expected to be arg type #arguments with a single regular argument is expected to eq 1 with no arguments is expected to be empty with multiple mixed arguments is expected to eq 2 with argument forwarding is expected to eq 1 with multiple regular arguments is expected to eq 2 with a single rest argument is expected to eq 1 #body with no body is expected to be nil with a multi-expression body is expected to be begin type with a single expression body is expected to be send type #rest_argument? with regular arguments is expected not to be rest argument with mixed arguments is expected to be rest argument with no arguments is expected not to be rest argument with a rest argument is expected to be rest argument #const_receiver? with a class method definition is expected not to be const receiver with a singleton method definition is expected to be const receiver with an instance method definition is expected not to be const receiver when using Ruby 2.7 or newer #argument_forwarding? is expected to be argument forwarding #bang_method? with a regular method is expected not to be bang method with a bang method is expected to be bang method with a predicate method is expected not to be bang method #block_argument? with mixed arguments is expected to be block argument with no arguments is expected not to be block argument with a block argument is expected to be block argument with regular arguments is expected not to be block argument #camel_case_method? with a regular method is expected not to be camel case method with a camel case method is expected to be camel case method #void_context? with a regular assignment method is expected to be void context with an initializer method is expected to be void context with a bracket assignment method is expected to be void context with a comparison method is expected not to be void context with a regular method is expected not to be void context #predicate_method? with a regular method is expected not to be predicate method with a bang method is expected not to be predicate method with a predicate method is expected to be predicate method #receiver with an instance method definition is expected to be nil with a class method definition is expected to be self type with a singleton method definition is expected to be const type #endless? with standard method definition is expected not to be endless with endless method definition is expected to be endless #comparison_method? with a regular method is expected not to be comparison method with a comparison method is expected to be comparison method #operator_method? with a unary operator method is expected to be operator method with a regular method is expected not to be operator method with a setter method is expected not to be operator method with a binary operator method is expected to be operator method #self_receiver? with a singleton method definition is expected not to be self receiver with a class method definition is expected to be self receiver with an instance method definition is expected not to be self receiver #first_argument with multiple mixed arguments is expected to be arg type with a single keyword argument is expected to be kwoptarg type with a single regular argument is expected to be arg type with no arguments is expected to be nil with multiple regular arguments is expected to be arg type with a single rest argument is expected to be restarg type #assignment_method? with a regular method is expected not to be assignment method with a comparison method is expected not to be assignment method with a bracket assignment method is expected to be assignment method with an assignment method is expected to be assignment method #arguments? with no arguments is expected not to be arguments with a single rest argument is expected to be arguments with multiple regular arguments is expected to be arguments with multiple mixed arguments is expected to be arguments with a single keyword argument is expected to be arguments with a single regular argument is expected to be arguments RuboCop::AST::YieldNode #assignment_method? is expected not to be assignment method #splat_argument? with regular arguments is expected not to be splat argument with mixed arguments is expected to be splat argument with no arguments is expected not to be splat argument with a splat argument is expected to be splat argument #const_receiver? is expected not to be const receiver #comparison_method? is expected not to be comparison method .new is expected to be a kind of RuboCop::AST::YieldNode #block_argument? is expected not to be block argument #block_literal? is expected not to be block literal #command? when argument is a symbol is expected to be command :yield when argument is a string is expected to be command "yield" #arguments? with a single splat argument is expected to be arguments with a single literal argument is expected to be arguments with multiple literal arguments is expected to be arguments with multiple mixed arguments is expected to be arguments with no arguments is expected not to be arguments #parenthesized? with arguments when not using parentheses is expected not to be parenthesized when using parentheses is expected to be parenthesized with no arguments when using parentheses is expected to be parenthesized when not using parentheses is expected not to be parenthesized #predicate_method? is expected not to be predicate method #implicit_call? is expected not to be implicit call #first_argument with multiple mixed arguments is expected to be sym type with multiple literal arguments is expected to be sym type with no arguments is expected to be nil with a single literal argument is expected to be sym type with a single splat argument is expected to be splat type #block_node is expected to be nil #arguments with a single splat argument is expected to eq 1 with multiple mixed arguments is expected to eq 2 with no arguments is expected to be empty with a single literal argument is expected to eq 1 with multiple literal arguments is expected to eq 2 #operator_method? is expected not to be operator method #setter_method? is expected not to be setter method #last_argument with a single splat argument is expected to be splat type with multiple literal arguments is expected to be sym type with a single literal argument is expected to be sym type with multiple mixed arguments is expected to be splat type with no arguments is expected to be nil #method_name is expected to eq :yield #camel_case_method? is expected not to be camel case method #macro? is expected not to be macro #bang_method? is expected not to be bang method #self_receiver? is expected not to be self receiver #receiver is expected to be nil #method? when message does not match when argument is a symbol is expected not to be method :foo when argument is a string is expected not to be method "foo" when message matches when argument is a symbol is expected to be method :yield when argument is a string is expected to be method "yield" #dot? is expected not to be dot #double_colon? is expected not to be double colon RuboCop::AST::LambdaNode #receiver is expected to be nil #arguments is expected to eq 2 #method_name is expected to eq :lambda RuboCop::AST::NodePattern::Sets is expected to eq "::RuboCop::AST::NodePattern::Sets::SET_1_2_3_ETC" creates a constant with the right value is expected not to eq "::RuboCop::AST::NodePattern::Sets::SET_1_2_3_ETC_2" is expected to eq "::RuboCop::AST::NodePattern::Sets::SET_1_2_3_ETC" Changelog parses correctly merges correctly Changelog::Entry generates correct content RuboCop::AST::ProcessedSource #ast is the root node of AST .from_file raises a Errno::ENOENT when the file does not exist when the file exists sets the file path to the instance's #path returns an instance of ProcessedSource #following_line returns source of line after token #blank? with source with content returns false with source of no content returns true #start_with? with blank source returns false with present source returns false when passed string that does not start source returns true when passed string that starts source token enumerables #each_token yields all tokens #find_token yields nil when there is no match yields correct token #file_path returns file path #tokens has an array of tokens #lines contains lines as string without linefeed is an array has same number of elements as line count #parser_error when the source could not be parsed due to encoding error returns the error when the source was properly parsed is nil when the source lacks encoding comment and is really utf-8 encoded but has been read as US-ASCII is nil with heavily commented source #line_with_comment? returns true for lines with comments returns false for lines without comments #each_comment_in_lines yields the comments #find_comment yields nil when there is no match yields correct comment #comments_before_line returns comments on or before given line #each_comment yields all comments #contains_comment? provided a multiline source_range with at least one line with comment is expected to equal true provided source_range on line without comment is expected to equal false provided source_range on line with comment is expected to equal true provided source_range on comment line is expected to equal true #comment_at_line returns the comment at the given line number returns nil if line has no comment #buffer is a source buffer #comments is an array of comments when the source is invalid returns [] #preceding_line returns source of line before token #first_token_of accepts Node as an argument returns first token for node #last_token_of returns last token for node accepts Node as an argument #path is the path passed to .new #[] when a range is passed returns the array of lines when an index is passed returns the line when start index and length are passed returns the array of lines valid_syntax? when a line starts with an integer literal tokenizes the source correctly when the source itself is valid encoding but includes strange encoding literals that are accepted by MRI returns true when the source is invalid returns false when the source could not be parsed due to encoding error returns false when the source is valid but has some warning diagnostics returns true when the source is completely valid returns true #tokens_within accepts Node as an argument returns tokens for node when heredoc as argument is present returns tokens for node after heredoc returns tokens for node before heredoc returns tokens for heredoc node RuboCop::AST::SuperNode #operator_method? is expected not to be operator method #implicit_call? is expected not to be implicit call #self_receiver? is expected not to be self receiver #predicate_method? is expected not to be predicate method #arguments with a single splat argument is expected to eq 1 with no arguments is expected to be empty with multiple mixed arguments is expected to eq 2 with multiple literal arguments is expected to eq 2 with a single literal argument is expected to eq 1 #double_colon? is expected not to be double colon #method? when message does not match when argument is a symbol is expected not to be method :foo when argument is a string is expected not to be method "foo" when message matches when argument is a string is expected to be method "super" when argument is a symbol is expected to be method :super #block_argument? with mixed arguments is expected to be block argument with a block argument is expected to be block argument with no arguments is expected not to be block argument with regular arguments is expected not to be block argument #bang_method? is expected not to be bang method #first_argument with a single splat argument is expected to be splat type with no arguments is expected to be nil with multiple mixed arguments is expected to be sym type with multiple literal arguments is expected to be sym type with a single literal argument is expected to be sym type #parenthesized? with no arguments when not using parentheses is expected not to be parenthesized when using parentheses is expected to be parenthesized with arguments when not using parentheses is expected not to be parenthesized when using parentheses is expected to be parenthesized #block_node with a block argument is expected to be nil with no block is expected to be nil with a block literal is expected to be block type #camel_case_method? is expected not to be camel case method #setter_method? is expected not to be setter method #dot? is expected not to be dot #assignment_method? is expected not to be assignment method #block_literal? with a block argument is expected not to be block literal with no block is expected not to be block literal with a block literal is expected to be block literal #last_argument with no arguments is expected to be nil with multiple mixed arguments is expected to be splat type with a single splat argument is expected to be splat type with multiple literal arguments is expected to be sym type with a single literal argument is expected to be sym type #method_name is expected to eq :super #comparison_method? is expected not to be comparison method #arguments? with a single splat argument is expected to be arguments with no arguments is expected not to be arguments with a single literal argument is expected to be arguments with multiple literal arguments is expected to be arguments with multiple mixed arguments is expected to be arguments #command? when argument is a symbol is expected to be command :super when argument is a string is expected to be command "super" #splat_argument? with regular arguments is expected not to be splat argument with mixed arguments is expected to be splat argument with a splat argument is expected to be splat argument with no arguments is expected not to be splat argument .new with a super node is expected to be a kind of RuboCop::AST::SuperNode with a zsuper node is expected to be a kind of RuboCop::AST::SuperNode #receiver is expected to be nil #const_receiver? is expected not to be const receiver #macro? is expected not to be macro RuboCop::AST::IntNode .new is expected to be a kind of RuboCop::AST::IntNode #value is expected to eq 10 #sign? explicit positive int is expected to be sign explicit negative int is expected to be sign RuboCop::AST::ReturnNode behaves like wrapped arguments node #arguments with multiple literal arguments is expected to eq 2 with no arguments is expected to be empty with a single argument and braces is expected to eq 1 with a single argument is expected to eq 1 with no arguments and braces is expected to be empty with a single splat argument is expected to eq 1 .new with arguments is expected to be a kind of RuboCop::AST::ReturnNode without arguments is expected to be a kind of RuboCop::AST::ReturnNode RuboCop::AST::SymbolNode .new with a symbol node is expected to be a kind of RuboCop::AST::SymbolNode #value is expected to eq :foo RuboCop::AST::SendNode #non_bare_access_modifier? when node is a non-bare `module_function` is expected to be non bare access modifier when node is not an access modifier is expected not to be non bare access modifier when node does not have an argument is expected not to be non bare access modifier #arguments with multiple mixed arguments is expected to eq 2 with a single literal argument is expected to eq 1 with no arguments is expected to be empty with a single splat argument is expected to eq 1 with multiple literal arguments is expected to eq 2 #dot? without a dot is expected not to be dot with a dot is expected to be dot with a double colon is expected not to be dot with a unary method is expected not to be dot #setter_method? with an operator method is expected not to be setter method with a regular method is expected not to be setter method with an indexed setter method is expected to be setter method with a setter method is expected to be setter method #method_name with a plain method is expected to eq :bar with an operator method is expected to eq :== with an implicit call method is expected to eq :call with a setter method is expected to eq :bar= #block_node with no block is expected to be nil with a block argument is expected to be nil with a block literal is expected to be block type with Ruby >= 2.7 with a numblock literal is expected to be numblock type #prefix_not? with a non-negated method is expected not to be prefix not with keyword `not` is expected to be prefix not with a bang method is expected not to be prefix not #operator_method? with a setter method is expected not to be operator method with a unary operator method is expected to be operator method with a binary operator method is expected to be operator method with a regular method is expected not to be operator method #nonmutating_hash_method? with a mutating Hash method is expected not to be nonmutating hash method with a regular method is expected not to be nonmutating hash method with a nonmutating Hash method is expected to be nonmutating hash method #enumerable_method? with a regular method is expected not to be enumerable method with an enumerable method is expected to be enumerable method #block_literal? with a block argument is expected not to be block literal with Ruby >= 2.7 with a numblock literal is expected to be block literal with a block literal is expected to be block literal with no block is expected not to be block literal #camel_case_method? with a camel case method is expected to be camel case method with a regular method is expected not to be camel case method #last_argument with a single splat argument is expected to be splat type with a single literal argument is expected to be sym type with multiple mixed arguments is expected to be splat type with no arguments is expected to be nil with multiple literal arguments is expected to be sym type #receiver with a literal receiver is expected to be str type with no receiver is expected to be nil with a variable receiver is expected to be send type #first_argument with a single literal argument is expected to be sym type with no arguments is expected to be nil with multiple literal arguments is expected to be sym type with multiple mixed arguments is expected to be sym type with a single splat argument is expected to be splat type #prefix_bang? with a non-negated method is expected not to be prefix bang with a bang method is expected to be prefix bang with keyword `not` is expected not to be prefix bang #comparison_method? with a negation method is expected not to be comparison method with a comparison method is expected to be comparison method with a regular method is expected not to be comparison method #def_modifier? with a block containing a method definition is expected not to be def modifier with several prefixed def modifiers is expected to be def modifier with a prefixed def modifier is expected to be def modifier #parenthesized? with arguments when using parentheses is expected to be parenthesized when not using parentheses is expected not to be parenthesized with no arguments when using parentheses is expected to be parenthesized when not using parentheses is expected not to be parenthesized #implicit_call? with an implicit call method is expected to be implicit call with a regular method is expected not to be implicit call with an explicit call method is expected not to be implicit call .new with a safe navigation method send is expected to be a kind of RuboCop::AST::SendNode with a regular method send is expected to be a kind of RuboCop::AST::SendNode #double_colon? without a dot is expected not to be double colon with a dot is expected not to be double colon with a unary method is expected not to be double colon with a double colon is expected to be double colon #bang_method? with a predicate method is expected not to be bang method with a bang method is expected to be bang method with a regular method is expected not to be bang method #access_modifier? when node is not an access modifier is expected not to be bare access modifier when node is a non-bare `module_function` is expected to be access modifier when node is a bare `module_function` is expected to be access modifier #negation_method? with suffix `not` is expected not to be negation method with a non-negated method is expected not to be negation method with prefix `not` is expected to be negation method with prefix bang is expected to be negation method #loop_keyword? is expected not to be loop keyword #def_modifier with a prefixed def modifier is expected to eq :bar with call with no argument is expected to be nil with a block containing a method definition is expected to be nil with several prefixed def modifiers is expected to eq :qux #assignment_method? with an assignment method is expected to be assignment method with a bracket assignment method is expected to be assignment method with a regular method is expected not to be assignment method with a comparison method is expected not to be assignment method #nonmutating_string_method? with a nonmutating String method is expected to be nonmutating string method with a mutating String method is expected not to be nonmutating string method with a regular method is expected not to be nonmutating string method #unary_operation? with a unary operation is expected to be unary operation with a regular method call is expected not to be unary operation with an implicit call method is expected not to be unary operation with a binary operation is expected not to be unary operation #arguments? with a single splat argument is expected to be arguments with multiple literal arguments is expected to be arguments with a single literal argument is expected to be arguments with no arguments is expected not to be arguments with multiple mixed arguments is expected to be arguments #predicate_method? with a bang method is expected not to be predicate method with a regular method is expected not to be predicate method with a predicate method is expected to be predicate method #attribute_accessor? with an accessor returns the accessor method and Array] with a call without arguments is expected to be nil #binary_operation?? with a regular method call is expected not to be binary operation with a binary operation is expected to be binary operation with a unary operation is expected not to be binary operation with an implicit call method is expected not to be binary operation #block_argument? with a block argument is expected to be block argument with regular arguments is expected not to be block argument with no arguments is expected not to be block argument with mixed arguments is expected to be block argument #const_receiver? with a self receiver is expected not to be const receiver with a non-constant receiver is expected not to be const receiver with a constant receiver is expected to be const receiver #post_condition_loop? is expected not to be post condition loop #nonmutating_operator_method? with a nonmutating unary operator method is expected to be nonmutating operator method with a mutating binary operator method is expected not to be nonmutating operator method with a nonmutating binary operator method is expected to be nonmutating operator method with a regular method is expected not to be nonmutating operator method #lambda_literal? with a non-lambda method is expected not to be lambda with a lambda method is expected not to be lambda literal with `a.() {}` style method is expected not to be lambda with a stabby lambda is expected to be lambda literal #lambda? with a stabby lambda method is expected to be lambda with a method named lambda in a class is expected not to be lambda with a lambda method is expected to be lambda with a non-lambda method is expected not to be lambda #self_receiver? with a non-self receiver is expected not to be self receiver with an implicit receiver is expected not to be self receiver with a self receiver is expected to be self receiver #command? when argument is a symbol with an implicit receiver is expected to be command :bar with an explicit receiver is expected not to be command :bar when argument is a string with an implicit receiver is expected to be command "bar" with an explicit receiver is expected not to be command "bar" #splat_argument? with mixed arguments is expected to be splat argument with regular arguments is expected not to be splat argument with a splat argument is expected to be splat argument with no arguments is expected not to be splat argument #nonmutating_unary_operator_method? with a nonmutating unary operator method is expected to be nonmutating unary operator method with a regular method is expected not to be nonmutating unary operator method #macro? with a receiver when parent is a module is expected not to be macro when parent is a class is expected not to be macro without a receiver when in an if is expected to be macro when parent is a class is expected to be macro without a parent is expected to be macro when parent is a method definition is expected not to be macro when the condition of an if is expected not to be macro when in the global scope is expected to be macro when parent is a keyword begin inside of an class is expected to be macro when parent is a block in a macro scope is expected to be macro when parent is a begin without a parent is expected to be macro when parent is a struct constructor is expected to be macro when parent is a class constructor is expected to be macro with Ruby >= 2.7 when parent is a numblock in a macro scope is expected to be macro when parent is a block not in a macro scope is expected not to be macro when parent is a module is expected to be macro when parent is a singleton class is expected to be macro #nonmutating_array_method? with a regular method is expected not to be nonmutating array method with a nonmutating Array method is expected to be nonmutating array method with a mutating Array method is expected not to be nonmutating array method #method? when message matches when argument is a string is expected to be method "bar" when argument is a symbol is expected to be method :bar when message does not match when argument is a symbol is expected not to be method :foo when argument is a string is expected not to be method "foo" #nonmutating_binary_operator_method? with a mutating binary operator method is expected not to be nonmutating binary operator method with a nonmutating binary operator method is expected to be nonmutating binary operator method with a regular method is expected not to be nonmutating binary operator method #arithmetic_operation? with a regular method call is expected not to be arithmetic operation with a unary numeric operation is expected not to be arithmetic operation with a binary arithmetic operation is expected to be arithmetic operation #bare_access_modifier? with Ruby >= 2.7 when node is access modifier in numblock is expected to be bare access modifier when node is access modifier in block is expected to be bare access modifier when node is a bare `module_function` is expected to be bare access modifier when node is not an access modifier is expected not to be bare access modifier when node has an argument is expected not to be bare access modifier RuboCop::AST::AndAsgnNode .new is expected to be a kind of RuboCop::AST::AndAsgnNode #name is expected to eq :var #operator is expected to eq :"&&" #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode #expression is expected to eq s(:send, nil, :value) RuboCop::AST::RuboCopCompatibility when ran from a compatible version of Rubocop issues a warning when ran from an incompatible version of Rubocop issues a warning RuboCop::AST::DefinedNode #method_name is expected to eq :defined? .new with a defined? node is expected to be a kind of RuboCop::AST::DefinedNode #receiver is expected to be nil #arguments is expected to all be sym type is expected to eq 1 RuboCop::AST::Procarg0Node .new with a block is expected to be a kind of RuboCop::AST::ArgNode #name is expected to eq :x RuboCop::AST::KeywordSplatNode #hash_rocket? is expected not to be hash rocket .new is expected to be a kind of RuboCop::AST::KeywordSplatNode #colon? is expected not to be colon #same_line? when a multiline pair shares the same line is expected to be same line s(:kwsplat, s(:send, nil, :foo)) is expected to be same line s(:pair, s(:sym, :a), s(:begin)) when pairs are on separate lines is expected not to be same line s(:kwsplat, s(:send, nil, :foo)) when both pairs are on the same line is expected to be same line s(:kwsplat, s(:send, nil, :foo)) #value is expected to eq s(:kwsplat, s(:send, nil, :foo)) #value_delta when using hash rocket delimiters when keyword splat is on the same line is expected to eq 0 when keyword splat is behind is expected to eq 0 when keyword splat is left aligned is expected to eq 0 when keyword splat is ahead is expected to eq 0 when using colon delimiters when keyword splat is ahead is expected to eq 0 when keyword splat is left aligned is expected to eq 0 when keyword splat is on the same line is expected to eq 0 when keyword splat is behind is expected to eq 0 #key is expected to eq s(:kwsplat, s(:send, nil, :foo)) #key_delta with alignment set to :right when using colon delimiters when keyword splat is on the same line is expected to eq 0 when keyword splat is ahead is expected to eq 0 when keyword splat is behind is expected to eq 0 when keyword splat is aligned is expected to eq 0 when using hash rocket delimiters when keyword splat is aligned is expected to eq 0 when keyword splat is behind is expected to eq 0 when keyword splat is ahead is expected to eq 0 when keyword splat is on the same line is expected to eq 0 with alignment set to :left when using colon delimiters when keyword splat is ahead is expected to eq 2 when keyword splat is aligned is expected to eq 0 when keyword splat is behind is expected to eq -2 when keyword splat is on the same line is expected to eq 0 when using hash rocket delimiters when keyword splat is on the same line is expected to eq 0 when keyword splat is aligned is expected to eq 0 when keyword splat is ahead is expected to eq 2 when keyword splat is behind is expected to eq -2 #operator is expected to eq "**" RuboCop::AST::OrNode #semantic_operator? with a logical or node is expected not to be semantic operator with a semantic or node is expected to be semantic operator #rhs with a logical or node is expected to be int type with a semantic or node is expected to be int type #operator with a logical or node is expected to eq "||" with a semantic or node is expected to eq "or" #inverse_operator with a semantic or node is expected to eq "and" with a logical or node is expected to eq "&&" .new with a semantic or node is expected to be a kind of RuboCop::AST::OrNode with a logical or node is expected to be a kind of RuboCop::AST::OrNode #alternate_operator with a logical or node is expected to eq "or" with a semantic or node is expected to eq "||" #logical_operator? with a logical or node is expected to be logical operator with a semantic or node is expected not to be logical operator #lhs with a logical or node is expected to be sym type with a semantic or node is expected to be sym type RuboCop::AST::AsgnNode #expression with a `gvasgn` node is expected to eq s(:send, nil, :value) with a `lvasgn` node is expected to eq s(:send, nil, :value) with a `ivasgn` node is expected to eq s(:send, nil, :value) with a `cvasgn` node is expected to eq s(:send, nil, :value) #name with a `ivasgn` node is expected to eq :@var with a `cvasgn` node is expected to eq :@@var with a `lvasgn` node is expected to eq :var with a `gvasgn` node is expected to eq :$var .new with a `gvasgn` node is expected to be a kind of RuboCop::AST::AsgnNode with a `ivasgn` node is expected to be a kind of RuboCop::AST::AsgnNode with a `cvasgn` node is expected to be a kind of RuboCop::AST::AsgnNode with a `lvasgn` node is expected to be a kind of RuboCop::AST::AsgnNode RuboCop::AST::ClassNode #body with an empty body is expected to be nil with a single expression body is expected to be send type with a multi-expression body is expected to be begin type .new is expected to be a kind of RuboCop::AST::ClassNode #identifier is expected to be const type #parent_class when no parent class is specified is expected to be nil when a parent class is specified is expected to be const type RuboCop::AST::WhileNode .new with a modifier while is expected to be a kind of RuboCop::AST::WhileNode with a statement while is expected to be a kind of RuboCop::AST::WhileNode #loop_keyword? with a modifier while is expected to be loop keyword with a statement while is expected to be loop keyword #keyword is expected to eq "while" #inverse_keyword is expected to eq "until" #post_condition_loop? with a modifier while is expected to be post condition loop with a statement while is expected not to be post condition loop #do? without a do keyword is expected not to be do with a do keyword is expected to be do RuboCop::AST::FloatNode .new is expected to be a kind of RuboCop::AST::FloatNode #sign? explicit negative float is expected to be sign explicit positive float is expected to be sign #value is expected to eq 1.5 RuboCop::AST::RegexpNode #options with an empty regexp is expected to eq 0 with a regexp with "o" option is expected to eq 0 with a regexp with single option is expected to eq 1 with a regexp without option is expected to eq 0 with a regexp with multiple options is expected to eq 3 #multiline_mode? with no options is expected not to be multiline mode with m and other options is expected to be multiline mode with only m option is expected to be multiline mode with other options is expected not to be multiline mode #delimiters with multi-line %r{-delimiters is expected to eq ["{", "}"] with %r{-delimiters is expected to eq ["{", "}"] with %r<-delimiters is expected to eq ["<", ">"] with /-delimiters is expected to eq ["/", "/"] with %r/-delimiters is expected to eq ["/", "/"] #slash_literal? with %r<-delimiters is expected not to be slash literal with %r{-delimiters is expected not to be slash literal with %r/-delimiters is expected not to be slash literal with /-delimiters is expected to be slash literal with multi-line %r{-delimiters is expected not to be slash literal #ignore_case? with no options is expected not to be ignore case with i and other options is expected to be ignore case with only i option is expected to be ignore case with other options is expected not to be ignore case #percent_r_literal? with multi-line %r{-delimiters is expected to be percent r literal with /-delimiters is expected not to be percent r literal with %r/-delimiters is expected to be percent r literal with %r{-delimiters is expected to be percent r literal with %r<-delimiters is expected to be percent r literal #content with a regexp with option is expected to eq ".+" with a multi-line regexp with option is expected to eq "\n.+\n" with a multi-line regexp without option is expected to eq "\n.+\n" with a regexp without option is expected to eq ".+" with an empty regexp with option is expected to eq "" with an empty regexp is expected to eq "" .new is expected to be a kind of RuboCop::AST::RegexpNode #to_regexp with an empty regexp with option is expected to eq //ix with a regexp with an "o" option is expected to eq "/abc/i" with an empty regexp is expected to eq // with a multi-line regexp with option is expected to eq / .+ /ix with a regexp with an "u" option is expected to eq "/abc/" with a regexp with an "n" option is expected to eq "/abc/n" with a regexp without option is expected to eq /.+/ with a regexp with option is expected to eq /.+/mix with a multi-line regexp without option is expected to eq / .+ / #no_encoding? with no options is expected not to be no encoding with n and other options is expected to be no encoding with only n option is expected to be no encoding with other options is expected not to be no encoding #single_interpolation? with other options is expected not to be single interpolation with o and other options is expected to be single interpolation with only o option is expected to be single interpolation with no options is expected not to be single interpolation #regopt with an empty regexp is expected to be empty is expected to be regopt type with an empty regexp with option is expected to eq [:i, :x] is expected to be regopt type with a multi-line regexp without option is expected to be regopt type is expected to be empty with a regexp without option is expected to be regopt type is expected to be empty with a regexp with option is expected to eq [:i, :m, :x] is expected to be regopt type with a multi-line regexp with option is expected to eq [:i, :m, :x] is expected to be regopt type #extended? with other options is expected not to be extended with only x option is expected to be extended with x and other options is expected to be extended with no options is expected not to be extended #fixed_encoding? with other options is expected not to be fixed encoding with no options is expected not to be fixed encoding with only u option is expected to be fixed encoding with u and other options is expected to be fixed encoding #interpolation? with direct variable interpoation is expected to be interpolation with regexp quote is expected to be interpolation with no interpolation returns false is expected not to be interpolation #delimiter? with %r/-delimiters is expected not to be delimiter "{" is expected not to be delimiter "}" is expected not to be delimiter "%" is expected not to be delimiter "%r/" is expected not to be delimiter "r" is expected not to be delimiter "%r" is expected to be delimiter "/" with %r<-delimiters is expected not to be delimiter "/" is expected to be delimiter ">" is expected not to be delimiter "{" is expected not to be delimiter "}" is expected not to be delimiter "%r" is expected not to be delimiter "%r<" is expected not to be delimiter "%r/" is expected not to be delimiter "%" is expected not to be delimiter "r" is expected to be delimiter "<" is expected not to be delimiter "%r{" with /-delimiters is expected not to be delimiter "{" is expected to be delimiter "/" with multi-line %r{-delimiters is expected not to be delimiter "%r{" is expected to be delimiter "{" is expected not to be delimiter "%r" is expected not to be delimiter "%r/" is expected to be delimiter "}" is expected not to be delimiter "%" is expected not to be delimiter "/" is expected not to be delimiter "r" with %r{-delimiters is expected not to be delimiter "%" is expected not to be delimiter "%r" is expected not to be delimiter "r" is expected not to be delimiter "%r/" is expected not to be delimiter "/" is expected to be delimiter "{" is expected not to be delimiter "%r{" is expected to be delimiter "}" RuboCop::AST::BreakNode behaves like wrapped arguments node #arguments with multiple literal arguments is expected to eq 2 with a single splat argument is expected to eq 1 with no arguments is expected to be empty with a single argument is expected to eq 1 with a single argument and braces is expected to eq 1 with no arguments and braces is expected to be empty .new without arguments is expected to be a kind of RuboCop::AST::BreakNode with arguments is expected to be a kind of RuboCop::AST::BreakNode RuboCop::AST::Token #end_pos returns index of last char in token range of entire source type predicates #rescue_modifier? returns true for rescue modifier tokens returns false for non rescue modifier tokens #left_ref_bracket? returns true for left_ref_bracket tokens returns false for non left_ref_bracket tokens #left_brace? returns false for non right_bracket tokens returns true for right_bracket tokens #comma? returns false for non comma tokens returns true for comma tokens with braces & parens #left_brace? returns false for non left hash brace tokens returns true for left hash brace tokens #right_parens? returns false for non right parens tokens returns true for right parens tokens #left_curly_brace? returns false for non left block brace tokens returns true for left block brace tokens #left_parens? returns false for non left parens tokens returns true for left parens tokens #right_curly_brace? returns false for non right brace tokens returns true for all right brace tokens #end? returns true for end tokens returns false for non end tokens #semicolon? returns true for semicolon tokens returns false for non semicolon tokens #new_line? returns false for non new line tokens returns true for new line tokens #comment? returns true for comment tokens returns false for non comment tokens #left_array_bracket? returns true for left_array_bracket tokens returns false for non left_array_bracket tokens #right_bracket? returns false for non right_bracket tokens returns true for all right_bracket tokens #left_bracket? returns false for non left_bracket tokens returns true for all left_bracket tokens #dot? returns false for non dot tokens returns true for dot tokens #equals_sign? returns false for non equals sign tokens returns true for equals sign tokens #regexp_dots? returns true for regexp tokens returns false for non comma tokens #column returns index of first char in token range on that line .from_parser_token returns a #to_s useful for debugging sets parser token's text to rubocop token's text sets parser token's type to rubocop token's type sets parser token's range to rubocop token's pos #line returns line of token #space_before returns truthy MatchData when there is a space before token returns nil when there is not a space before token returns nil when it is on the first line #to_s returns string of token data #space_after returns truthy MatchData when there is a space after token returns nil when there is not a space after token #begin_pos returns index of first char in token range of entire source RuboCop::AST::ArgNode #default_value with an optional keyword argument is expected to eq s(:int, 42) with a shadow argument is expected to be nil with an optional argument is expected to eq s(:int, 42) with a block is expected to be nil with a regular argument is expected to be nil with a block argument is expected to be nil with a double splatted argument is expected to be nil with argument forwarding with Ruby >= 3.0 is expected to be nil with Ruby >= 2.7 is expected to be nil with a splatted argument is expected to be nil .new with a shadow argument is expected to be a kind of RuboCop::AST::ArgNode with argument forwarding with Ruby >= 2.7 is expected to be a kind of RuboCop::AST::ArgNode with Ruby >= 3.0 is expected to be a kind of RuboCop::AST::ArgNode with a method definition is expected to be a kind of RuboCop::AST::ArgNode with a splatted argument is expected to be a kind of RuboCop::AST::ArgNode with an optional argument is expected to be a kind of RuboCop::AST::ArgNode with a double splatted argument is expected to be a kind of RuboCop::AST::ArgNode with a block is expected to be a kind of RuboCop::AST::ArgNode with a block argument is expected to be a kind of RuboCop::AST::ArgNode with a lambda literal is expected to be a kind of RuboCop::AST::ArgNode with an optional keyword argument is expected to be a kind of RuboCop::AST::ArgNode with a keyword argument is expected to be a kind of RuboCop::AST::ArgNode #name with a nameless double splatted argument is expected to be nil with a block argument is expected to eq :x with a splatted argument is expected to eq :x with a keyword argument is expected to eq :x with a nameless splatted argument is expected to be nil with a regular argument is expected to eq :x with an optional argument is expected to eq :x with a block is expected to eq :x with a double splatted argument is expected to eq :x with an optional keyword argument is expected to eq :x with argument forwarding with Ruby >= 2.7 is expected to be nil with Ruby >= 3.0 is expected to be nil with a shadow argument is expected to eq :x #default? with a block argument is expected to equal false with a splatted argument is expected to equal false with a regular argument is expected to equal false with a block is expected to equal false with an optional keyword argument is expected to equal true with an optional argument is expected to equal true with a shadow argument is expected to equal false with argument forwarding with Ruby >= 3.0 is expected to equal false with Ruby >= 2.7 is expected to equal false with a double splatted argument is expected to equal false RuboCop::AST::ForwardArgsNode when using Ruby 2.7 or newer #to_a is expected to contain exactly (be forward arg type) RuboCop::AST::StrNode #character_literal? with a heredoc is expected not to be character literal with a character literal is expected to be character literal with a normal string literal is expected not to be character literal .new with a heredoc is expected to be a kind of RuboCop::AST::StrNode with a string with interpolation is expected to be a kind of RuboCop::AST::StrNode with a normal string is expected to be a kind of RuboCop::AST::StrNode #heredoc? with a string with interpolation is expected not to be heredoc with a heredoc is expected to be heredoc with a normal string is expected not to be heredoc RuboCop::AST::SelfClassNode .new is expected to be a kind of RuboCop::AST::SelfClassNode #identifier is expected to be self type #body with a single expression body is expected to be send type with an empty body is expected to be nil with a multi-expression body is expected to be begin type RuboCop::AST::CaseNode #else? without an else statement is expected not to be else with an else statement is expected to be else .new is expected to be a kind of RuboCop::AST::CaseNode #keyword is expected to eq "case" #when_branches is expected to eq 3 is expected to all be when type #else_branch #else? with an else statement is expected to be sym type with an empty else statement is expected to be nil without an else statement is expected to be nil #branches when there is no else keyword returns only then when bodies when there is an else returns all the bodies with an empty else returns all the bodies when compared to an IfNode returns the same #each_when when passed a block yields all the conditions when not passed a block is expected to be a kind of Enumerator RuboCop::AST::CaseMatchNode when using Ruby 2.7 or newer #in_pattern_branches is expected to all be in pattern type is expected to eq 3 #else_branch #else? without an else statement is expected to be nil with an else statement is expected to be sym type with an empty else statement is expected to be empty else type #each_in_pattern when passed a block yields all the conditions when not passed a block is expected to be a kind of Enumerator #else? with an else statement is expected to be else without an else statement is expected not to be else .new is expected to be a kind of RuboCop::AST::CaseMatchNode #keyword is expected to eq "case" #branches when there is an else with empty else returns all the bodies with else body returns all the bodies when there is no else keyword returns only then when bodies RuboCop::AST::BlockNode #receiver with dot operator call is expected to eq "foo" with safe navigation operator call is expected to eq "foo" .new is expected to be a kind of RuboCop::AST::BlockNode #lambda? when block belongs to a method lambda is expected to be lambda when block belongs to a non-lambda method is expected not to be lambda when block belongs to a stabby lambda is expected to be lambda #arguments? with a single argument is expected to be arguments >= Ruby 2.7 using numbered parameters is expected not to be arguments with multiple mixed arguments is expected to be arguments with destructuring arguments is expected to be arguments with a single splat argument is expected to be arguments with no arguments is expected not to be arguments #single_line? when block is on a single line is expected to be single line when block is on several lines is expected not to be single line #delimiters when enclosed in do-end keywords is expected to eq ["do", "end"] when enclosed in braces is expected to eq ["{", "}"] #closing_delimiter when enclosed in do-end keywords is expected to eq "end" when enclosed in braces is expected to eq "}" #opening_delimiter when enclosed in braces is expected to eq "{" when enclosed in do-end keywords is expected to eq "do" #arguments with no arguments is expected to be empty >= Ruby 2.7 using numbered parameters is expected to be empty with multiple mixed arguments is expected to eq 2 with a single splat argument is expected to eq 1 with a single literal argument is expected to eq 1 with destructured arguments is expected to eq 2 #argument_list >= Ruby 2.7 using numbered parameters with skipped params is expected to eq [:_1, :_2, :_3, :_4, :_5, :_6, :_7] with sequential params is expected to eq [:_1, :_2] all argument types is expected to eq [:a, :b, :c, :d, :e, :f, :g, :h, :i] with no arguments is expected to be empty #multiline? when block is on several lines is expected to be multiline when block is on a single line is expected not to be multiline #void_context? when block method is not each is expected not to be void context when block method is each is expected to be void context when block method is tap is expected to be void context #keywords? when enclosed in do-end keywords is expected to be keywords when enclosed in braces is expected not to be keywords #braces? when enclosed in braces is expected to be braces when enclosed in do-end keywords is expected not to be braces Set#=== tests for inclusion RuboCop::AST::CasgnNode .new with a `casgn` node is expected to be a kind of RuboCop::AST::CasgnNode #namespace when the parent is a `const` is expected to eq s(:const, nil, :FOO) when there is no parent is expected to be nil when the parent is a `cbase` is expected to eq s(:cbase) #name is expected to eq :VAR #expression is expected to eq s(:send, nil, :value) RuboCop::AST::Ext::Range #line_span accepts an `exclude_end` keyword argument returns the range of lines a range occupies RuboCop::AST::UntilNode #inverse_keyword is expected to eq "while" .new with a statement until is expected to be a kind of RuboCop::AST::UntilNode with a modifier until is expected to be a kind of RuboCop::AST::UntilNode #keyword is expected to eq "until" #post_condition_loop? with a modifier until is expected to be post condition loop with a statement until is expected not to be post condition loop #do? with a do keyword is expected to be do without a do keyword is expected not to be do #loop_keyword? with a modifier until is expected to be loop keyword with a statement until is expected to be loop keyword RuboCop::AST::OpAsgnNode #operator with *= is expected to eq :* with |= is expected to eq :| with %= is expected to eq :% with /= is expected to eq :/ with += is expected to eq :+ with -= is expected to eq :- with &= is expected to eq :& with **= is expected to eq :** #name is expected to eq :var #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode .new with an `op_asgn_node` node is expected to be a kind of RuboCop::AST::OpAsgnNode #expression is expected to eq s(:send, nil, :value) RuboCop::AST::EnsureNode .new is expected to be a kind of RuboCop::AST::EnsureNode #body is expected to be sym type Finished in 2.22 seconds (files took 0.79225 seconds to load) 2392 examples, 0 failures Randomized with seed 65490 /usr/bin/ruby3.4 /usr/bin/gem2deb-test-runner ┌──────────────────────────────────────────────────────────────────────────────┐ │ Checking Rubygems dependency resolution on ruby3.4 │ └──────────────────────────────────────────────────────────────────────────────┘ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.4.0:/var/lib/gems/3.4.0:/usr/local/lib/ruby/gems/3.4.0:/usr/lib/ruby/gems/3.4.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.4.0:/usr/share/rubygems-integration/3.4.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.4.0 ruby3.4 -e gem\ \"rubocop-ast\" ┌──────────────────────────────────────────────────────────────────────────────┐ │ Run tests for ruby3.4 from debian/ruby-tests.rake │ └──────────────────────────────────────────────────────────────────────────────┘ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/ruby-rubocop-ast/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-rubocop-ast-1.24.0/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.4.0:/var/lib/gems/3.4.0:/usr/local/lib/ruby/gems/3.4.0:/usr/lib/ruby/gems/3.4.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.4.0:/usr/share/rubygems-integration/3.4.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.4.0 ruby3.4 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /usr/bin/ruby3.4 -ruri -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation warning: parser/current is loading parser/ruby34, which recognizes 3.4.0-compliant syntax, but you are running 3.4.5. Please see https://github.com/whitequark/parser#compatibility-with-ruby-mri. Randomized with seed 55817 RuboCop::AST::SuperNode #arguments? with multiple literal arguments is expected to be arguments with a single literal argument is expected to be arguments with a single splat argument is expected to be arguments with multiple mixed arguments is expected to be arguments with no arguments is expected not to be arguments #bang_method? is expected not to be bang method #macro? is expected not to be macro #last_argument with a single splat argument is expected to be splat type with multiple mixed arguments is expected to be splat type with a single literal argument is expected to be sym type with no arguments is expected to be nil with multiple literal arguments is expected to be sym type #parenthesized? with arguments when not using parentheses is expected not to be parenthesized when using parentheses is expected to be parenthesized with no arguments when not using parentheses is expected not to be parenthesized when using parentheses is expected to be parenthesized #double_colon? is expected not to be double colon #camel_case_method? is expected not to be camel case method #comparison_method? is expected not to be comparison method #splat_argument? with regular arguments is expected not to be splat argument with mixed arguments is expected to be splat argument with a splat argument is expected to be splat argument with no arguments is expected not to be splat argument #command? when argument is a symbol is expected to be command :super when argument is a string is expected to be command "super" #dot? is expected not to be dot #block_literal? with no block is expected not to be block literal with a block literal is expected to be block literal with a block argument is expected not to be block literal #receiver is expected to be nil #block_node with a block literal is expected to be block type with no block is expected to be nil with a block argument is expected to be nil #arguments with a single literal argument is expected to eq 1 with a single splat argument is expected to eq 1 with multiple mixed arguments is expected to eq 2 with multiple literal arguments is expected to eq 2 with no arguments is expected to be empty #method? when message matches when argument is a symbol is expected to be method :super when argument is a string is expected to be method "super" when message does not match when argument is a symbol is expected not to be method :foo when argument is a string is expected not to be method "foo" #implicit_call? is expected not to be implicit call #setter_method? is expected not to be setter method #method_name is expected to eq :super #first_argument with a single literal argument is expected to be sym type with multiple literal arguments is expected to be sym type with no arguments is expected to be nil with a single splat argument is expected to be splat type with multiple mixed arguments is expected to be sym type #predicate_method? is expected not to be predicate method #self_receiver? is expected not to be self receiver #assignment_method? is expected not to be assignment method #operator_method? is expected not to be operator method .new with a super node is expected to be a kind of RuboCop::AST::SuperNode with a zsuper node is expected to be a kind of RuboCop::AST::SuperNode #const_receiver? is expected not to be const receiver #block_argument? with a block argument is expected to be block argument with regular arguments is expected not to be block argument with no arguments is expected not to be block argument with mixed arguments is expected to be block argument RuboCop::AST::FloatNode #sign? explicit positive float is expected to be sign explicit negative float is expected to be sign .new is expected to be a kind of RuboCop::AST::FloatNode #value is expected to eq 1.5 RuboCop::AST::NodePattern::Parser sequences parses simple sequences properly parses unions of literals as a set expands ... in sequence head deep inside unions parses capture vs repetition with correct priority generates specialized nodes parses function calls RuboCop::AST::UntilNode .new with a statement until is expected to be a kind of RuboCop::AST::UntilNode with a modifier until is expected to be a kind of RuboCop::AST::UntilNode #do? with a do keyword is expected to be do without a do keyword is expected not to be do #inverse_keyword is expected to eq "while" #loop_keyword? with a statement until is expected to be loop keyword with a modifier until is expected to be loop keyword #post_condition_loop? with a modifier until is expected to be post condition loop with a statement until is expected not to be post condition loop #keyword is expected to eq "until" RuboCop::AST::ArgNode #default_value with a regular argument is expected to be nil with a block is expected to be nil with a splatted argument is expected to be nil with argument forwarding with Ruby >= 3.0 is expected to be nil with Ruby >= 2.7 is expected to be nil with a block argument is expected to be nil with an optional argument is expected to eq s(:int, 42) with a shadow argument is expected to be nil with a double splatted argument is expected to be nil with an optional keyword argument is expected to eq s(:int, 42) #default? with an optional keyword argument is expected to equal true with a regular argument is expected to equal false with a splatted argument is expected to equal false with argument forwarding with Ruby >= 3.0 is expected to equal false with Ruby >= 2.7 is expected to equal false with an optional argument is expected to equal true with a shadow argument is expected to equal false with a block argument is expected to equal false with a block is expected to equal false with a double splatted argument is expected to equal false #name with a block is expected to eq :x with a nameless double splatted argument is expected to be nil with a splatted argument is expected to eq :x with an optional argument is expected to eq :x with a regular argument is expected to eq :x with an optional keyword argument is expected to eq :x with a keyword argument is expected to eq :x with a block argument is expected to eq :x with a double splatted argument is expected to eq :x with a shadow argument is expected to eq :x with argument forwarding with Ruby >= 3.0 is expected to be nil with Ruby >= 2.7 is expected to be nil with a nameless splatted argument is expected to be nil .new with a block argument is expected to be a kind of RuboCop::AST::ArgNode with an optional argument is expected to be a kind of RuboCop::AST::ArgNode with argument forwarding with Ruby >= 2.7 is expected to be a kind of RuboCop::AST::ArgNode with Ruby >= 3.0 is expected to be a kind of RuboCop::AST::ArgNode with a method definition is expected to be a kind of RuboCop::AST::ArgNode with a block is expected to be a kind of RuboCop::AST::ArgNode with a lambda literal is expected to be a kind of RuboCop::AST::ArgNode with a splatted argument is expected to be a kind of RuboCop::AST::ArgNode with a keyword argument is expected to be a kind of RuboCop::AST::ArgNode with a shadow argument is expected to be a kind of RuboCop::AST::ArgNode with an optional keyword argument is expected to be a kind of RuboCop::AST::ArgNode with a double splatted argument is expected to be a kind of RuboCop::AST::ArgNode RuboCop::AST::KeywordSplatNode #key is expected to eq s(:kwsplat, s(:send, nil, :foo)) #operator is expected to eq "**" #same_line? when pairs are on separate lines is expected not to be same line s(:kwsplat, s(:send, nil, :foo)) when both pairs are on the same line is expected to be same line s(:kwsplat, s(:send, nil, :foo)) when a multiline pair shares the same line is expected to be same line s(:kwsplat, s(:send, nil, :foo)) is expected to be same line s(:pair, s(:sym, :a), s(:begin)) #value_delta when using hash rocket delimiters when keyword splat is left aligned is expected to eq 0 when keyword splat is on the same line is expected to eq 0 when keyword splat is behind is expected to eq 0 when keyword splat is ahead is expected to eq 0 when using colon delimiters when keyword splat is left aligned is expected to eq 0 when keyword splat is on the same line is expected to eq 0 when keyword splat is ahead is expected to eq 0 when keyword splat is behind is expected to eq 0 #key_delta with alignment set to :left when using hash rocket delimiters when keyword splat is behind is expected to eq -2 when keyword splat is ahead is expected to eq 2 when keyword splat is on the same line is expected to eq 0 when keyword splat is aligned is expected to eq 0 when using colon delimiters when keyword splat is on the same line is expected to eq 0 when keyword splat is aligned is expected to eq 0 when keyword splat is ahead is expected to eq 2 when keyword splat is behind is expected to eq -2 with alignment set to :right when using colon delimiters when keyword splat is on the same line is expected to eq 0 when keyword splat is ahead is expected to eq 0 when keyword splat is aligned is expected to eq 0 when keyword splat is behind is expected to eq 0 when using hash rocket delimiters when keyword splat is behind is expected to eq 0 when keyword splat is aligned is expected to eq 0 when keyword splat is ahead is expected to eq 0 when keyword splat is on the same line is expected to eq 0 #colon? is expected not to be colon .new is expected to be a kind of RuboCop::AST::KeywordSplatNode #value is expected to eq s(:kwsplat, s(:send, nil, :foo)) #hash_rocket? is expected not to be hash rocket RuboCop::AST::Node #class_definition? with Struct matches when using numbered parameter matches namespaced class matches with ::ClassName matches with inheritance matches with Class.new matches when using numbered parameter matches without inheritance matches constant defined as Struct without block does not match with object singleton class matches with self singleton class matches #conditional? when `while` node is true when post condition loop node is false when `case` node is true when `case_match` node is true when `until` node is true when `if` node is true #module_definition? using module keyword matches namespaced modules matches prepend Module.new matches included module definition matches nested modules matches with ::ModuleName matches with Module.new matches when using numbered parameter matches #argument_type? block arguments returns true for all argument types method arguments returns true for all argument types #struct_constructor? ::Struct matches struct definition without block does not match struct definition with a block matches #parent_module_name when node nested in an unknown block is expected to be nil when node on top level is expected to eq "Object" when node on class in singleton class is expected to eq "Foo::#::Bar" when node nested in a class << exp is expected to be nil when node on module is expected to eq "Foo" when node on singleton class is expected to eq "Foo::#" #class_constructor? class definition with a block matches class definition does not match class definition on outer scope matches module definition with a block matches #numeric_type? when integer literal is true when complex literal whose imaginary part is a rational is true when string literal is true when float literal is true when complex literal is true when rational literal is true #pure? for a hash literal with only literal children returns true which contains a method call returns false for a regexp with interpolated segments returns false with options returns true with no interpolation /build/reproducible-path/ruby-rubocop-ast-1.24.0/spec/rubocop/ast/node_spec.rb:320: warning: URI::RFC3986_PARSER.make_regexp is obsolete. Use URI::RFC2396_PARSER.make_regexp explicitly. returns true for an ivar assignment returns false for a gvar assignment returns false for a method call returns false for an integer literal returns true for a cvar assignment returns false for an lvar assignment returns false for a class definition returns false for an array literal which contains a method call returns false with only literal children returns true for a nested if where one branch contains an assignment statement returns false where the innermost descendants are local vars and literals returns true where one branch contains a method call returns false for a module definition returns false #value_used? within an if...else..end node at the top level is true only for the condition nested in a method call is always true within a module definition node is always true within a while node is true only for the condition at the top level is false within a singleton class node is always true within a method call node is always true at the end of a block is always true within a class definition node is always true within an array literal assigned to an ivar is always true at the top level is always false #recursive_basic_literal? behaves like literal returns true for `%r{abx}ixo` behaves like literal returns true for `false` behaves like literal returns true for `{ :a => 1, :b => 2 }` behaves like literal returns true for `'str'` behaves like non literal returns false for `(x && false)` behaves like literal returns true for `[1, 2, 3]` behaves like non literal returns false for `%r{abx#{foo}}ixo` behaves like non literal returns false for `{ some_method_call => :sym }` behaves like literal returns true for `(false or true)` behaves like literal returns true for `{ a: 1, b: 2 }` behaves like literal returns true for `!true` behaves like non literal returns false for `some_method_call(x, y)` behaves like non literal returns false for `some_method_call` behaves like literal returns true for `1` behaves like literal returns true for `1.0` behaves like non literal returns false for `(x or false)` behaves like non literal returns false for `{ :sym => some_method_call }` behaves like literal returns true for `nil` behaves like literal returns true for `(false && true)` behaves like non literal returns false for `(x == false)` behaves like literal returns true for `(false <=> true)` behaves like non literal returns false for `/.#{some_method_call}/` behaves like literal returns true for `/./` behaves like literal returns true for `"#{2}"` behaves like literal returns true for `(1)` behaves like non literal returns false for `[some_method_call]` sibling_access returns trivial values for a root node for a single child returns the expected values for a node with siblings returns the expected values RuboCop::AST::ReturnNode behaves like wrapped arguments node #arguments with a single splat argument is expected to eq 1 with multiple literal arguments is expected to eq 2 with a single argument and braces is expected to eq 1 with no arguments is expected to be empty with a single argument is expected to eq 1 with no arguments and braces is expected to be empty .new without arguments is expected to be a kind of RuboCop::AST::ReturnNode with arguments is expected to be a kind of RuboCop::AST::ReturnNode RuboCop::AST::YieldNode #arguments? with a single literal argument is expected to be arguments with a single splat argument is expected to be arguments with multiple literal arguments is expected to be arguments with multiple mixed arguments is expected to be arguments with no arguments is expected not to be arguments #self_receiver? is expected not to be self receiver #method? when message matches when argument is a symbol is expected to be method :yield when argument is a string is expected to be method "yield" when message does not match when argument is a symbol is expected not to be method :foo when argument is a string is expected not to be method "foo" #block_literal? is expected not to be block literal #bang_method? is expected not to be bang method #camel_case_method? is expected not to be camel case method #macro? is expected not to be macro #splat_argument? with a splat argument is expected to be splat argument with mixed arguments is expected to be splat argument with no arguments is expected not to be splat argument with regular arguments is expected not to be splat argument #last_argument with multiple mixed arguments is expected to be splat type with no arguments is expected to be nil with multiple literal arguments is expected to be sym type with a single splat argument is expected to be splat type with a single literal argument is expected to be sym type #receiver is expected to be nil #double_colon? is expected not to be double colon #parenthesized? with no arguments when using parentheses is expected to be parenthesized when not using parentheses is expected not to be parenthesized with arguments when not using parentheses is expected not to be parenthesized when using parentheses is expected to be parenthesized #implicit_call? is expected not to be implicit call #method_name is expected to eq :yield #block_node is expected to be nil #first_argument with multiple literal arguments is expected to be sym type with a single literal argument is expected to be sym type with multiple mixed arguments is expected to be sym type with a single splat argument is expected to be splat type with no arguments is expected to be nil #comparison_method? is expected not to be comparison method #arguments with a single splat argument is expected to eq 1 with no arguments is expected to be empty with multiple literal arguments is expected to eq 2 with multiple mixed arguments is expected to eq 2 with a single literal argument is expected to eq 1 #operator_method? is expected not to be operator method #const_receiver? is expected not to be const receiver #dot? is expected not to be dot .new is expected to be a kind of RuboCop::AST::YieldNode #block_argument? is expected not to be block argument #assignment_method? is expected not to be assignment method #setter_method? is expected not to be setter method #predicate_method? is expected not to be predicate method #command? when argument is a string is expected to be command "yield" when argument is a symbol is expected to be command :yield RuboCop::AST::AliasNode #old_identifier is expected to eq :bar is expected to be sym type .new is expected to be a kind of RuboCop::AST::AliasNode #new_identifier is expected to eq :foo is expected to be sym type RuboCop::AST::InPatternNode when using Ruby 2.7 or newer #body with a then keyword is expected to be sym type without a then keyword is expected to be array type #then? with a then keyword is expected to be then without a then keyword is expected not to be then #pattern with a hash pattern is expected to be hash pattern type with a value pattern is expected to be int type with an array pattern is expected to be array pattern type with an as pattern is expected to be match as type with a variable pattern is expected to be match var type with an alternative pattern is expected to be match alt type with a pin operator is expected to be pin type .new is expected to be a kind of RuboCop::AST::InPatternNode #branch_index is expected to eq 2 is expected to eq 0 is expected to eq 1 RuboCop::AST::OrNode #alternate_operator with a semantic or node is expected to eq "||" with a logical or node is expected to eq "or" #operator with a semantic or node is expected to eq "or" with a logical or node is expected to eq "||" #semantic_operator? with a semantic or node is expected to be semantic operator with a logical or node is expected not to be semantic operator .new with a semantic or node is expected to be a kind of RuboCop::AST::OrNode with a logical or node is expected to be a kind of RuboCop::AST::OrNode #inverse_operator with a logical or node is expected to eq "&&" with a semantic or node is expected to eq "and" #logical_operator? with a logical or node is expected to be logical operator with a semantic or node is expected not to be logical operator #lhs with a logical or node is expected to be sym type with a semantic or node is expected to be sym type #rhs with a logical or node is expected to be int type with a semantic or node is expected to be int type RuboCop::AST::ResbodyNode #exception_variable for an implicit rescue is expected to eq "ex" for an explicit rescue is expected to eq "ex" when an exception variable is not given is expected to be nil .new is expected to be a kind of RuboCop::AST::ResbodyNode #branch_index is expected to eq 0 is expected to eq 2 is expected to eq 1 #exceptions with a single exception is expected to eq 1 is expected to all be const type with multiple exceptions is expected to eq 2 is expected to all be const type without exception is expected to eq 0 #body is expected to be sym type RuboCop::AST::RescueNode #else_branch without an else statement is expected to be nil with an else statement is expected to be send type #else? with an else statement is expected to be else without an else statement is expected not to be else .new is expected to be a kind of RuboCop::AST::RescueNode #resbody_branches is expected to all be resbody type is expected to eq 2 #branches when there is no else keyword returns only then rescue bodies when there is an else returns all the bodies with an empty else returns all the bodies #body is expected to be send type RuboCop::AST::NodePattern::Lexer provides tokens via next_token with $type+ is parsed as `$ int + x` when given a regexp /[abc]+\/()?/x round trips when given a regexp /test/ round trips when given a regexp /back\\slash/ round trips when given node types and constants distinguishes them when given a regexp ending with a backslash does not lexes it properly when given arithmetic symbols is parsed as `:&` RuboCop::AST::ClassNode #identifier is expected to be const type .new is expected to be a kind of RuboCop::AST::ClassNode #parent_class when a parent class is specified is expected to be const type when no parent class is specified is expected to be nil #body with an empty body is expected to be nil with a single expression body is expected to be send type with a multi-expression body is expected to be begin type Changelog merges correctly parses correctly Changelog::Entry generates correct content RuboCop::AST::HashNode .new is expected to be a kind of RuboCop::AST::HashNode #each_value when not passed a block is expected to be a kind of Enumerator when passed a block yields all the pairs #pairs with an empty hash is expected to be empty with a hash of variables is expected to eq 2 is expected to all be pair type with a hash of literals is expected to all be pair type is expected to eq 3 #braces? as an argument with no braces is expected not to be braces as an argument with braces is expected to be braces with braces is expected to be braces #values with a hash with string keys is expected to eq 2 is expected to all be send type with a hash with literal values is expected to eq 3 is expected to all be literal with an empty hash is expected to be empty #mixed_delimiters? when pairs are using different delimiters is expected to be mixed delimiters when all pairs are using a hash rocket delimiter is expected not to be mixed delimiters when all pairs are using a colon delimiter is expected not to be mixed delimiters #each_pair when passed a block yields all the pairs when not passed a block is expected to be a kind of Enumerator #keys with a hash with string keys is expected to all be str type is expected to eq 2 with a hash with symbol keys is expected to all be sym type is expected to eq 3 with an empty hash is expected to be empty #each_key when passed a block yields all the pairs when not passed a block is expected to be a kind of Enumerator #pairs_on_same_line? with some pairs on the same line is expected to be pairs on same line with all pairs on the same line is expected to be pairs on same line with no pairs on the same line is expected not to be pairs on same line #empty? with a hash containing pairs is expected not to be empty with a hash containing a keyword splat is expected not to be empty with an empty hash is expected to be empty RuboCop::AST::ConstNode #namespace is expected to eq "::Foo::Bar" #relative? with a non-namespaced constant is expected to be relative #module_name? is expected not to be module name with a constant with a lowercase letter is expected to be module name #absolute? is expected to be absolute with a constant not starting with :: is expected not to be absolute with a non-namespaced constant is expected not to be absolute #each_path yields all parts of the namespace #short_name is expected to eq :BAZ RuboCop::AST::CaseMatchNode when using Ruby 2.7 or newer #branches when there is no else keyword returns only then when bodies when there is an else with empty else returns all the bodies with else body returns all the bodies #each_in_pattern when not passed a block is expected to be a kind of Enumerator when passed a block yields all the conditions #else_branch #else? without an else statement is expected to be nil with an empty else statement is expected to be empty else type with an else statement is expected to be sym type #keyword is expected to eq "case" #in_pattern_branches is expected to all be in pattern type is expected to eq 3 .new is expected to be a kind of RuboCop::AST::CaseMatchNode #else? with an else statement is expected to be else without an else statement is expected not to be else RuboCop::AST::BreakNode behaves like wrapped arguments node .new with arguments is expected to be a kind of RuboCop::AST::BreakNode without arguments is expected to be a kind of RuboCop::AST::BreakNode #arguments with no arguments is expected to be empty with a single argument is expected to eq 1 with a single splat argument is expected to eq 1 with no arguments and braces is expected to be empty with multiple literal arguments is expected to eq 2 with a single argument and braces is expected to eq 1 RuboCop::AST::ForNode #loop_keyword? is expected to be loop keyword #variable is expected to be lvasgn type #collection is expected to be sym type #void_context? with a do keyword is expected to be void context without a do keyword is expected to be void context #keyword is expected to eq "for" .new is expected to be a kind of RuboCop::AST::ForNode #post_condition_loop? is expected not to be post condition loop #body is expected to be sym type #do? with a do keyword is expected to be do without a do keyword is expected not to be do RuboCop::AST::NodePattern .descend yields all children depth first yields the given argument if it is not a Node macros with a pattern with a constant is expected to match code :hello when the value is not in the set behaves like nonmatching doesn't match with a pattern with a namespaced call is expected to match code :hello when the value is not in the set behaves like nonmatching doesn't match with a pattern without captures def_node_search returns the method name with a predicate name when it errors raises an error with the right location when called on matching code is expected to match code nil, :foo, s(:sym, :hello), and s(:sym, :world) when called on non-matching code behaves like nonmatching doesn't match without a predicate name when called on non-matching code returns an enumerator yielding nothing when it errors raises an error with the right location when called on matching code returns an enumerator yielding the matches def_node_matcher returns the method name when called on non-matching code behaves like nonmatching doesn't match when called on matching code is expected to match code :hello when it errors raises an error with the right location with a pattern with captures def_node_search without a predicate name when called on matching code returns an enumerator yielding the captures when the pattern contains keyword_params returns an enumerator yielding the captures when helper is called with default keyword_params is overridden when calling the matcher and no value is given to the matcher uses the defaults some defaults are not params raises an error when it errors raises an error with the right location when called on non-matching code returns an enumerator yielding nothing with a predicate name when called on matching code is expected to match code nil, :foo, s(:sym, :hello), and s(:sym, :world) when called on non-matching code behaves like nonmatching doesn't match when it errors raises an error with the right location def_node_matcher when called on non-matching code behaves like nonmatching doesn't match when it errors raises an error with the right location when called on matching code is expected to eq :hello caret (ascend) inside an intersection is expected to match code 1 used with a node type which matches is expected to match code 1 which doesn't match behaves like nonmatching doesn't match within sequence in head is expected to match code 1 of a sequence is expected to match code 1 not in head is expected to match code s(:int, 1) and :inc of a sequence is expected to match code s(:int, 1) and :inc using unification to match self within parent with self in the wrong position behaves like nonmatching doesn't match with self in the right position is expected to match code 2 repeated twice is expected to match code 1 inside a union is expected to match code "abc" funcalls without extra arguments is expected to match code :a and s(:int, 1) with one argument is expected to match code s(:str, "foo") and "foo" with multiple arguments is expected to match code s(:str, "c"), "a", and "d" params when captured behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block when inside an intersection is expected to match code s(:int, 20), 10, and 20 when inside a union, with a matching value is expected to match code s(:int, 10) and 10 param number zero in a position which matches original target node is expected to match code 1 in a position which does not match original target node behaves like nonmatching doesn't match when preceded by ... is expected to match code s(:send, s(:int, 1), :+, s(:int, 10)) and s(:int, 10) when preceded by $... behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block without explicit number is expected to match code s(:const, s(:const, nil, :Namespace), :A), :A, and s(:const, nil, :Namespace) when negated, with a matching value behaves like nonmatching doesn't match when inside a union, with a nonmatching value behaves like nonmatching doesn't match in root position is expected to match code s(:int, 10) and s(:int, 10) in root position is expected to match code s(:int, 10) and # as named parameters when not provided raises an ArgumentError when extra are provided raises an ArgumentError when provided as argument to match is expected to match code s(:int, 10) and {:foo => #} when negated, with a nonmatching value is expected to match code s(:const, s(:const, nil, :Namespace), :B) and :A in a nested sequence is expected to match code s(:send, s(:send, s(:int, 5), :dec), :inc), :inc, and :dec literals negative integer literals is expected to match code -100 single quoted string literals is expected to match code "foo" symbol literals is expected to match code :foo bare literal on a node behaves like nonmatching doesn't match on a matching literal is expected to match code :bar negative float literals is expected to match code -2.5 double quoted string literals is expected to match code "foo" positive float literals is expected to match code 1.0 captures within union within nested sequences behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with complex nesting behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block on simple subpatterns behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a different number of captures in each branch behaves like invalid is invalid node type for a child on a child with the same type is expected to match code s(:send, nil, :foo) and :bar on a child litteral behaves like nonmatching doesn't match on a child with a different type behaves like nonmatching doesn't match in seq head on a child with a different type behaves like nonmatching doesn't match on a node with the same type is expected to match code s(:ivar, :@ivar), :+, and s(:int, 2) regexp matches symbols or strings bad syntax with empty union subsequence in seq head behaves like invalid is invalid with unmatched closing paren behaves like invalid is invalid with empty intersection behaves like invalid is invalid with unmatched opening paren and `...` behaves like invalid is invalid with leading comma in arg list behaves like invalid is invalid with unmatched opening curly behaves like invalid is invalid with unmatched closing curly behaves like invalid is invalid with empty union behaves like invalid is invalid with negated closing curly behaves like invalid is invalid with doubled ellipsis is expected to match code "foo" with unmatched opening paren behaves like invalid is invalid with empty parentheses behaves like invalid is invalid with variadic unions where not supported behaves like invalid is invalid with doubled comma in arg list behaves like invalid is invalid with negated closing paren behaves like invalid is invalid with negated ellipsis behaves like invalid is invalid with unsupported subsequence in seq head within union behaves like invalid is invalid descend with an immediate match behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with a literal match is expected to match code s(:int, 1) and s(:array, s(:array, s(:int, 2), s(:int, 3), s(:array, s(:array, s(:int, 5)))), s(:int, 4)) without match behaves like nonmatching doesn't match with a match multiple levels, depth first behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block nested behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block captures on ... with no remaining pattern at the end behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a remaining sequence at the end behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with a remaining capture at the end behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with a remaining [] at the end behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with remaining patterns at the end behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a remaining node type at the end behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block at the very beginning of a sequence behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a remaining set at the end behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block after a child behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with a remaining literal at the end behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with a remaining wildcard at the end behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block repeated using ? with zero match behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with too many matching children behaves like nonmatching doesn't match behaves like repeated pattern with one match behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block at beginning of sequence behaves like invalid is invalid with an ellipsis in the same sequence is expected to match code "[:hello, 1, 2, 3]" using + behaves like repeated pattern with an ellipsis in the same sequence is expected to match code "[:hello, 1, 2, 3]" with one match behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block at beginning of sequence behaves like invalid is invalid with zero match behaves like nonmatching doesn't match with matching children behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block using * behaves like repeated pattern with an ellipsis in the same sequence is expected to match code "[:hello, 1, 2, 3]" with one match behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block at beginning of sequence behaves like invalid is invalid with multiple subcaptures behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with zero match behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with no match behaves like nonmatching doesn't match nested with multiple subcaptures behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with matching children behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block without capture is expected to match code s(:sym, :hello), s(:int, 1), s(:int, 2), and s(:int, 3) commas with commas randomly strewn around behaves like invalid is invalid in any order doubled separated by an ellipsis behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block separated by fixed argument behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block with an ellipsis behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block captured without ellipsis behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block invalid doubled with ellipsis in wrong order behaves like nonmatching doesn't match nested behaves like invalid is invalid with an ellipsis inside and outside behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block at the beginning of a sequence behaves like invalid is invalid containing ellipsis not at the end behaves like invalid is invalid doubled with ellipsis behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a captured ellipsis matching non sequential children behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block nested behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block matching all children behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block without ellipsis with too few children behaves like nonmatching doesn't match with too many children behaves like nonmatching doesn't match with matching children behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block simple sequence with a nested sequence in head position behaves like invalid is invalid with a nested sequence in non-head position is expected to match code s(:send, s(:send, nil, :obj), :a) and :b on a node with a different type behaves like nonmatching doesn't match on a node with the same type and matching children is expected to match code s(:int, 1), :+, and s(:int, 1) on a node with the same type and non-matching children with non-matching receiver type behaves like nonmatching doesn't match with non-matching selector behaves like nonmatching doesn't match on a node with too many children behaves like nonmatching doesn't match unions with a nested sequence is expected to match code s(:const, nil, :Const) and :method variadic with variadic terms works for cases with variadic terms after union works for cases with variadic terms before and after union works for cases with fixed arity before and after union multiple works for complex cases with fixed terms works for cases with variadic terms after union works for cases with variadic terms before and after union works for cases with fixed arity before and after union at the top level containing multiple [] on a node which meets all requirements of the first [] is expected to match code 3 on a node which meets all requirements of the second [] is expected to match code 2.4 on a node which meets some requirements but not all behaves like nonmatching doesn't match containing integer literals is expected to match code s(:int, 10) and :abs containing mixed node and literals is expected to match code nil and :obj containing string literals is expected to match code s(:str, "a") and :upcase containing symbol literals when the AST has a matching symbol is expected to match code s(:send, nil, :obj) and :b when the AST does not have a matching symbol behaves like nonmatching doesn't match nested inside a sequence is expected to match code s(:const, nil, :Const) and :method nil nil value in AST, use nil? method is expected to match code nil and :foo against a node pattern (bug #5470) behaves like nonmatching doesn't match nil value in AST behaves like nonmatching doesn't match nil literals is expected to match code ellipsis with a wildcard at the end, but no remaining child to match it behaves like nonmatching doesn't match preceding multiple captures behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with [] at the end, but no remaining child to match it behaves like nonmatching doesn't match at the very beginning of a sequence is expected to match code s(:int, 10), :*, and s(:int, 1) with a nodetype at the end, but no remaining child to match it behaves like nonmatching doesn't match with a set at the end, but no remaining child to match it behaves like nonmatching doesn't match preceding a capture behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a nested sequence at the end, but no remaining child behaves like nonmatching doesn't match captures on a wildcard in head position in a sequence behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block at the root level behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block in non-head position in a sequence behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block nested in any child behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block in head position in a sequence against literal (bug #5470) behaves like nonmatching doesn't match in a nested sequence behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block in head position in a sequence against nil (bug #5470) behaves like nonmatching doesn't match negation on a sequence with a node of different type is expected to match code :@@a and s(:int, 1) with a node with non-matching children is expected to match code :@b and s(:int, 1) with a matching node behaves like nonmatching doesn't match when nested in complex ways with (send str :+ (send str :to_i)) is expected to match code s(:str, "abc"), :+, and s(:send, s(:str, "1"), :to_i) with (send int :- int) is expected to match code s(:int, 1), :-, and s(:int, 1) with (send str :<< str) behaves like nonmatching doesn't match on square brackets with a node which meets only 1 requirement of [] is expected to match code 1 with a node which meets all requirements of [] behaves like nonmatching doesn't match on a symbol with a non-matching symbol, but too many children behaves like nonmatching doesn't match with a non-matching symbol is expected to match code s(:send, nil, :obj) and :xyz with a matching symbol behaves like nonmatching doesn't match on a set with a matching value behaves like nonmatching doesn't match with a non-matching value is expected to match code :@a and s(:int, 3) on a string with a matching string behaves like nonmatching doesn't match with a non-matching symbol is expected to match code s(:str, "bar") and :upcase bare node type on a node with a different type behaves like nonmatching doesn't match yaml compatibility is expected to match code s(:send, nil, :obj) and :method marshal compatibility is expected to match code s(:send, nil, :obj) and :method #pattern returns the pattern #to_s is instructive #== returns true iff the patterns are similar on a node with the same type is expected to match code s(:send, nil, :obj) and :method on a node with a matching, hyphenated type is expected to match code s(:lvasgn, :a), :+, and s(:int, 1) #dup is expected to match code s(:send, nil, :obj) and :method captures which also perform a match when nested behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block on a node type behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block on [] behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block on a sequence behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block on a set behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block on a literal behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block predicates with multiple arguments for which the predicate is false behaves like nonmatching doesn't match for which the predicate is true is expected to match code s(:str, "c"), "a", and "d" when captured behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block with a named argument when not given raises an error for which the predicate is true is expected to match code s(:send, s(:int, 1), :+, s(:int, 2)) and {:param => 1} with extra arguments raises an error for which the predicate is false behaves like nonmatching doesn't match with one extra argument for which the predicate is true is expected to match code s(:send, s(:int, 1), :+, s(:int, 2)) and 1 for which the predicate is false behaves like nonmatching doesn't match with an expression argument for which the predicate is false behaves like nonmatching doesn't match for which the predicate is true is expected to match code s(:int, 2), :+, and s(:float, 2.0) with a constant argument for which the predicate is true is expected to match code s(:int, 1), :+, and s(:int, 2) for which the predicate is false behaves like nonmatching doesn't match in root position is expected to match code s(:int, 1) and :inc with name containing a numeral is expected to match code s(:int, 1) and :inc when negated is expected to match code s(:int, 1) and :inc when in last-child position, but all children have already been matched behaves like nonmatching doesn't match applied to an integer for which the predicate is false behaves like nonmatching doesn't match at head position of a sequence is expected to match code s(:int, 1) and :inc applied to an integer for which the predicate is true is expected to match code s(:int, 1) and :inc sequence with trailing ... on a node with non-matching children behaves like nonmatching doesn't match on a node with a different type behaves like nonmatching doesn't match on a node with fewer children, with a wildcard preceding behaves like nonmatching doesn't match on a node with the same type and more children with 2 children more is expected to match code s(:int, 1), :blah, s(:int, 1), and s(:sym, :something) with 1 child more is expected to match code s(:int, 1), :blah, and s(:int, 1) on a node with the same type and fewer children behaves like nonmatching doesn't match on a node with the same type and exact number of children is expected to match code s(:int, 1) and :blah wildcards named wildcards at the root level is expected to match code s(:sclass, s(:self), s(:def, :something, s(:args), s(:int, 1))) and :freeze within a sequence with values which can be unified is expected to match code s(:int, 5), :+, and s(:int, 5) unifying the node type with an argument is expected to match code s(:send, nil, :obj) and :send with values which cannot be unified behaves like nonmatching doesn't match within a sequence with other patterns intervening is expected to match code :@abc and s(:int, 22) in head position of a sequence is expected to match code s(:int, 1), :+, and s(:send, nil, :a) within a union with a preceding unifying constraint that can not be unified behaves like nonmatching doesn't match matching a branch is expected to match code s(:int, 2) and s(:array, s(:int, 2), s(:int, 1)) confined to the union with partial unification matching the free branch is expected to match code s(:int, 2) and s(:int, 1) that can not be unified behaves like nonmatching doesn't match matching the unified branch is expected to match code s(:int, 5) and s(:int, 5) without unification is expected to match code s(:int, 2) and s(:int, 1) with a succeeding unifying constraint with all branches with the wildcard that can not be unified behaves like nonmatching doesn't match matching the first branch is expected to match code s(:array, s(:int, 1), s(:int, 2)) and s(:int, 2) matching another branch is expected to match code s(:array, s(:int, 2), s(:int, 1)) and s(:int, 2) with branches without the wildcard encountered first behaves like invalid is invalid encountered after behaves like invalid is invalid unnamed wildcards within a sequence with other patterns intervening is expected to match code :@abc and s(:int, 22) in head position of a sequence is expected to match code s(:int, 1), :+, and s(:send, nil, :a) negated behaves like nonmatching doesn't match within a sequence is expected to match code nil and :Const at the root level is expected to match code s(:sclass, s(:self), s(:def, :something, s(:args), s(:int, 1))) and :freeze comments behaves like single capture returns captured values if there is no block yields captured value(s) and returns true if there is a block RuboCop::AST::ProcessedSource #parser_error when the source was properly parsed is nil when the source could not be parsed due to encoding error returns the error when the source lacks encoding comment and is really utf-8 encoded but has been read as US-ASCII is nil valid_syntax? when the source is invalid returns false when the source could not be parsed due to encoding error returns false when a line starts with an integer literal tokenizes the source correctly when the source itself is valid encoding but includes strange encoding literals that are accepted by MRI returns true when the source is completely valid returns true when the source is valid but has some warning diagnostics returns true #lines contains lines as string without linefeed has same number of elements as line count is an array #blank? with source with content returns false with source of no content returns true #ast is the root node of AST #preceding_line returns source of line before token #tokens has an array of tokens #buffer is a source buffer #start_with? with blank source returns false with present source returns true when passed string that starts source returns false when passed string that does not start source with heavily commented source #contains_comment? provided a multiline source_range with at least one line with comment is expected to equal true provided source_range on line with comment is expected to equal true provided source_range on line without comment is expected to equal false provided source_range on comment line is expected to equal true #comment_at_line returns nil if line has no comment returns the comment at the given line number #comments_before_line returns comments on or before given line #each_comment_in_lines yields the comments #each_comment yields all comments #line_with_comment? returns true for lines with comments returns false for lines without comments #find_comment yields nil when there is no match yields correct comment #tokens_within returns tokens for node accepts Node as an argument when heredoc as argument is present returns tokens for heredoc node returns tokens for node before heredoc returns tokens for node after heredoc #first_token_of accepts Node as an argument returns first token for node .from_file raises a Errno::ENOENT when the file does not exist when the file exists sets the file path to the instance's #path returns an instance of ProcessedSource #[] when an index is passed returns the line when start index and length are passed returns the array of lines when a range is passed returns the array of lines #path is the path passed to .new #last_token_of accepts Node as an argument returns last token for node #comments is an array of comments when the source is invalid returns [] #following_line returns source of line after token token enumerables #each_token yields all tokens #find_token yields nil when there is no match yields correct token #file_path returns file path RuboCop::AST::OpAsgnNode #operator with &= is expected to eq :& with *= is expected to eq :* with **= is expected to eq :** with |= is expected to eq :| with %= is expected to eq :% with += is expected to eq :+ with /= is expected to eq :/ with -= is expected to eq :- .new with an `op_asgn_node` node is expected to be a kind of RuboCop::AST::OpAsgnNode #expression is expected to eq s(:send, nil, :value) #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode #name is expected to eq :var RuboCop::AST::SendNode #access_modifier? when node is a bare `module_function` is expected to be access modifier when node is not an access modifier is expected not to be bare access modifier when node is a non-bare `module_function` is expected to be access modifier #method? when message matches when argument is a string is expected to be method "bar" when argument is a symbol is expected to be method :bar when message does not match when argument is a symbol is expected not to be method :foo when argument is a string is expected not to be method "foo" #parenthesized? with no arguments when not using parentheses is expected not to be parenthesized when using parentheses is expected to be parenthesized with arguments when not using parentheses is expected not to be parenthesized when using parentheses is expected to be parenthesized #last_argument with no arguments is expected to be nil with a single literal argument is expected to be sym type with multiple literal arguments is expected to be sym type with a single splat argument is expected to be splat type with multiple mixed arguments is expected to be splat type #command? when argument is a string with an explicit receiver is expected not to be command "bar" with an implicit receiver is expected to be command "bar" when argument is a symbol with an implicit receiver is expected to be command :bar with an explicit receiver is expected not to be command :bar #block_literal? with a block argument is expected not to be block literal with Ruby >= 2.7 with a numblock literal is expected to be block literal with a block literal is expected to be block literal with no block is expected not to be block literal #double_colon? with a dot is expected not to be double colon without a dot is expected not to be double colon with a double colon is expected to be double colon with a unary method is expected not to be double colon #method_name with an operator method is expected to eq :== with a plain method is expected to eq :bar with an implicit call method is expected to eq :call with a setter method is expected to eq :bar= #implicit_call? with an explicit call method is expected not to be implicit call with a regular method is expected not to be implicit call with an implicit call method is expected to be implicit call #loop_keyword? is expected not to be loop keyword #non_bare_access_modifier? when node is a non-bare `module_function` is expected to be non bare access modifier when node is not an access modifier is expected not to be non bare access modifier when node does not have an argument is expected not to be non bare access modifier #bare_access_modifier? with Ruby >= 2.7 when node is access modifier in block is expected to be bare access modifier when node is access modifier in numblock is expected to be bare access modifier when node has an argument is expected not to be bare access modifier when node is not an access modifier is expected not to be bare access modifier when node is a bare `module_function` is expected to be bare access modifier #lambda? with a non-lambda method is expected not to be lambda with a stabby lambda method is expected to be lambda with a lambda method is expected to be lambda with a method named lambda in a class is expected not to be lambda #camel_case_method? with a regular method is expected not to be camel case method with a camel case method is expected to be camel case method #self_receiver? with a non-self receiver is expected not to be self receiver with an implicit receiver is expected not to be self receiver with a self receiver is expected to be self receiver #post_condition_loop? is expected not to be post condition loop #first_argument with multiple literal arguments is expected to be sym type with no arguments is expected to be nil with multiple mixed arguments is expected to be sym type with a single literal argument is expected to be sym type with a single splat argument is expected to be splat type #attribute_accessor? with an accessor returns the accessor method and Array] with a call without arguments is expected to be nil #unary_operation? with a regular method call is expected not to be unary operation with an implicit call method is expected not to be unary operation with a unary operation is expected to be unary operation with a binary operation is expected not to be unary operation #def_modifier? with a prefixed def modifier is expected to be def modifier with several prefixed def modifiers is expected to be def modifier with a block containing a method definition is expected not to be def modifier #bang_method? with a regular method is expected not to be bang method with a predicate method is expected not to be bang method with a bang method is expected to be bang method #splat_argument? with a splat argument is expected to be splat argument with regular arguments is expected not to be splat argument with no arguments is expected not to be splat argument with mixed arguments is expected to be splat argument #arguments? with no arguments is expected not to be arguments with multiple mixed arguments is expected to be arguments with multiple literal arguments is expected to be arguments with a single literal argument is expected to be arguments with a single splat argument is expected to be arguments #dot? with a double colon is expected not to be dot with a unary method is expected not to be dot without a dot is expected not to be dot with a dot is expected to be dot #def_modifier with several prefixed def modifiers is expected to eq :qux with a prefixed def modifier is expected to eq :bar with call with no argument is expected to be nil with a block containing a method definition is expected to be nil #nonmutating_binary_operator_method? with a nonmutating binary operator method is expected to be nonmutating binary operator method with a mutating binary operator method is expected not to be nonmutating binary operator method with a regular method is expected not to be nonmutating binary operator method #block_node with a block literal is expected to be block type with a block argument is expected to be nil with no block is expected to be nil with Ruby >= 2.7 with a numblock literal is expected to be numblock type #negation_method? with a non-negated method is expected not to be negation method with suffix `not` is expected not to be negation method with prefix `not` is expected to be negation method with prefix bang is expected to be negation method #block_argument? with mixed arguments is expected to be block argument with no arguments is expected not to be block argument with regular arguments is expected not to be block argument with a block argument is expected to be block argument #nonmutating_string_method? with a regular method is expected not to be nonmutating string method with a nonmutating String method is expected to be nonmutating string method with a mutating String method is expected not to be nonmutating string method #binary_operation?? with an implicit call method is expected not to be binary operation with a unary operation is expected not to be binary operation with a regular method call is expected not to be binary operation with a binary operation is expected to be binary operation #enumerable_method? with a regular method is expected not to be enumerable method with an enumerable method is expected to be enumerable method #nonmutating_array_method? with a mutating Array method is expected not to be nonmutating array method with a nonmutating Array method is expected to be nonmutating array method with a regular method is expected not to be nonmutating array method #setter_method? with a regular method is expected not to be setter method with an operator method is expected not to be setter method with an indexed setter method is expected to be setter method with a setter method is expected to be setter method #nonmutating_hash_method? with a regular method is expected not to be nonmutating hash method with a mutating Hash method is expected not to be nonmutating hash method with a nonmutating Hash method is expected to be nonmutating hash method #prefix_not? with a non-negated method is expected not to be prefix not with a bang method is expected not to be prefix not with keyword `not` is expected to be prefix not #receiver with no receiver is expected to be nil with a variable receiver is expected to be send type with a literal receiver is expected to be str type #arithmetic_operation? with a unary numeric operation is expected not to be arithmetic operation with a binary arithmetic operation is expected to be arithmetic operation with a regular method call is expected not to be arithmetic operation #lambda_literal? with a non-lambda method is expected not to be lambda with a stabby lambda is expected to be lambda literal with `a.() {}` style method is expected not to be lambda with a lambda method is expected not to be lambda literal #prefix_bang? with a non-negated method is expected not to be prefix bang with a bang method is expected to be prefix bang with keyword `not` is expected not to be prefix bang #comparison_method? with a comparison method is expected to be comparison method with a negation method is expected not to be comparison method with a regular method is expected not to be comparison method #predicate_method? with a bang method is expected not to be predicate method with a regular method is expected not to be predicate method with a predicate method is expected to be predicate method #const_receiver? with a non-constant receiver is expected not to be const receiver with a self receiver is expected not to be const receiver with a constant receiver is expected to be const receiver #nonmutating_unary_operator_method? with a regular method is expected not to be nonmutating unary operator method with a nonmutating unary operator method is expected to be nonmutating unary operator method #operator_method? with a unary operator method is expected to be operator method with a setter method is expected not to be operator method with a binary operator method is expected to be operator method with a regular method is expected not to be operator method #arguments with a single literal argument is expected to eq 1 with no arguments is expected to be empty with a single splat argument is expected to eq 1 with multiple mixed arguments is expected to eq 2 with multiple literal arguments is expected to eq 2 .new with a regular method send is expected to be a kind of RuboCop::AST::SendNode with a safe navigation method send is expected to be a kind of RuboCop::AST::SendNode #assignment_method? with a comparison method is expected not to be assignment method with a bracket assignment method is expected to be assignment method with an assignment method is expected to be assignment method with a regular method is expected not to be assignment method #macro? without a receiver when parent is a class is expected to be macro when parent is a module is expected to be macro when in an if is expected to be macro when parent is a method definition is expected not to be macro when parent is a struct constructor is expected to be macro when parent is a singleton class is expected to be macro when parent is a class constructor is expected to be macro when in the global scope is expected to be macro when the condition of an if is expected not to be macro without a parent is expected to be macro when parent is a block not in a macro scope is expected not to be macro when parent is a keyword begin inside of an class is expected to be macro when parent is a begin without a parent is expected to be macro with Ruby >= 2.7 when parent is a numblock in a macro scope is expected to be macro when parent is a block in a macro scope is expected to be macro with a receiver when parent is a class is expected not to be macro when parent is a module is expected not to be macro #nonmutating_operator_method? with a mutating binary operator method is expected not to be nonmutating operator method with a nonmutating binary operator method is expected to be nonmutating operator method with a nonmutating unary operator method is expected to be nonmutating operator method with a regular method is expected not to be nonmutating operator method RuboCop::AST::WhenNode #each_condition when not passed a block is expected to be a kind of Enumerator when passed a block yields all the conditions #branch_index is expected to eq 0 is expected to eq 1 is expected to eq 2 #conditions with a single condition is expected to all be literal is expected to eq 1 with a multiple conditions is expected to all be literal is expected to eq 3 #body with a then keyword is expected to be sym type without a then keyword is expected to be array type .new is expected to be a kind of RuboCop::AST::WhenNode #then? without a then keyword is expected not to be then with a then keyword is expected to be then RuboCop::AST::ArgsNode #empty_and_without_delimiters? with empty arguments with a block is expected to equal true with a lambda literal is expected to equal true with a method definition is expected to equal true with arguments with a lambda literal is expected to equal false with a method definition is expected to equal false with delimiters with a lambda literal is expected to equal false with a method definition is expected to equal false with a block is expected to equal false .new with a block is expected to be a kind of RuboCop::AST::ArgsNode with a lambda literal is expected to be a kind of RuboCop::AST::ArgsNode with a method definition is expected to be a kind of RuboCop::AST::ArgsNode #argument_list is expected to eq [s(:arg, :a), s(:optarg, :b, s(:int, 42)), s(:arg, :c), s(:restarg, :d), s(:kwarg, :e), s(:kwoptarg, :f, s(:int, 42)), s(:kwrestarg, :g), s(:blockarg, :h), s(:shadowarg, :i)] when using Ruby 2.7 or newer with argument forwarding is expected to eq [s(:forward_arg)] RuboCop::AST::CasgnNode #namespace when the parent is a `cbase` is expected to eq s(:cbase) when the parent is a `const` is expected to eq s(:const, nil, :FOO) when there is no parent is expected to be nil #name is expected to eq :VAR #expression is expected to eq s(:send, nil, :value) .new with a `casgn` node is expected to be a kind of RuboCop::AST::CasgnNode RuboCop::AST::SymbolNode .new with a symbol node is expected to be a kind of RuboCop::AST::SymbolNode #value is expected to eq :foo RuboCop::AST::WhileNode #do? with a do keyword is expected to be do without a do keyword is expected not to be do #post_condition_loop? with a statement while is expected not to be post condition loop with a modifier while is expected to be post condition loop #inverse_keyword is expected to eq "until" #loop_keyword? with a modifier while is expected to be loop keyword with a statement while is expected to be loop keyword .new with a modifier while is expected to be a kind of RuboCop::AST::WhileNode with a statement while is expected to be a kind of RuboCop::AST::WhileNode #keyword is expected to eq "while" RuboCop::AST::Traversal knows all current node types for example a, *, c = bar traverses all nodes for example f{ |a, *s| } traverses all nodes for example begin; meth; rescue; baz; ensure; bar; end traverses all nodes for example unless foo; bar; else baz; end traverses all nodes for example def self.foo; end traverses all nodes for example def f a, *r, p, &b; end traverses all nodes for example f{ |a, o=1, p, &b| } traverses all nodes for example case foo; in [x, y, *] then true; end traverses all nodes for example 1... traverses all nodes for example case foo; in "a": 1 then true; end traverses all nodes for example () traverses all nodes for example def f ((*r, p)); end traverses all nodes for example "a\ b" traverses all nodes for example 1 in [a]; a traverses all nodes for example { 1 => 2 } traverses all nodes for example alias $a $+ traverses all nodes for example fun(foo, *bar) traverses all nodes for example case foo; in x if true; nil; end traverses all nodes for example a b{c(d)}, 1.0 do end traverses all nodes for example BEGIN { 1 } traverses all nodes for example a b(c(d)), "x" do end traverses all nodes for example f{ |a,| } traverses all nodes for example +2.0 ** 10 traverses all nodes for example self.a, self[1, 2] = foo traverses all nodes for example foo, bar = meth rescue [1, 2] traverses all nodes for example assert do: true traverses all nodes for example %s{a\ b} traverses all nodes for example foo.a = 1 traverses all nodes for example a b(c d), /x/m do end traverses all nodes for example def String::foo; end traverses all nodes for example case foo; in A[1, 2] then true; end traverses all nodes for example %q(foobar) traverses all nodes for example *, c, d = bar traverses all nodes for example case foo; in x, y, then nil; end traverses all nodes for example def f foo = 1; end traverses all nodes for example foo traverses all nodes for example case foo; in ...2 then true; end traverses all nodes for example { foo: 2, **bar } traverses all nodes for example proc {_1 = nil} traverses all nodes for example %{a\ b} traverses all nodes for example def x; self::A ||= 1; end traverses all nodes for example fun(:foo => 1) traverses all nodes for example !m foo traverses all nodes for example foo::a = 1 traverses all nodes for example fun do end traverses all nodes for example meth 1 do end.fun bar traverses all nodes for example class A < B end traverses all nodes for example case foo; in A[x:] then true; end traverses all nodes for example a b{c d}, "x" do end traverses all nodes for example p <<~E x \ y E traverses all nodes for example -> (a) { } traverses all nodes for example return traverses all nodes for example <<-`HERE` #@1 HERE traverses all nodes for example case foo; in *x, y, z then nil; end traverses all nodes for example foo or bar traverses all nodes for example def m; class << self; module M; end; end; end traverses all nodes for example %I[foo#{bar}] traverses all nodes for example a b(c(d)), 1.0i do end traverses all nodes for example foo, bar, baz = 1, 2 traverses all nodes for example foo.C += raise bar rescue nil traverses all nodes for example begin; meth; rescue => ex; bar; end traverses all nodes for example case foo; when 'bar'; bar; end traverses all nodes for example f{ |;a| } traverses all nodes for example :"a\ b" traverses all nodes for example return() traverses all nodes for example <<-"HERE" #@1 HERE traverses all nodes for example foo != 1 traverses all nodes for example a, (b, c) = foo traverses all nodes for example foo[0, 1] &&= 2 traverses all nodes when a class defines on_arg calls it for all arguments for example +42 traverses all nodes for example case foo; in a: 1 then true; end traverses all nodes for example "#@1" traverses all nodes for example def f a, o=1, *r, &b; end traverses all nodes for example f{ |a, &b| } traverses all nodes for example case foo; in [x, *, y] then true; end traverses all nodes for example o = { a: 1 } traverses all nodes for example /#@1/ traverses all nodes for example foo == 1 traverses all nodes for example def f ((*r)); end traverses all nodes for example foo::A += m foo traverses all nodes for example m "#{[]}" traverses all nodes for example class A; _1; end traverses all nodes for example if /wat/; end traverses all nodes for example class Foo; end traverses all nodes for example p <<~E x y E traverses all nodes for example case foo; in (1) then true; end traverses all nodes for example def foo(_, _); end traverses all nodes for example m { _1 + _9 } traverses all nodes for example foo::C ||= raise(bar) rescue nil traverses all nodes for example foo.m += raise(bar) rescue nil traverses all nodes for example foo[1, 2] traverses all nodes for example def foo(_a, _a); end traverses all nodes for example ...100 traverses all nodes for example f{ |&b| } traverses all nodes for example begin; meth; ensure; bar; end traverses all nodes for example ~foo traverses all nodes for example case foo; in "#{ %q{a} }": 1 then true; end traverses all nodes for example foo || bar traverses all nodes for example undef foo, :bar, :"foo#{1}" traverses all nodes for example -> a: { } traverses all nodes for example foo[0, 1] ||= 2 traverses all nodes for example yield() traverses all nodes for example meth do; foo; rescue; bar; end traverses all nodes for example case foo; in A(1, 2) then true; end traverses all nodes for example def _5; end traverses all nodes for example -> do end traverses all nodes for example class << foo; _1; end traverses all nodes for example %I[#@1] traverses all nodes for example traverses all nodes for example a, *b, c = bar traverses all nodes for example true ? 1.tap do |n| p n end : 0 traverses all nodes for example ::Foo = 10 traverses all nodes for example f{ |*, &b| } traverses all nodes for example ->(a; foo, bar) { } traverses all nodes for example %w[] traverses all nodes for example p <<~E x y E traverses all nodes for example case foo; in {} then true; end traverses all nodes for example case foo; in "#{ %Q{a} }": then true; end traverses all nodes for example meth 1 do end.fun {} traverses all nodes for example p <<~"E" x\n y E traverses all nodes for example Bar::Foo = 10 traverses all nodes for example module ::Foo; end traverses all nodes for example %Q{a\ b} traverses all nodes for example foo = raise(bar) rescue nil traverses all nodes for example %x{#@1} traverses all nodes for example foo >> 1 traverses all nodes for example while def foo; tap do end; end; break; end traverses all nodes for example break fun foo do end traverses all nodes for example fun(1) { } traverses all nodes for example -> * { } traverses all nodes for example ::A += 1 traverses all nodes for example f{ |a, *r, p, &b| } traverses all nodes for example p <<~E E traverses all nodes for example ->(**nil) {} traverses all nodes for example p begin 1.times do 1 end end traverses all nodes for example /#{1}(?bar)/ =~ 'bar' traverses all nodes for example f { || a:b } traverses all nodes for example def f ((*, p)); end traverses all nodes for example foo.A += 1 traverses all nodes for example break traverses all nodes for example meth (-1.3).abs traverses all nodes for example foo.A += m foo traverses all nodes for example case foo; in a: {b:}, c: p c ; end traverses all nodes for example f{ |a, c| } traverses all nodes for example begin; meth; rescue; baz; else foo; ensure; bar end traverses all nodes for example case; when foo; 'foo'; end traverses all nodes for example a b{c(d)}, /x/ do end traverses all nodes for example bar def foo; self.each do end end traverses all nodes for example case foo; in 1... then true; end traverses all nodes for example def f foo: ; end traverses all nodes for example [ 1 => 2 ] traverses all nodes for example meth 1 do end.fun(bar) traverses all nodes for example proc {_1 = nil} traverses all nodes for example true traverses all nodes for example /foo#{bar}baz/ traverses all nodes for example f (g rescue nil) traverses all nodes for example def f o=1, *r, p, &b; end traverses all nodes for example f <<-TABLE do TABLE end traverses all nodes for example f{ |*s| } traverses all nodes for example def f(foo=1, bar=2); end traverses all nodes for example foo[1, 2] traverses all nodes for example p <<~"E" x #{foo} E traverses all nodes for example f{ |foo:| } traverses all nodes for example bar unless foo traverses all nodes for example def f(**); end traverses all nodes for example def m; class << self; class C; end; end; end traverses all nodes for example def f(**nil); end traverses all nodes for example tap (proc do end) traverses all nodes for example f{ |a, b,| } traverses all nodes for example %i[ #@@1 ] traverses all nodes for example p :foo, {:a => proc do end, b: proc do end} traverses all nodes for example A += 1 traverses all nodes for example case foo; in ::A then true; end traverses all nodes for example %W"#{1}" traverses all nodes for example p <<~E x y E traverses all nodes for example fun(1) traverses all nodes for example a @b do |c|;end traverses all nodes for example fun(foo, *bar, &baz) traverses all nodes for example begin; rescue LoadError; else; end traverses all nodes when a class defines `on_block_pass` calls it for all block-pass arguments for example p :foo, {"a": proc do end, b: proc do end} traverses all nodes for example ->{ } traverses all nodes for example p ->() do a() do end end traverses all nodes for example begin; meth; rescue Exception; bar; end traverses all nodes for example %I() traverses all nodes for example a b{c(d)}, 1 do end traverses all nodes for example case foo; in self then true; end traverses all nodes for example _1 traverses all nodes for example /source/im traverses all nodes for example while def foo a = tap do end; end; break; end traverses all nodes for example begin; meth; rescue foo => ex; bar; end traverses all nodes for example def x(_4) end traverses all nodes for example def foo =begin =end end traverses all nodes for example fun(:foo => 1, &baz) traverses all nodes for example { foo: 2 } traverses all nodes for example def self::foo; end traverses all nodes for example def f(foo); end traverses all nodes for example 42i traverses all nodes for example foo::m += raise bar rescue nil traverses all nodes for example case foo; when 1, *baz; bar; when *foo; end traverses all nodes for example unless foo then bar; else baz; end traverses all nodes for example p <<~E x y E traverses all nodes for example def f(foo, bar); end traverses all nodes for example foo, bar = m foo traverses all nodes for example next(foo) traverses all nodes for example %{#@1} traverses all nodes for example m ->(a: ->{_1}) {a} traverses all nodes for example case foo; in {a: 2} false ; end traverses all nodes for example %Q{#@1} traverses all nodes for example /#)/x traverses all nodes for example fun { } traverses all nodes for example case foo; in A() then true; end traverses all nodes for example foo = raise bar rescue nil traverses all nodes for example %r{#@1} traverses all nodes for example case foo; in ->{ 42 } then true; end traverses all nodes for example def f o=1, p, &b; end traverses all nodes for example m [] do end traverses all nodes for example :"foo#{bar}baz" traverses all nodes for example f{ |foo: 1, &b| } traverses all nodes for example foo % 1 traverses all nodes for example foo.m += raise bar rescue nil traverses all nodes for example __ENCODING__ traverses all nodes for example _2 = 1 traverses all nodes for example /\xa8/n =~ "" traverses all nodes for example 42r traverses all nodes for example t=1;(foo)?t:T traverses all nodes for example def f *, **; end traverses all nodes for example foo * 1 traverses all nodes for example :'#@@1' traverses all nodes for example a b(c d), 1 do end traverses all nodes for example foo[0, 1] += m foo traverses all nodes for example foo.a += m foo traverses all nodes for example foo.a ||= 1 traverses all nodes for example foo = m foo traverses all nodes for example <<-`HERE` #@@1 HERE traverses all nodes for example foo[bar, :baz => 1,] traverses all nodes for example !(a, b = foo) traverses all nodes for example case foo; in x then x; end traverses all nodes for example f{ |a| } traverses all nodes for example case foo; in 1..2 then true; end traverses all nodes for example %W[#@1] traverses all nodes for example p p{p(p);p p}, tap do end traverses all nodes for example foo.(1) traverses all nodes for example foo !~ 1 traverses all nodes for example %W{a\ b} traverses all nodes for example f{ |a, *| } traverses all nodes for example foo::Fun() traverses all nodes for example super foo, bar do end traverses all nodes for example def f ((a, a1)); end traverses all nodes for example 1.33 traverses all nodes for example f{ |*s, &b| } traverses all nodes for example break(foo) traverses all nodes for example fun() { } traverses all nodes for example `#@@1` traverses all nodes for example %q{#@@1} traverses all nodes for example next foo traverses all nodes for example foo += raise bar rescue nil traverses all nodes for example super foo traverses all nodes for example a b{c(d)}, /x/m do end traverses all nodes for example +foo traverses all nodes for example m { |foo| } traverses all nodes for example a += b += raise :x traverses all nodes for example case foo; in "#{ %q{a} }": then true; end traverses all nodes for example %I{a\ b} traverses all nodes for example foo and bar traverses all nodes for example for a in foo; p a; end traverses all nodes for example <<~FOO baz\ qux FOO traverses all nodes for example a ||= 1 traverses all nodes for example <<~E 1 \ 2 3 E traverses all nodes for example :'a\ b' traverses all nodes for example foo = bar = m foo traverses all nodes for example case foo; in a:, b: then true; end traverses all nodes for example if foo; bar; else baz; end traverses all nodes for example next fun foo do end traverses all nodes for example assert dogs traverses all nodes for example foo::fun (1) {} traverses all nodes for example def self._6; end traverses all nodes for example case foo; in x, *y, z then nil; end traverses all nodes for example foo / 1 traverses all nodes for example def f a, o=1, *r, p, &b; end traverses all nodes for example $10 traverses all nodes for example break foo traverses all nodes for example $var = 10 traverses all nodes for example @a |= 1 traverses all nodes for example f{ |a, *, &b| } traverses all nodes for example break() traverses all nodes for example a # # &.foo traverses all nodes for example foo "#{(1+1).to_i}" do; end traverses all nodes for example foo::fun bar traverses all nodes for example -42 traverses all nodes for example foo.fun (1) {} traverses all nodes for example foo[0] += raise bar rescue nil traverses all nodes for example m [], 1 do end traverses all nodes for example def String; end traverses all nodes for example m ->(a = ->{_1}) {a} traverses all nodes for example foo = *bar traverses all nodes for example a b(c d), :e do end traverses all nodes for example meth 1 do end.fun(bar) {} traverses all nodes for example 42.1ri traverses all nodes for example foo::Fun bar traverses all nodes for example begin meth end until foo traverses all nodes for example case foo; in a: then true; end traverses all nodes for example -> do _1 + _9 end traverses all nodes for example self::a, foo = foo traverses all nodes for example 1...2 traverses all nodes for example {a: if true then 42 end} traverses all nodes for example case foo; in 1.. then true; end traverses all nodes for example if foo then bar end traverses all nodes for example f{ |a, o=1, o1=2, *r, &b| } traverses all nodes for example meth[] {} traverses all nodes for example f{ |o=1, &b| } traverses all nodes for example def foo raise; raise A::B, ''; end traverses all nodes for example foo[0] += raise(bar) rescue nil traverses all nodes for example case foo; in 1 | 2 then true; end traverses all nodes for example :"#@@1" traverses all nodes for example *b, c = bar traverses all nodes for example case foo; in [x, y] then true; end traverses all nodes for example var = 10; var traverses all nodes for example "#@@1" traverses all nodes for example foo & 1 traverses all nodes for example def f ((a, *r, p)); end traverses all nodes for example <<-'HERE' #@@1 HERE traverses all nodes for example def f(foo:); end traverses all nodes for example case foo; in "#{ 'a' }": then true; end traverses all nodes for example fun (1).to_i traverses all nodes for example while foo; meth end traverses all nodes for example case foo; in [*x, y] then true; end traverses all nodes for example a b(c d), 1.0r do end traverses all nodes for example case; when foo; 'foo'; else 'bar'; end traverses all nodes for example def f (((a))); end traverses all nodes for example foo.C += raise(bar) rescue nil traverses all nodes for example def foo() a:b end traverses all nodes for example fun! traverses all nodes for example until foo do meth end traverses all nodes for example case foo; in **nil then true; end traverses all nodes for example case foo; in {a: } true ; end traverses all nodes for example $+ traverses all nodes for example self traverses all nodes for example def String=; end traverses all nodes for example f{ |o=1, *r, &b| } traverses all nodes for example def END; end traverses all nodes for example foo = baz, *bar traverses all nodes for example f{ |**baz, &b| } traverses all nodes for example foo[bar,] traverses all nodes for example case foo; in "a": then true; end traverses all nodes for example $foo traverses all nodes for example :'#@1' traverses all nodes for example "#{-> foo {}}" traverses all nodes for example def String.foo; end traverses all nodes for example not foo traverses all nodes for example redo traverses all nodes for example a b(c(d)), 1 do end traverses all nodes for example a b(c d), /x/ do end traverses all nodes for example a = 1; a b: 1 traverses all nodes for example def foo(...); end traverses all nodes for example while def self.foo; tap do end; end; break; end traverses all nodes for example %i[ #@1 ] traverses all nodes for example !foo traverses all nodes for example case foo; in 1...2 then true; end traverses all nodes for example a&.b traverses all nodes for example p <<~E E traverses all nodes for example false ? raise {} : tap {} traverses all nodes for example if (bar; a, b = foo); end traverses all nodes for example @@var |= 10 traverses all nodes for example foo <= 1 traverses all nodes for example -> do rescue; end traverses all nodes for example foo.fun traverses all nodes for example * = bar traverses all nodes for example %s{#@@1} traverses all nodes for example p :foo, {** proc do end, b: proc do end} traverses all nodes for example meth 1 do end::fun bar traverses all nodes for example case foo; when 'bar'; bar; else baz; end traverses all nodes for example td (1_500).toString(); td.num do; end traverses all nodes for example foo::m += raise(bar) rescue nil traverses all nodes for example @@foo traverses all nodes for example %I[foo #{bar}] traverses all nodes for example `foo#{bar}baz` traverses all nodes for example alias :foo bar traverses all nodes for example foo > 1 traverses all nodes for example p <<~E x E traverses all nodes for example begin foo!; bar! end traverses all nodes for example foo::A = 1 traverses all nodes for example return foo traverses all nodes for example while not (true) do end traverses all nodes for example meth while foo traverses all nodes for example %i{a\ b} traverses all nodes for example def f(*); end traverses all nodes for example foo ^ 1 traverses all nodes for example f{ |*| } traverses all nodes for example a b(c(d)), 1.0 do end traverses all nodes for example proc {|_3|} traverses all nodes for example `#@1` traverses all nodes for example def a; @@var |= 10; end traverses all nodes for example foo (-1.3).abs traverses all nodes for example f{ |a, o=1, *r, p, &b| } traverses all nodes for example <<-"HERE" #@@1 HERE traverses all nodes for example 1..2 traverses all nodes for example a b{c(d)}, "x" do end traverses all nodes for example <<-"HERE" a\ b HERE traverses all nodes for example # Extracted from `parser` gem. # Add the following code at the beginning of `def assert_parses`: # # File.open('./out.rb', 'a+') do |f| # f << code << "\n\n#----\n" if versions.include? '2.7' # end alias $a $b traverses all nodes for example case foo; in ^foo then nil; end traverses all nodes for example fun(foo, :foo => 1) traverses all nodes for example case foo; in [*, x] then true; end traverses all nodes for example def a b: return end traverses all nodes for example def f *r, &b; end traverses all nodes for example super(foo) traverses all nodes for example foo.fun bar traverses all nodes for example [1, 2] traverses all nodes for example fun(*bar, &baz) traverses all nodes for example __LINE__ traverses all nodes for example 42.1i traverses all nodes for example module A; _1; end traverses all nodes for example a ? b & '': nil traverses all nodes for example %x{#@@1} traverses all nodes for example %i[] traverses all nodes for example /#@@1/ traverses all nodes for example case foo; in [x, y,] then true; end traverses all nodes for example a, b = *foo, bar traverses all nodes for example f{ | | } traverses all nodes for example :foo traverses all nodes for example case foo; when 'bar' then bar; end traverses all nodes for example B::A += 1 traverses all nodes for example foo::a += 1 traverses all nodes for example if foo..bar; end traverses all nodes for example %r{#@@1} traverses all nodes for example a b{c d}, 1 do end traverses all nodes for example defined? foo traverses all nodes for example -> a: 1 { } traverses all nodes for example END { 1 } traverses all nodes for example case foo; in A[] then true; end traverses all nodes for example a b{c d}, 1.0i do end traverses all nodes for example f x: -> do meth do end end traverses all nodes for example def BEGIN; end traverses all nodes for example def foo; end traverses all nodes for example begin; meth; rescue; foo; else; bar; end traverses all nodes for example a &&= 1 traverses all nodes for example [/()\1/, ?#] traverses all nodes for example if foo then bar; else baz; end traverses all nodes for example a b{c d}, /x/m do end traverses all nodes for example case foo; in { a: 1, } then true; end traverses all nodes for example foo ** 1 traverses all nodes for example case foo; in {a: 1 } false ; end traverses all nodes for example a b{c(d)}, :e do end traverses all nodes for example f{ |a, *s, &b| } traverses all nodes for example %q{#@1} traverses all nodes for example f{ |a| } traverses all nodes for example meth rescue bar traverses all nodes for example case foo; in x unless true; nil; end traverses all nodes for example p <<~"E" x #{" y"} E traverses all nodes for example "foo#@a" "bar" traverses all nodes for example [ 1, 2 => 3 ] traverses all nodes for example @var = 10 traverses all nodes for example while class Foo; tap do end; end; break; end traverses all nodes for example def f (foo: 1, &b); end traverses all nodes for example "foo#{bar}baz" traverses all nodes for example not m foo traverses all nodes for example p :foo, {proc do end => proc do end, b: proc do end} traverses all nodes for example m1 :k => m2 do; m3() do end; end traverses all nodes for example %s{#@1} traverses all nodes for example foo < 1 traverses all nodes for example a&.b &&= 1 traverses all nodes for example if foo; bar; elsif baz; 1; else 2; end traverses all nodes for example :"#@1" traverses all nodes for example while class Foo a = tap do end; end; break; end traverses all nodes for example defined?(foo) traverses all nodes for example def f(*foo); end traverses all nodes for example %{#@@1} traverses all nodes for example a = b = raise :x traverses all nodes for example foo[0, 1] += 2 traverses all nodes for example foo::(1) traverses all nodes for example case foo; in A(x:) then true; end traverses all nodes for example case foo; in *x then nil; end traverses all nodes for example p <<~E x y E traverses all nodes for example a += 1 traverses all nodes for example def f ((a, *r)); end traverses all nodes for example -2 ** 10 traverses all nodes for example not() traverses all nodes for example ->(scope) {}; scope traverses all nodes for example foo[1, 2] = 3 traverses all nodes for example p <<~`E` x #{foo} E traverses all nodes for example fun () {} traverses all nodes for example foo | 1 traverses all nodes for example def self.m; _1; end traverses all nodes for example foo::fun traverses all nodes for example m a + b do end traverses all nodes for example %I[#@@1] traverses all nodes for example @@var = 10 traverses all nodes for example fun (1) traverses all nodes for example case foo; in {Foo: 42 } false ; end traverses all nodes for example case foo; in x, y then nil; end traverses all nodes for example %q{a\ b} traverses all nodes for example yield traverses all nodes for example foo >= 1 traverses all nodes for example if foo then bar; end traverses all nodes for example def m; class << self; A = nil; end; end traverses all nodes for example case foo; in 1; end traverses all nodes for example a b{c d}, :e do end traverses all nodes for example @foo traverses all nodes for example f{ |*r, p, &b| } traverses all nodes for example def f *r, p, &b; end traverses all nodes for example def f ((a, *)); end traverses all nodes for example fun(&bar) traverses all nodes for example ..100 traverses all nodes for example return fun foo do end traverses all nodes for example a # # &.foo traverses all nodes for example not(foo) traverses all nodes for example foo ? 1 : 2 traverses all nodes for example def (foo).foo; end traverses all nodes for example m "#{}#{()}" traverses all nodes for example let (:a) { m do; end } traverses all nodes for example 42.1r traverses all nodes for example f(a ? "a":1) traverses all nodes for example p <<~E x y E traverses all nodes for example fun(*bar) traverses all nodes for example class Foo end traverses all nodes for example foo&.bar {} traverses all nodes for example a b(c(d)), /x/m do end traverses all nodes for example case foo; in "#{ %Q{a} }": 1 then true; end traverses all nodes for example !(foo..bar) traverses all nodes for example case foo; when 'bar', 'baz'; bar; end traverses all nodes for example %Q{#@@1} traverses all nodes for example foo << 1 traverses all nodes for example f{ } traverses all nodes for example def f a, &b; end traverses all nodes for example case foo; in A then true; end traverses all nodes for example if (a, b = foo); end traverses all nodes for example a&.b = 1 traverses all nodes for example '#@1' traverses all nodes for example <<-'HERE' #@1 HERE traverses all nodes for example fun traverses all nodes for example module Foo; end traverses all nodes for example foo::C ||= raise bar rescue nil traverses all nodes for example case foo; in [x,] then nil; end traverses all nodes for example f{ |a, o=1, &b| } traverses all nodes for example a b{c d}, /x/ do end traverses all nodes for example %W[#@@1] traverses all nodes for example fun (1 ) traverses all nodes for example begin end traverses all nodes for example meth 1 do end.fun bar do end traverses all nodes for example foo && bar traverses all nodes for example a b{c d}, 1.0 do end traverses all nodes for example retry traverses all nodes for example `foobar` traverses all nodes for example <<'HERE' foo bar HERE traverses all nodes for example module Bar::Foo; end traverses all nodes for example defined? @foo traverses all nodes for example foo <=> 1 traverses all nodes for example /a\ b/ traverses all nodes for example m { |**nil| } traverses all nodes for example foo += raise(bar) rescue nil traverses all nodes for example case foo; in **a then true; end traverses all nodes for example foo + 1 traverses all nodes for example m { |(foo, bar)| } traverses all nodes for example -1.33 traverses all nodes for example def f &b; end traverses all nodes for example while def self.foo a = tap do end; end; break; end traverses all nodes for example __FILE__ traverses all nodes for example a b(c d), 1.0 do end traverses all nodes for example while foo do meth end traverses all nodes for example 42ri traverses all nodes for example def f o=1, *r, &b; end traverses all nodes for example begin meth end while foo traverses all nodes for example case foo; in ** then true; end traverses all nodes for example fun (1) {} traverses all nodes for example def f(foo: 1); end traverses all nodes for example let () { m(a) do; end } traverses all nodes for example *b = bar traverses all nodes for example Foo traverses all nodes for example a # # .foo traverses all nodes for example { } traverses all nodes for example def f a, o=1, p, &b; end traverses all nodes for example begin; meth; rescue Exception, foo; bar; end traverses all nodes for example case 1; in 2; 3; else; end traverses all nodes for example <bar)/ =~ 'bar'; match traverses all nodes for example ((b, )) = foo traverses all nodes for example foo[1, 2] = 3 traverses all nodes for example def f ; end traverses all nodes for example # coding:utf-8 "\xD0\xBF\xD1\x80\xD0\xBE\xD0\xB2\xD0\xB5\xD1\x80\xD0\xBA\xD0\xB0" traverses all nodes for example ::A, foo = foo traverses all nodes for example self.A, foo = foo traverses all nodes for example <<-'HERE' a\ b HERE traverses all nodes for example a = b += raise :x traverses all nodes for example foo.a += 1 traverses all nodes for example -> { _1 + _9} traverses all nodes for example foo[:baz => 1,] traverses all nodes for example a b(c(d)), :e do end traverses all nodes for example def f(&block); end traverses all nodes for example f{ |foo: 1, bar: 2, **baz, &b| } traverses all nodes for example a # # .foo traverses all nodes for example case [__FILE__, __LINE__ + 1, __ENCODING__] in [__FILE__, __LINE__, __ENCODING__] end traverses all nodes for example foo, bar = 1, 2 traverses all nodes for example foo = bar, 1 traverses all nodes for example __ENCODING__ traverses all nodes for example { 'foo': 2, 'bar': {}} traverses all nodes for example case foo; in * then nil; end traverses all nodes for example a b{c d}, 1.0r do end traverses all nodes for example @foo, @@bar = *foo traverses all nodes for example false ? raise do end : tap do end traverses all nodes for example def until; end traverses all nodes for example case foo; in [x, y, *z] then true; end traverses all nodes for example next traverses all nodes for example def f a, o=1, &b; end traverses all nodes for example %w[ #@1 ] traverses all nodes for example [*foo] traverses all nodes when given an unexpected AST with too few children raises debugging error with too many children raises debugging error for example case foo; in a: 1, _a:, ** then true; end traverses all nodes for example def foo a:b end traverses all nodes for example 1.. traverses all nodes for example -foo traverses all nodes for example def foo(...); super(...); end traverses all nodes for example case foo; in [x] then nil; end traverses all nodes for example ->{ } traverses all nodes for example f{ |a| } traverses all nodes for example fun(foo, :foo => 1, &baz) traverses all nodes for example -2.0 ** 10 traverses all nodes for example foo[m bar] traverses all nodes for example 42 traverses all nodes for example [1, *foo, 2] traverses all nodes for example nil traverses all nodes for example until foo; meth end traverses all nodes for example p <<~E x y E traverses all nodes for example %x{a\ b} traverses all nodes for example foo.a &&= 1 traverses all nodes for example if (bar); foo; end traverses all nodes for example class << foo; nil; end traverses all nodes for example next() traverses all nodes for example for a, b in foo; p a, b; end traverses all nodes for example def foo(...); bar(...); end traverses all nodes for example foo && (a, b = bar) traverses all nodes for example f{ |o=1, *r, p, &b| } traverses all nodes for example begin ensure end traverses all nodes for example begin; meth; rescue => @ex; bar; end traverses all nodes for example f{ |; a | } traverses all nodes for example meth 1 do end::fun(bar) traverses all nodes for example a b(c d), 1.0i do end traverses all nodes for example <<-`HERE` a\ b HERE traverses all nodes for example lambda{|;a|a} traverses all nodes for example `a\ b` traverses all nodes for example '#@@1' traverses all nodes for example foo === 1 traverses all nodes for example def x; ::A ||= 1; end traverses all nodes for example { 1 => 2, :foo => "bar" } traverses all nodes for example def f o=1, &b; end traverses all nodes for example fun(f bar) traverses all nodes for example 'a\ b' traverses all nodes for example yield foo traverses all nodes for example case foo; in 1, "a", [], {} then nil; end traverses all nodes for example a, *b = bar traverses all nodes for example (foo, bar) = 1, 2 traverses all nodes for example foo =~ 1 traverses all nodes for example a, * = bar traverses all nodes for example { 'foo': 2 } traverses all nodes for example foo.A = 1 traverses all nodes for example !(foo...bar) traverses all nodes for example %r{a\ b} traverses all nodes for example %W[foo #{bar}] traverses all nodes for example yield(foo) traverses all nodes for example def f foo: -1 ; end traverses all nodes for example desc "foo" do end traverses all nodes for example def f (foo: 1, bar: 2, **baz, &b); end traverses all nodes for example !/wat/ traverses all nodes for example p :foo, {a: proc do end, b: proc do end} traverses all nodes for example ?a traverses all nodes for example %W() traverses all nodes for example return(foo) traverses all nodes for example case foo; in 1 => a then true; end traverses all nodes for example m do _1 + _9 end traverses all nodes for example foo || (a, b = bar) traverses all nodes for example ::Foo traverses all nodes for example case foo; in "#{ 'a' }": 1 then true; end traverses all nodes for example if foo...bar; end traverses all nodes for example def f **baz, &b; end traverses all nodes for example :'foo' traverses all nodes for example m = -> *args do end traverses all nodes for example a b(c(d)), 1.0r do end traverses all nodes for example p <<~E x \ y E traverses all nodes for example %w[foo bar] traverses all nodes for example p -> { :hello }, a: 1 do end traverses all nodes for example while class << self; a = tap do end; end; break; end traverses all nodes for example foo += m foo traverses all nodes for example class Foo < a:b; end traverses all nodes for example "#{1}" traverses all nodes for example if foo; bar; end traverses all nodes for example def f a, *r, &b; end traverses all nodes for example a b(c d), "x" do end traverses all nodes for example f{ |o=1, p, &b| } traverses all nodes for example m def x(); end; 1.tap do end traverses all nodes for example class Foo < Bar; end traverses all nodes for example while class << self; tap do end; end; break; end traverses all nodes for example false traverses all nodes for example foo = meth rescue bar traverses all nodes for example ->(a) { } traverses all nodes for example %W[foo #{bar}foo#@baz] traverses all nodes for example def f ((*)); end traverses all nodes for example case foo; in A::B then true; end traverses all nodes for example p <<~E " y" x E traverses all nodes for example for a in foo do p a; end traverses all nodes for example a b(c(d)), /x/ do end traverses all nodes for example -> (arg={}) {} traverses all nodes for example %w{a\ b} traverses all nodes for example def foo(...); bar(...); end traverses all nodes for example %i[foo bar] traverses all nodes for example Foo = 10 traverses all nodes for example a += b = raise :x traverses all nodes for example super do end traverses all nodes for example case foo; in ..2 then true; end traverses all nodes for example case foo; in x, then nil; end traverses all nodes for example a b{c(d)}, 1.0r do end traverses all nodes for example meth until foo traverses all nodes for example fun (f bar) traverses all nodes for example super traverses all nodes for example unless foo then bar; end traverses all nodes RuboCop::AST::RangeNode .new with an exclusive range is expected to be a kind of RuboCop::AST::RangeNode is expected to be range type with an inclusive range is expected to be a kind of RuboCop::AST::RangeNode is expected to be range type with a beignless range is expected to be a kind of RuboCop::AST::RangeNode is expected to be range type with an infinite range is expected to be range type is expected to be a kind of RuboCop::AST::RangeNode Set#=== tests for inclusion RuboCop::AST::StrNode #heredoc? with a heredoc is expected to be heredoc with a normal string is expected not to be heredoc with a string with interpolation is expected not to be heredoc #character_literal? with a character literal is expected to be character literal with a normal string literal is expected not to be character literal with a heredoc is expected not to be character literal .new with a heredoc is expected to be a kind of RuboCop::AST::StrNode with a normal string is expected to be a kind of RuboCop::AST::StrNode with a string with interpolation is expected to be a kind of RuboCop::AST::StrNode RuboCop::AST::IntNode #value is expected to eq 10 .new is expected to be a kind of RuboCop::AST::IntNode #sign? explicit positive int is expected to be sign explicit negative int is expected to be sign RuboCop::AST::RuboCopCompatibility when ran from an incompatible version of Rubocop issues a warning when ran from a compatible version of Rubocop issues a warning RuboCop::AST::AndNode #inverse_operator with a logical and node is expected to eq "||" with a semantic and node is expected to eq "or" #semantic_operator? with a semantic and node is expected to be semantic operator with a logical and node is expected not to be semantic operator #lhs with a semantic and node is expected to be sym type with a logical and node is expected to be sym type #operator with a logical and node is expected to eq "&&" with a semantic and node is expected to eq "and" #rhs with a semantic and node is expected to be int type with a logical and node is expected to be int type #logical_operator? with a logical and node is expected to be logical operator with a semantic and node is expected not to be logical operator #alternate_operator with a semantic and node is expected to eq "&&" with a logical and node is expected to eq "and" .new with a logical and node is expected to be a kind of RuboCop::AST::AndNode with a semantic and node is expected to be a kind of RuboCop::AST::AndNode RuboCop::AST::LambdaNode #arguments is expected to eq 2 #receiver is expected to be nil #method_name is expected to eq :lambda RuboCop::AST::CaseNode #each_when when passed a block yields all the conditions when not passed a block is expected to be a kind of Enumerator #branches when compared to an IfNode returns the same when there is no else keyword returns only then when bodies when there is an else returns all the bodies with an empty else returns all the bodies #else? with an else statement is expected to be else without an else statement is expected not to be else .new is expected to be a kind of RuboCop::AST::CaseNode #when_branches is expected to all be when type is expected to eq 3 #keyword is expected to eq "case" #else_branch #else? without an else statement is expected to be nil with an else statement is expected to be sym type with an empty else statement is expected to be nil RuboCop::AST::ArrayNode .new is expected to be a kind of RuboCop::AST::ArrayNode #values with an empty array is expected to be empty with an array of literals is expected to all be literal is expected to eq 3 with an array of variables is expected to all be send type is expected to eq 2 #bracketed? unbracketed is expected to be nil with square brackets is expected to be bracketed with a percent literal is expected to be bracketed #percent_literal? with a string percent literal is expected to be percent literal :string is expected not to be percent literal :symbol is expected to be percent literal with a symbol percent literal is expected to be percent literal :symbol is expected not to be percent literal :string is expected to be percent literal with square brackets is expected not to be percent literal :symbol is expected not to be percent literal is expected not to be percent literal :string #each_value without block is expected to be a kind of Enumerator with block is expected to eq ["(int 1)", "(int 2)", "(int 3)"] is expected to be a kind of RuboCop::AST::ArrayNode #square_brackets? with square brackets is expected to be square brackets with a percent literal is expected not to be square brackets RuboCop::AST::DefinedNode #arguments is expected to eq 1 is expected to all be sym type .new with a defined? node is expected to be a kind of RuboCop::AST::DefinedNode #receiver is expected to be nil #method_name is expected to eq :defined? RuboCop::AST::NextNode behaves like wrapped arguments node .new without arguments is expected to be a kind of RuboCop::AST::NextNode with arguments is expected to be a kind of RuboCop::AST::NextNode #arguments with a single argument and braces is expected to eq 1 with multiple literal arguments is expected to eq 2 with no arguments and braces is expected to be empty with no arguments is expected to be empty with a single splat argument is expected to eq 1 with a single argument is expected to eq 1 RuboCop::AST::NodePattern::Sets is expected to eq "::RuboCop::AST::NodePattern::Sets::SET_1_2_3_ETC" creates a constant with the right value is expected to eq "::RuboCop::AST::NodePattern::Sets::SET_1_2_3_ETC" is expected not to eq "::RuboCop::AST::NodePattern::Sets::SET_1_2_3_ETC_2" RuboCop::AST::EnsureNode .new is expected to be a kind of RuboCop::AST::EnsureNode #body is expected to be sym type RuboCop::AST::DstrNode #value with implicit concatenation is expected to eq "foo bar baz" with interpolation is expected to eq "foo \#{bar} baz" with a multiline string is expected to eq "this is a multiline string" RuboCop::AST::Procarg0Node #name is expected to eq :x .new with a block is expected to be a kind of RuboCop::AST::ArgNode RuboCop::AST::OrAsgnNode #expression is expected to eq s(:send, nil, :value) #name is expected to eq :var #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode #operator is expected to eq :"||" .new is expected to be a kind of RuboCop::AST::OrAsgnNode RuboCop::AST::DefNode #comparison_method? with a regular method is expected not to be comparison method with a comparison method is expected to be comparison method #receiver with a singleton method definition is expected to be const type with a class method definition is expected to be self type with an instance method definition is expected to be nil .new with a def node is expected to be a kind of RuboCop::AST::DefNode with a defs node is expected to be a kind of RuboCop::AST::DefNode #bang_method? with a bang method is expected to be bang method with a regular method is expected not to be bang method with a predicate method is expected not to be bang method #camel_case_method? with a regular method is expected not to be camel case method with a camel case method is expected to be camel case method #body with a multi-expression body is expected to be begin type with a single expression body is expected to be send type with no body is expected to be nil #self_receiver? with a singleton method definition is expected not to be self receiver with an instance method definition is expected not to be self receiver with a class method definition is expected to be self receiver #first_argument with multiple mixed arguments is expected to be arg type with a single keyword argument is expected to be kwoptarg type with a single regular argument is expected to be arg type with no arguments is expected to be nil with multiple regular arguments is expected to be arg type with a single rest argument is expected to be restarg type #block_argument? with no arguments is expected not to be block argument with a block argument is expected to be block argument with mixed arguments is expected to be block argument with regular arguments is expected not to be block argument #arguments? with no arguments is expected not to be arguments with a single keyword argument is expected to be arguments with a single regular argument is expected to be arguments with a single rest argument is expected to be arguments with multiple regular arguments is expected to be arguments with multiple mixed arguments is expected to be arguments #method? when message does not match when argument is a symbol is expected not to be method :foo when argument is a string is expected not to be method "foo" when message matches when argument is a symbol is expected to be method :bar when argument is a string is expected to be method "bar" #last_argument with multiple regular arguments is expected to be arg type with a single regular argument is expected to be arg type with a single keyword argument is expected to be kwoptarg type with no arguments is expected to be nil with a single rest argument is expected to be restarg type with multiple mixed arguments is expected to be restarg type #assignment_method? with an assignment method is expected to be assignment method with a bracket assignment method is expected to be assignment method with a regular method is expected not to be assignment method with a comparison method is expected not to be assignment method when using Ruby 2.7 or newer #argument_forwarding? is expected to be argument forwarding #rest_argument? with a rest argument is expected to be rest argument with no arguments is expected not to be rest argument with mixed arguments is expected to be rest argument with regular arguments is expected not to be rest argument #endless? with endless method definition is expected to be endless with standard method definition is expected not to be endless #operator_method? with a regular method is expected not to be operator method with a unary operator method is expected to be operator method with a setter method is expected not to be operator method with a binary operator method is expected to be operator method #method_name with a setter method is expected to eq :foo= with a plain method is expected to eq :foo with a unary method is expected to eq :-@ with an operator method is expected to eq :== #predicate_method? with a bang method is expected not to be predicate method with a predicate method is expected to be predicate method with a regular method is expected not to be predicate method #arguments with multiple regular arguments is expected to eq 2 with no arguments is expected to be empty with a single regular argument is expected to eq 1 with a single rest argument is expected to eq 1 with multiple mixed arguments is expected to eq 2 with argument forwarding is expected to eq 1 #void_context? with a comparison method is expected not to be void context with a regular assignment method is expected to be void context with a bracket assignment method is expected to be void context with an initializer method is expected to be void context with a regular method is expected not to be void context #const_receiver? with a singleton method definition is expected to be const receiver with a class method definition is expected not to be const receiver with an instance method definition is expected not to be const receiver RuboCop::AST::Token #space_before returns nil when it is on the first line returns nil when there is not a space before token returns truthy MatchData when there is a space before token type predicates #left_array_bracket? returns true for left_array_bracket tokens returns false for non left_array_bracket tokens #rescue_modifier? returns true for rescue modifier tokens returns false for non rescue modifier tokens #equals_sign? returns true for equals sign tokens returns false for non equals sign tokens #end? returns true for end tokens returns false for non end tokens #left_bracket? returns true for all left_bracket tokens returns false for non left_bracket tokens #left_ref_bracket? returns true for left_ref_bracket tokens returns false for non left_ref_bracket tokens with braces & parens #left_parens? returns false for non left parens tokens returns true for left parens tokens #right_parens? returns true for right parens tokens returns false for non right parens tokens #right_curly_brace? returns false for non right brace tokens returns true for all right brace tokens #left_curly_brace? returns true for left block brace tokens returns false for non left block brace tokens #left_brace? returns false for non left hash brace tokens returns true for left hash brace tokens #new_line? returns false for non new line tokens returns true for new line tokens #left_brace? returns true for right_bracket tokens returns false for non right_bracket tokens #comment? returns true for comment tokens returns false for non comment tokens #regexp_dots? returns false for non comma tokens returns true for regexp tokens #dot? returns false for non dot tokens returns true for dot tokens #semicolon? returns false for non semicolon tokens returns true for semicolon tokens #comma? returns false for non comma tokens returns true for comma tokens #right_bracket? returns false for non right_bracket tokens returns true for all right_bracket tokens #begin_pos returns index of first char in token range of entire source #line returns line of token #space_after returns truthy MatchData when there is a space after token returns nil when there is not a space after token .from_parser_token sets parser token's type to rubocop token's type sets parser token's range to rubocop token's pos sets parser token's text to rubocop token's text returns a #to_s useful for debugging #column returns index of first char in token range on that line #end_pos returns index of last char in token range of entire source #to_s returns string of token data RuboCop::AST::SelfClassNode .new is expected to be a kind of RuboCop::AST::SelfClassNode #body with a multi-expression body is expected to be begin type with an empty body is expected to be nil with a single expression body is expected to be send type #identifier is expected to be self type RuboCop::AST::PairNode #value_delta when using hash rocket delimiters when receiver value is behind is expected to eq -2 when both pairs are on the same line is expected to eq 0 when receiver value is ahead is expected to eq 2 when values are aligned when both pairs are explicit pairs is expected to eq 0 when second pair is a keyword splat is expected to eq 0 when using colon delimiters when receiver value is behind is expected to eq -2 when values are aligned when both pairs are explicit pairs is expected to eq 0 when second pair is a keyword splat is expected to eq 0 when both pairs are on the same line is expected to eq 0 when receiver value is ahead is expected to eq 2 .new is expected to be a kind of RuboCop::AST::PairNode #delimiter when using a colon delimiter is expected to eq ":" is expected to eq ": " when using a hash rocket delimiter is expected to eq "=>" is expected to eq " => " #same_line? when pairs are on separate lines when last pair is a keyword splat is expected not to be same line s(:kwsplat, s(:send, nil, :foo)) when both pairs are explicit pairs is expected not to be same line s(:pair, s(:sym, :b), s(:int, 2)) when both pairs are on the same line when both pair is a keyword splat is expected to be same line s(:kwsplat, s(:send, nil, :foo)) when both pairs are explicit pairs is expected to be same line s(:pair, s(:sym, :b), s(:int, 2)) when a multiline pair shares the same line when last pair is a keyword splat is expected to be same line s(:kwsplat, s(:send, nil, :foo)) is expected to be same line s(:pair, s(:sym, :a), s(:begin)) when both pairs are explicit pairs is expected to be same line s(:pair, s(:sym, :b), s(:int, 2)) is expected to be same line s(:pair, s(:sym, :a), s(:begin)) #colon? when using a colon delimiter is expected to be colon when using a hash rocket delimiter is expected not to be colon #key when using a string key is expected to be str type when using a symbol key is expected to be sym type #value is expected to be int type #value_omission? when using hash value omission is expected to be value omission when not using hash value omission is expected not to be value omission #inverse_delimiter when using a hash rocket delimiter is expected to eq ": " is expected to eq ":" when using a colon delimiter is expected to eq "=>" is expected to eq " => " #hash_rocket? when using a hash rocket delimiter is expected to be hash rocket when using a colon delimiter is expected not to be hash rocket #key_delta with alignment set to :left when using colon delimiters when receiver key is ahead when second pair is a keyword splat is expected to eq 2 when both pairs are explicit pairs is expected to eq 2 when both keys are on the same line when both pairs are explicit pairs is expected to eq 0 when second pair is a keyword splat is expected to eq 0 when receiver key is behind when both pairs are reail pairs is expected to eq -2 when second pair is a keyword splat is expected to eq -2 when keys are aligned when both pairs are explicit pairs is expected to eq 0 when second pair is a keyword splat is expected to eq 0 when using hash rocket delimiters when keys are aligned when both keys are explicit keys is expected to eq 0 when second key is a keyword splat is expected to eq 0 when receiver key is ahead when second pair is a keyword splat is expected to eq 2 when both pairs are explicit pairs is expected to eq 2 when both keys are on the same line when second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq 0 when receiver key is behind when second pair is a keyword splat is expected to eq -2 when both pairs are explicit pairs is expected to eq -2 with alignment set to :right when using colon delimiters when receiver key is behind when both pairs are reail pairs is expected to eq -2 when second pair is a keyword splat is expected to eq 0 when both keys are on the same line when second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq 0 when keys are aligned when second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq 0 when receiver key is ahead when second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq 2 when using hash rocket delimiters when both keys are on the same line when both pairs are explicit pairs is expected to eq 0 when second pair is a keyword splat is expected to eq 0 when receiver key is ahead when both pairs are explicit pairs is expected to eq 2 when second pair is a keyword splat is expected to eq 0 when keys are aligned when both keys are explicit keys is expected to eq 0 when second key is a keyword splat is expected to eq 0 when receiver key is behind when second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq -2 #value_on_new_line? when value spans multiple lines is expected not to be value on new line when pair is on a single line is expected not to be value on new line when value starts on a new line is expected to be value on new line RuboCop::AST::RegexpNode #regopt with an empty regexp with option is expected to be regopt type is expected to eq [:i, :x] with an empty regexp is expected to be regopt type is expected to be empty with a multi-line regexp without option is expected to be regopt type is expected to be empty with a multi-line regexp with option is expected to be regopt type is expected to eq [:i, :m, :x] with a regexp with option is expected to eq [:i, :m, :x] is expected to be regopt type with a regexp without option is expected to be empty is expected to be regopt type #no_encoding? with other options is expected not to be no encoding with only n option is expected to be no encoding with no options is expected not to be no encoding with n and other options is expected to be no encoding #delimiter? with %r{-delimiters is expected to be delimiter "{" is expected not to be delimiter "%r" is expected to be delimiter "}" is expected not to be delimiter "%" is expected not to be delimiter "%r{" is expected not to be delimiter "/" is expected not to be delimiter "%r/" is expected not to be delimiter "r" with %r<-delimiters is expected not to be delimiter "%" is expected not to be delimiter "%r/" is expected not to be delimiter "}" is expected not to be delimiter "%r<" is expected not to be delimiter "{" is expected to be delimiter "<" is expected not to be delimiter "%r" is expected not to be delimiter "/" is expected not to be delimiter "r" is expected to be delimiter ">" is expected not to be delimiter "%r{" with multi-line %r{-delimiters is expected not to be delimiter "r" is expected not to be delimiter "%r" is expected not to be delimiter "%r{" is expected not to be delimiter "/" is expected not to be delimiter "%" is expected not to be delimiter "%r/" is expected to be delimiter "{" is expected to be delimiter "}" with /-delimiters is expected to be delimiter "/" is expected not to be delimiter "{" with %r/-delimiters is expected to be delimiter "/" is expected not to be delimiter "{" is expected not to be delimiter "}" is expected not to be delimiter "%" is expected not to be delimiter "%r" is expected not to be delimiter "r" is expected not to be delimiter "%r/" #fixed_encoding? with u and other options is expected to be fixed encoding with other options is expected not to be fixed encoding with only u option is expected to be fixed encoding with no options is expected not to be fixed encoding #multiline_mode? with no options is expected not to be multiline mode with only m option is expected to be multiline mode with other options is expected not to be multiline mode with m and other options is expected to be multiline mode #percent_r_literal? with %r{-delimiters is expected to be percent r literal with /-delimiters is expected not to be percent r literal with %r<-delimiters is expected to be percent r literal with multi-line %r{-delimiters is expected to be percent r literal with %r/-delimiters is expected to be percent r literal #extended? with only x option is expected to be extended with other options is expected not to be extended with no options is expected not to be extended with x and other options is expected to be extended .new is expected to be a kind of RuboCop::AST::RegexpNode #options with a regexp without option is expected to eq 0 with a regexp with single option is expected to eq 1 with an empty regexp is expected to eq 0 with a regexp with "o" option is expected to eq 0 with a regexp with multiple options is expected to eq 3 #single_interpolation? with other options is expected not to be single interpolation with no options is expected not to be single interpolation with o and other options is expected to be single interpolation with only o option is expected to be single interpolation #to_regexp with a regexp with an "n" option is expected to eq "/abc/n" with a regexp with option is expected to eq /.+/mix with a multi-line regexp with option is expected to eq / .+ /ix with an empty regexp is expected to eq // with a multi-line regexp without option is expected to eq / .+ / with a regexp without option is expected to eq /.+/ with a regexp with an "u" option is expected to eq "/abc/" with a regexp with an "o" option is expected to eq "/abc/i" with an empty regexp with option is expected to eq //ix #delimiters with %r<-delimiters is expected to eq ["<", ">"] with %r{-delimiters is expected to eq ["{", "}"] with multi-line %r{-delimiters is expected to eq ["{", "}"] with %r/-delimiters is expected to eq ["/", "/"] with /-delimiters is expected to eq ["/", "/"] #ignore_case? with other options is expected not to be ignore case with no options is expected not to be ignore case with i and other options is expected to be ignore case with only i option is expected to be ignore case #slash_literal? with %r{-delimiters is expected not to be slash literal with %r/-delimiters is expected not to be slash literal with /-delimiters is expected to be slash literal with %r<-delimiters is expected not to be slash literal with multi-line %r{-delimiters is expected not to be slash literal #interpolation? with no interpolation returns false is expected not to be interpolation with direct variable interpoation is expected to be interpolation with regexp quote is expected to be interpolation #content with a multi-line regexp with option is expected to eq "\n.+\n" with an empty regexp is expected to eq "" with an empty regexp with option is expected to eq "" with a multi-line regexp without option is expected to eq "\n.+\n" with a regexp without option is expected to eq ".+" with a regexp with option is expected to eq ".+" RuboCop::AST::ForwardArgsNode when using Ruby 2.7 or newer #to_a is expected to contain exactly (be forward arg type) RuboCop::AST::BlockNode #arguments with destructured arguments is expected to eq 2 with a single splat argument is expected to eq 1 with multiple mixed arguments is expected to eq 2 with a single literal argument is expected to eq 1 with no arguments is expected to be empty >= Ruby 2.7 using numbered parameters is expected to be empty #delimiters when enclosed in do-end keywords is expected to eq ["do", "end"] when enclosed in braces is expected to eq ["{", "}"] #single_line? when block is on a single line is expected to be single line when block is on several lines is expected not to be single line #braces? when enclosed in braces is expected to be braces when enclosed in do-end keywords is expected not to be braces #multiline? when block is on a single line is expected not to be multiline when block is on several lines is expected to be multiline .new is expected to be a kind of RuboCop::AST::BlockNode #receiver with dot operator call is expected to eq "foo" with safe navigation operator call is expected to eq "foo" #keywords? when enclosed in do-end keywords is expected to be keywords when enclosed in braces is expected not to be keywords #closing_delimiter when enclosed in do-end keywords is expected to eq "end" when enclosed in braces is expected to eq "}" #lambda? when block belongs to a method lambda is expected to be lambda when block belongs to a non-lambda method is expected not to be lambda when block belongs to a stabby lambda is expected to be lambda #void_context? when block method is each is expected to be void context when block method is not each is expected not to be void context when block method is tap is expected to be void context #opening_delimiter when enclosed in braces is expected to eq "{" when enclosed in do-end keywords is expected to eq "do" #argument_list >= Ruby 2.7 using numbered parameters with skipped params is expected to eq [:_1, :_2, :_3, :_4, :_5, :_6, :_7] with sequential params is expected to eq [:_1, :_2] all argument types is expected to eq [:a, :b, :c, :d, :e, :f, :g, :h, :i] with no arguments is expected to be empty #arguments? with no arguments is expected not to be arguments with a single argument is expected to be arguments with destructuring arguments is expected to be arguments >= Ruby 2.7 using numbered parameters is expected not to be arguments with a single splat argument is expected to be arguments with multiple mixed arguments is expected to be arguments RuboCop::AST::AndAsgnNode #operator is expected to eq :"&&" .new is expected to be a kind of RuboCop::AST::AndAsgnNode #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode #expression is expected to eq s(:send, nil, :value) #name is expected to eq :var RuboCop::AST::AsgnNode #expression with a `lvasgn` node is expected to eq s(:send, nil, :value) with a `cvasgn` node is expected to eq s(:send, nil, :value) with a `gvasgn` node is expected to eq s(:send, nil, :value) with a `ivasgn` node is expected to eq s(:send, nil, :value) .new with a `gvasgn` node is expected to be a kind of RuboCop::AST::AsgnNode with a `lvasgn` node is expected to be a kind of RuboCop::AST::AsgnNode with a `ivasgn` node is expected to be a kind of RuboCop::AST::AsgnNode with a `cvasgn` node is expected to be a kind of RuboCop::AST::AsgnNode #name with a `cvasgn` node is expected to eq :@@var with a `ivasgn` node is expected to eq :@var with a `lvasgn` node is expected to eq :var with a `gvasgn` node is expected to eq :$var RuboCop::AST::ModuleNode #identifier is expected to be const type #body with an empty body is expected to be nil with a single expression body is expected to be send type with a multi-expression body is expected to be begin type .new is expected to be a kind of RuboCop::AST::ModuleNode RuboCop::AST::IfNode #branches with an else statement is expected to all be literal is expected to eq 2 with an unless statement is expected to eq 1 is expected to all be literal with an elsif statement is expected to eq 3 is expected to all be literal with an if statement is expected to all be literal is expected to eq 1 with a ternary operator is expected to all be literal is expected to eq 2 #elsif? with an if statement comtaining an elsif is expected not to be elsif with an elsif statement is expected to be elsif without an elsif statement is expected not to be elsif #if_branch with an unless statement is expected to be sym type with a ternary operator is expected to be sym type with an if statement is expected to be sym type #elsif_conditional? with one elsif conditional is expected to be elsif conditional with nested conditionals in else clause is expected not to be elsif conditional with nested ternary operators when nested in the truthy branch is expected not to be elsif conditional when nested in the falsey branch is expected not to be elsif conditional with multiple elsif conditionals is expected to be elsif conditional with nested conditionals in if clause is expected not to be elsif conditional #else? without an else statement is expected not to be elsif with an elsif statement is expected to be else .new with a ternary operator is expected to be a kind of RuboCop::AST::IfNode with a modifier statement is expected to be a kind of RuboCop::AST::IfNode with a regular if statement is expected to be a kind of RuboCop::AST::IfNode #modifier_form? with a ternary operator is expected not to be modifier form with a non-modifier if statement is expected not to be modifier form with a modifier if statement is expected to be modifier form with a non-modifier unless statement is expected not to be modifier form with a modifier unless statement is expected to be modifier form #unless? with an if statement is expected not to be unless with an unless statement is expected to be unless with a ternary operator is expected not to be unless #keyword with a ternary operator is expected to eq "" with an unless statement is expected to eq "unless" with an if statement is expected to eq "if" #else_branch with a ternary operator is expected to be int type with an if statement is expected to be int type with an unless statement is expected to be int type #if? with an unless statement is expected not to be if with a ternary operator is expected not to be if with an if statement is expected to be if #each_branch when passed a block yields all the branches when not passed a block is expected to be a kind of Enumerator #ternary? with an unless statement is expected not to be ternary with an if statement is expected not to be ternary with a ternary operator is expected to be ternary #inverse_keyword? with an unless statement is expected to eq "if" with an if statement is expected to eq "unless" with a ternary operator is expected to eq "" #nested_conditional? with nested conditionals in if clause is expected to be nested conditional with nested ternary operators when nested in the truthy branch is expected to be nested conditional when nested in the falsey branch is expected to be nested conditional with no nested conditionals is expected not to be nested conditional with nested conditionals in elsif clause is expected to be nested conditional with nested conditionals in else clause is expected to be nested conditional RuboCop::AST::Ext::Range #line_span returns the range of lines a range occupies accepts an `exclude_end` keyword argument Finished in 2.01 seconds (files took 0.72217 seconds to load) 2392 examples, 0 failures Randomized with seed 55817 ┌──────────────────────────────────────────────────────────────────────────────┐ │ dh_ruby --install finished │ └──────────────────────────────────────────────────────────────────────────────┘ dh_installdocs -O--buildsystem=ruby dh_ruby_fixdocs -O--buildsystem=ruby debian/rules override_dh_installchangelogs make[1]: Entering directory '/build/reproducible-path/ruby-rubocop-ast-1.24.0' dh_installchangelogs CHANGELOG.md make[1]: Leaving directory '/build/reproducible-path/ruby-rubocop-ast-1.24.0' dh_installsystemduser -O--buildsystem=ruby dh_perl -O--buildsystem=ruby dh_link -O--buildsystem=ruby dh_strip_nondeterminism -O--buildsystem=ruby dh_compress -X.rb -O--buildsystem=ruby dh_fixperms -O--buildsystem=ruby dh_missing -O--buildsystem=ruby dh_ruby_fixdepends -O--buildsystem=ruby dh_installdeb -O--buildsystem=ruby dh_gencontrol -O--buildsystem=ruby dpkg-gencontrol: warning: Depends field of package ruby-rubocop-ast: substitution variable ${shlibs:Depends} used, but is not defined dpkg-gencontrol: warning: package ruby-rubocop-ast: substitution variable ${ruby:Versions} used, but is not defined dh_md5sums -O--buildsystem=ruby dh_builddeb -O--buildsystem=ruby dpkg-deb: building package 'ruby-rubocop-ast' in '../ruby-rubocop-ast_1.24.0-2+rebuild1766607576_all.deb'. dpkg-genbuildinfo --build=binary -O../ruby-rubocop-ast_1.24.0-2+rebuild1766607576_amd64.buildinfo dpkg-genchanges --build=binary -mAutomated rebuild -O../ruby-rubocop-ast_1.24.0-2+rebuild1766607576_amd64.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) -------------------------------------------------------------------------------- Build finished at 2025-12-24T20:20:17Z Finished -------- I: Built successfully +------------------------------------------------------------------------------+ | Changes Wed, 24 Dec 2025 20:20:17 +0000 | +------------------------------------------------------------------------------+ ruby-rubocop-ast_1.24.0-2+rebuild1766607576_amd64.changes: ---------------------------------------------------------- Format: 1.8 Date: Wed, 24 Dec 2025 20:19:36 +0000 Source: ruby-rubocop-ast Binary: ruby-rubocop-ast Architecture: all Version: 1.24.0-2+rebuild1766607576 Distribution: unstable Urgency: medium Maintainer: Automated rebuild Changed-By: mass-rebuild Description: ruby-rubocop-ast - RuboCop tools to deal with Ruby code AST Changes: ruby-rubocop-ast (1.24.0-2+rebuild1766607576) UNRELEASED; urgency=medium . * Rebuild with mass-rebuild Checksums-Sha1: 1f4b4388d8319196c5144de2f2ef3631254bcfba 53596 ruby-rubocop-ast_1.24.0-2+rebuild1766607576_all.deb 179fdaf80862b0288940f5b8a61707d260fd7cb8 5817 ruby-rubocop-ast_1.24.0-2+rebuild1766607576_amd64.buildinfo Checksums-Sha256: 6095f36ff1865bb3438c598381a96a483bf878153d6ec4625abbcd4f666dc565 53596 ruby-rubocop-ast_1.24.0-2+rebuild1766607576_all.deb 461c4780e760b155ba0ffb2147ad252594cea82b4d60e0521c8c482ec8a4f6c3 5817 ruby-rubocop-ast_1.24.0-2+rebuild1766607576_amd64.buildinfo Files: 79488a1de20db066d0f5c3a75d6669db 53596 ruby optional ruby-rubocop-ast_1.24.0-2+rebuild1766607576_all.deb 1cace1a89dd6e4e06f0cd891353ae261 5817 ruby optional ruby-rubocop-ast_1.24.0-2+rebuild1766607576_amd64.buildinfo +------------------------------------------------------------------------------+ | Buildinfo Wed, 24 Dec 2025 20:20:18 +0000 | +------------------------------------------------------------------------------+ Format: 1.0 Source: ruby-rubocop-ast Binary: ruby-rubocop-ast Architecture: all Version: 1.24.0-2+rebuild1766607576 Checksums-Md5: 79488a1de20db066d0f5c3a75d6669db 53596 ruby-rubocop-ast_1.24.0-2+rebuild1766607576_all.deb Checksums-Sha1: 1f4b4388d8319196c5144de2f2ef3631254bcfba 53596 ruby-rubocop-ast_1.24.0-2+rebuild1766607576_all.deb Checksums-Sha256: 6095f36ff1865bb3438c598381a96a483bf878153d6ec4625abbcd4f666dc565 53596 ruby-rubocop-ast_1.24.0-2+rebuild1766607576_all.deb Build-Origin: Debian Build-Architecture: amd64 Build-Date: Wed, 24 Dec 2025 20:20:17 +0000 Build-Path: /build/reproducible-path/ruby-rubocop-ast-1.24.0 Installed-Build-Depends: autoconf (= 2.72-3.1), automake (= 1:1.18.1-3), autopoint (= 0.23.2-1), autotools-dev (= 20240727.1), base-files (= 14), base-passwd (= 3.6.8), bash (= 5.3-1), binutils (= 2.45.50.20251209-1), binutils-common (= 2.45.50.20251209-1), binutils-x86-64-linux-gnu (= 2.45.50.20251209-1), bsdextrautils (= 2.41.3-2), build-essential (= 12.12), bzip2 (= 1.0.8-6), ca-certificates (= 20250419), coreutils (= 9.7-3), cpp (= 4:15.2.0-4), cpp-15 (= 15.2.0-12), cpp-15-x86-64-linux-gnu (= 15.2.0-12), cpp-x86-64-linux-gnu (= 4:15.2.0-4), dash (= 0.5.12-12), debconf (= 1.5.91), debhelper (= 13.29), debianutils (= 5.23.2), dh-autoreconf (= 21), dh-strip-nondeterminism (= 1.15.0-1), diffutils (= 1:3.12-1), dpkg (= 1.23.3), dpkg-dev (= 1.23.3), dwz (= 0.16-2), file (= 1:5.46-5), findutils (= 4.10.0-3), g++ (= 4:15.2.0-4), g++-15 (= 15.2.0-12), g++-15-x86-64-linux-gnu (= 15.2.0-12), g++-x86-64-linux-gnu (= 4:15.2.0-4), gcc (= 4:15.2.0-4), gcc-15 (= 15.2.0-12), gcc-15-base (= 15.2.0-12), gcc-15-x86-64-linux-gnu (= 15.2.0-12), gcc-x86-64-linux-gnu (= 4:15.2.0-4), gem2deb (= 2.2.6), gem2deb-test-runner (= 2.2.6), gettext (= 0.23.2-1), gettext-base (= 0.23.2-1), grep (= 3.12-1), groff-base (= 1.23.0-10), gzip (= 1.13-1), hostname (= 3.25), init-system-helpers (= 1.69), intltool-debian (= 0.35.0+20060710.6), libacl1 (= 2.3.2-2+b1), libarchive-zip-perl (= 1.68-1), libasan8 (= 15.2.0-12), libatomic1 (= 15.2.0-12), libattr1 (= 1:2.5.2-3), libaudit-common (= 1:4.1.2-1), libaudit1 (= 1:4.1.2-1+b1), libbinutils (= 2.45.50.20251209-1), libblkid1 (= 2.41.3-2), libbz2-1.0 (= 1.0.8-6), libc-bin (= 2.42-6), libc-dev-bin (= 2.42-6), libc-gconv-modules-extra (= 2.42-6), libc6 (= 2.42-6), libc6-dev (= 2.42-6), libcap-ng0 (= 0.8.5-4+b2), libcap2 (= 1:2.75-10+b5), libcc1-0 (= 15.2.0-12), libcrypt-dev (= 1:4.5.1-1), libcrypt1 (= 1:4.5.1-1), libctf-nobfd0 (= 2.45.50.20251209-1), libctf0 (= 2.45.50.20251209-1), libdb5.3t64 (= 5.3.28+dfsg2-11), libdebconfclient0 (= 0.282+b2), libdebhelper-perl (= 13.29), libdpkg-perl (= 1.23.3), libelf1t64 (= 0.194-1), libffi8 (= 3.5.2-3), libfile-stripnondeterminism-perl (= 1.15.0-1), libgcc-15-dev (= 15.2.0-12), libgcc-s1 (= 15.2.0-12), libgdbm-compat4t64 (= 1.26-1), libgdbm6t64 (= 1.26-1), libgmp-dev (= 2:6.3.0+dfsg-5), libgmp10 (= 2:6.3.0+dfsg-5), libgmpxx4ldbl (= 2:6.3.0+dfsg-5), libgomp1 (= 15.2.0-12), libgprofng0 (= 2.45.50.20251209-1), libhwasan0 (= 15.2.0-12), libisl23 (= 0.27-1), libitm1 (= 15.2.0-12), libjansson4 (= 2.14-2+b4), liblsan0 (= 15.2.0-12), liblzma5 (= 5.8.1-2), libmagic-mgc (= 1:5.46-5), libmagic1t64 (= 1:5.46-5), libmd0 (= 1.1.0-2+b1), libmount1 (= 2.41.3-2), libmpc3 (= 1.3.1-2), libmpfr6 (= 4.2.2-2), libpam-modules (= 1.7.0-5), libpam-modules-bin (= 1.7.0-5), libpam-runtime (= 1.7.0-5), libpam0g (= 1.7.0-5), libpcre2-8-0 (= 10.46-1), libperl5.40 (= 5.40.1-7), libpipeline1 (= 1.5.8-2), libquadmath0 (= 15.2.0-12), libruby (= 1:3.3+b1), libruby3.3 (= 3.3.8-2), libruby3.4 (= 3.4.5-1~exp1), libseccomp2 (= 2.6.0-2+b1), libselinux1 (= 3.9-4+rebuild1766544377), libsframe2 (= 2.45.50.20251209-1), libsmartcols1 (= 2.41.3-2), libssl3t64 (= 3.5.4-1), libstdc++-15-dev (= 15.2.0-12), libstdc++6 (= 15.2.0-12), libsystemd0 (= 259-1), libtinfo6 (= 6.5+20251123-1), libtool (= 2.5.4-9), libtsan2 (= 15.2.0-12), libubsan1 (= 15.2.0-12), libuchardet0 (= 0.0.8-2), libudev1 (= 259-1), libunistring5 (= 1.3-2), libuuid1 (= 2.41.3-2), libxml2-16 (= 2.15.1+dfsg-2+b1), libyaml-0-2 (= 0.2.5-2+b1), libzstd1 (= 1.5.7+dfsg-2), linux-libc-dev (= 6.17.13-1), m4 (= 1.4.20-2), make (= 4.4.1-3), man-db (= 2.13.1-1), mawk (= 1.3.4.20250131-2), ncurses-base (= 6.5+20251123-1), ncurses-bin (= 6.5+20251123-1), openssl (= 3.5.4-1), openssl-provider-legacy (= 3.5.4-1), patch (= 2.8-2), perl (= 5.40.1-7), perl-base (= 5.40.1-7), perl-modules-5.40 (= 5.40.1-7), po-debconf (= 1.0.22), racc (= 1.8.1-2), rake (= 13.2.1-1), rpcsvc-proto (= 1.4.3-1), ruby (= 1:3.3+b1), ruby-all-dev (= 1:3.3+support3.4~0), ruby-ast (= 2.4.3-1), ruby-csv (= 3.3.4-1), ruby-did-you-mean (= 1.6.3-2), ruby-diff-lcs (= 1.6.2-1), ruby-minitest (= 5.26.1-1), ruby-net-telnet (= 0.2.0-1), ruby-oedipus-lex (= 2.6.2-1), ruby-power-assert (= 2.0.5-1), ruby-rspec (= 3.13.0c0e0m0s1-2), ruby-rspec-core (= 3.13.0c0e0m0s1-2), ruby-rspec-expectations (= 3.13.0c0e0m0s1-2), ruby-rspec-mocks (= 3.13.0c0e0m0s1-2), ruby-rspec-support (= 3.13.0c0e0m0s1-2), ruby-ruby2-keywords (= 0.0.5-1), ruby-rubygems (= 3.6.7-2), ruby-test-unit (= 3.6.2-1), ruby-webrick (= 1.9.1-1), ruby-whitequark-parser (= 3.3.4.2-2), ruby-xmlrpc (= 0.3.3-2), ruby3.3 (= 3.3.8-2), ruby3.3-dev (= 3.3.8-2), ruby3.4 (= 3.4.5-1~exp1), ruby3.4-dev (= 3.4.5-1~exp1), rubygems-integration (= 1.19), sed (= 4.9-2), sensible-utils (= 0.0.26), sysvinit-utils (= 3.15-6), tar (= 1.35+dfsg-3.1), util-linux (= 2.41.3-2), xz-utils (= 5.8.1-2), zlib1g (= 1:1.3.dfsg+really1.3.1-1+b2) Environment: DEB_BUILD_OPTIONS="parallel=8" LANG="C.UTF-8" LC_COLLATE="C.UTF-8" LC_CTYPE="C.UTF-8" SOURCE_DATE_EPOCH="1766607576" +------------------------------------------------------------------------------+ | Package contents Wed, 24 Dec 2025 20:20:18 +0000 | +------------------------------------------------------------------------------+ ruby-rubocop-ast_1.24.0-2+rebuild1766607576_all.deb --------------------------------------------------- new Debian package, version 2.0. size 53596 bytes: control archive=3296 bytes. 544 bytes, 13 lines control 12492 bytes, 97 lines md5sums Package: ruby-rubocop-ast Version: 1.24.0-2+rebuild1766607576 Architecture: all Maintainer: Debian Ruby Team Installed-Size: 291 Depends: ruby-whitequark-parser (>= 3.1.1.0) Section: ruby Priority: optional Homepage: https://github.com/rubocop/rubocop-ast Description: RuboCop tools to deal with Ruby code AST This package provides the RuboCop::AST::Node and RuboCop::AST::NodePattern classes to deal with the Ruby AST. It was extracted from RuboCop and can be used independently of it. drwxr-xr-x root/root 0 2025-12-24 20:19 ./ drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/ drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/ drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/doc/ drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/doc/ruby-rubocop-ast/ -rw-r--r-- root/root 2241 2022-11-30 18:44 ./usr/share/doc/ruby-rubocop-ast/README.md -rw-r--r-- root/root 875 2025-12-24 20:19 ./usr/share/doc/ruby-rubocop-ast/changelog.Debian.gz -rw-r--r-- root/root 4283 2022-11-30 18:44 ./usr/share/doc/ruby-rubocop-ast/changelog.gz -rw-r--r-- root/root 1604 2022-12-07 15:22 ./usr/share/doc/ruby-rubocop-ast/copyright drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/rubygems-integration/ drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/rubygems-integration/all/ drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/ drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/ drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/ -rw-r--r-- root/root 62 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop-ast.rb drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ -rw-r--r-- root/root 3925 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast.rb drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/ -rw-r--r-- root/root 3548 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/builder.rb drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/ext/ -rw-r--r-- root/root 784 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/ext/range.rb -rw-r--r-- root/root 389 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/ext/range_min_max.rb -rw-r--r-- root/root 20727 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node.rb drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/ -rw-r--r-- root/root 659 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/alias_node.rb -rw-r--r-- root/root 477 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/and_asgn_node.rb -rw-r--r-- root/root 922 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/and_node.rb -rw-r--r-- root/root 971 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/arg_node.rb -rw-r--r-- root/root 1137 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/args_node.rb -rw-r--r-- root/root 1932 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/array_node.rb -rw-r--r-- root/root 693 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/asgn_node.rb -rw-r--r-- root/root 4405 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/block_node.rb -rw-r--r-- root/root 354 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/break_node.rb -rw-r--r-- root/root 2027 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/case_match_node.rb -rw-r--r-- root/root 1733 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/case_node.rb -rw-r--r-- root/root 862 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/casgn_node.rb -rw-r--r-- root/root 777 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/class_node.rb -rw-r--r-- root/root 1637 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/const_node.rb -rw-r--r-- root/root 2095 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/def_node.rb -rw-r--r-- root/root 469 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/defined_node.rb -rw-r--r-- root/root 447 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/dstr_node.rb -rw-r--r-- root/root 465 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/ensure_node.rb -rw-r--r-- root/root 361 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/float_node.rb -rw-r--r-- root/root 1413 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/for_node.rb -rw-r--r-- root/root 949 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/forward_args_node.rb -rw-r--r-- root/root 3633 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/hash_node.rb -rw-r--r-- root/root 5301 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/if_node.rb -rw-r--r-- root/root 1025 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/in_pattern_node.rb -rw-r--r-- root/root 1120 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/index_node.rb -rw-r--r-- root/root 1185 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/indexasgn_node.rb -rw-r--r-- root/root 355 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/int_node.rb -rw-r--r-- root/root 1231 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/keyword_splat_node.rb -rw-r--r-- root/root 1370 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/lambda_node.rb drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/ -rw-r--r-- root/root 348 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/basic_literal_node.rb -rw-r--r-- root/root 1217 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/binary_operator_node.rb -rw-r--r-- root/root 376 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/collection_node.rb -rw-r--r-- root/root 1447 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/conditional_node.rb -rw-r--r-- root/root 3682 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/descendence.rb -rw-r--r-- root/root 3688 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/hash_element_node.rb -rw-r--r-- root/root 9385 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/method_dispatch_node.rb -rw-r--r-- root/root 8384 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/method_identifier_predicates.rb -rw-r--r-- root/root 430 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/modifier_node.rb -rw-r--r-- root/root 471 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/numeric_node.rb -rw-r--r-- root/root 3720 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/parameterized_node.rb -rw-r--r-- root/root 1020 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/mixin/predicate_operator_node.rb -rw-r--r-- root/root 614 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/module_node.rb -rw-r--r-- root/root 351 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/next_node.rb -rw-r--r-- root/root 946 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/op_asgn_node.rb -rw-r--r-- root/root 476 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/or_asgn_node.rb -rw-r--r-- root/root 910 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/or_node.rb -rw-r--r-- root/root 2365 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/pair_node.rb -rw-r--r-- root/root 467 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/procarg0_node.rb -rw-r--r-- root/root 427 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/range_node.rb -rw-r--r-- root/root 2652 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/regexp_node.rb -rw-r--r-- root/root 1290 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/resbody_node.rb -rw-r--r-- root/root 1598 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/rescue_node.rb -rw-r--r-- root/root 357 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/return_node.rb -rw-r--r-- root/root 632 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/self_class_node.rb -rw-r--r-- root/root 723 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/send_node.rb -rw-r--r-- root/root 534 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/str_node.rb -rw-r--r-- root/root 689 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/super_node.rb -rw-r--r-- root/root 333 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/symbol_node.rb -rw-r--r-- root/root 992 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/until_node.rb -rw-r--r-- root/root 1258 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/when_node.rb -rw-r--r-- root/root 992 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/while_node.rb -rw-r--r-- root/root 660 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node/yield_node.rb -rw-r--r-- root/root 4018 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern.rb drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/ -rw-r--r-- root/root 1992 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/builder.rb -rw-r--r-- root/root 1056 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/comment.rb -rw-r--r-- root/root 2941 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler.rb drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler/ -rw-r--r-- root/root 1501 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb -rw-r--r-- root/root 2557 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler/binding.rb -rw-r--r-- root/root 5021 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler/debug.rb -rw-r--r-- root/root 4256 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb -rw-r--r-- root/root 15716 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb -rw-r--r-- root/root 1266 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/compiler/subcompiler.rb -rw-r--r-- root/root 1570 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/lexer.rb -rw-r--r-- root/root 4963 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/lexer.rex.rb -rw-r--r-- root/root 4339 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/method_definer.rb -rw-r--r-- root/root 6499 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/node.rb -rw-r--r-- root/root 13034 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/parser.racc.rb -rw-r--r-- root/root 1907 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/parser.rb -rw-r--r-- root/root 929 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/sets.rb -rw-r--r-- root/root 3896 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/node_pattern/with_meta.rb -rw-r--r-- root/root 9006 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/processed_source.rb -rw-r--r-- root/root 918 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/rubocop_compatibility.rb -rw-r--r-- root/root 389 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/sexp.rb -rw-r--r-- root/root 2269 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/token.rb -rw-r--r-- root/root 6750 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/traversal.rb -rw-r--r-- root/root 120 2025-12-24 20:19 ./usr/share/rubygems-integration/all/gems/rubocop-ast-1.24.0/lib/rubocop/ast/version.rb drwxr-xr-x root/root 0 2025-12-24 20:19 ./usr/share/rubygems-integration/all/specifications/ -rw-r--r-- root/root 1450 2025-12-24 20:19 ./usr/share/rubygems-integration/all/specifications/rubocop-ast-1.24.0.gemspec +------------------------------------------------------------------------------+ | Post Build Wed, 24 Dec 2025 20:20:18 +0000 | +------------------------------------------------------------------------------+ +------------------------------------------------------------------------------+ | Cleanup Wed, 24 Dec 2025 20:20:18 +0000 | +------------------------------------------------------------------------------+ Purging /build/reproducible-path Not cleaning session: cloned chroot in use +------------------------------------------------------------------------------+ | Summary Wed, 24 Dec 2025 20:20:19 +0000 | +------------------------------------------------------------------------------+ Build Architecture: amd64 Build Type: binary Build-Space: 2084 Build-Time: 11 Distribution: unstable Host Architecture: amd64 Install-Time: 8 Job: /home/admin/mass-rebuild/builds/3/ruby-rubocop-ast/ruby-rubocop-ast_1.24.0-2+rebuild1766607576.dsc Machine Architecture: amd64 Package: ruby-rubocop-ast Package-Time: 40 Source-Version: 1.24.0-2+rebuild1766607576 Space: 2084 Status: successful Version: 1.24.0-2+rebuild1766607576 -------------------------------------------------------------------------------- Finished at 2025-12-24T20:20:17Z Build needed 00:00:40, 2084k disk space