Running as unit: rb-build-amd64_27-66427.service ==================================================================================== Thu Aug 7 15:17:37 UTC 2025 - running /srv/jenkins/bin/reproducible_build.sh (for job reproducible_builder_amd64_27) on jenkins, called using "ionos11-amd64 ionos15-amd64" as arguments. Thu Aug 7 15:17:37 UTC 2025 - actually running "reproducible_build.sh" (md5sum 44ec6a3142940d5e9a7ab76543d96029) as "/tmp/jenkins-script-mt2Er3bB" $ git clone https://salsa.debian.org/qa/jenkins.debian.net.git ; more CONTRIBUTING Thu Aug 7 15:17:37 UTC 2025 - checking /var/lib/jenkins/offline_nodes if ionos11-amd64.debian.net is marked as down. Thu Aug 7 15:17:37 UTC 2025 - checking via ssh if ionos11-amd64.debian.net is up. removed '/tmp/read-only-fs-test-Hj5tBv' Thu Aug 7 15:17:38 UTC 2025 - checking /var/lib/jenkins/offline_nodes if ionos15-amd64.debian.net is marked as down. Thu Aug 7 15:17:38 UTC 2025 - checking via ssh if ionos15-amd64.debian.net is up. removed '/tmp/read-only-fs-test-It52C6' ok, let's check if ruby-rubocop-ast is building anywhere yet… ok, ruby-rubocop-ast is not building anywhere… UPDATE 1 ============================================================================= Initialising reproducibly build of ruby-rubocop-ast in trixie on amd64 on jenkins now. 1st build will be done on ionos11-amd64.debian.net. 2nd build will be done on ionos15-amd64.debian.net. ============================================================================= Thu Aug 7 15:17:53 UTC 2025 I: starting to build ruby-rubocop-ast/trixie/amd64 on jenkins on '2025-08-07 15:17' Thu Aug 7 15:17:53 UTC 2025 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/amd64_27/66427/console.log 1754579873 amd64 trixie ruby-rubocop-ast Thu Aug 7 15:17:53 UTC 2025 I: Downloading source for trixie/ruby-rubocop-ast=1.24.0-2 --2025-08-07 15:17:53-- http://deb.debian.org/debian/pool/main/r/ruby-rubocop-ast/ruby-rubocop-ast_1.24.0-2.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2224 (2.2K) [text/prs.lines.tag] Saving to: ‘ruby-rubocop-ast_1.24.0-2.dsc’ 0K .. 100% 261M=0s 2025-08-07 15:17:53 (261 MB/s) - ‘ruby-rubocop-ast_1.24.0-2.dsc’ saved [2224/2224] --2025-08-07 15:17:53-- http://deb.debian.org/debian/pool/main/r/ruby-rubocop-ast/ruby-rubocop-ast_1.24.0-2.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2224 (2.2K) [text/prs.lines.tag] Saving to: ‘ruby-rubocop-ast_1.24.0-2.dsc’ 0K .. 100% 261M=0s 2025-08-07 15:17:53 (261 MB/s) - ‘ruby-rubocop-ast_1.24.0-2.dsc’ saved [2224/2224] Thu Aug 7 15:17:53 UTC 2025 I: ruby-rubocop-ast_1.24.0-2.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 3.0 (quilt) Source: ruby-rubocop-ast Binary: ruby-rubocop-ast Architecture: all Version: 1.24.0-2 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 ffd1f916c0f809ec22963214f1c6abc0349f22e0 3600 ruby-rubocop-ast_1.24.0-2.debian.tar.xz Checksums-Sha256: feadaaa1a1f0675e43c64a06a356645521e3c5da944b69f1303a89d70f0fd97d 128125 ruby-rubocop-ast_1.24.0.orig.tar.gz a85b55e430471f84a068b47c0525832aac154acc1db1f44cbe1ddb0e6fb29d9b 3600 ruby-rubocop-ast_1.24.0-2.debian.tar.xz Files: c1f6cccee88a2266c9d5404090c89202 128125 ruby-rubocop-ast_1.24.0.orig.tar.gz d63c8361ea267937c42c55efcc053137 3600 ruby-rubocop-ast_1.24.0-2.debian.tar.xz Ruby-Versions: all -----BEGIN PGP SIGNATURE----- iQJJBAEBCAAzFiEEjtbD+LrJ23/BMKhw+COicpiDyXwFAmOjexMVHGthbmFzaGly b0BkZWJpYW4ub3JnAAoJEPgjonKYg8l8CiMP/AhmZG+blRRHfv68AamTdQimuVkD jEMX0NdvINCvYMooF9BgymR/uycU2JMEuxZ1NlKTh2w1RqD3s3NCdQT3oiLKXZd0 uN7nrXmNM9ibuTj8LHD3cqoCiYHE8pRNnzIOdPaN6XE6bX9J7dgcg7vArVSar+Ja Ecft444GxjsU1aMAsqeuDLK5WqOX0+0+1nQb54b6itO/D+9IwUb845j9E/uhA/Jd ityydpeRvppGmKSbl6kvtvZX2KPMdNf6rCk11ILXxZRG5ZiY0SJ1OAg8qMxB9sS2 /CQgcjNUGWAKO8pbnD+/ou0TOjYqg8zR+xplEN3cRB7S0RCJA6nxxZ8wlBPERJH7 ilUDjRtHHdlPcwDstK4hRWu3TNvcri2keBiZW5yS1g8H0UTg/Y6iTHuaOnuMGleC /DJHABVgmVYHaWbEI0fRf1Dh8TbDMIIVnJaC61bJwfLMJ/2PvvmAXKI21Ub0trE8 qBvQuc0LOoW09XjTOFd5J5tEnDjgBB8g0HIoEf9/N7Bm7drK4IkAT3xU+BR34YVO zIGwRTbtHcQLrF2vR2WsTWEmWEMJAQrAdnOXd1DLc5NIjKMkwNmUuq10yFOPgpuJ opxjcVTWkmE1whhQRPz30iIVQx+RMl9VJuVmYJYh11Bxl0UQ3Rb2eCMOiF3TBc+e k9mYHxAYmZZSJAor =Tao1 -----END PGP SIGNATURE----- Thu Aug 7 15:17:53 UTC 2025 I: Checking whether the package is not for us Thu Aug 7 15:17:53 UTC 2025 I: Starting 1st build on remote node ionos11-amd64.debian.net. Thu Aug 7 15:17:53 UTC 2025 I: Preparing to do remote build '1' on ionos11-amd64.debian.net. Thu Aug 7 15:17:53 UTC 2025 - checking /var/lib/jenkins/offline_nodes if ionos11-amd64.debian.net is marked as down. Thu Aug 7 15:17:53 UTC 2025 - checking via ssh if ionos11-amd64.debian.net is up. removed '/tmp/read-only-fs-test-u8Qil4' ==================================================================================== Thu Aug 7 15:17:54 UTC 2025 - running /srv/jenkins/bin/reproducible_build.sh (for job /srv/jenkins/bin/reproducible_build.sh) on ionos11-amd64, called using "1 ruby-rubocop-ast trixie /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh 1.24.0-2" as arguments. Thu Aug 7 15:17:54 UTC 2025 - actually running "reproducible_build.sh" (md5sum 44ec6a3142940d5e9a7ab76543d96029) as "/tmp/jenkins-script-a0Bx5Q2w" $ git clone https://salsa.debian.org/qa/jenkins.debian.net.git ; more CONTRIBUTING Thu Aug 7 15:17:54 UTC 2025 I: Downloading source for trixie/ruby-rubocop-ast=1.24.0-2 Reading package lists... NOTICE: 'ruby-rubocop-ast' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/ruby-team/ruby-rubocop-ast.git Please use: git clone https://salsa.debian.org/ruby-team/ruby-rubocop-ast.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 134 kB of source archives. Get:1 http://deb.debian.org/debian trixie/main ruby-rubocop-ast 1.24.0-2 (dsc) [2224 B] Get:2 http://deb.debian.org/debian trixie/main ruby-rubocop-ast 1.24.0-2 (tar) [128 kB] Get:3 http://deb.debian.org/debian trixie/main ruby-rubocop-ast 1.24.0-2 (diff) [3600 B] Fetched 134 kB in 0s (4511 kB/s) Download complete and in download only mode Reading package lists... NOTICE: 'ruby-rubocop-ast' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/ruby-team/ruby-rubocop-ast.git Please use: git clone https://salsa.debian.org/ruby-team/ruby-rubocop-ast.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 134 kB of source archives. Get:1 http://deb.debian.org/debian trixie/main ruby-rubocop-ast 1.24.0-2 (dsc) [2224 B] Get:2 http://deb.debian.org/debian trixie/main ruby-rubocop-ast 1.24.0-2 (tar) [128 kB] Get:3 http://deb.debian.org/debian trixie/main ruby-rubocop-ast 1.24.0-2 (diff) [3600 B] Fetched 134 kB in 0s (4511 kB/s) Download complete and in download only mode ============================================================================= Building ruby-rubocop-ast in trixie on amd64 on ionos11-amd64 now. Date: Thu Aug 7 15:17:54 UTC 2025 Date UTC: Thu Aug 7 15:17:54 UTC 2025 ============================================================================= W: /root/.pbuilderrc does not exist I: Logging to b1/build.log I: pbuilder: network access will be disabled during build I: Current time: Thu Aug 7 03:17:54 -12 2025 I: pbuilder-time-stamp: 1754579874 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [ruby-rubocop-ast_1.24.0-2.dsc] I: copying [./ruby-rubocop-ast_1.24.0.orig.tar.gz] I: copying [./ruby-rubocop-ast_1.24.0-2.debian.tar.xz] I: Extracting source dpkg-source: warning: cannot verify inline signature for ./ruby-rubocop-ast_1.24.0-2.dsc: no acceptable signature found dpkg-source: info: extracting ruby-rubocop-ast in 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.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 I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/1783005/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='amd64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=40 ' DISTRIBUTION='trixie' HOME='/root' HOST_ARCH='amd64' IFS=' ' INVOCATION_ID='4af5ed578a3e46609ae57700827bbabd' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='1783005' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/pbuilderrc_OZO1 --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b1 --logfile b1/build.log ruby-rubocop-ast_1.24.0-2.dsc' SUDO_GID='111' SUDO_UID='106' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://46.16.76.132:3128' I: uname -a Linux ionos11-amd64 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 May 12 19:25 /bin -> usr/bin I: user script /srv/workspace/pbuilder/1783005/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: amd64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), gem2deb (>= 1), racc, rake, ruby-oedipus-lex, ruby-rspec, ruby-whitequark-parser (>= 3.1.1.0) dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19851 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on gem2deb (>= 1); however: Package gem2deb is not installed. pbuilder-satisfydepends-dummy depends on racc; however: Package racc is not installed. pbuilder-satisfydepends-dummy depends on rake; however: Package rake is not installed. pbuilder-satisfydepends-dummy depends on ruby-oedipus-lex; however: Package ruby-oedipus-lex is not installed. pbuilder-satisfydepends-dummy depends on ruby-rspec; however: Package ruby-rspec is not installed. pbuilder-satisfydepends-dummy depends on ruby-whitequark-parser (>= 3.1.1.0); however: Package ruby-whitequark-parser is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} ca-certificates{a} debhelper{a} devscripts{a} dh-autoreconf{a} dh-strip-nondeterminism{a} dwz{a} file{a} gem2deb{a} gem2deb-test-runner{a} gettext{a} gettext-base{a} gpg{a} gpg-agent{a} gpgconf{a} gpgv{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libassuan9{a} libb-hooks-op-check-perl{a} libclass-method-modifiers-perl{a} libclass-xsaccessor-perl{a} libclone-perl{a} libdebhelper-perl{a} libdevel-callchecker-perl{a} libdynaloader-functions-perl{a} libelf1t64{a} libencode-locale-perl{a} libexpat1{a} libffi8{a} libfile-dirlist-perl{a} libfile-homedir-perl{a} libfile-listing-perl{a} libfile-stripnondeterminism-perl{a} libfile-touch-perl{a} libfile-which-perl{a} libgcrypt20{a} libgmp-dev{a} libgmpxx4ldbl{a} libgpg-error0{a} libhtml-parser-perl{a} libhtml-tagset-perl{a} libhtml-tree-perl{a} libhttp-cookies-perl{a} libhttp-date-perl{a} libhttp-message-perl{a} libhttp-negotiate-perl{a} libimport-into-perl{a} libio-html-perl{a} libio-socket-ssl-perl{a} libksba8{a} liblwp-mediatypes-perl{a} liblwp-protocol-https-perl{a} libmagic-mgc{a} libmagic1t64{a} libmodule-runtime-perl{a} libmoo-perl{a} libnet-http-perl{a} libnet-ssleay-perl{a} libnpth0t64{a} libparams-classify-perl{a} libpipeline1{a} libpython3-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} librole-tiny-perl{a} libruby{a} libruby3.3{a} libsub-quote-perl{a} libtimedate-perl{a} libtool{a} libtry-tiny-perl{a} libuchardet0{a} libunistring5{a} liburi-perl{a} libwww-perl{a} libwww-robotrules-perl{a} libxml2{a} libyaml-0-2{a} m4{a} man-db{a} media-types{a} netbase{a} openssl{a} patchutils{a} perl-openssl-defaults{a} pinentry-curses{a} po-debconf{a} python3{a} python3-minimal{a} python3.13{a} python3.13-minimal{a} racc{a} rake{a} readline-common{a} ruby{a} ruby-all-dev{a} ruby-ast{a} ruby-csv{a} ruby-did-you-mean{a} ruby-diff-lcs{a} ruby-minitest{a} ruby-net-telnet{a} ruby-oedipus-lex{a} ruby-power-assert{a} ruby-rspec{a} ruby-rspec-core{a} ruby-rspec-expectations{a} ruby-rspec-mocks{a} ruby-rspec-support{a} ruby-ruby2-keywords{a} ruby-rubygems{a} ruby-test-unit{a} ruby-webrick{a} ruby-whitequark-parser{a} ruby-xmlrpc{a} ruby3.3{a} ruby3.3-dev{a} rubygems-integration{a} sensible-utils{a} sopv-gpgv{a} tzdata{a} wdiff{a} The following packages are RECOMMENDED but will NOT be installed: apt-file curl dctrl-tools debian-keyring debian-tag2upload-keyring dput dput-ng dupload equivs fonts-lato gnupg libarchive-cpio-perl libdata-dump-perl libdistro-info-perl libgit-wrapper-perl libgitlab-api-v4-perl libgpg-error-l10n libhtml-form-perl libhtml-format-perl libhttp-daemon-perl libio-compress-brotli-perl libjs-jquery libjson-perl liblist-compare-perl libltdl-dev libmail-sendmail-perl libmailtools-perl libnamespace-clean-perl libsoap-lite-perl libstring-shellquote-perl libxstring-perl licensecheck lintian lynx lzip pristine-tar python3-apt python3-argcomplete python3-debian python3-magic python3-requests python3-unidiff python3-xdg ruby-sdbm ruby3.3-doc sopv-doc strace unzip wget zip 0 packages upgraded, 129 newly installed, 0 to remove and 0 not upgraded. Need to get 36.1 MB of archives. After unpacking 140 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian trixie/main amd64 libexpat1 amd64 2.7.1-2 [108 kB] Get: 2 http://deb.debian.org/debian trixie/main amd64 libpython3.13-minimal amd64 3.13.5-2 [862 kB] Get: 3 http://deb.debian.org/debian trixie/main amd64 python3.13-minimal amd64 3.13.5-2 [2224 kB] Get: 4 http://deb.debian.org/debian trixie/main amd64 python3-minimal amd64 3.13.5-1 [27.2 kB] Get: 5 http://deb.debian.org/debian trixie/main amd64 media-types all 13.0.0 [29.3 kB] Get: 6 http://deb.debian.org/debian trixie/main amd64 netbase all 6.5 [12.4 kB] Get: 7 http://deb.debian.org/debian trixie/main amd64 tzdata all 2025b-4 [260 kB] Get: 8 http://deb.debian.org/debian trixie/main amd64 libffi8 amd64 3.4.8-2 [24.1 kB] Get: 9 http://deb.debian.org/debian trixie/main amd64 readline-common all 8.2-6 [69.4 kB] Get: 10 http://deb.debian.org/debian trixie/main amd64 libreadline8t64 amd64 8.2-6 [169 kB] Get: 11 http://deb.debian.org/debian trixie/main amd64 libpython3.13-stdlib amd64 3.13.5-2 [1956 kB] Get: 12 http://deb.debian.org/debian trixie/main amd64 python3.13 amd64 3.13.5-2 [757 kB] Get: 13 http://deb.debian.org/debian trixie/main amd64 libpython3-stdlib amd64 3.13.5-1 [10.2 kB] Get: 14 http://deb.debian.org/debian trixie/main amd64 python3 amd64 3.13.5-1 [28.2 kB] Get: 15 http://deb.debian.org/debian trixie/main amd64 sensible-utils all 0.0.25 [25.0 kB] Get: 16 http://deb.debian.org/debian trixie/main amd64 openssl amd64 3.5.1-1 [1494 kB] Get: 17 http://deb.debian.org/debian trixie/main amd64 ca-certificates all 20250419 [162 kB] Get: 18 http://deb.debian.org/debian trixie/main amd64 libmagic-mgc amd64 1:5.46-5 [338 kB] Get: 19 http://deb.debian.org/debian trixie/main amd64 libmagic1t64 amd64 1:5.46-5 [109 kB] Get: 20 http://deb.debian.org/debian trixie/main amd64 file amd64 1:5.46-5 [43.6 kB] Get: 21 http://deb.debian.org/debian trixie/main amd64 gettext-base amd64 0.23.1-2 [243 kB] Get: 22 http://deb.debian.org/debian trixie/main amd64 libuchardet0 amd64 0.0.8-1+b2 [68.9 kB] Get: 23 http://deb.debian.org/debian trixie/main amd64 groff-base amd64 1.23.0-9 [1187 kB] Get: 24 http://deb.debian.org/debian trixie/main amd64 bsdextrautils amd64 2.41-5 [94.6 kB] Get: 25 http://deb.debian.org/debian trixie/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB] Get: 26 http://deb.debian.org/debian trixie/main amd64 man-db amd64 2.13.1-1 [1469 kB] Get: 27 http://deb.debian.org/debian trixie/main amd64 m4 amd64 1.4.19-8 [294 kB] Get: 28 http://deb.debian.org/debian trixie/main amd64 autoconf all 2.72-3.1 [494 kB] Get: 29 http://deb.debian.org/debian trixie/main amd64 autotools-dev all 20240727.1 [60.2 kB] Get: 30 http://deb.debian.org/debian trixie/main amd64 automake all 1:1.17-4 [862 kB] Get: 31 http://deb.debian.org/debian trixie/main amd64 autopoint all 0.23.1-2 [770 kB] Get: 32 http://deb.debian.org/debian trixie/main amd64 libdebhelper-perl all 13.24.2 [90.9 kB] Get: 33 http://deb.debian.org/debian trixie/main amd64 libtool all 2.5.4-4 [539 kB] Get: 34 http://deb.debian.org/debian trixie/main amd64 dh-autoreconf all 20 [17.1 kB] Get: 35 http://deb.debian.org/debian trixie/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 36 http://deb.debian.org/debian trixie/main amd64 libfile-stripnondeterminism-perl all 1.14.1-2 [19.7 kB] Get: 37 http://deb.debian.org/debian trixie/main amd64 dh-strip-nondeterminism all 1.14.1-2 [8620 B] Get: 38 http://deb.debian.org/debian trixie/main amd64 libelf1t64 amd64 0.192-4 [189 kB] Get: 39 http://deb.debian.org/debian trixie/main amd64 dwz amd64 0.15-1+b1 [110 kB] Get: 40 http://deb.debian.org/debian trixie/main amd64 libunistring5 amd64 1.3-2 [477 kB] Get: 41 http://deb.debian.org/debian trixie/main amd64 libxml2 amd64 2.12.7+dfsg+really2.9.14-2.1 [698 kB] Get: 42 http://deb.debian.org/debian trixie/main amd64 gettext amd64 0.23.1-2 [1680 kB] Get: 43 http://deb.debian.org/debian trixie/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 44 http://deb.debian.org/debian trixie/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 45 http://deb.debian.org/debian trixie/main amd64 debhelper all 13.24.2 [919 kB] Get: 46 http://deb.debian.org/debian trixie/main amd64 libgpg-error0 amd64 1.51-4 [82.1 kB] Get: 47 http://deb.debian.org/debian trixie/main amd64 libassuan9 amd64 3.0.2-2 [61.5 kB] Get: 48 http://deb.debian.org/debian trixie/main amd64 libgcrypt20 amd64 1.11.0-7 [843 kB] Get: 49 http://deb.debian.org/debian trixie/main amd64 gpgconf amd64 2.4.7-21+b3 [129 kB] Get: 50 http://deb.debian.org/debian trixie/main amd64 libksba8 amd64 1.6.7-2+b1 [136 kB] Get: 51 http://deb.debian.org/debian trixie/main amd64 libnpth0t64 amd64 1.8-3 [23.2 kB] Get: 52 http://deb.debian.org/debian trixie/main amd64 gpg amd64 2.4.7-21+b3 [634 kB] Get: 53 http://deb.debian.org/debian trixie/main amd64 pinentry-curses amd64 1.3.1-2 [86.4 kB] Get: 54 http://deb.debian.org/debian trixie/main amd64 gpg-agent amd64 2.4.7-21+b3 [271 kB] Get: 55 http://deb.debian.org/debian trixie/main amd64 libfile-dirlist-perl all 0.05-3 [7600 B] Get: 56 http://deb.debian.org/debian trixie/main amd64 libfile-which-perl all 1.27-2 [15.1 kB] Get: 57 http://deb.debian.org/debian trixie/main amd64 libfile-homedir-perl all 1.006-2 [42.4 kB] Get: 58 http://deb.debian.org/debian trixie/main amd64 libfile-touch-perl all 0.12-2 [8816 B] Get: 59 http://deb.debian.org/debian trixie/main amd64 libclass-method-modifiers-perl all 2.15-1 [18.0 kB] Get: 60 http://deb.debian.org/debian trixie/main amd64 libclass-xsaccessor-perl amd64 1.19-4+b5 [36.1 kB] Get: 61 http://deb.debian.org/debian trixie/main amd64 libb-hooks-op-check-perl amd64 0.22-3+b2 [10.6 kB] Get: 62 http://deb.debian.org/debian trixie/main amd64 libdynaloader-functions-perl all 0.004-2 [12.2 kB] Get: 63 http://deb.debian.org/debian trixie/main amd64 libdevel-callchecker-perl amd64 0.009-2 [15.6 kB] Get: 64 http://deb.debian.org/debian trixie/main amd64 libparams-classify-perl amd64 0.015-2+b4 [22.5 kB] Get: 65 http://deb.debian.org/debian trixie/main amd64 libmodule-runtime-perl all 0.018-1 [17.8 kB] Get: 66 http://deb.debian.org/debian trixie/main amd64 libimport-into-perl all 1.002005-2 [11.3 kB] Get: 67 http://deb.debian.org/debian trixie/main amd64 librole-tiny-perl all 2.002004-1 [21.4 kB] Get: 68 http://deb.debian.org/debian trixie/main amd64 libsub-quote-perl all 2.006008-1 [21.8 kB] Get: 69 http://deb.debian.org/debian trixie/main amd64 libmoo-perl all 2.005005-1 [58.0 kB] Get: 70 http://deb.debian.org/debian trixie/main amd64 libencode-locale-perl all 1.05-3 [12.9 kB] Get: 71 http://deb.debian.org/debian trixie/main amd64 libtimedate-perl all 2.3300-2 [39.3 kB] Get: 72 http://deb.debian.org/debian trixie/main amd64 libhttp-date-perl all 6.06-1 [10.7 kB] Get: 73 http://deb.debian.org/debian trixie/main amd64 libfile-listing-perl all 6.16-1 [12.4 kB] Get: 74 http://deb.debian.org/debian trixie/main amd64 libhtml-tagset-perl all 3.24-1 [14.7 kB] Get: 75 http://deb.debian.org/debian trixie/main amd64 liburi-perl all 5.30-1 [105 kB] Get: 76 http://deb.debian.org/debian trixie/main amd64 libhtml-parser-perl amd64 3.83-1+b2 [99.7 kB] Get: 77 http://deb.debian.org/debian trixie/main amd64 libhtml-tree-perl all 5.07-3 [211 kB] Get: 78 http://deb.debian.org/debian trixie/main amd64 libclone-perl amd64 0.47-1+b1 [13.9 kB] Get: 79 http://deb.debian.org/debian trixie/main amd64 libio-html-perl all 1.004-3 [16.2 kB] Get: 80 http://deb.debian.org/debian trixie/main amd64 liblwp-mediatypes-perl all 6.04-2 [20.2 kB] Get: 81 http://deb.debian.org/debian trixie/main amd64 libhttp-message-perl all 7.00-2 [79.8 kB] Get: 82 http://deb.debian.org/debian trixie/main amd64 libhttp-cookies-perl all 6.11-1 [19.1 kB] Get: 83 http://deb.debian.org/debian trixie/main amd64 libhttp-negotiate-perl all 6.01-2 [13.1 kB] Get: 84 http://deb.debian.org/debian trixie/main amd64 perl-openssl-defaults amd64 7+b2 [6724 B] Get: 85 http://deb.debian.org/debian trixie/main amd64 libnet-ssleay-perl amd64 1.94-3 [339 kB] Get: 86 http://deb.debian.org/debian trixie/main amd64 libio-socket-ssl-perl all 2.089-1 [223 kB] Get: 87 http://deb.debian.org/debian trixie/main amd64 libnet-http-perl all 6.23-1 [23.9 kB] Get: 88 http://deb.debian.org/debian trixie/main amd64 liblwp-protocol-https-perl all 6.14-1 [10.8 kB] Get: 89 http://deb.debian.org/debian trixie/main amd64 libtry-tiny-perl all 0.32-1 [22.9 kB] Get: 90 http://deb.debian.org/debian trixie/main amd64 libwww-robotrules-perl all 6.02-1 [12.9 kB] Get: 91 http://deb.debian.org/debian trixie/main amd64 libwww-perl all 6.78-1 [183 kB] Get: 92 http://deb.debian.org/debian trixie/main amd64 patchutils amd64 0.4.2-1 [77.5 kB] Get: 93 http://deb.debian.org/debian trixie/main amd64 gpgv amd64 2.4.7-21+b3 [241 kB] Get: 94 http://deb.debian.org/debian trixie/main amd64 sopv-gpgv all 0.1.4-1 [11.3 kB] Get: 95 http://deb.debian.org/debian trixie/main amd64 wdiff amd64 1.2.2-9 [122 kB] Get: 96 http://deb.debian.org/debian trixie/main amd64 devscripts all 2.25.15 [1067 kB] Get: 97 http://deb.debian.org/debian trixie/main amd64 rubygems-integration all 1.19 [5488 B] Get: 98 http://deb.debian.org/debian trixie/main amd64 ruby-csv all 3.3.4-1 [42.2 kB] Get: 99 http://deb.debian.org/debian trixie/main amd64 ruby-did-you-mean all 1.6.3-2 [20.9 kB] Get: 100 http://deb.debian.org/debian trixie/main amd64 ruby-net-telnet all 0.2.0-1 [13.1 kB] Get: 101 http://deb.debian.org/debian trixie/main amd64 ruby-ruby2-keywords all 0.0.5-1 [4300 B] Get: 102 http://deb.debian.org/debian trixie/main amd64 ruby-webrick all 1.9.1-1 [59.6 kB] Get: 103 http://deb.debian.org/debian trixie/main amd64 ruby-xmlrpc all 0.3.3-2 [24.4 kB] Get: 104 http://deb.debian.org/debian trixie/main amd64 libyaml-0-2 amd64 0.2.5-2 [52.5 kB] Get: 105 http://deb.debian.org/debian trixie/main amd64 libruby3.3 amd64 3.3.8-2 [6301 kB] Get: 106 http://deb.debian.org/debian trixie/main amd64 ruby3.3 amd64 3.3.8-2 [834 kB] Get: 107 http://deb.debian.org/debian trixie/main amd64 libruby amd64 1:3.3+b1 [5440 B] Get: 108 http://deb.debian.org/debian trixie/main amd64 ruby-rubygems all 3.6.7-2 [407 kB] Get: 109 http://deb.debian.org/debian trixie/main amd64 ruby amd64 1:3.3+b1 [6560 B] Get: 110 http://deb.debian.org/debian trixie/main amd64 rake all 13.2.1-1 [65.2 kB] Get: 111 http://deb.debian.org/debian trixie/main amd64 ruby-minitest all 5.25.4-3 [66.3 kB] Get: 112 http://deb.debian.org/debian trixie/main amd64 ruby-power-assert all 2.0.3-1 [11.8 kB] Get: 113 http://deb.debian.org/debian trixie/main amd64 ruby-test-unit all 3.6.2-1 [79.1 kB] Get: 114 http://deb.debian.org/debian trixie/main amd64 gem2deb-test-runner amd64 2.2.5 [17.9 kB] Get: 115 http://deb.debian.org/debian trixie/main amd64 libgmpxx4ldbl amd64 2:6.3.0+dfsg-3 [329 kB] Get: 116 http://deb.debian.org/debian trixie/main amd64 libgmp-dev amd64 2:6.3.0+dfsg-3 [642 kB] Get: 117 http://deb.debian.org/debian trixie/main amd64 ruby3.3-dev amd64 3.3.8-2 [1045 kB] Get: 118 http://deb.debian.org/debian trixie/main amd64 ruby-all-dev amd64 1:3.3+b1 [6496 B] Get: 119 http://deb.debian.org/debian trixie/main amd64 gem2deb amd64 2.2.5 [48.0 kB] Get: 120 http://deb.debian.org/debian trixie/main amd64 racc all 1.8.1-1 [75.4 kB] Get: 121 http://deb.debian.org/debian trixie/main amd64 ruby-ast all 2.4.3-1 [10.7 kB] Get: 122 http://deb.debian.org/debian trixie/main amd64 ruby-diff-lcs all 1.5.1-1 [28.1 kB] Get: 123 http://deb.debian.org/debian trixie/main amd64 ruby-oedipus-lex all 2.6.0-2 [19.1 kB] Get: 124 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-support all 3.13.0c0e0m0s1-2 [28.5 kB] Get: 125 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB] Get: 126 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 127 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 128 http://deb.debian.org/debian trixie/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get: 129 http://deb.debian.org/debian trixie/main amd64 ruby-whitequark-parser all 3.3.4.2-2 [507 kB] Fetched 36.1 MB in 0s (80.6 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1: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 ... 19851 files and directories currently installed.) Preparing to unpack .../libexpat1_2.7.1-2_amd64.deb ... Unpacking libexpat1:amd64 (2.7.1-2) ... Selecting previously unselected package libpython3.13-minimal:amd64. Preparing to unpack .../libpython3.13-minimal_3.13.5-2_amd64.deb ... Unpacking libpython3.13-minimal:amd64 (3.13.5-2) ... Selecting previously unselected package python3.13-minimal. Preparing to unpack .../python3.13-minimal_3.13.5-2_amd64.deb ... Unpacking python3.13-minimal (3.13.5-2) ... Setting up libpython3.13-minimal:amd64 (3.13.5-2) ... Setting up libexpat1:amd64 (2.7.1-2) ... Setting up python3.13-minimal (3.13.5-2) ... Selecting previously unselected package python3-minimal. (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 ... 20185 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.13.5-1_amd64.deb ... Unpacking python3-minimal (3.13.5-1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_13.0.0_all.deb ... Unpacking media-types (13.0.0) ... Selecting previously unselected package netbase. Preparing to unpack .../2-netbase_6.5_all.deb ... Unpacking netbase (6.5) ... Selecting previously unselected package tzdata. Preparing to unpack .../3-tzdata_2025b-4_all.deb ... Unpacking tzdata (2025b-4) ... Selecting previously unselected package libffi8:amd64. Preparing to unpack .../4-libffi8_3.4.8-2_amd64.deb ... Unpacking libffi8:amd64 (3.4.8-2) ... Selecting previously unselected package readline-common. Preparing to unpack .../5-readline-common_8.2-6_all.deb ... Unpacking readline-common (8.2-6) ... Selecting previously unselected package libreadline8t64:amd64. Preparing to unpack .../6-libreadline8t64_8.2-6_amd64.deb ... Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8 to /lib/x86_64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8.2 to /lib/x86_64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8 to /lib/x86_64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8.2 to /lib/x86_64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:amd64 (8.2-6) ... Selecting previously unselected package libpython3.13-stdlib:amd64. Preparing to unpack .../7-libpython3.13-stdlib_3.13.5-2_amd64.deb ... Unpacking libpython3.13-stdlib:amd64 (3.13.5-2) ... Selecting previously unselected package python3.13. Preparing to unpack .../8-python3.13_3.13.5-2_amd64.deb ... Unpacking python3.13 (3.13.5-2) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../9-libpython3-stdlib_3.13.5-1_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.13.5-1) ... Setting up python3-minimal (3.13.5-1) ... Selecting previously unselected package python3. (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 ... 21200 files and directories currently installed.) Preparing to unpack .../000-python3_3.13.5-1_amd64.deb ... Unpacking python3 (3.13.5-1) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../001-sensible-utils_0.0.25_all.deb ... Unpacking sensible-utils (0.0.25) ... Selecting previously unselected package openssl. Preparing to unpack .../002-openssl_3.5.1-1_amd64.deb ... Unpacking openssl (3.5.1-1) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../003-ca-certificates_20250419_all.deb ... Unpacking ca-certificates (20250419) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../004-libmagic-mgc_1%3a5.46-5_amd64.deb ... Unpacking libmagic-mgc (1:5.46-5) ... Selecting previously unselected package libmagic1t64:amd64. Preparing to unpack .../005-libmagic1t64_1%3a5.46-5_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.46-5) ... Selecting previously unselected package file. Preparing to unpack .../006-file_1%3a5.46-5_amd64.deb ... Unpacking file (1:5.46-5) ... Selecting previously unselected package gettext-base. Preparing to unpack .../007-gettext-base_0.23.1-2_amd64.deb ... Unpacking gettext-base (0.23.1-2) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../008-libuchardet0_0.0.8-1+b2_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.8-1+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../009-groff-base_1.23.0-9_amd64.deb ... Unpacking groff-base (1.23.0-9) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../010-bsdextrautils_2.41-5_amd64.deb ... Unpacking bsdextrautils (2.41-5) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../011-libpipeline1_1.5.8-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../012-man-db_2.13.1-1_amd64.deb ... Unpacking man-db (2.13.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../013-m4_1.4.19-8_amd64.deb ... Unpacking m4 (1.4.19-8) ... Selecting previously unselected package autoconf. Preparing to unpack .../014-autoconf_2.72-3.1_all.deb ... Unpacking autoconf (2.72-3.1) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../015-autotools-dev_20240727.1_all.deb ... Unpacking autotools-dev (20240727.1) ... Selecting previously unselected package automake. Preparing to unpack .../016-automake_1%3a1.17-4_all.deb ... Unpacking automake (1:1.17-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../017-autopoint_0.23.1-2_all.deb ... Unpacking autopoint (0.23.1-2) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../018-libdebhelper-perl_13.24.2_all.deb ... Unpacking libdebhelper-perl (13.24.2) ... Selecting previously unselected package libtool. Preparing to unpack .../019-libtool_2.5.4-4_all.deb ... Unpacking libtool (2.5.4-4) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../020-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../021-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 .../022-libfile-stripnondeterminism-perl_1.14.1-2_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.1-2) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../023-dh-strip-nondeterminism_1.14.1-2_all.deb ... Unpacking dh-strip-nondeterminism (1.14.1-2) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../024-libelf1t64_0.192-4_amd64.deb ... Unpacking libelf1t64:amd64 (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../025-dwz_0.15-1+b1_amd64.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libunistring5:amd64. Preparing to unpack .../026-libunistring5_1.3-2_amd64.deb ... Unpacking libunistring5:amd64 (1.3-2) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../027-libxml2_2.12.7+dfsg+really2.9.14-2.1_amd64.deb ... Unpacking libxml2:amd64 (2.12.7+dfsg+really2.9.14-2.1) ... Selecting previously unselected package gettext. Preparing to unpack .../028-gettext_0.23.1-2_amd64.deb ... Unpacking gettext (0.23.1-2) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../029-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 .../030-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../031-debhelper_13.24.2_all.deb ... Unpacking debhelper (13.24.2) ... Selecting previously unselected package libgpg-error0:amd64. Preparing to unpack .../032-libgpg-error0_1.51-4_amd64.deb ... Unpacking libgpg-error0:amd64 (1.51-4) ... Selecting previously unselected package libassuan9:amd64. Preparing to unpack .../033-libassuan9_3.0.2-2_amd64.deb ... Unpacking libassuan9:amd64 (3.0.2-2) ... Selecting previously unselected package libgcrypt20:amd64. Preparing to unpack .../034-libgcrypt20_1.11.0-7_amd64.deb ... Unpacking libgcrypt20:amd64 (1.11.0-7) ... Selecting previously unselected package gpgconf. Preparing to unpack .../035-gpgconf_2.4.7-21+b3_amd64.deb ... Unpacking gpgconf (2.4.7-21+b3) ... Selecting previously unselected package libksba8:amd64. Preparing to unpack .../036-libksba8_1.6.7-2+b1_amd64.deb ... Unpacking libksba8:amd64 (1.6.7-2+b1) ... Selecting previously unselected package libnpth0t64:amd64. Preparing to unpack .../037-libnpth0t64_1.8-3_amd64.deb ... Unpacking libnpth0t64:amd64 (1.8-3) ... Selecting previously unselected package gpg. Preparing to unpack .../038-gpg_2.4.7-21+b3_amd64.deb ... Unpacking gpg (2.4.7-21+b3) ... Selecting previously unselected package pinentry-curses. Preparing to unpack .../039-pinentry-curses_1.3.1-2_amd64.deb ... Unpacking pinentry-curses (1.3.1-2) ... Selecting previously unselected package gpg-agent. Preparing to unpack .../040-gpg-agent_2.4.7-21+b3_amd64.deb ... Unpacking gpg-agent (2.4.7-21+b3) ... Selecting previously unselected package libfile-dirlist-perl. Preparing to unpack .../041-libfile-dirlist-perl_0.05-3_all.deb ... Unpacking libfile-dirlist-perl (0.05-3) ... Selecting previously unselected package libfile-which-perl. Preparing to unpack .../042-libfile-which-perl_1.27-2_all.deb ... Unpacking libfile-which-perl (1.27-2) ... Selecting previously unselected package libfile-homedir-perl. Preparing to unpack .../043-libfile-homedir-perl_1.006-2_all.deb ... Unpacking libfile-homedir-perl (1.006-2) ... Selecting previously unselected package libfile-touch-perl. Preparing to unpack .../044-libfile-touch-perl_0.12-2_all.deb ... Unpacking libfile-touch-perl (0.12-2) ... Selecting previously unselected package libclass-method-modifiers-perl. Preparing to unpack .../045-libclass-method-modifiers-perl_2.15-1_all.deb ... Unpacking libclass-method-modifiers-perl (2.15-1) ... Selecting previously unselected package libclass-xsaccessor-perl. Preparing to unpack .../046-libclass-xsaccessor-perl_1.19-4+b5_amd64.deb ... Unpacking libclass-xsaccessor-perl (1.19-4+b5) ... Selecting previously unselected package libb-hooks-op-check-perl:amd64. Preparing to unpack .../047-libb-hooks-op-check-perl_0.22-3+b2_amd64.deb ... Unpacking libb-hooks-op-check-perl:amd64 (0.22-3+b2) ... Selecting previously unselected package libdynaloader-functions-perl. Preparing to unpack .../048-libdynaloader-functions-perl_0.004-2_all.deb ... Unpacking libdynaloader-functions-perl (0.004-2) ... Selecting previously unselected package libdevel-callchecker-perl:amd64. Preparing to unpack .../049-libdevel-callchecker-perl_0.009-2_amd64.deb ... Unpacking libdevel-callchecker-perl:amd64 (0.009-2) ... Selecting previously unselected package libparams-classify-perl:amd64. Preparing to unpack .../050-libparams-classify-perl_0.015-2+b4_amd64.deb ... Unpacking libparams-classify-perl:amd64 (0.015-2+b4) ... Selecting previously unselected package libmodule-runtime-perl. Preparing to unpack .../051-libmodule-runtime-perl_0.018-1_all.deb ... Unpacking libmodule-runtime-perl (0.018-1) ... Selecting previously unselected package libimport-into-perl. Preparing to unpack .../052-libimport-into-perl_1.002005-2_all.deb ... Unpacking libimport-into-perl (1.002005-2) ... Selecting previously unselected package librole-tiny-perl. Preparing to unpack .../053-librole-tiny-perl_2.002004-1_all.deb ... Unpacking librole-tiny-perl (2.002004-1) ... Selecting previously unselected package libsub-quote-perl. Preparing to unpack .../054-libsub-quote-perl_2.006008-1_all.deb ... Unpacking libsub-quote-perl (2.006008-1) ... Selecting previously unselected package libmoo-perl. Preparing to unpack .../055-libmoo-perl_2.005005-1_all.deb ... Unpacking libmoo-perl (2.005005-1) ... Selecting previously unselected package libencode-locale-perl. Preparing to unpack .../056-libencode-locale-perl_1.05-3_all.deb ... Unpacking libencode-locale-perl (1.05-3) ... Selecting previously unselected package libtimedate-perl. Preparing to unpack .../057-libtimedate-perl_2.3300-2_all.deb ... Unpacking libtimedate-perl (2.3300-2) ... Selecting previously unselected package libhttp-date-perl. Preparing to unpack .../058-libhttp-date-perl_6.06-1_all.deb ... Unpacking libhttp-date-perl (6.06-1) ... Selecting previously unselected package libfile-listing-perl. Preparing to unpack .../059-libfile-listing-perl_6.16-1_all.deb ... Unpacking libfile-listing-perl (6.16-1) ... Selecting previously unselected package libhtml-tagset-perl. Preparing to unpack .../060-libhtml-tagset-perl_3.24-1_all.deb ... Unpacking libhtml-tagset-perl (3.24-1) ... Selecting previously unselected package liburi-perl. Preparing to unpack .../061-liburi-perl_5.30-1_all.deb ... Unpacking liburi-perl (5.30-1) ... Selecting previously unselected package libhtml-parser-perl:amd64. Preparing to unpack .../062-libhtml-parser-perl_3.83-1+b2_amd64.deb ... Unpacking libhtml-parser-perl:amd64 (3.83-1+b2) ... Selecting previously unselected package libhtml-tree-perl. Preparing to unpack .../063-libhtml-tree-perl_5.07-3_all.deb ... Unpacking libhtml-tree-perl (5.07-3) ... Selecting previously unselected package libclone-perl:amd64. Preparing to unpack .../064-libclone-perl_0.47-1+b1_amd64.deb ... Unpacking libclone-perl:amd64 (0.47-1+b1) ... Selecting previously unselected package libio-html-perl. Preparing to unpack .../065-libio-html-perl_1.004-3_all.deb ... Unpacking libio-html-perl (1.004-3) ... Selecting previously unselected package liblwp-mediatypes-perl. Preparing to unpack .../066-liblwp-mediatypes-perl_6.04-2_all.deb ... Unpacking liblwp-mediatypes-perl (6.04-2) ... Selecting previously unselected package libhttp-message-perl. Preparing to unpack .../067-libhttp-message-perl_7.00-2_all.deb ... Unpacking libhttp-message-perl (7.00-2) ... Selecting previously unselected package libhttp-cookies-perl. Preparing to unpack .../068-libhttp-cookies-perl_6.11-1_all.deb ... Unpacking libhttp-cookies-perl (6.11-1) ... Selecting previously unselected package libhttp-negotiate-perl. Preparing to unpack .../069-libhttp-negotiate-perl_6.01-2_all.deb ... Unpacking libhttp-negotiate-perl (6.01-2) ... Selecting previously unselected package perl-openssl-defaults:amd64. Preparing to unpack .../070-perl-openssl-defaults_7+b2_amd64.deb ... Unpacking perl-openssl-defaults:amd64 (7+b2) ... Selecting previously unselected package libnet-ssleay-perl:amd64. Preparing to unpack .../071-libnet-ssleay-perl_1.94-3_amd64.deb ... Unpacking libnet-ssleay-perl:amd64 (1.94-3) ... Selecting previously unselected package libio-socket-ssl-perl. Preparing to unpack .../072-libio-socket-ssl-perl_2.089-1_all.deb ... Unpacking libio-socket-ssl-perl (2.089-1) ... Selecting previously unselected package libnet-http-perl. Preparing to unpack .../073-libnet-http-perl_6.23-1_all.deb ... Unpacking libnet-http-perl (6.23-1) ... Selecting previously unselected package liblwp-protocol-https-perl. Preparing to unpack .../074-liblwp-protocol-https-perl_6.14-1_all.deb ... Unpacking liblwp-protocol-https-perl (6.14-1) ... Selecting previously unselected package libtry-tiny-perl. Preparing to unpack .../075-libtry-tiny-perl_0.32-1_all.deb ... Unpacking libtry-tiny-perl (0.32-1) ... Selecting previously unselected package libwww-robotrules-perl. Preparing to unpack .../076-libwww-robotrules-perl_6.02-1_all.deb ... Unpacking libwww-robotrules-perl (6.02-1) ... Selecting previously unselected package libwww-perl. Preparing to unpack .../077-libwww-perl_6.78-1_all.deb ... Unpacking libwww-perl (6.78-1) ... Selecting previously unselected package patchutils. Preparing to unpack .../078-patchutils_0.4.2-1_amd64.deb ... Unpacking patchutils (0.4.2-1) ... Selecting previously unselected package gpgv. Preparing to unpack .../079-gpgv_2.4.7-21+b3_amd64.deb ... Unpacking gpgv (2.4.7-21+b3) ... Selecting previously unselected package sopv-gpgv. Preparing to unpack .../080-sopv-gpgv_0.1.4-1_all.deb ... Unpacking sopv-gpgv (0.1.4-1) ... Selecting previously unselected package wdiff. Preparing to unpack .../081-wdiff_1.2.2-9_amd64.deb ... Unpacking wdiff (1.2.2-9) ... Selecting previously unselected package devscripts. Preparing to unpack .../082-devscripts_2.25.15_all.deb ... Unpacking devscripts (2.25.15) ... Selecting previously unselected package rubygems-integration. Preparing to unpack .../083-rubygems-integration_1.19_all.deb ... Unpacking rubygems-integration (1.19) ... Selecting previously unselected package ruby-csv. Preparing to unpack .../084-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 .../085-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 .../086-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 .../087-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 .../088-ruby-webrick_1.9.1-1_all.deb ... Unpacking ruby-webrick (1.9.1-1) ... Selecting previously unselected package ruby-xmlrpc. Preparing to unpack .../089-ruby-xmlrpc_0.3.3-2_all.deb ... Unpacking ruby-xmlrpc (0.3.3-2) ... Selecting previously unselected package libyaml-0-2:amd64. Preparing to unpack .../090-libyaml-0-2_0.2.5-2_amd64.deb ... Unpacking libyaml-0-2:amd64 (0.2.5-2) ... Selecting previously unselected package libruby3.3:amd64. Preparing to unpack .../091-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 .../092-ruby3.3_3.3.8-2_amd64.deb ... Unpacking ruby3.3 (3.3.8-2) ... Selecting previously unselected package libruby:amd64. Preparing to unpack .../093-libruby_1%3a3.3+b1_amd64.deb ... Unpacking libruby:amd64 (1:3.3+b1) ... Selecting previously unselected package ruby-rubygems. Preparing to unpack .../094-ruby-rubygems_3.6.7-2_all.deb ... Unpacking ruby-rubygems (3.6.7-2) ... Selecting previously unselected package ruby. Preparing to unpack .../095-ruby_1%3a3.3+b1_amd64.deb ... Unpacking ruby (1:3.3+b1) ... Selecting previously unselected package rake. Preparing to unpack .../096-rake_13.2.1-1_all.deb ... Unpacking rake (13.2.1-1) ... Selecting previously unselected package ruby-minitest. Preparing to unpack .../097-ruby-minitest_5.25.4-3_all.deb ... Unpacking ruby-minitest (5.25.4-3) ... Selecting previously unselected package ruby-power-assert. Preparing to unpack .../098-ruby-power-assert_2.0.3-1_all.deb ... Unpacking ruby-power-assert (2.0.3-1) ... Selecting previously unselected package ruby-test-unit. Preparing to unpack .../099-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 .../100-gem2deb-test-runner_2.2.5_amd64.deb ... Unpacking gem2deb-test-runner (2.2.5) ... Selecting previously unselected package libgmpxx4ldbl:amd64. Preparing to unpack .../101-libgmpxx4ldbl_2%3a6.3.0+dfsg-3_amd64.deb ... Unpacking libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-3) ... Selecting previously unselected package libgmp-dev:amd64. Preparing to unpack .../102-libgmp-dev_2%3a6.3.0+dfsg-3_amd64.deb ... Unpacking libgmp-dev:amd64 (2:6.3.0+dfsg-3) ... Selecting previously unselected package ruby3.3-dev:amd64. Preparing to unpack .../103-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 .../104-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 .../105-gem2deb_2.2.5_amd64.deb ... Unpacking gem2deb (2.2.5) ... Selecting previously unselected package racc. Preparing to unpack .../106-racc_1.8.1-1_all.deb ... Unpacking racc (1.8.1-1) ... Selecting previously unselected package ruby-ast. Preparing to unpack .../107-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 .../108-ruby-diff-lcs_1.5.1-1_all.deb ... Unpacking ruby-diff-lcs (1.5.1-1) ... Selecting previously unselected package ruby-oedipus-lex. Preparing to unpack .../109-ruby-oedipus-lex_2.6.0-2_all.deb ... Unpacking ruby-oedipus-lex (2.6.0-2) ... Selecting previously unselected package ruby-rspec-support. Preparing to unpack .../110-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 .../111-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 .../112-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 .../113-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 .../114-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 .../115-ruby-whitequark-parser_3.3.4.2-2_all.deb ... Unpacking ruby-whitequark-parser (3.3.4.2-2) ... Setting up media-types (13.0.0) ... Setting up libpipeline1:amd64 (1.5.8-1) ... Setting up wdiff (1.2.2-9) ... Setting up libfile-which-perl (1.27-2) ... Setting up libnpth0t64:amd64 (1.8-3) ... Setting up ruby-ruby2-keywords (0.0.5-1) ... Setting up ruby-oedipus-lex (2.6.0-2) ... Setting up bsdextrautils (2.41-5) ... Setting up libgpg-error0:amd64 (1.51-4) ... Setting up libdynaloader-functions-perl (0.004-2) ... Setting up libclass-method-modifiers-perl (2.15-1) ... Setting up ruby-power-assert (2.0.3-1) ... Setting up libmagic-mgc (1:5.46-5) ... Setting up libclone-perl:amd64 (0.47-1+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libyaml-0-2:amd64 (0.2.5-2) ... Setting up libhtml-tagset-perl (3.24-1) ... Setting up libdebhelper-perl (13.24.2) ... Setting up liblwp-mediatypes-perl (6.04-2) ... Setting up libmagic1t64:amd64 (1:5.46-5) ... Setting up libtry-tiny-perl (0.32-1) ... Setting up perl-openssl-defaults:amd64 (7+b2) ... Setting up gettext-base (0.23.1-2) ... Setting up m4 (1.4.19-8) ... Setting up libgcrypt20:amd64 (1.11.0-7) ... Setting up libencode-locale-perl (1.05-3) ... Setting up file (1:5.46-5) ... Setting up libelf1t64:amd64 (0.192-4) ... Setting up tzdata (2025b-4) ... Current default time zone: 'Etc/UTC' Local time is now: Thu Aug 7 15:18:52 UTC 2025. Universal Time is now: Thu Aug 7 15:18:52 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-3) ... Setting up autotools-dev (20240727.1) ... Setting up libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-3) ... 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 libio-html-perl (1.004-3) ... Setting up autopoint (0.23.1-2) ... Setting up libb-hooks-op-check-perl:amd64 (0.22-3+b2) ... Setting up autoconf (2.72-3.1) ... Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ... Setting up libtimedate-perl (2.3300-2) ... Setting up ruby-webrick (1.9.1-1) ... Setting up libffi8:amd64 (3.4.8-2) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.25) ... Setting up gpgv (2.4.7-21+b3) ... Setting up libuchardet0:amd64 (0.0.8-1+b2) ... Setting up libassuan9:amd64 (3.0.2-2) ... Setting up librole-tiny-perl (2.002004-1) ... Setting up netbase (6.5) ... Setting up libsub-quote-perl (2.006008-1) ... Setting up libclass-xsaccessor-perl (1.19-4+b5) ... Setting up ruby-did-you-mean (1.6.3-2) ... Setting up libfile-dirlist-perl (0.05-3) ... Setting up libfile-homedir-perl (1.006-2) ... Setting up openssl (3.5.1-1) ... Setting up readline-common (8.2-6) ... Setting up ruby-xmlrpc (0.3.3-2) ... Setting up libxml2:amd64 (2.12.7+dfsg+really2.9.14-2.1) ... Setting up liburi-perl (5.30-1) ... Setting up libfile-touch-perl (0.12-2) ... Setting up libnet-ssleay-perl:amd64 (1.94-3) ... Setting up automake (1:1.17-4) ... update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode Setting up libksba8:amd64 (1.6.7-2+b1) ... Setting up pinentry-curses (1.3.1-2) ... Setting up libfile-stripnondeterminism-perl (1.14.1-2) ... Setting up libhttp-date-perl (6.06-1) ... Setting up gettext (0.23.1-2) ... Setting up libgmp-dev:amd64 (2:6.3.0+dfsg-3) ... Setting up libfile-listing-perl (6.16-1) ... Setting up libtool (2.5.4-4) ... Setting up libnet-http-perl (6.23-1) ... Setting up libdevel-callchecker-perl:amd64 (0.009-2) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up patchutils (0.4.2-1) ... Setting up ca-certificates (20250419) ... Updating certificates in /etc/ssl/certs... 150 added, 0 removed; done. Setting up libreadline8t64:amd64 (8.2-6) ... Setting up dh-strip-nondeterminism (1.14.1-2) ... Setting up libwww-robotrules-perl (6.02-1) ... Setting up groff-base (1.23.0-9) ... Setting up libhtml-parser-perl:amd64 (3.83-1+b2) ... Setting up gpgconf (2.4.7-21+b3) ... Setting up libpython3.13-stdlib:amd64 (3.13.5-2) ... Setting up libio-socket-ssl-perl (2.089-1) ... Setting up gpg (2.4.7-21+b3) ... Setting up libpython3-stdlib:amd64 (3.13.5-1) ... Setting up libhttp-message-perl (7.00-2) ... Setting up libhttp-negotiate-perl (6.01-2) ... Setting up gpg-agent (2.4.7-21+b3) ... Setting up libhttp-cookies-perl (6.11-1) ... Setting up python3.13 (3.13.5-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libhtml-tree-perl (5.07-3) ... Setting up libparams-classify-perl:amd64 (0.015-2+b4) ... Setting up python3 (3.13.5-1) ... Setting up rubygems-integration (1.19) ... Setting up sopv-gpgv (0.1.4-1) ... update-alternatives: using /usr/bin/sopv-gpgv to provide /usr/bin/sopv (sopv) in auto mode Setting up man-db (2.13.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up libmodule-runtime-perl (0.018-1) ... Setting up libimport-into-perl (1.002005-2) ... Setting up libmoo-perl (2.005005-1) ... Setting up debhelper (13.24.2) ... Setting up rake (13.2.1-1) ... Setting up liblwp-protocol-https-perl (6.14-1) ... Setting up libwww-perl (6.78-1) ... Setting up libruby3.3:amd64 (3.3.8-2) ... Setting up ruby-rubygems (3.6.7-2) ... Setting up devscripts (2.25.15) ... 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-1) ... Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ... Setting up ruby-diff-lcs (1.5.1-1) ... Setting up ruby-whitequark-parser (3.3.4.2-2) ... Setting up gem2deb-test-runner (2.2.5) ... Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... Setting up gem2deb (2.2.5) ... Setting up ruby-rspec (3.13.0c0e0m0s1-2) ... Processing triggers for libc-bin (2.41-12) ... 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. Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: Running cd /build/reproducible-path/ruby-rubocop-ast-1.24.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-rubocop-ast_1.24.0-2_source.changes dpkg-buildpackage: info: source package ruby-rubocop-ast dpkg-buildpackage: info: source version 1.24.0-2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Lucas Kanashiro 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/d20250807-1800386-t8bnab/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/d20250807-1800386-t8bnab/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 17249 RuboCop::AST::ModuleNode #identifier is expected to be const type .new is expected to be a kind of RuboCop::AST::ModuleNode #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 RuboCop::AST::NodePattern::Lexer provides tokens via next_token when given a regexp /test/ 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 `:&` when given a regexp /back\\slash/ round trips when given a regexp /[abc]+\/()?/x round trips with $type+ is parsed as `$ int + x` RuboCop::AST::NodePattern::Parser sequences parses simple sequences properly parses unions of literals as a set expands ... in sequence head deep inside unions parses function calls generates specialized nodes parses capture vs repetition with correct priority RuboCop::AST::EnsureNode .new is expected to be a kind of RuboCop::AST::EnsureNode #body is expected to be sym type RuboCop::AST::AndAsgnNode #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode #name is expected to eq :var #operator is expected to eq :"&&" #expression is expected to eq s(:send, nil, :value) .new is expected to be a kind of RuboCop::AST::AndAsgnNode RuboCop::AST::DstrNode #value with interpolation is expected to eq "foo \#{bar} baz" with a multiline string is expected to eq "this is a multiline string" with implicit concatenation is expected to eq "foo bar baz" RuboCop::AST::AliasNode .new is expected to be a kind of RuboCop::AST::AliasNode #new_identifier is expected to eq :foo is expected to be sym type #old_identifier is expected to be sym type is expected to eq :bar RuboCop::AST::SuperNode #double_colon? is expected not to be double colon #block_literal? with a block literal is expected to be block literal with no block is expected not to be block literal with a block argument is expected not to be block literal #method_name is expected to eq :super #first_argument with a single literal argument is expected to be sym type with multiple mixed arguments 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 no arguments is expected to be nil #assignment_method? is expected not to be assignment method #setter_method? is expected not to be setter method #camel_case_method? is expected not to be camel case method .new with a zsuper node is expected to be a kind of RuboCop::AST::SuperNode with a super node is expected to be a kind of RuboCop::AST::SuperNode #self_receiver? is expected not to be self receiver #block_argument? with regular arguments is expected not to be 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 #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" #dot? is expected not to be dot #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 #command? when argument is a string is expected to be command "super" when argument is a symbol is expected to be command :super #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? is expected not to be implicit call #comparison_method? is expected not to be comparison method #operator_method? is expected not to be operator method #macro? is expected not to be macro #receiver is expected to be nil #bang_method? is expected not to be bang method #arguments with multiple literal arguments is expected to eq 2 with a single literal 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 splat argument is expected to eq 1 #predicate_method? is expected not to be predicate method #splat_argument? with a splat argument is expected to be splat argument with no arguments is expected not to be splat argument with mixed arguments is expected 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 a single splat argument is expected to be splat type with a single literal argument is expected to be sym type with multiple literal arguments is expected to be sym type #arguments? with multiple literal 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 with multiple mixed arguments is expected to be arguments with a single literal argument is expected to be arguments #const_receiver? is expected not to be const receiver RuboCop::AST::PairNode .new is expected to be a kind of RuboCop::AST::PairNode #value_omission? when not using hash value omission is expected not to be value omission when using hash value omission is expected to be value omission #colon? when using a colon delimiter is expected to be colon when using a hash rocket delimiter is expected not to be colon #hash_rocket? when using a colon delimiter is expected not to be hash rocket when using a hash rocket delimiter is expected to be hash rocket #key when using a symbol key is expected to be sym type when using a string key is expected to be str type #value_delta when using hash rocket delimiters 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 when receiver value is ahead is expected to eq 2 when receiver value is behind is expected to eq -2 when both pairs are on the same line is expected to eq 0 when using colon delimiters when both pairs are on the same line is expected to eq 0 when receiver value is behind is expected to eq -2 when receiver value is ahead 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 #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 " => " #same_line? 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(:pair, s(:sym, :a), s(:begin)) is expected to be same line s(:kwsplat, s(:send, nil, :foo)) 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 both pairs are explicit pairs is expected not to be same line s(:pair, s(:sym, :b), s(:int, 2)) when last pair is a keyword splat is expected not to be same line s(:kwsplat, s(:send, nil, :foo)) #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_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 when value spans multiple lines is expected not to be value on new line #key_delta with alignment set to :right when using colon delimiters 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 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 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 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 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 both pairs are explicit 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 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 second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq -2 with alignment set to :left when using hash rocket 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 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 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 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 colon delimiters 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 -2 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 #value is expected to be int type RuboCop::AST::IfNode #if? with an unless statement is expected not to be if with an if statement is expected to be if with a ternary operator is expected not to be if #else? with an elsif statement is expected to be else without an else statement is expected not to be elsif #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 nested conditionals in if clause is expected to be nested conditional with nested conditionals in else clause 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 .new 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 with a modifier statement is expected to be a kind of RuboCop::AST::IfNode #else_branch with an if statement is expected to be int type with an unless statement is expected to be int type with a ternary operator is expected to be int type #branches with an elsif statement is expected to eq 3 is expected to all be literal with an else statement is expected to eq 2 is expected to all be literal with a ternary operator is expected to eq 2 is expected to all be literal with an unless statement is expected to eq 1 is expected to all be literal with an if statement is expected to eq 1 is expected to all be literal #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 "" #elsif_conditional? with nested conditionals in else clause is expected not 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 with one elsif conditional is expected to be elsif conditional #unless? with an unless statement is expected to be unless with an if statement is expected not to be unless with a ternary operator is expected not to be unless #keyword with an if statement is expected to eq "if" with an unless statement is expected to eq "unless" with a ternary operator is expected to eq "" #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 non-modifier unless statement is expected not to be modifier form with a modifier unless statement is expected to be modifier form with a modifier if statement is expected to be modifier form #if_branch with a ternary operator is expected to be sym type with an unless statement is expected to be sym type with an if statement is expected to be sym type #each_branch when not passed a block is expected to be a kind of Enumerator when passed a block yields all the branches #elsif? without an elsif statement is expected not to be elsif with an elsif statement is expected to be elsif with an if statement comtaining an elsif is expected not to be elsif #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 RuboCop::AST::RegexpNode #options 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 "o" option is expected to eq 0 with a regexp with multiple options is expected to eq 3 with an empty regexp is expected to eq 0 #ignore_case? with other options is expected not to be ignore case with i and other options is expected to be ignore case with no options is expected not to be ignore case with only i option is expected to be ignore case #no_encoding? with no options is expected not to be no encoding with n and other options is expected to be no encoding with other options is expected not to be no encoding with only n option is expected to be no encoding #to_regexp with a multi-line regexp without option is expected to eq / .+ / with an empty regexp is expected to eq // with a regexp without option is expected to eq /.+/ 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 a regexp with an "o" option is expected to eq "/abc/i" with an empty regexp with option is expected to eq //ix with a regexp with an "u" option is expected to eq "/abc/" #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 with /-delimiters is expected not to be percent r literal with multi-line %r{-delimiters is expected to be percent r literal #fixed_encoding? with only u option is expected to be fixed encoding with no options is expected not to be fixed encoding with u and other options is expected to be fixed encoding with other options is expected not to be fixed encoding #interpolation? with regexp quote is expected to be interpolation with direct variable interpoation is expected to be interpolation with no interpolation returns false is expected not to be interpolation #content with an empty regexp is expected to eq "" with a multi-line regexp without option is expected to eq "\n.+\n" with a multi-line regexp with option is expected to eq "\n.+\n" with a regexp with option is expected to eq ".+" with an empty regexp with option is expected to eq "" with a regexp without option is expected to eq ".+" #regopt with a regexp without option is expected to be regopt type is expected to be empty 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 with option is expected to be regopt type is expected to eq [:i, :m, :x] with a multi-line regexp with option is expected to eq [:i, :m, :x] is expected to be regopt type with an empty regexp is expected to be empty is expected to be regopt type #delimiter? with /-delimiters is expected not to be delimiter "{" is expected to be delimiter "/" with %r/-delimiters 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 not to be delimiter "%r" is expected not to be delimiter "{" is expected to be delimiter "/" 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 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 "/" is expected not to be delimiter "%r<" is expected to be delimiter ">" with multi-line %r{-delimiters is expected 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 "}" is expected not to be delimiter "r" is expected not to be delimiter "/" is expected not to be delimiter "%" with %r{-delimiters 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 "%r" is expected to be delimiter "}" is expected to be delimiter "{" #multiline_mode? with only m option is expected to be multiline mode with no options is expected not 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 #single_interpolation? with only o option is expected to be single interpolation with no options is expected not to be single interpolation with other options is expected not to be single interpolation with o and other options is expected to be single interpolation #slash_literal? with /-delimiters is expected to be slash literal with multi-line %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 %r{-delimiters is expected not to be slash literal #delimiters with multi-line %r{-delimiters is expected to eq ["{", "}"] with /-delimiters is expected to eq ["/", "/"] with %r{-delimiters is expected to eq ["{", "}"] with %r<-delimiters is expected to eq ["<", ">"] with %r/-delimiters is expected to eq ["/", "/"] .new is expected to be a kind of RuboCop::AST::RegexpNode #extended? with only x option is expected to be extended with no options is expected not to be extended with other options is expected not to be extended with x and other options is expected to be extended RuboCop::AST::HashNode #pairs with an empty hash is expected to be empty with a hash of literals is expected to all be pair type is expected to eq 3 with a hash of variables is expected to eq 2 is expected to all be pair type .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 all pairs on the same line is expected to be pairs on same line with some pairs on the same line is expected to be pairs on same line #values with a hash with string keys is expected to all be send type is expected to eq 2 with an empty hash is expected to be empty with a hash with literal values is expected to eq 3 is expected to all be literal #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 #empty? with a hash containing pairs is expected not to be empty with an empty hash is expected to be empty with a hash containing a keyword splat is expected not to be empty #braces? as an argument with braces is expected to be braces with braces is expected to be braces as an argument with no braces is expected not to be braces #each_key when not passed a block is expected to be a kind of Enumerator when passed a block yields all the pairs #each_pair when not passed a block is expected to be a kind of Enumerator when passed a block yields all the pairs #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_value when not passed a block is expected to be a kind of Enumerator when passed a block yields all the pairs RuboCop::AST::OrAsgnNode #expression is expected to eq s(:send, nil, :value) #name is expected to eq :var #operator is expected to eq :"||" .new is expected to be a kind of RuboCop::AST::OrAsgnNode #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode RuboCop::AST::RangeNode .new with a beignless range is expected to be range type is expected to be a kind of RuboCop::AST::RangeNode with an inclusive 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 a kind of RuboCop::AST::RangeNode is expected to be range type with an exclusive range is expected to be range type is expected to be a kind of RuboCop::AST::RangeNode RuboCop::AST::ResbodyNode #exception_variable when an exception variable is not given is expected to be nil for an implicit rescue is expected to eq "ex" for an explicit rescue is expected to eq "ex" #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 all be const type is expected to eq 2 #body is expected to be sym type .new is expected to be a kind of RuboCop::AST::ResbodyNode #branch_index is expected to eq 1 is expected to eq 2 is expected to eq 0 RuboCop::AST::CaseMatchNode when using Ruby 2.7 or newer #in_pattern_branches is expected to eq 3 is expected to all be in pattern type .new is expected to be a kind of RuboCop::AST::CaseMatchNode #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 #else? without an else statement is expected not to be else with an else statement is expected to be else #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 #each_in_pattern when passed a block yields all the conditions when not passed a block is expected to be a kind of Enumerator #keyword is expected to eq "case" RuboCop::AST::ArgsNode .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)] #empty_and_without_delimiters? with empty arguments with a method definition is expected to equal true with a lambda literal is expected to equal true with a block 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 RuboCop::AST::UntilNode #loop_keyword? with a statement until is expected to be loop keyword with a modifier until is expected to be loop keyword #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" #keyword is expected to eq "until" .new with a modifier until is expected to be a kind of RuboCop::AST::UntilNode with a statement until is expected to be a kind of RuboCop::AST::UntilNode #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 RuboCop::AST::ForNode #variable is expected to be lvasgn type #body is expected to be sym type #keyword is expected to eq "for" #collection is expected to be sym type #do? without a do keyword is expected not to be do with a do keyword is expected to be do .new is expected to be a kind of RuboCop::AST::ForNode #void_context? without a do keyword is expected to be void context with a do keyword is expected to be void context #post_condition_loop? is expected not to be post condition loop #loop_keyword? is expected to be loop keyword RuboCop::AST::ProcessedSource #tokens has an array of tokens valid_syntax? when the source is completely valid returns true when a line starts with an integer literal tokenizes the source correctly 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 itself is valid encoding but includes strange encoding literals that are accepted by MRI returns true #ast is the root node of AST #comments is an array of comments when the source is invalid returns [] #file_path returns file path #first_token_of returns first token for node accepts Node as an argument token enumerables #find_token yields correct token yields nil when there is no match #each_token yields all tokens #blank? with source with content returns false with source of no content returns true #parser_error when the source lacks encoding comment and is really utf-8 encoded but has been read as US-ASCII is nil when the source was properly parsed is nil when the source could not be parsed due to encoding error returns the error #path is the path passed to .new #buffer is a source buffer .from_file raises a Errno::ENOENT when the file does not exist when the file exists returns an instance of ProcessedSource sets the file path to the instance's #path #tokens_within accepts Node as an argument returns tokens for node when heredoc as argument is present returns tokens for heredoc node returns tokens for node before heredoc returns tokens for node after heredoc with heavily commented source #comment_at_line returns the comment at the given line number returns nil if line has no comment #each_comment yields all comments #contains_comment? provided source_range on line with comment is expected to equal true 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 comment line is expected to equal true #comments_before_line returns comments on or before given line #find_comment yields correct comment yields nil when there is no match #each_comment_in_lines yields the comments #line_with_comment? returns false for lines without comments returns true for lines with comments #following_line returns source of line after token #lines is an array contains lines as string without linefeed has same number of elements as line count #start_with? with present source returns false when passed string that does not start source returns true when passed string that starts source with blank source returns false #[] when start index and length are passed returns the array of lines when an index is passed returns the line when a range is passed returns the array of lines #last_token_of returns last token for node accepts Node as an argument #preceding_line returns source of line before token RuboCop::AST::Ext::Range #line_span accepts an `exclude_end` keyword argument returns the range of lines a range occupies Changelog parses correctly merges correctly Changelog::Entry generates correct content RuboCop::AST::ClassNode #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 .new is expected to be a kind of RuboCop::AST::ClassNode #identifier is expected to be const 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::AsgnNode #expression 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 `gvasgn` node is expected to eq s(:send, nil, :value) with a `cvasgn` node is expected to eq s(:send, nil, :value) .new with a `cvasgn` node is expected to be a kind of RuboCop::AST::AsgnNode 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 `lvasgn` node is expected to be a kind of RuboCop::AST::AsgnNode #name with a `lvasgn` node is expected to eq :var with a `cvasgn` node is expected to eq :@@var with a `ivasgn` node is expected to eq :@var with a `gvasgn` node is expected to eq :$var RuboCop::AST::ArgNode .new with an optional argument is expected to be a kind of RuboCop::AST::ArgNode with argument forwarding with Ruby >= 3.0 is expected to be a kind of RuboCop::AST::ArgNode with Ruby >= 2.7 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 double splatted 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 lambda literal 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 method definition is expected to be a kind of RuboCop::AST::ArgNode with a block argument is expected to be a kind of RuboCop::AST::ArgNode #default_value with a block is expected to be nil with an optional keyword argument is expected to eq s(:int, 42) with an optional argument is expected to eq s(:int, 42) with a shadow argument is expected to be nil with a regular 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 with a block argument is expected to be nil #name with an optional argument 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 a splatted argument is expected to eq :x with a regular argument is expected to eq :x with a block is expected to eq :x with a block argument is expected to eq :x with a nameless double splatted argument is expected to be nil with a nameless splatted argument is expected to be nil with a 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 an optional keyword argument is expected to equal true with a splatted argument is expected to equal false with a block is expected to equal false with a double splatted argument is expected to equal false with a shadow argument is expected to equal false with an optional argument is expected to equal true with argument forwarding with Ruby >= 3.0 is expected to equal false with Ruby >= 2.7 is expected to equal false with a regular argument is expected to equal false RuboCop::AST::StrNode #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 #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 .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 RuboCop::AST::BreakNode behaves like wrapped arguments node #arguments with no arguments is expected to be empty with no arguments and braces 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 multiple literal arguments is expected to eq 2 with a single splat argument is expected to eq 1 .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::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::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 #pattern with an alternative pattern is expected to be match alt type with an as pattern is expected to be match as type with an array pattern is expected to be array pattern type with a hash pattern is expected to be hash pattern type with a variable pattern is expected to be match var type with a value pattern is expected to be int type with a pin operator is expected to be pin type #branch_index is expected to eq 1 is expected to eq 2 is expected to eq 0 .new is expected to be a kind of RuboCop::AST::InPatternNode #then? with a then keyword is expected to be then without a then keyword is expected not to be then RuboCop::AST::NextNode behaves like wrapped arguments node #arguments with multiple literal arguments is expected to eq 2 with a single argument is expected to eq 1 with no arguments is expected to be empty with no arguments and braces is expected to be empty with a single argument and braces is expected to eq 1 with a single splat argument is expected to eq 1 .new with arguments is expected to be a kind of RuboCop::AST::NextNode without arguments is expected to be a kind of RuboCop::AST::NextNode RuboCop::AST::WhenNode #conditions with a multiple conditions is expected to eq 3 is expected to all be literal with a single condition is expected to all be literal is expected to eq 1 #then? with a then keyword is expected to be then without a then keyword is expected not to be then .new is expected to be a kind of RuboCop::AST::WhenNode #each_condition when passed a block yields all the conditions when not passed a block is expected to be a kind of Enumerator #body without a then keyword is expected to be array type with a then keyword is expected to be sym type #branch_index is expected to eq 2 is expected to eq 0 is expected to eq 1 RuboCop::AST::YieldNode #block_node is expected to be nil #predicate_method? is expected not to be predicate method #macro? is expected not to be macro #method_name is expected to eq :yield .new is expected to be a kind of RuboCop::AST::YieldNode #arguments with multiple literal arguments is expected to eq 2 with a single literal argument is expected to eq 1 with multiple mixed arguments is expected to eq 2 with a single splat argument is expected to eq 1 with no arguments is expected to be empty #double_colon? is expected not to be double colon #dot? is expected not to be dot #block_literal? is expected not to be block literal #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 #operator_method? is expected not to be operator method #block_argument? is expected not to be block argument #first_argument with multiple literal arguments is expected to be sym type 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 with no arguments is expected to be nil #arguments? with multiple literal arguments 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 mixed arguments is expected to be arguments with a single splat argument is expected to be arguments #camel_case_method? is expected not to be camel case method #self_receiver? is expected not to be self receiver #last_argument with multiple mixed arguments 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 no arguments is expected to be nil with a single splat argument is expected to be splat type #bang_method? is expected not to be bang method #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 using parentheses is expected to be parenthesized when not using parentheses is expected not to be parenthesized #setter_method? is expected not to be setter method #implicit_call? is expected not to be implicit call #assignment_method? is expected not to be assignment method #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 string is expected to be method "yield" when argument is a symbol is expected to be method :yield #command? when argument is a string is expected to be command "yield" when argument is a symbol is expected to be command :yield #comparison_method? is expected not to be comparison method #const_receiver? is expected not to be const receiver 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 .new is expected to be a kind of RuboCop::AST::FloatNode RuboCop::AST::CaseNode #when_branches is expected to all be when type is expected to eq 3 #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 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 .new is expected to be a kind of RuboCop::AST::CaseNode #else_branch #else? with an else statement is expected to be sym type without an else statement is expected to be nil with an empty 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 #keyword is expected to eq "case" RuboCop::AST::LambdaNode #receiver is expected to be nil #arguments is expected to eq 2 #method_name is expected to eq :lambda RuboCop::AST::WhileNode #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" #keyword is expected to eq "while" #loop_keyword? with a modifier while is expected to be loop keyword with a statement while is expected to be loop keyword #do? without a do keyword is expected not to be do with a do keyword is expected to be do .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 Set#=== tests for inclusion 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::NodePattern::Sets is expected to eq "::RuboCop::AST::NodePattern::Sets::SET_1_2_3_ETC" 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" creates a constant with the right value RuboCop::AST::ForwardArgsNode when using Ruby 2.7 or newer #to_a is expected to contain exactly (be forward arg type) RuboCop::AST::KeywordSplatNode #key_delta with alignment set to :left when using colon delimiters 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 keyword splat is behind is expected to eq -2 when using hash rocket delimiters when keyword splat is aligned is expected to eq 0 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 behind is expected to eq -2 with alignment set to :right when using hash rocket delimiters 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 when keyword splat is aligned is expected to eq 0 when using colon delimiters when keyword splat is behind is expected to eq 0 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 0 #value_delta when using colon delimiters 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 when keyword splat is left aligned is expected to eq 0 when using hash rocket delimiters when keyword splat is left 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 when keyword splat is behind is expected to eq 0 #colon? is expected not to be colon #operator is expected to eq "**" .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 #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)) #key is expected to eq s(:kwsplat, s(:send, nil, :foo)) RuboCop::AST::DefNode #bang_method? with a bang method is expected to be bang method with a predicate method is expected not to be bang method with a regular method is expected not to be bang method #self_receiver? with a class method definition is expected to be 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 #last_argument with a single regular argument is expected to be arg type with a single rest argument is expected to be restarg type with multiple regular arguments is expected to be arg type with no arguments is expected to be nil with a single keyword argument is expected to be kwoptarg type with multiple mixed arguments is expected to be restarg type .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 #operator_method? with a setter method is expected not to be operator method with a regular method is expected not to be operator method with a binary operator method is expected to be operator method with a unary operator method is expected to be operator method #arguments with a single rest argument is expected to eq 1 with multiple mixed arguments is expected to eq 2 with a single regular argument is expected to eq 1 with argument forwarding is expected to eq 1 with no arguments is expected to be empty with multiple regular arguments is expected to eq 2 #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 #receiver with a singleton method definition is expected to be const type with an instance method definition is expected to be nil with a class method definition is expected to be self type #body with a multi-expression body is expected to be begin type with no body is expected to be nil with a single expression body is expected to be send type #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" #endless? with endless method definition is expected to be endless with standard method definition is expected not to be endless #assignment_method? with an assignment method is expected to be assignment method with a comparison method is expected not to be assignment method with a regular method is expected not to be assignment method with a bracket assignment method is expected to be assignment method #comparison_method? with a regular method is expected not to be comparison method with a comparison method is expected to be comparison method #void_context? with an initializer method is expected to be void context with a regular assignment method is expected to be void context with a comparison method is expected not to be void context with a bracket assignment method is expected to be void context with a regular method is expected not to be void context #rest_argument? with a rest argument is expected to be 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 #const_receiver? with an instance method definition is expected not to be 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 #arguments? with a single rest argument is expected to be arguments with a single regular argument is expected to be arguments with no arguments is expected not to be arguments with multiple mixed arguments is expected to be arguments with multiple regular arguments is expected to be arguments with a single keyword argument is expected to be arguments #method_name with a unary method is expected to eq :-@ with a setter method is expected to eq :foo= with a plain method is expected to eq :foo with an operator method is expected to eq :== #predicate_method? with a predicate method is expected to be predicate method with a regular method is expected not to be predicate method with a bang method is expected not to be predicate method #first_argument with a single regular argument is expected to be arg type with no arguments is expected to be nil with a single keyword argument is expected to be kwoptarg type with multiple regular arguments is expected to be arg type with a single rest argument is expected to be restarg type with multiple mixed arguments is expected to be arg type when using Ruby 2.7 or newer #argument_forwarding? is expected to be argument forwarding #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 RuboCop::AST::SymbolNode #value is expected to eq :foo .new with a symbol node is expected to be a kind of RuboCop::AST::SymbolNode RuboCop::AST::Node #numeric_type? when string literal is true when float literal is true when rational literal is true when complex literal is true when integer literal is true when complex literal whose imaginary part is a rational is true #parent_module_name when node on singleton class is expected to eq "Foo::#" when node nested in a class << exp is expected to be nil when node on class in singleton class is expected to eq "Foo::#::Bar" when node on module 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 #conditional? when `while` node is true when `case_match` node is true when `case` node is true when post condition loop node is false when `until` node is true when `if` node is true #value_used? within a class definition node is always true within a method call node is always true 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 an array literal at the top level is always false assigned to an ivar is always true at the top level is false within a module definition node is always true at the end of a block is always true within a singleton class node is always true within a while node is true only for the condition #module_definition? included module definition matches prepend Module.new matches with ::ModuleName matches using module keyword matches namespaced modules matches nested modules matches with Module.new matches when using numbered parameter matches #class_definition? with inheritance matches without inheritance matches with ::ClassName matches with Class.new matches when using numbered parameter matches with object singleton class matches constant defined as Struct without block does not match with Struct matches when using numbered parameter matches with self singleton class matches namespaced class matches #struct_constructor? ::Struct matches struct definition without block does not match struct definition with a block matches sibling_access returns trivial values for a root node for a node with siblings returns the expected values for a single child returns the expected values #class_constructor? module definition with a block matches class definition with a block matches class definition on outer scope matches class definition does not match #recursive_basic_literal? behaves like literal returns true for `(false <=> true)` behaves like non literal returns false for `some_method_call(x, y)` behaves like literal returns true for `'str'` behaves like literal returns true for `1.0` behaves like literal returns true for `"#{2}"` behaves like literal returns true for `nil` behaves like literal returns true for `!true` behaves like literal returns true for `(false && true)` behaves like literal returns true for `1` behaves like literal returns true for `(false or true)` behaves like non literal returns false for `%r{abx#{foo}}ixo` behaves like non literal returns false for `[some_method_call]` behaves like non literal returns false for `/.#{some_method_call}/` behaves like literal returns true for `{ a: 1, b: 2 }` behaves like non literal returns false for `some_method_call` behaves like literal returns true for `/./` behaves like non literal returns false for `{ :sym => some_method_call }` behaves like literal returns true for `%r{abx}ixo` behaves like non literal returns false for `{ some_method_call => :sym }` behaves like non literal returns false for `(x or false)` behaves like literal returns true for `{ :a => 1, :b => 2 }` behaves like non literal returns false for `(x && false)` behaves like literal returns true for `false` behaves like non literal returns false for `(x == false)` behaves like literal returns true for `(1)` behaves like literal returns true for `[1, 2, 3]` #pure? for an integer literal returns true for an lvar assignment returns false for a cvar assignment returns false for a regexp with no interpolation returns true with options returns true with interpolated segments returns false for a class definition returns false for a nested if where the innermost descendants are local vars and literals returns true where one branch contains a method call returns false where one branch contains an assignment statement returns false for an array literal with only literal children returns true which contains a method call returns false for a module definition returns false for an ivar assignment returns false for a hash literal with only literal children returns true which contains a method call returns false for a gvar assignment returns false for a method call returns false #argument_type? method arguments returns true for all argument types block arguments returns true for all argument types RuboCop::AST::SelfClassNode #body with an empty 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 #identifier is expected to be self type .new is expected to be a kind of RuboCop::AST::SelfClassNode RuboCop::AST::SendNode #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 with a dot is expected not to be double colon #post_condition_loop? is expected not to be post condition loop #non_bare_access_modifier? when node does not have an argument is expected not to be 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 #comparison_method? with a comparison method is expected to be comparison method with a regular method is expected not to be comparison method with a negation method is expected not to be comparison method #receiver with no receiver is expected to be nil with a literal receiver is expected to be str type with a variable receiver is expected to be send type #arguments? with multiple mixed 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 with multiple literal arguments is expected to be arguments with a single literal argument is expected to be arguments #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 #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 a block argument is expected not to be block literal with no block is expected not to be block literal .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 #const_receiver? with a self receiver is expected not to be const receiver with a constant receiver is expected to be const receiver with a non-constant receiver is expected not to be const receiver #binary_operation?? with a binary operation is expected to be binary operation with a regular method call is expected not 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 #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 #splat_argument? with no arguments is expected not 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 mixed arguments is expected to be splat argument #nonmutating_array_method? with a mutating Array method is expected not to be 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 #predicate_method? with a predicate method is expected to be predicate method with a bang method is expected not to be predicate method with a regular method is expected not 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 #access_modifier? when node is a non-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 bare `module_function` is expected to be access modifier #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 without a parent is expected to be macro when parent is a class constructor 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 in the global scope is expected to be macro when parent is a singleton class is expected to be macro when the condition of an if is expected not 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 struct constructor is expected to be macro when parent is a method definition is expected not to be macro when in an if is expected to be macro when parent is a module is expected to be macro when parent is a class 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 not in a macro scope is expected not to be macro #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 #block_argument? with no arguments is expected not to be block argument with mixed arguments is expected to be block argument with regular arguments is expected not to be block argument with a block argument is expected to be block argument #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 a regular method is expected not to be assignment method with an assignment method is expected to be assignment method #loop_keyword? is expected not to be loop keyword #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 a setter method is expected to be setter method with an indexed setter method is expected to be setter method #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 #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 #first_argument with a single literal argument is expected to be sym type with a single splat argument is expected to be splat type 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 #negation_method? with prefix `not` is expected to be negation method with suffix `not` is expected not to be negation method with prefix bang is expected to be negation method with a non-negated method is expected not to be negation method #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 #def_modifier with call with no argument is expected to be nil with several prefixed def modifiers is expected to eq :qux with a prefixed def modifier is expected to eq :bar with a block containing a method definition is expected to be nil #bare_access_modifier? when node has an argument is expected not to be bare access modifier when node is a bare `module_function` is expected to be 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 is not an access modifier is expected not to be bare access modifier #last_argument 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 splat type with a single literal argument is expected to be sym type with multiple literal arguments is expected to be sym type #method? 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" 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 an implicit call method is expected to eq :call with a plain method is expected to eq :bar with an operator method is expected to eq :== with a setter method is expected to eq :bar= #nonmutating_operator_method? with a regular method is expected not to be 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 #prefix_bang? with a bang method is expected to be prefix bang with a non-negated method is expected not to be prefix bang with keyword `not` is expected not to be prefix bang #enumerable_method? with an enumerable method is expected to be enumerable method with a regular method is expected not to be enumerable method #implicit_call? with an implicit call method is expected to be 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 #def_modifier? with a prefixed def modifier is expected to be 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 #arithmetic_operation? with a regular method call is expected not to be arithmetic operation with a binary arithmetic operation is expected to be arithmetic operation with a unary numeric operation is expected not to be arithmetic operation #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 literal argument is expected to eq 1 with multiple mixed arguments is expected to eq 2 #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 #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 #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 #unary_operation? with a binary operation is expected not 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 unary operation is expected to be unary operation #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 #command? 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" when argument is a symbol with an explicit receiver is expected not to be command :bar with an implicit receiver is expected to be command :bar #dot? with a dot is expected to be dot with a double colon is expected not to be dot without a dot is expected not to be dot with a unary method is expected not to be dot #self_receiver? with a self receiver is expected to be 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 #lambda_literal? with a stabby lambda is expected to be lambda literal with a lambda method is expected not to be lambda literal with `a.() {}` style method is expected not to be lambda with a non-lambda method is expected not to be lambda #block_node with a block argument is expected to be nil with a block literal is expected to be block type with no block is expected to be nil with Ruby >= 2.7 with a numblock literal is expected to be numblock type RuboCop::AST::OrNode #rhs with a semantic or node is expected to be int type with a logical or node is expected to be int type .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 #logical_operator? with a semantic or node is expected not to be logical operator with a logical or node is expected to be logical operator #alternate_operator with a logical or node is expected to eq "or" with a semantic or node is expected to eq "||" #inverse_operator with a logical or node is expected to eq "&&" with a semantic or node is expected to eq "and" #operator with a logical or node is expected to eq "||" with a semantic or node is expected to eq "or" #lhs with a logical or node is expected to be sym type with a semantic or node is expected to be sym type #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 RuboCop::AST::Traversal knows all current node types for example class Foo end traverses all nodes for example %q(foobar) traverses all nodes for example 1.33 traverses all nodes for example f x: -> do meth do end end traverses all nodes for example if foo; bar; elsif baz; 1; else 2; end traverses all nodes for example a b{c d}, /x/m do end traverses all nodes for example unless foo then bar; else baz; end traverses all nodes for example case foo; in ^foo then nil; end traverses all nodes for example foo <= 1 traverses all nodes for example a += 1 traverses all nodes for example foo[:baz => 1,] traverses all nodes for example p begin 1.times do 1 end end traverses all nodes for example if (bar); foo; end traverses all nodes for example unless foo; bar; else baz; end traverses all nodes for example super traverses all nodes for example foo.(1) traverses all nodes for example __ENCODING__ traverses all nodes for example return(foo) traverses all nodes for example while foo do meth end traverses all nodes for example if foo then bar; else baz; end traverses all nodes for example module Bar::Foo; end traverses all nodes for example :'a\ b' traverses all nodes for example ?a traverses all nodes for example fun(foo, :foo => 1) traverses all nodes for example def f a, o=1, p, &b; end traverses all nodes for example foo.C += raise bar rescue nil traverses all nodes for example return foo traverses all nodes for example m "#{[]}" traverses all nodes for example p <<~E x y E traverses all nodes for example foo <=> 1 traverses all nodes for example class << foo; _1; end traverses all nodes for example p p{p(p);p p}, tap do end traverses all nodes for example false ? raise {} : tap {} traverses all nodes for example %I{a\ b} traverses all nodes for example -foo traverses all nodes for example a&.b traverses all nodes for example A += 1 traverses all nodes for example :"a\ b" traverses all nodes for example def f *, **; end traverses all nodes for example case foo; in "a": then true; end traverses all nodes for example foo = meth rescue bar traverses all nodes for example case foo; in *x, y, z then nil; end traverses all nodes for example f{ |o=1, p, &b| } traverses all nodes for example until foo do meth end traverses all nodes for example foo traverses all nodes for example a b(c(d)), 1.0r do end traverses all nodes for example foo::C ||= raise bar rescue nil traverses all nodes for example f{ |;a| } traverses all nodes for example @var = 10 traverses all nodes for example f{ |a, o=1, *r, p, &b| } traverses all nodes for example until foo; meth end traverses all nodes for example m1 :k => m2 do; m3() do end; end traverses all nodes for example fun (1).to_i traverses all nodes for example p <<~E x \ y E traverses all nodes for example def foo(_, _); end traverses all nodes for example ..100 traverses all nodes for example f <<-TABLE do TABLE end traverses all nodes for example a, *b = bar traverses all nodes for example a += b += raise :x traverses all nodes for example `#@1` traverses all nodes for example case foo; in A() then true; end traverses all nodes for example m ->(a = ->{_1}) {a} traverses all nodes for example 1... traverses all nodes for example foo::a = 1 traverses all nodes for example m { _1 + _9 } traverses all nodes for example def f ; end traverses all nodes for example case foo; in "#{ 'a' }": 1 then true; end traverses all nodes for example a b{c(d)}, /x/m do end traverses all nodes for example foo, bar = m foo traverses all nodes for example "#@a #@@a #$a" traverses all nodes for example next() traverses all nodes for example -> * { } traverses all nodes for example def (foo).foo; end traverses all nodes for example -> a: { } traverses all nodes for example a b(c(d)), :e do end traverses all nodes for example %x{#@1} traverses all nodes for example p -> { :hello }, a: 1 do end traverses all nodes for example def f(*); end traverses all nodes for example ~foo traverses all nodes for example foo::Fun() traverses all nodes for example let () { m(a) do; end } traverses all nodes for example not m foo traverses all nodes for example foo::fun bar traverses all nodes for example m do _1 + _9 end traverses all nodes for example fun(*bar) traverses all nodes for example def f a, o=1, *r, &b; end traverses all nodes for example %I[foo#{bar}] traverses all nodes for example __ENCODING__ traverses all nodes for example foo === 1 traverses all nodes for example p <<~E E traverses all nodes for example fun(foo, *bar, &baz) traverses all nodes for example -> { _1 + _9} traverses all nodes for example begin ensure end traverses all nodes for example def f foo: ; end traverses all nodes for example [1, 2] traverses all nodes for example module ::Foo; end traverses all nodes for example def foo a:b end traverses all nodes for example f { || a:b } traverses all nodes for example f{ |a,| } traverses all nodes for example :"#@@1" traverses all nodes for example '#@1' traverses all nodes for example f{ |&b| } traverses all nodes for example while def foo; tap do end; end; break; end traverses all nodes for example proc {_1 = nil} traverses all nodes for example !/wat/ traverses all nodes for example $foo traverses all nodes for example case foo; in x unless true; nil; end traverses all nodes for example true traverses all nodes for example p <<~E x \ y E traverses all nodes for example fun (1) traverses all nodes for example def f ((a, a1)); end traverses all nodes for example def foo(...); end traverses all nodes for example case foo; in A then true; end traverses all nodes for example case foo; in ** then true; end traverses all nodes for example meth do; foo; rescue; bar; end traverses all nodes for example td (1_500).toString(); td.num do; end traverses all nodes for example for a in foo; p a; end traverses all nodes for example def f(foo: 1); end traverses all nodes for example a b(c d), :e do end traverses all nodes for example a, *b, c = bar traverses all nodes for example '#@@1' traverses all nodes for example next traverses all nodes for example a b(c(d)), /x/ do end traverses all nodes for example foo.A = 1 traverses all nodes for example a = 1; a b: 1 traverses all nodes for example %{#@@1} traverses all nodes for example foo = baz, *bar traverses all nodes for example class Foo; end traverses all nodes for example foo[bar, :baz => 1,] traverses all nodes for example t=1;(foo)?t:T traverses all nodes for example "a\ b" traverses all nodes for example def f foo = 1; end traverses all nodes for example foo.m += raise(bar) rescue nil traverses all nodes for example foo, bar = 1, 2 traverses all nodes for example def foo(...); bar(...); end traverses all nodes for example a, *, c = bar traverses all nodes for example p <<~E E traverses all nodes for example false ? raise do end : tap do end traverses all nodes for example self.A, foo = foo traverses all nodes for example while def foo a = tap do end; end; break; end traverses all nodes for example foo.a ||= 1 traverses all nodes for example @foo traverses all nodes for example fun() { } traverses all nodes for example case foo; in 1; end traverses all nodes for example a b(c d), /x/ do end traverses all nodes for example case; when foo; 'foo'; else 'bar'; end traverses all nodes for example def f a, o=1, *r, p, &b; end traverses all nodes for example %w{a\ b} traverses all nodes for example 1.. traverses all nodes for example foo::fun (1) {} traverses all nodes for example while def self.foo a = tap do end; end; break; end traverses all nodes for example nil traverses all nodes for example foo * 1 traverses all nodes for example tap (proc do end) traverses all nodes for example foo !~ 1 traverses all nodes for example -> do rescue; end traverses all nodes for example case foo; in "#{ %Q{a} }": 1 then true; end traverses all nodes for example a @b do |c|;end traverses all nodes for example m { |(foo, bar)| } traverses all nodes for example meth 1 do end::fun(bar) traverses all nodes for example if /wat/; end traverses all nodes for example p :foo, {a: proc do end, b: proc do end} traverses all nodes for example `foobar` traverses all nodes for example ...100 traverses all nodes for example fun(foo, *bar) traverses all nodes for example { 'foo': 2, 'bar': {}} traverses all nodes for example f{ |a, o=1, p, &b| } traverses all nodes for example p <<~E x y E traverses all nodes for example def x; ::A ||= 1; end traverses all nodes for example <<-`HERE` a\ b HERE traverses all nodes for example foo[1, 2] traverses all nodes for example fun(*bar, &baz) traverses all nodes for example true ? 1.tap do |n| p n end : 0 traverses all nodes for example meth until foo traverses all nodes for example break traverses all nodes for example @@var = 10 traverses all nodes for example a b{c(d)}, 1.0r do end traverses all nodes for example %{a\ b} traverses all nodes for example foo = raise bar rescue nil traverses all nodes for example a b(c d), /x/m do end traverses all nodes for example foo + 1 traverses all nodes for example case foo; in * then nil; end traverses all nodes for example def f(foo); end traverses all nodes for example a b{c(d)}, 1.0i do end traverses all nodes for example return fun foo do end traverses all nodes for example @a |= 1 traverses all nodes for example a b{c(d)}, "x" do end traverses all nodes for example if foo; bar; end traverses all nodes for example case foo; in 1 => a then true; end traverses all nodes for example bar if foo traverses all nodes for example foo::Fun bar traverses all nodes for example f{ | | } traverses all nodes for example fun traverses all nodes for example m { |foo| } traverses all nodes for example break foo traverses all nodes for example fun (f bar) traverses all nodes for example case 1; in 2; 3; else; end traverses all nodes for example Foo = 10 traverses all nodes for example def END; end traverses all nodes for example -42 traverses all nodes for example foo != 1 traverses all nodes for example while not (true) do end traverses all nodes for example 42.1ri traverses all nodes for example f{ |a, o=1, o1=2, *r, &b| } traverses all nodes for example /(?bar)/ =~ 'bar'; match traverses all nodes for example begin meth end until foo traverses all nodes for example <<~E 1 \ 2 3 E traverses all nodes for example foo << 1 traverses all nodes for example f{ |a, c| } traverses all nodes for example %W() traverses all nodes for example def f(foo:); end traverses all nodes for example { } traverses all nodes for example traverses all nodes for example %w[] traverses all nodes for example 42.1r traverses all nodes for example yield() traverses all nodes for example a, * = bar traverses all nodes for example !foo traverses all nodes for example p :foo, {proc do end => proc do end, b: proc do end} traverses all nodes for example [*foo] traverses all nodes for example meth 1 do end.fun(bar) {} traverses all nodes for example [ 1 => 2 ] traverses all nodes for example case foo; in 1... then true; end traverses all nodes for example :'foo' traverses all nodes for example foo[m bar] traverses all nodes for example def f a, &b; end traverses all nodes for example foo "#{(1+1).to_i}" do; end traverses all nodes for example not foo traverses all nodes for example meth rescue bar traverses all nodes for example def self.foo; end traverses all nodes for example foo.fun (1) {} traverses all nodes for example case foo; in [x, y] then true; end traverses all nodes for example { 1 => 2, :foo => "bar" } traverses all nodes for example foo[0, 1] ||= 2 traverses all nodes for example class << foo; nil; end traverses all nodes for example fun () {} traverses all nodes for example %r{#@1} traverses all nodes for example () traverses all nodes for example if (a, b = foo); end traverses all nodes for example ->(**nil) {} traverses all nodes for example def self::foo; end traverses all nodes for example a b{c(d)}, 1.0 do end traverses all nodes for example def f *r, p, &b; end traverses all nodes for example def f(foo, bar); end traverses all nodes for example :foo traverses all nodes for example break(foo) traverses all nodes for example def m; class << self; module M; end; end; end traverses all nodes for example foo.a &&= 1 traverses all nodes for example f{ |a, *s, &b| } traverses all nodes for example <<-'HERE' #@1 HERE traverses all nodes for example begin meth end while foo traverses all nodes for example *, c, d = bar traverses all nodes for example f{ || } traverses all nodes for example case foo; in a: then true; end traverses all nodes for example foo::m += raise(bar) rescue nil traverses all nodes for example * = bar traverses all nodes for example self.a, self[1, 2] = foo traverses all nodes for example foo or bar traverses all nodes for example foo = *bar traverses all nodes for example :'#@1' traverses all nodes for example begin end traverses all nodes for example foo += raise(bar) rescue nil traverses all nodes for example m def x(); end; 1.tap do end traverses all nodes for example /#)/x traverses all nodes for example break fun foo do end traverses all nodes for example a b(c(d)), 1.0 do end traverses all nodes for example super(foo) traverses all nodes for example meth 1 do end.fun {} traverses all nodes for example ::Foo traverses all nodes for example %s{#@1} traverses all nodes for example p <<~E x y E traverses all nodes for example %i[] traverses all nodes for example <<-'HERE' #@@1 HERE traverses all nodes for example <<~FOO baz\ qux FOO traverses all nodes for example case foo; in *x then nil; end traverses all nodes for example foo::a += m foo traverses all nodes for example def foo; end traverses all nodes for example %i{a\ b} traverses all nodes for example a b(c d), 1.0 do end traverses all nodes for example p <<~E " y" x E traverses all nodes for example def f ((a, *r, p)); end traverses all nodes for example BEGIN { 1 } traverses all nodes for example def f (foo: 1, &b); end traverses all nodes for example case foo; when 'bar'; bar; end traverses all nodes for example Foo traverses all nodes for example *b, c = bar traverses all nodes for example %W[foo #{bar}] traverses all nodes for example def f(**foo); end traverses all nodes for example foo[0, 1] &&= 2 traverses all nodes for example __FILE__ traverses all nodes for example p :foo, {:a => proc do end, b: proc do end} traverses all nodes for example a ? b & '': nil traverses all nodes for example class A < B end traverses all nodes for example "#{-> foo {}}" traverses all nodes for example let (:a) { m do; end } 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 f{ |o=1, *r, &b| } traverses all nodes for example 42i traverses all nodes for example case foo; in {a: } true ; end traverses all nodes for example case foo; in {} then true; end traverses all nodes for example *b = bar traverses all nodes for example def a; @@var |= 10; end traverses all nodes for example foo::A += m foo traverses all nodes for example def String=; end traverses all nodes for example begin; meth; rescue => ex; bar; end traverses all nodes for example def f ((a, *r)); end traverses all nodes for example foo.a += m foo traverses all nodes for example m a + b do end traverses all nodes for example def a b: return end traverses all nodes for example next(foo) traverses all nodes for example foo[1, 2] traverses all nodes for example foo (-1.3).abs traverses all nodes for example /a\ b/ traverses all nodes for example def f (((a))); end traverses all nodes for example foo = m foo traverses all nodes for example def foo raise; raise A::B, ''; end traverses all nodes for example 42 traverses all nodes for example for a in foo do p a; end traverses all nodes for example next foo traverses all nodes for example "foo#@a" "bar" traverses all nodes for example meth 1 do end.fun bar traverses all nodes for example begin; meth; ensure; bar; end traverses all nodes for example case foo; in a: {b:}, c: p c ; end traverses all nodes for example foo.fun bar traverses all nodes for example case foo; in "a": 1 then true; end traverses all nodes for example f{ |o=1, *r, p, &b| } traverses all nodes for example bar def foo; self.each do end end traverses all nodes for example def String.foo; end traverses all nodes for example not() traverses all nodes for example def f ((*)); end traverses all nodes for example 1 in [a]; a traverses all nodes for example %W{a\ b} traverses all nodes for example %w[ #@1 ] traverses all nodes for example :"foo#{bar}baz" traverses all nodes for example fun! traverses all nodes for example super() traverses all nodes for example case foo; in 1, "a", [], {} then nil; end traverses all nodes for example def until; end traverses all nodes for example ->(scope) {}; scope traverses all nodes for example p :foo, {"a": proc do end, b: proc do end} traverses all nodes for example def BEGIN; end traverses all nodes for example f{ |foo:| } traverses all nodes for example case foo; in x, *y, z then nil; end traverses all nodes for example fun(1) traverses all nodes for example case foo; in a: 1 then true; end traverses all nodes for example -> (arg={}) {} traverses all nodes for example %Q{a\ b} traverses all nodes for example :'#@@1' traverses all nodes for example -> a: 1 { } traverses all nodes for example def f o=1, p, &b; end traverses all nodes for example meth 1 do end::fun bar traverses all nodes for example yield(foo) traverses all nodes for example fun { } traverses all nodes for example module Foo; end traverses all nodes for example %r{#@@1} traverses all nodes for example foo ? 1 : 2 traverses all nodes for example /#@1/ traverses all nodes for example foo = bar = m foo traverses all nodes for example case foo; in **a then true; end traverses all nodes for example foo.A += m foo traverses all nodes for example ::Foo = 10 traverses all nodes for example if foo then bar end traverses all nodes for example foo.a = 1 traverses all nodes for example case foo; in ..2 then true; end traverses all nodes for example case foo; in (1) then true; end traverses all nodes for example %W[foo #{bar}foo#@baz] traverses all nodes for example class Foo < Bar; end traverses all nodes for example m { |**nil| } traverses all nodes for example case foo; in [*x, y] then true; end traverses all nodes for example next fun foo do end traverses all nodes for example foo::fun traverses all nodes for example a b{c(d)}, 1 do end traverses all nodes for example %Q{#@@1} traverses all nodes for example %q{#@1} traverses all nodes for example foo.fun traverses all nodes for example a b{c(d)}, /x/ do end traverses all nodes for example alias :foo bar traverses all nodes for example case foo; in [x, y, *] then true; end traverses all nodes for example case foo; in A[x:] then true; end traverses all nodes for example foo, bar = meth rescue [1, 2] traverses all nodes for example `a\ b` traverses all nodes for example <<-`HERE` #@@1 HERE traverses all nodes for example assert dogs traverses all nodes for example a, (b, c) = foo traverses all nodes for example begin; meth; rescue; baz; else foo; ensure; bar end traverses all nodes for example for a, b in foo; p a, b; end traverses all nodes for example <<-'HERE' a\ b HERE traverses all nodes for example case foo; in "#{ %q{a} }": 1 then true; end traverses all nodes for example module A; _1; end traverses all nodes for example a b(c d), 1.0i do end traverses all nodes for example while foo; meth end traverses all nodes for example if foo..bar; end traverses all nodes for example [/()\1/, ?#] traverses all nodes for example foo && bar traverses all nodes for example if foo; bar; else baz; end traverses all nodes for example %I[foo #{bar}] traverses all nodes for example def foo(...); bar(...); end traverses all nodes for example f{ |a, *r, p, &b| } traverses all nodes for example %s{a\ b} traverses all nodes for example proc {_1 = nil} traverses all nodes for example f{ |a| } traverses all nodes for example def f o=1, *r, p, &b; end traverses all nodes for example foo || (a, b = bar) traverses all nodes for example a b(c(d)), 1.0i do end traverses all nodes for example %W[#@1] traverses all nodes for example def f(*foo); end traverses all nodes for example var = 10; var traverses all nodes for example class Foo < a:b; 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 fun do end traverses all nodes for example case foo; in ...2 then true; end traverses all nodes for example begin; rescue LoadError; else; end traverses all nodes for example a b{c d}, 1.0i do end traverses all nodes for example f{ |; a | } traverses all nodes for example f{ |foo: 1, bar: 2, **baz, &b| } traverses all nodes for example begin; meth; rescue Exception; bar; end traverses all nodes for example case foo; in [x] then nil; end traverses all nodes for example fun(1) { } traverses all nodes for example -> do end traverses all nodes for example a b{c(d)}, :e do end traverses all nodes for example p <<~"E" x #{foo} E traverses all nodes for example desc "foo" do end traverses all nodes for example proc {|_3|} traverses all nodes for example case foo; in 1 | 2 then true; end traverses all nodes for example f{ |a, *| } traverses all nodes for example f{ |*s, &b| } traverses all nodes for example bar unless foo traverses all nodes for example !m foo traverses all nodes for example case foo; when 'bar'; bar; else baz; end traverses all nodes for example case foo; in A[] then true; end traverses all nodes for example %r{a\ b} traverses all nodes for example f{ |*| } traverses all nodes for example -> do _1 + _9 end traverses all nodes for example meth while foo traverses all nodes for example foo[0] += raise(bar) rescue nil traverses all nodes for example "foo#{bar}baz" traverses all nodes for example foo % 1 traverses all nodes for example a b{c d}, 1 do end traverses all nodes for example @foo, @@bar = *foo traverses all nodes for example if (bar; a, b = foo); end traverses all nodes for example case foo; in {a: 1 } false ; end traverses all nodes for example if foo...bar; end traverses all nodes for example (foo, bar) = 1, 2 traverses all nodes for example ((b, )) = foo traverses all nodes for example foo&.bar {} traverses all nodes for example a # # .foo traverses all nodes for example foo ^ 1 traverses all nodes for example {a: if true then 42 end} traverses all nodes for example retry traverses all nodes for example foo.m += raise bar rescue nil traverses all nodes for example foo = bar, 1 traverses all nodes for example class A; _1; end traverses all nodes for example /source/im traverses all nodes for example def self._6; end traverses all nodes for example f{ |a, *s| } traverses all nodes for example p <<~"E" x\n y E traverses all nodes for example case foo; in a: 1, _a:, ** then true; end traverses all nodes for example 'foobar' traverses all nodes for example case foo; in 1..2 then true; end traverses all nodes for example ->(a) { } traverses all nodes for example foo += m foo traverses all nodes for example foo | 1 traverses all nodes for example -2 ** 10 traverses all nodes for example f (g rescue nil) traverses all nodes for example p <<~E x y E traverses all nodes for example f{ |*, &b| } traverses all nodes for example case foo; when 1, *baz; bar; when *foo; end traverses all nodes for example Bar::Foo traverses all nodes for example defined?(foo) traverses all nodes for example foo / 1 traverses all nodes for example o = { a: 1 } traverses all nodes for example m [] do end traverses all nodes for example foo::a += 1 traverses all nodes for example a b(c d), 1.0r do end traverses all nodes for example def foo(_a, _a); end traverses all nodes for example case foo; in [*, x] then true; end traverses all nodes for example _1 traverses all nodes for example begin; meth; rescue => @ex; bar; end traverses all nodes for example case foo; in ::A then true; end traverses all nodes for example $+ traverses all nodes for example /#@@1/ traverses all nodes for example a&.b &&= 1 traverses all nodes for example case foo; in a:, b: then true; end traverses all nodes for example $10 traverses all nodes for example Bar::Foo = 10 traverses all nodes for example while class Foo a = tap do end; end; break; end traverses all nodes for example _2 = 1 traverses all nodes for example f{ |a| } traverses all nodes for example foo || bar traverses all nodes for example foo >> 1 traverses all nodes for example def f ((*, p)); end traverses all nodes for example def f a, *r, p, &b; end traverses all nodes for example +2.0 ** 10 traverses all nodes for example 42.1i traverses all nodes for example p <<~E x E traverses all nodes for example ->{ } traverses all nodes for example a b(c d), 1 do end traverses all nodes for example <<-"HERE" a\ b HERE traverses all nodes for example p <<~E x y E traverses all nodes for example [1, *foo, 2] traverses all nodes for example case foo; in [x, y,] then true; end traverses all nodes for example while class Foo; tap do end; end; break; end traverses all nodes for example <<-"HERE" #@@1 HERE traverses all nodes for example case foo; in x, y then nil; end traverses all nodes for example /\xa8/n =~ "" traverses all nodes for example { foo: 2 } traverses all nodes for example case foo; when 'bar', 'baz'; bar; end traverses all nodes for example fun(f bar) 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 def f o=1, &b; end traverses all nodes for example `foo#{bar}baz` traverses all nodes for example ->(a; foo, bar) { } traverses all nodes for example fun(&bar) traverses all nodes for example alias $a $+ traverses all nodes for example begin; meth; rescue; foo; else; bar; end traverses all nodes for example "#{1}" traverses all nodes for example a b(c(d)), "x" do end traverses all nodes for example foo == 1 traverses all nodes for example unless foo then bar; end traverses all nodes for example p ->() do a() do end end traverses all nodes for example def f o=1, *r, &b; end traverses all nodes for example ::A, foo = foo traverses all nodes for example %w[ #@@1 ] traverses all nodes for example foo::C ||= raise(bar) rescue nil traverses all nodes for example begin; meth; rescue foo => ex; bar; end traverses all nodes for example case foo; in ->{ 42 } then true; end traverses all nodes for example case foo; in "#{ %Q{a} }": then true; end traverses all nodes for example case foo; in a: 1, b: 2 then true; end traverses all nodes for example defined? foo traverses all nodes for example def f *r, &b; end traverses all nodes for example def f(foo=1, bar=2); end traverses all nodes for example case foo; in x then x; end traverses all nodes for example foo.a += 1 traverses all nodes for example foo::(1) traverses all nodes for example super foo traverses all nodes for example a = b = raise :x traverses all nodes for example a # # &.foo traverses all nodes for example foo += meth rescue bar traverses all nodes for example case foo; in [x, *, y] then true; end traverses all nodes for example case foo; in [x, y, *z] then true; end traverses all nodes for example case foo; in A::B then true; end traverses all nodes for example case 1; in 2; 3; else; 4; end traverses all nodes for example m [], 1 do end traverses all nodes for example foo::m += raise bar rescue nil traverses all nodes for example /foo#{bar}baz/ traverses all nodes for example foo.C += raise(bar) rescue nil traverses all nodes for example foo::A = 1 traverses all nodes for example case foo; in {Foo: 42 } false ; end traverses all nodes for example :"#@1" traverses all nodes for example p <<~E x y E traverses all nodes for example lambda{|;a|a} traverses all nodes for example fun(:foo => 1) traverses all nodes for example { foo: 2, **bar } traverses all nodes for example a&.b = 1 traverses all nodes for example self::A, foo = foo traverses all nodes for example <<`HERE` foo bar HERE traverses all nodes for example /#{1}(?bar)/ =~ 'bar' traverses all nodes for example a b{c d}, "x" do end traverses all nodes for example %I[#@1] traverses all nodes for example super foo, bar do end traverses all nodes for example fun (1 ) traverses all nodes for example foo[0, 1] += 2 traverses all nodes for example -2.0 ** 10 traverses all nodes for example begin; meth; rescue; baz; ensure; bar; end traverses all nodes for example case foo; in "#{ %q{a} }": then true; end traverses all nodes for example def String::foo; end traverses all nodes for example f{ |a, o=1, &b| } traverses all nodes for example def f a, o=1, &b; end traverses all nodes for example case foo; in 1.. then true; end traverses all nodes for example fun(:foo => 1, &baz) traverses all nodes for example case foo; in **nil then true; end traverses all nodes for example f{ |o=1, &b| } traverses all nodes for example f{ } traverses all nodes for example %x{a\ b} traverses all nodes for example a b(c(d)), /x/m do end traverses all nodes for example def f(**); end traverses all nodes for example f(a ? "a":1) traverses all nodes for example foo = raise(bar) rescue nil traverses all nodes for example foo >= 1 traverses all nodes for example @@foo traverses all nodes for example if foo then bar; end traverses all nodes for example a b(c(d)), 1 do end traverses all nodes for example def f **baz, &b; end traverses all nodes for example a b{c d}, :e do end traverses all nodes for example [1, *foo] traverses all nodes for example __LINE__ traverses all nodes for example def self.m; _1; end traverses all nodes for example fun (1) {} traverses all nodes for example 'a\ b' traverses all nodes for example meth (-1.3).abs traverses all nodes for example !(foo..bar) traverses all nodes for example f{ |a, &b| } traverses all nodes for example def f foo: -1 ; end traverses all nodes for example foo[0] += raise bar rescue nil traverses all nodes for example undef foo, :bar, :"foo#{1}" traverses all nodes for example <(a: ->{_1}) {a} traverses all nodes for example def f ((*r)); end traverses all nodes for example %i[ #@@1 ] traverses all nodes for example +42 traverses all nodes for example ->{ } traverses all nodes for example foo[bar,] traverses all nodes for example self::a, foo = foo traverses all nodes for example foo[0, 1] += m foo traverses all nodes for example B::A += 1 traverses all nodes for example fun(foo, :foo => 1, &baz) traverses all nodes for example yield traverses all nodes for example a # # &.foo traverses all nodes for example def f ((a, *, p)); end traverses all nodes for example yield foo traverses all nodes for example def String; end traverses all nodes for example foo - 1 traverses all nodes for example def foo() a:b end traverses all nodes for example def m; class << self; A = nil; end; end traverses all nodes for example case foo; in [x, *y, z] then true; end traverses all nodes for example %x{#@@1} traverses all nodes for example foo && (a, b = bar) traverses all nodes for example begin foo!; bar! end traverses all nodes for example meth 1 do end.fun(bar) traverses all nodes for example +foo traverses all nodes for example break() traverses all nodes for example case foo; when 'bar' then bar; end traverses all nodes for example 42ri traverses all nodes for example %i[foo bar] traverses all nodes for example def m; class << self; class C; end; end; end traverses all nodes for example f{ |*s| } traverses all nodes for example [ 1, 2 => 3 ] traverses all nodes for example 1...2 traverses all nodes for example case foo; in self then true; end traverses all nodes for example foo > 1 traverses all nodes for example a b{c d}, 1.0 do end traverses all nodes for example return() traverses all nodes for example def foo =begin =end end traverses all nodes for example a ||= 1 traverses all nodes for example f{ |**baz, &b| } traverses all nodes for example def f a, *r, &b; end traverses all nodes for example case foo; in x if true; nil; end traverses all nodes for example case [__FILE__, __LINE__ + 1, __ENCODING__] in [__FILE__, __LINE__, __ENCODING__] end traverses all nodes when a class defines `on_block_pass` calls it for all block-pass arguments for example -1.33 traverses all nodes for example def f(**nil); end traverses all nodes for example case; when foo; 'foo'; end traverses all nodes for example foo < 1 traverses all nodes for example a &&= 1 traverses all nodes for example %I() traverses all nodes for example a # # .foo traverses all nodes for example def f (foo: 1, bar: 2, **baz, &b); end traverses all nodes for example m = -> *args do end traverses all nodes for example !(a, b = foo) traverses all nodes when a class defines on_arg calls it for all arguments for example begin; meth; rescue Exception, foo; bar; end traverses all nodes for example unless foo; bar; end traverses all nodes for example case foo; in { a: 1 } then true; end traverses all nodes for example def f ((*r, p)); end traverses all nodes for example p :foo, {** proc do end, b: proc do end} traverses all nodes for example f{ |a| } traverses all nodes for example a b{c d}, 1.0r do end traverses all nodes for example a, b = *foo, bar traverses all nodes for example f{ |*r, p, &b| } traverses all nodes for example super do end traverses all nodes for example meth[] {} traverses all nodes for example case foo; in { a: 1, } then true; end traverses all nodes for example return traverses all nodes for example <<-"HERE" #@1 HERE traverses all nodes for example a += b = raise :x traverses all nodes for example m "#{}#{()}" traverses all nodes for example foo, bar, baz = 1, 2 traverses all nodes for example case foo; in "#{ 'a' }": then true; end traverses all nodes for example assert do: true traverses all nodes for example 1..2 traverses all nodes for example `#@@1` traverses all nodes for example <<-`HERE` #@1 HERE traverses all nodes for example case foo; in {a: 2} false ; end 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 %W"#{1}" traverses all nodes for example <<-E 1 \ 2 3 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 a b{c d}, /x/ do end traverses all nodes for example <<'HERE' foo bar HERE traverses all nodes for example %i[ #@1 ] traverses all nodes for example %q{a\ b} traverses all nodes for example %Q{#@1} traverses all nodes for example case foo; in A[1, 2] then true; end traverses all nodes for example { 1 => 2 } traverses all nodes for example -> (a) { } traverses all nodes for example def x(_4) end traverses all nodes for example while class << self; tap do end; end; break; end traverses all nodes for example self traverses all nodes for example f{ |foo: 1, &b| } traverses all nodes for example foo & 1 traverses all nodes for example %s{#@@1} traverses all nodes for example %q{#@@1} traverses all nodes for example $var = 10 traverses all nodes RuboCop::AST::DefinedNode #receiver is expected to be nil #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 #method_name is expected to eq :defined? RuboCop::AST::RescueNode #else? without an else statement is expected not to be else with an else statement is expected to be else #else_branch without an else statement is expected to be nil with an else statement is expected to be send type #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 #resbody_branches is expected to eq 2 is expected to all be resbody type .new is expected to be a kind of RuboCop::AST::RescueNode #body is expected to be send type RuboCop::AST::ReturnNode behaves like wrapped arguments node .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 #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 a single argument and braces is expected to eq 1 with no arguments and braces is expected to be empty with multiple literal arguments is expected to eq 2 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 .new with a `casgn` node is expected to be a kind of RuboCop::AST::CasgnNode #expression is expected to eq s(:send, nil, :value) RuboCop::AST::ArrayNode #each_value without block is expected to be a kind of Enumerator with block is expected to be a kind of RuboCop::AST::ArrayNode is expected to eq ["(int 1)", "(int 2)", "(int 3)"] .new is expected to be a kind of RuboCop::AST::ArrayNode #percent_literal? with square brackets is expected not to be percent literal :string is expected not to be percent literal is expected not to be percent literal :symbol with a string percent literal is expected to be percent literal is expected to be percent literal :string is expected not to be percent literal :symbol with a symbol percent literal is expected to be percent literal is expected not to be percent literal :string is expected to be percent literal :symbol #square_brackets? with a percent literal is expected not to be square brackets with square brackets is expected to be square brackets #bracketed? with square brackets is expected to be bracketed unbracketed is expected to be nil with a percent literal is expected to be bracketed #values with an array of literals is expected to eq 3 is expected to all be literal with an array of variables is expected to all be send type is expected to eq 2 with an empty array is expected to be empty RuboCop::AST::ConstNode #absolute? is expected to be absolute with a non-namespaced constant is expected not to be absolute with a constant not starting with :: is expected not to be absolute #namespace is expected to eq "::Foo::Bar" #module_name? is expected not to be module name with a constant with a lowercase letter is expected to be module name #short_name is expected to eq :BAZ #relative? with a non-namespaced constant is expected to be relative #each_path yields all parts of the namespace RuboCop::AST::IntNode #value is expected to eq 10 #sign? explicit negative int is expected to be sign explicit positive int is expected to be sign .new is expected to be a kind of RuboCop::AST::IntNode RuboCop::AST::BlockNode #opening_delimiter when enclosed in do-end keywords is expected to eq "do" when enclosed in braces is expected to eq "{" #single_line? when block is on several lines is expected not to be single line when block is on a single line is expected to be single line #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 #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] with no arguments is expected to be empty all argument types is expected to eq [:a, :b, :c, :d, :e, :f, :g, :h, :i] #receiver with safe navigation operator call is expected to eq "foo" with dot operator call is expected to eq "foo" #delimiters when enclosed in do-end keywords is expected to eq ["do", "end"] when enclosed in braces is expected to eq ["{", "}"] #lambda? when block belongs to a non-lambda method is expected not to be lambda when block belongs to a method lambda is expected to be lambda when block belongs to a stabby lambda is expected to be lambda #keywords? when enclosed in do-end keywords is expected to be keywords when enclosed in braces is expected not to be keywords .new is expected to be a kind of RuboCop::AST::BlockNode #closing_delimiter when enclosed in do-end keywords is expected to eq "end" when enclosed in braces is expected to eq "}" #arguments? with destructuring arguments is expected to be arguments with a single argument is expected to be arguments with no arguments is expected not 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 #void_context? when block method is tap is expected to be 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 #braces? when enclosed in do-end keywords is expected not to be braces when enclosed in braces is expected to be braces #arguments with destructured arguments is expected to eq 2 with multiple mixed arguments is expected to eq 2 >= Ruby 2.7 using numbered parameters is expected to be empty 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 RuboCop::AST::NodePattern wildcards 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) at the root level is expected to match code s(:sclass, s(:self), s(:def, :something, s(:args), s(:int, 1))) and :freeze negated behaves like nonmatching doesn't match within a sequence is expected to match code nil and :Const named wildcards in head position of a sequence is expected to match code s(:int, 1), :+, and s(:send, nil, :a) 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) within a union confined to the union without unification is expected to match code s(:int, 2) and s(:int, 1) with partial unification 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) that can not be unified behaves like nonmatching doesn't match with a succeeding unifying constraint 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 branches without the wildcard encountered after behaves like invalid is invalid encountered first behaves like invalid is invalid 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)) within a sequence with values which can be unified is expected to match code s(:int, 5), :+, and s(:int, 5) 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 literals bare literal on a matching literal is expected to match code :bar on a node behaves like nonmatching doesn't match negative integer literals is expected to match code -100 negative float literals is expected to match code -2.5 positive float literals is expected to match code 1.0 double quoted string literals is expected to match code "foo" single quoted string literals is expected to match code "foo" symbol literals is expected to match code :foo caret (ascend) 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 inside a union is expected to match code "abc" inside an intersection is expected to match code 1 using unification to match self within parent with self in the right position is expected to match code 2 with self in the wrong position behaves like nonmatching doesn't match repeated twice 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 ellipsis 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 nested sequence at the end, but no remaining child 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) preceding a capture behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block 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 with a wildcard at the end, but no remaining child to match it behaves like nonmatching doesn't match 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 when nested in complex ways with (send str :<< str) behaves like nonmatching doesn't match 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) on a sequence with a matching node behaves like nonmatching doesn't match 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) 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) captures which also perform a match 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 when nested 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 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 yields captured value(s) and returns true if there is a block returns captured values if there is no 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 with captures 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 it errors raises an error with the right location 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 called on non-matching code returns an enumerator yielding nothing 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 with a pattern without captures def_node_matcher returns the method name when it errors raises an error with the right location when called on matching code is expected to match code :hello when called on non-matching code behaves like nonmatching doesn't match def_node_search returns the method name without a predicate name when called on matching code returns an enumerator yielding the matches when called on non-matching code returns an enumerator yielding nothing when it errors raises an error with the right location with a predicate name 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 match code nil, :foo, s(:sym, :hello), and s(:sym, :world) 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 simple sequence 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 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 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) with a nested sequence in head position behaves like invalid is invalid node type for a child on a child with a different type behaves like nonmatching doesn't match 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 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 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 a different type behaves like nonmatching doesn't match 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) on a node with fewer children, with a wildcard preceding behaves like nonmatching doesn't match on a node with the same type and fewer children behaves like nonmatching doesn't match captures on a wildcard 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 against nil (bug #5470) behaves like nonmatching doesn't match 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 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 in head position in a sequence against literal (bug #5470) behaves like nonmatching doesn't match nested in any child behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block 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 comments behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block nil against a node pattern (bug #5470) behaves like nonmatching doesn't match nil literals is expected to match code nil value in AST behaves like nonmatching doesn't match nil value in AST, use nil? method is expected to match code nil and :foo unions variadic multiple works for complex cases with variadic terms works for cases with variadic terms before and after union works for cases with fixed arity before and after union works for cases with variadic terms after union with fixed 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 string literals is expected to match code s(:str, "a") and :upcase containing integer literals is expected to match code s(:int, 10) and :abs 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 containing mixed node and literals is expected to match code nil and :obj 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 nested inside a sequence is expected to match code s(:const, nil, :Const) and :method with a nested sequence is expected to match code s(:const, nil, :Const) and :method params when negated, with a nonmatching value is expected to match code s(:const, s(:const, nil, :Namespace), :B) and :A when negated, with a matching value 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 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 when inside a union, with a matching value is expected to match code s(:int, 10) and 10 without explicit number is expected to match code s(:const, s(:const, nil, :Namespace), :A), :A, and s(:const, nil, :Namespace) 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 extra are provided raises an ArgumentError when not provided raises an ArgumentError when provided as argument to match is expected to match code s(:int, 10) and {:foo=>#} in a nested sequence is expected to match code s(:send, s(:send, s(:int, 5), :dec), :inc), :inc, and :dec param number zero in a position which does not match original target node behaves like nonmatching doesn't match in a position which matches original target node is expected to match code 1 when inside an intersection is expected to match code s(:int, 20), 10, and 20 when preceded by ... is expected to match code s(:send, s(:int, 1), :+, s(:int, 10)) and s(:int, 10) descend 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 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)) 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 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 without match behaves like nonmatching doesn't match repeated using ? 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 behaves like repeated pattern 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]" 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 with too many matching children behaves like nonmatching doesn't match using * without capture is expected to match code s(:sym, :hello), s(:int, 1), s(:int, 2), and s(:int, 3) 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 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 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 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]" at beginning of sequence behaves like invalid is invalid 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 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 with zero match behaves like nonmatching doesn't match captures within union 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 yields captured value(s) and returns true if there is a block returns captured values if there is no block with a different number of captures in each branch behaves like invalid is invalid within nested sequences behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block bare node type on a node with the same type is expected to match code s(:send, nil, :obj) and :method yaml compatibility is expected to match code s(:send, nil, :obj) and :method on a node with a different type behaves like nonmatching doesn't match marshal compatibility is expected to match code s(:send, nil, :obj) and :method #to_s is instructive #dup is expected to match code s(:send, nil, :obj) and :method #== returns true iff the patterns are similar on a node with a matching, hyphenated type is expected to match code s(:lvasgn, :a), :+, and s(:int, 1) #pattern returns the pattern regexp matches symbols or strings bad syntax with negated closing curly behaves like invalid is invalid with unmatched closing paren behaves like invalid is invalid with empty union behaves like invalid is invalid with unmatched closing curly behaves like invalid is invalid with unmatched opening paren and `...` behaves like invalid is invalid with empty union subsequence in seq head behaves like invalid is invalid with doubled ellipsis is expected to match code "foo" with unmatched opening curly behaves like invalid is invalid with empty parentheses behaves like invalid is invalid with empty intersection behaves like invalid is invalid with variadic unions where not supported behaves like invalid is invalid with negated closing paren behaves like invalid is invalid with leading comma in arg list behaves like invalid is invalid with unsupported subsequence in seq head within union behaves like invalid is invalid with negated ellipsis behaves like invalid is invalid with doubled comma in arg list behaves like invalid is invalid with unmatched opening paren behaves like invalid is invalid captures on ... 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 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 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 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 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 [] 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 set 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 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 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 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 remaining patterns 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 in any order doubled 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 separated by an 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 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 yields captured value(s) and returns true if there is a block returns captured values if there is no 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 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 with too few children behaves like nonmatching doesn't match with too many children behaves like nonmatching doesn't match 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 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 nested behaves like invalid is invalid doubled with ellipsis in wrong order behaves like nonmatching doesn't match 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 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 .descend yields the given argument if it is not a Node yields all children depth first predicates 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) 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 true is expected to match code s(:int, 2), :+, and s(:float, 2.0) 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 applied to an integer for which the predicate is false behaves like nonmatching doesn't match when negated is expected to match code s(:int, 1) and :inc 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 when in last-child position, but all children have already been matched 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 with a named argument for which the predicate is false behaves like nonmatching doesn't match 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 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" commas with commas randomly strewn around behaves like invalid is invalid funcalls with one argument is expected to match code s(:str, "foo") and "foo" 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" RuboCop::AST::AndNode #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 #rhs with a semantic and node is expected to be int type with a logical and node is expected to be int type #operator with a logical and node is expected to eq "&&" with a semantic and node is expected to eq "and" #alternate_operator with a logical and node is expected to eq "and" with a semantic and node is expected to eq "&&" .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 #inverse_operator with a logical and node is expected to eq "||" with a semantic and node is expected to eq "or" #lhs with a logical and node is expected to be sym type with a semantic and node is expected to be sym 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 RuboCop::AST::Token type predicates #left_brace? returns true for right_bracket tokens returns false for non right_bracket tokens #dot? returns false for non dot tokens returns true for dot tokens with braces & parens #left_curly_brace? returns false for non left block brace tokens returns true for left block brace tokens #right_curly_brace? returns true for all right brace tokens returns false for non right brace tokens #left_brace? returns true for left hash brace tokens returns false for non left hash brace tokens #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_bracket? returns false for non right_bracket tokens returns true for all right_bracket tokens #semicolon? returns false for non semicolon tokens returns true for semicolon tokens #end? returns true for end tokens returns false for non end tokens #new_line? returns false for non new line tokens returns true for new line tokens #comment? returns false for non comment tokens returns true for comment tokens #regexp_dots? returns true for regexp tokens returns false for non comma tokens #left_ref_bracket? returns true for left_ref_bracket tokens returns false for non left_ref_bracket tokens #comma? returns false for non comma tokens returns true for comma tokens #left_bracket? returns true for all left_bracket tokens returns false for non left_bracket tokens #rescue_modifier? returns false for non rescue modifier tokens returns true for rescue modifier tokens #left_array_bracket? returns false for non left_array_bracket tokens returns true for left_array_bracket tokens #equals_sign? returns false for non equals sign tokens returns true for equals sign tokens #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 #line returns line of token #column returns index of first char in token range on that line #space_before returns nil when there is not a space before token returns nil when it is on the first line returns truthy MatchData when there is a space before token #to_s returns string of token data #end_pos returns index of last char in token range of entire source .from_parser_token sets parser token's type to rubocop token's type returns a #to_s useful for debugging sets parser token's text to rubocop token's text sets parser token's range to rubocop token's pos RuboCop::AST::OpAsgnNode #expression is expected to eq s(:send, nil, :value) #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 #name is expected to eq :var #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode Finished in 3.44 seconds (files took 1.2 seconds to load) 2392 examples, 0 failures Randomized with seed 17249 ┌──────────────────────────────────────────────────────────────────────────────┐ │ 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_all.deb'. dpkg-genbuildinfo --build=binary -O../ruby-rubocop-ast_1.24.0-2_amd64.buildinfo dpkg-genchanges --build=binary -O../ruby-rubocop-ast_1.24.0-2_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) dpkg-genchanges: info: not including original source code in upload I: copying local configuration I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/1783005 and its subdirectories I: Current time: Thu Aug 7 03:19:16 -12 2025 I: pbuilder-time-stamp: 1754579956 Thu Aug 7 15:19:16 UTC 2025 I: Signing ./b1/ruby-rubocop-ast_1.24.0-2_amd64.buildinfo as ruby-rubocop-ast_1.24.0-2_amd64.buildinfo.asc Thu Aug 7 15:19:16 UTC 2025 I: Signed ./b1/ruby-rubocop-ast_1.24.0-2_amd64.buildinfo as ./b1/ruby-rubocop-ast_1.24.0-2_amd64.buildinfo.asc Thu Aug 7 15:19:16 UTC 2025 - build #1 for ruby-rubocop-ast/trixie/amd64 on ionos11-amd64 done. Starting cleanup. All cleanup done. Thu Aug 7 15:19:16 UTC 2025 - reproducible_build.sh stopped running as /tmp/jenkins-script-a0Bx5Q2w, removing. /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh: total 16 drwxr-xr-x 2 jenkins jenkins 4096 Aug 7 15:19 b1 drwxr-xr-x 2 jenkins jenkins 4096 Aug 7 15:17 b2 -rw------- 1 jenkins jenkins 3390 Aug 7 15:17 rbuildlog.uLqkVUe -rw-r--r-- 1 jenkins jenkins 2224 Dec 21 2022 ruby-rubocop-ast_1.24.0-2.dsc /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b1: total 332 -rw-r--r-- 1 jenkins jenkins 244640 Aug 7 15:19 build.log -rw-r--r-- 1 jenkins jenkins 3600 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2.debian.tar.xz -rw-r--r-- 1 jenkins jenkins 2224 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2.dsc -rw-r--r-- 1 jenkins jenkins 53520 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2_all.deb -rw-r--r-- 1 jenkins jenkins 7713 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2_amd64.buildinfo -rw-r--r-- 1 jenkins jenkins 8595 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2_amd64.buildinfo.asc -rw-r--r-- 1 jenkins jenkins 1128 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2_amd64.changes -rw-r--r-- 1 jenkins jenkins 1308 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2_source.changes /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b2: total 0 Thu Aug 7 15:19:16 UTC 2025 I: Deleting $TMPDIR on ionos11-amd64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Thu Aug 7 03:17:54 -12 2025 I: pbuilder-time-stamp: 1754579874 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [ruby-rubocop-ast_1.24.0-2.dsc] I: copying [./ruby-rubocop-ast_1.24.0.orig.tar.gz] I: copying [./ruby-rubocop-ast_1.24.0-2.debian.tar.xz] I: Extracting source dpkg-source: warning: cannot verify inline signature for ./ruby-rubocop-ast_1.24.0-2.dsc: no acceptable signature found dpkg-source: info: extracting ruby-rubocop-ast in 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.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 I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/1783005/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='amd64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=40 ' DISTRIBUTION='trixie' HOME='/root' HOST_ARCH='amd64' IFS=' ' INVOCATION_ID='4af5ed578a3e46609ae57700827bbabd' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='1783005' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/pbuilderrc_OZO1 --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b1 --logfile b1/build.log ruby-rubocop-ast_1.24.0-2.dsc' SUDO_GID='111' SUDO_UID='106' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://46.16.76.132:3128' I: uname -a Linux ionos11-amd64 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 May 12 19:25 /bin -> usr/bin I: user script /srv/workspace/pbuilder/1783005/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: amd64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), gem2deb (>= 1), racc, rake, ruby-oedipus-lex, ruby-rspec, ruby-whitequark-parser (>= 3.1.1.0) dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19851 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on gem2deb (>= 1); however: Package gem2deb is not installed. pbuilder-satisfydepends-dummy depends on racc; however: Package racc is not installed. pbuilder-satisfydepends-dummy depends on rake; however: Package rake is not installed. pbuilder-satisfydepends-dummy depends on ruby-oedipus-lex; however: Package ruby-oedipus-lex is not installed. pbuilder-satisfydepends-dummy depends on ruby-rspec; however: Package ruby-rspec is not installed. pbuilder-satisfydepends-dummy depends on ruby-whitequark-parser (>= 3.1.1.0); however: Package ruby-whitequark-parser is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} ca-certificates{a} debhelper{a} devscripts{a} dh-autoreconf{a} dh-strip-nondeterminism{a} dwz{a} file{a} gem2deb{a} gem2deb-test-runner{a} gettext{a} gettext-base{a} gpg{a} gpg-agent{a} gpgconf{a} gpgv{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libassuan9{a} libb-hooks-op-check-perl{a} libclass-method-modifiers-perl{a} libclass-xsaccessor-perl{a} libclone-perl{a} libdebhelper-perl{a} libdevel-callchecker-perl{a} libdynaloader-functions-perl{a} libelf1t64{a} libencode-locale-perl{a} libexpat1{a} libffi8{a} libfile-dirlist-perl{a} libfile-homedir-perl{a} libfile-listing-perl{a} libfile-stripnondeterminism-perl{a} libfile-touch-perl{a} libfile-which-perl{a} libgcrypt20{a} libgmp-dev{a} libgmpxx4ldbl{a} libgpg-error0{a} libhtml-parser-perl{a} libhtml-tagset-perl{a} libhtml-tree-perl{a} libhttp-cookies-perl{a} libhttp-date-perl{a} libhttp-message-perl{a} libhttp-negotiate-perl{a} libimport-into-perl{a} libio-html-perl{a} libio-socket-ssl-perl{a} libksba8{a} liblwp-mediatypes-perl{a} liblwp-protocol-https-perl{a} libmagic-mgc{a} libmagic1t64{a} libmodule-runtime-perl{a} libmoo-perl{a} libnet-http-perl{a} libnet-ssleay-perl{a} libnpth0t64{a} libparams-classify-perl{a} libpipeline1{a} libpython3-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} librole-tiny-perl{a} libruby{a} libruby3.3{a} libsub-quote-perl{a} libtimedate-perl{a} libtool{a} libtry-tiny-perl{a} libuchardet0{a} libunistring5{a} liburi-perl{a} libwww-perl{a} libwww-robotrules-perl{a} libxml2{a} libyaml-0-2{a} m4{a} man-db{a} media-types{a} netbase{a} openssl{a} patchutils{a} perl-openssl-defaults{a} pinentry-curses{a} po-debconf{a} python3{a} python3-minimal{a} python3.13{a} python3.13-minimal{a} racc{a} rake{a} readline-common{a} ruby{a} ruby-all-dev{a} ruby-ast{a} ruby-csv{a} ruby-did-you-mean{a} ruby-diff-lcs{a} ruby-minitest{a} ruby-net-telnet{a} ruby-oedipus-lex{a} ruby-power-assert{a} ruby-rspec{a} ruby-rspec-core{a} ruby-rspec-expectations{a} ruby-rspec-mocks{a} ruby-rspec-support{a} ruby-ruby2-keywords{a} ruby-rubygems{a} ruby-test-unit{a} ruby-webrick{a} ruby-whitequark-parser{a} ruby-xmlrpc{a} ruby3.3{a} ruby3.3-dev{a} rubygems-integration{a} sensible-utils{a} sopv-gpgv{a} tzdata{a} wdiff{a} The following packages are RECOMMENDED but will NOT be installed: apt-file curl dctrl-tools debian-keyring debian-tag2upload-keyring dput dput-ng dupload equivs fonts-lato gnupg libarchive-cpio-perl libdata-dump-perl libdistro-info-perl libgit-wrapper-perl libgitlab-api-v4-perl libgpg-error-l10n libhtml-form-perl libhtml-format-perl libhttp-daemon-perl libio-compress-brotli-perl libjs-jquery libjson-perl liblist-compare-perl libltdl-dev libmail-sendmail-perl libmailtools-perl libnamespace-clean-perl libsoap-lite-perl libstring-shellquote-perl libxstring-perl licensecheck lintian lynx lzip pristine-tar python3-apt python3-argcomplete python3-debian python3-magic python3-requests python3-unidiff python3-xdg ruby-sdbm ruby3.3-doc sopv-doc strace unzip wget zip 0 packages upgraded, 129 newly installed, 0 to remove and 0 not upgraded. Need to get 36.1 MB of archives. After unpacking 140 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian trixie/main amd64 libexpat1 amd64 2.7.1-2 [108 kB] Get: 2 http://deb.debian.org/debian trixie/main amd64 libpython3.13-minimal amd64 3.13.5-2 [862 kB] Get: 3 http://deb.debian.org/debian trixie/main amd64 python3.13-minimal amd64 3.13.5-2 [2224 kB] Get: 4 http://deb.debian.org/debian trixie/main amd64 python3-minimal amd64 3.13.5-1 [27.2 kB] Get: 5 http://deb.debian.org/debian trixie/main amd64 media-types all 13.0.0 [29.3 kB] Get: 6 http://deb.debian.org/debian trixie/main amd64 netbase all 6.5 [12.4 kB] Get: 7 http://deb.debian.org/debian trixie/main amd64 tzdata all 2025b-4 [260 kB] Get: 8 http://deb.debian.org/debian trixie/main amd64 libffi8 amd64 3.4.8-2 [24.1 kB] Get: 9 http://deb.debian.org/debian trixie/main amd64 readline-common all 8.2-6 [69.4 kB] Get: 10 http://deb.debian.org/debian trixie/main amd64 libreadline8t64 amd64 8.2-6 [169 kB] Get: 11 http://deb.debian.org/debian trixie/main amd64 libpython3.13-stdlib amd64 3.13.5-2 [1956 kB] Get: 12 http://deb.debian.org/debian trixie/main amd64 python3.13 amd64 3.13.5-2 [757 kB] Get: 13 http://deb.debian.org/debian trixie/main amd64 libpython3-stdlib amd64 3.13.5-1 [10.2 kB] Get: 14 http://deb.debian.org/debian trixie/main amd64 python3 amd64 3.13.5-1 [28.2 kB] Get: 15 http://deb.debian.org/debian trixie/main amd64 sensible-utils all 0.0.25 [25.0 kB] Get: 16 http://deb.debian.org/debian trixie/main amd64 openssl amd64 3.5.1-1 [1494 kB] Get: 17 http://deb.debian.org/debian trixie/main amd64 ca-certificates all 20250419 [162 kB] Get: 18 http://deb.debian.org/debian trixie/main amd64 libmagic-mgc amd64 1:5.46-5 [338 kB] Get: 19 http://deb.debian.org/debian trixie/main amd64 libmagic1t64 amd64 1:5.46-5 [109 kB] Get: 20 http://deb.debian.org/debian trixie/main amd64 file amd64 1:5.46-5 [43.6 kB] Get: 21 http://deb.debian.org/debian trixie/main amd64 gettext-base amd64 0.23.1-2 [243 kB] Get: 22 http://deb.debian.org/debian trixie/main amd64 libuchardet0 amd64 0.0.8-1+b2 [68.9 kB] Get: 23 http://deb.debian.org/debian trixie/main amd64 groff-base amd64 1.23.0-9 [1187 kB] Get: 24 http://deb.debian.org/debian trixie/main amd64 bsdextrautils amd64 2.41-5 [94.6 kB] Get: 25 http://deb.debian.org/debian trixie/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB] Get: 26 http://deb.debian.org/debian trixie/main amd64 man-db amd64 2.13.1-1 [1469 kB] Get: 27 http://deb.debian.org/debian trixie/main amd64 m4 amd64 1.4.19-8 [294 kB] Get: 28 http://deb.debian.org/debian trixie/main amd64 autoconf all 2.72-3.1 [494 kB] Get: 29 http://deb.debian.org/debian trixie/main amd64 autotools-dev all 20240727.1 [60.2 kB] Get: 30 http://deb.debian.org/debian trixie/main amd64 automake all 1:1.17-4 [862 kB] Get: 31 http://deb.debian.org/debian trixie/main amd64 autopoint all 0.23.1-2 [770 kB] Get: 32 http://deb.debian.org/debian trixie/main amd64 libdebhelper-perl all 13.24.2 [90.9 kB] Get: 33 http://deb.debian.org/debian trixie/main amd64 libtool all 2.5.4-4 [539 kB] Get: 34 http://deb.debian.org/debian trixie/main amd64 dh-autoreconf all 20 [17.1 kB] Get: 35 http://deb.debian.org/debian trixie/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 36 http://deb.debian.org/debian trixie/main amd64 libfile-stripnondeterminism-perl all 1.14.1-2 [19.7 kB] Get: 37 http://deb.debian.org/debian trixie/main amd64 dh-strip-nondeterminism all 1.14.1-2 [8620 B] Get: 38 http://deb.debian.org/debian trixie/main amd64 libelf1t64 amd64 0.192-4 [189 kB] Get: 39 http://deb.debian.org/debian trixie/main amd64 dwz amd64 0.15-1+b1 [110 kB] Get: 40 http://deb.debian.org/debian trixie/main amd64 libunistring5 amd64 1.3-2 [477 kB] Get: 41 http://deb.debian.org/debian trixie/main amd64 libxml2 amd64 2.12.7+dfsg+really2.9.14-2.1 [698 kB] Get: 42 http://deb.debian.org/debian trixie/main amd64 gettext amd64 0.23.1-2 [1680 kB] Get: 43 http://deb.debian.org/debian trixie/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 44 http://deb.debian.org/debian trixie/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 45 http://deb.debian.org/debian trixie/main amd64 debhelper all 13.24.2 [919 kB] Get: 46 http://deb.debian.org/debian trixie/main amd64 libgpg-error0 amd64 1.51-4 [82.1 kB] Get: 47 http://deb.debian.org/debian trixie/main amd64 libassuan9 amd64 3.0.2-2 [61.5 kB] Get: 48 http://deb.debian.org/debian trixie/main amd64 libgcrypt20 amd64 1.11.0-7 [843 kB] Get: 49 http://deb.debian.org/debian trixie/main amd64 gpgconf amd64 2.4.7-21+b3 [129 kB] Get: 50 http://deb.debian.org/debian trixie/main amd64 libksba8 amd64 1.6.7-2+b1 [136 kB] Get: 51 http://deb.debian.org/debian trixie/main amd64 libnpth0t64 amd64 1.8-3 [23.2 kB] Get: 52 http://deb.debian.org/debian trixie/main amd64 gpg amd64 2.4.7-21+b3 [634 kB] Get: 53 http://deb.debian.org/debian trixie/main amd64 pinentry-curses amd64 1.3.1-2 [86.4 kB] Get: 54 http://deb.debian.org/debian trixie/main amd64 gpg-agent amd64 2.4.7-21+b3 [271 kB] Get: 55 http://deb.debian.org/debian trixie/main amd64 libfile-dirlist-perl all 0.05-3 [7600 B] Get: 56 http://deb.debian.org/debian trixie/main amd64 libfile-which-perl all 1.27-2 [15.1 kB] Get: 57 http://deb.debian.org/debian trixie/main amd64 libfile-homedir-perl all 1.006-2 [42.4 kB] Get: 58 http://deb.debian.org/debian trixie/main amd64 libfile-touch-perl all 0.12-2 [8816 B] Get: 59 http://deb.debian.org/debian trixie/main amd64 libclass-method-modifiers-perl all 2.15-1 [18.0 kB] Get: 60 http://deb.debian.org/debian trixie/main amd64 libclass-xsaccessor-perl amd64 1.19-4+b5 [36.1 kB] Get: 61 http://deb.debian.org/debian trixie/main amd64 libb-hooks-op-check-perl amd64 0.22-3+b2 [10.6 kB] Get: 62 http://deb.debian.org/debian trixie/main amd64 libdynaloader-functions-perl all 0.004-2 [12.2 kB] Get: 63 http://deb.debian.org/debian trixie/main amd64 libdevel-callchecker-perl amd64 0.009-2 [15.6 kB] Get: 64 http://deb.debian.org/debian trixie/main amd64 libparams-classify-perl amd64 0.015-2+b4 [22.5 kB] Get: 65 http://deb.debian.org/debian trixie/main amd64 libmodule-runtime-perl all 0.018-1 [17.8 kB] Get: 66 http://deb.debian.org/debian trixie/main amd64 libimport-into-perl all 1.002005-2 [11.3 kB] Get: 67 http://deb.debian.org/debian trixie/main amd64 librole-tiny-perl all 2.002004-1 [21.4 kB] Get: 68 http://deb.debian.org/debian trixie/main amd64 libsub-quote-perl all 2.006008-1 [21.8 kB] Get: 69 http://deb.debian.org/debian trixie/main amd64 libmoo-perl all 2.005005-1 [58.0 kB] Get: 70 http://deb.debian.org/debian trixie/main amd64 libencode-locale-perl all 1.05-3 [12.9 kB] Get: 71 http://deb.debian.org/debian trixie/main amd64 libtimedate-perl all 2.3300-2 [39.3 kB] Get: 72 http://deb.debian.org/debian trixie/main amd64 libhttp-date-perl all 6.06-1 [10.7 kB] Get: 73 http://deb.debian.org/debian trixie/main amd64 libfile-listing-perl all 6.16-1 [12.4 kB] Get: 74 http://deb.debian.org/debian trixie/main amd64 libhtml-tagset-perl all 3.24-1 [14.7 kB] Get: 75 http://deb.debian.org/debian trixie/main amd64 liburi-perl all 5.30-1 [105 kB] Get: 76 http://deb.debian.org/debian trixie/main amd64 libhtml-parser-perl amd64 3.83-1+b2 [99.7 kB] Get: 77 http://deb.debian.org/debian trixie/main amd64 libhtml-tree-perl all 5.07-3 [211 kB] Get: 78 http://deb.debian.org/debian trixie/main amd64 libclone-perl amd64 0.47-1+b1 [13.9 kB] Get: 79 http://deb.debian.org/debian trixie/main amd64 libio-html-perl all 1.004-3 [16.2 kB] Get: 80 http://deb.debian.org/debian trixie/main amd64 liblwp-mediatypes-perl all 6.04-2 [20.2 kB] Get: 81 http://deb.debian.org/debian trixie/main amd64 libhttp-message-perl all 7.00-2 [79.8 kB] Get: 82 http://deb.debian.org/debian trixie/main amd64 libhttp-cookies-perl all 6.11-1 [19.1 kB] Get: 83 http://deb.debian.org/debian trixie/main amd64 libhttp-negotiate-perl all 6.01-2 [13.1 kB] Get: 84 http://deb.debian.org/debian trixie/main amd64 perl-openssl-defaults amd64 7+b2 [6724 B] Get: 85 http://deb.debian.org/debian trixie/main amd64 libnet-ssleay-perl amd64 1.94-3 [339 kB] Get: 86 http://deb.debian.org/debian trixie/main amd64 libio-socket-ssl-perl all 2.089-1 [223 kB] Get: 87 http://deb.debian.org/debian trixie/main amd64 libnet-http-perl all 6.23-1 [23.9 kB] Get: 88 http://deb.debian.org/debian trixie/main amd64 liblwp-protocol-https-perl all 6.14-1 [10.8 kB] Get: 89 http://deb.debian.org/debian trixie/main amd64 libtry-tiny-perl all 0.32-1 [22.9 kB] Get: 90 http://deb.debian.org/debian trixie/main amd64 libwww-robotrules-perl all 6.02-1 [12.9 kB] Get: 91 http://deb.debian.org/debian trixie/main amd64 libwww-perl all 6.78-1 [183 kB] Get: 92 http://deb.debian.org/debian trixie/main amd64 patchutils amd64 0.4.2-1 [77.5 kB] Get: 93 http://deb.debian.org/debian trixie/main amd64 gpgv amd64 2.4.7-21+b3 [241 kB] Get: 94 http://deb.debian.org/debian trixie/main amd64 sopv-gpgv all 0.1.4-1 [11.3 kB] Get: 95 http://deb.debian.org/debian trixie/main amd64 wdiff amd64 1.2.2-9 [122 kB] Get: 96 http://deb.debian.org/debian trixie/main amd64 devscripts all 2.25.15 [1067 kB] Get: 97 http://deb.debian.org/debian trixie/main amd64 rubygems-integration all 1.19 [5488 B] Get: 98 http://deb.debian.org/debian trixie/main amd64 ruby-csv all 3.3.4-1 [42.2 kB] Get: 99 http://deb.debian.org/debian trixie/main amd64 ruby-did-you-mean all 1.6.3-2 [20.9 kB] Get: 100 http://deb.debian.org/debian trixie/main amd64 ruby-net-telnet all 0.2.0-1 [13.1 kB] Get: 101 http://deb.debian.org/debian trixie/main amd64 ruby-ruby2-keywords all 0.0.5-1 [4300 B] Get: 102 http://deb.debian.org/debian trixie/main amd64 ruby-webrick all 1.9.1-1 [59.6 kB] Get: 103 http://deb.debian.org/debian trixie/main amd64 ruby-xmlrpc all 0.3.3-2 [24.4 kB] Get: 104 http://deb.debian.org/debian trixie/main amd64 libyaml-0-2 amd64 0.2.5-2 [52.5 kB] Get: 105 http://deb.debian.org/debian trixie/main amd64 libruby3.3 amd64 3.3.8-2 [6301 kB] Get: 106 http://deb.debian.org/debian trixie/main amd64 ruby3.3 amd64 3.3.8-2 [834 kB] Get: 107 http://deb.debian.org/debian trixie/main amd64 libruby amd64 1:3.3+b1 [5440 B] Get: 108 http://deb.debian.org/debian trixie/main amd64 ruby-rubygems all 3.6.7-2 [407 kB] Get: 109 http://deb.debian.org/debian trixie/main amd64 ruby amd64 1:3.3+b1 [6560 B] Get: 110 http://deb.debian.org/debian trixie/main amd64 rake all 13.2.1-1 [65.2 kB] Get: 111 http://deb.debian.org/debian trixie/main amd64 ruby-minitest all 5.25.4-3 [66.3 kB] Get: 112 http://deb.debian.org/debian trixie/main amd64 ruby-power-assert all 2.0.3-1 [11.8 kB] Get: 113 http://deb.debian.org/debian trixie/main amd64 ruby-test-unit all 3.6.2-1 [79.1 kB] Get: 114 http://deb.debian.org/debian trixie/main amd64 gem2deb-test-runner amd64 2.2.5 [17.9 kB] Get: 115 http://deb.debian.org/debian trixie/main amd64 libgmpxx4ldbl amd64 2:6.3.0+dfsg-3 [329 kB] Get: 116 http://deb.debian.org/debian trixie/main amd64 libgmp-dev amd64 2:6.3.0+dfsg-3 [642 kB] Get: 117 http://deb.debian.org/debian trixie/main amd64 ruby3.3-dev amd64 3.3.8-2 [1045 kB] Get: 118 http://deb.debian.org/debian trixie/main amd64 ruby-all-dev amd64 1:3.3+b1 [6496 B] Get: 119 http://deb.debian.org/debian trixie/main amd64 gem2deb amd64 2.2.5 [48.0 kB] Get: 120 http://deb.debian.org/debian trixie/main amd64 racc all 1.8.1-1 [75.4 kB] Get: 121 http://deb.debian.org/debian trixie/main amd64 ruby-ast all 2.4.3-1 [10.7 kB] Get: 122 http://deb.debian.org/debian trixie/main amd64 ruby-diff-lcs all 1.5.1-1 [28.1 kB] Get: 123 http://deb.debian.org/debian trixie/main amd64 ruby-oedipus-lex all 2.6.0-2 [19.1 kB] Get: 124 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-support all 3.13.0c0e0m0s1-2 [28.5 kB] Get: 125 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB] Get: 126 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 127 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 128 http://deb.debian.org/debian trixie/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get: 129 http://deb.debian.org/debian trixie/main amd64 ruby-whitequark-parser all 3.3.4.2-2 [507 kB] Fetched 36.1 MB in 0s (80.6 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1: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 ... 19851 files and directories currently installed.) Preparing to unpack .../libexpat1_2.7.1-2_amd64.deb ... Unpacking libexpat1:amd64 (2.7.1-2) ... Selecting previously unselected package libpython3.13-minimal:amd64. Preparing to unpack .../libpython3.13-minimal_3.13.5-2_amd64.deb ... Unpacking libpython3.13-minimal:amd64 (3.13.5-2) ... Selecting previously unselected package python3.13-minimal. Preparing to unpack .../python3.13-minimal_3.13.5-2_amd64.deb ... Unpacking python3.13-minimal (3.13.5-2) ... Setting up libpython3.13-minimal:amd64 (3.13.5-2) ... Setting up libexpat1:amd64 (2.7.1-2) ... Setting up python3.13-minimal (3.13.5-2) ... Selecting previously unselected package python3-minimal. (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 ... 20185 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.13.5-1_amd64.deb ... Unpacking python3-minimal (3.13.5-1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_13.0.0_all.deb ... Unpacking media-types (13.0.0) ... Selecting previously unselected package netbase. Preparing to unpack .../2-netbase_6.5_all.deb ... Unpacking netbase (6.5) ... Selecting previously unselected package tzdata. Preparing to unpack .../3-tzdata_2025b-4_all.deb ... Unpacking tzdata (2025b-4) ... Selecting previously unselected package libffi8:amd64. Preparing to unpack .../4-libffi8_3.4.8-2_amd64.deb ... Unpacking libffi8:amd64 (3.4.8-2) ... Selecting previously unselected package readline-common. Preparing to unpack .../5-readline-common_8.2-6_all.deb ... Unpacking readline-common (8.2-6) ... Selecting previously unselected package libreadline8t64:amd64. Preparing to unpack .../6-libreadline8t64_8.2-6_amd64.deb ... Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8 to /lib/x86_64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8.2 to /lib/x86_64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8 to /lib/x86_64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8.2 to /lib/x86_64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:amd64 (8.2-6) ... Selecting previously unselected package libpython3.13-stdlib:amd64. Preparing to unpack .../7-libpython3.13-stdlib_3.13.5-2_amd64.deb ... Unpacking libpython3.13-stdlib:amd64 (3.13.5-2) ... Selecting previously unselected package python3.13. Preparing to unpack .../8-python3.13_3.13.5-2_amd64.deb ... Unpacking python3.13 (3.13.5-2) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../9-libpython3-stdlib_3.13.5-1_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.13.5-1) ... Setting up python3-minimal (3.13.5-1) ... Selecting previously unselected package python3. (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 ... 21200 files and directories currently installed.) Preparing to unpack .../000-python3_3.13.5-1_amd64.deb ... Unpacking python3 (3.13.5-1) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../001-sensible-utils_0.0.25_all.deb ... Unpacking sensible-utils (0.0.25) ... Selecting previously unselected package openssl. Preparing to unpack .../002-openssl_3.5.1-1_amd64.deb ... Unpacking openssl (3.5.1-1) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../003-ca-certificates_20250419_all.deb ... Unpacking ca-certificates (20250419) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../004-libmagic-mgc_1%3a5.46-5_amd64.deb ... Unpacking libmagic-mgc (1:5.46-5) ... Selecting previously unselected package libmagic1t64:amd64. Preparing to unpack .../005-libmagic1t64_1%3a5.46-5_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.46-5) ... Selecting previously unselected package file. Preparing to unpack .../006-file_1%3a5.46-5_amd64.deb ... Unpacking file (1:5.46-5) ... Selecting previously unselected package gettext-base. Preparing to unpack .../007-gettext-base_0.23.1-2_amd64.deb ... Unpacking gettext-base (0.23.1-2) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../008-libuchardet0_0.0.8-1+b2_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.8-1+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../009-groff-base_1.23.0-9_amd64.deb ... Unpacking groff-base (1.23.0-9) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../010-bsdextrautils_2.41-5_amd64.deb ... Unpacking bsdextrautils (2.41-5) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../011-libpipeline1_1.5.8-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../012-man-db_2.13.1-1_amd64.deb ... Unpacking man-db (2.13.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../013-m4_1.4.19-8_amd64.deb ... Unpacking m4 (1.4.19-8) ... Selecting previously unselected package autoconf. Preparing to unpack .../014-autoconf_2.72-3.1_all.deb ... Unpacking autoconf (2.72-3.1) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../015-autotools-dev_20240727.1_all.deb ... Unpacking autotools-dev (20240727.1) ... Selecting previously unselected package automake. Preparing to unpack .../016-automake_1%3a1.17-4_all.deb ... Unpacking automake (1:1.17-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../017-autopoint_0.23.1-2_all.deb ... Unpacking autopoint (0.23.1-2) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../018-libdebhelper-perl_13.24.2_all.deb ... Unpacking libdebhelper-perl (13.24.2) ... Selecting previously unselected package libtool. Preparing to unpack .../019-libtool_2.5.4-4_all.deb ... Unpacking libtool (2.5.4-4) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../020-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../021-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 .../022-libfile-stripnondeterminism-perl_1.14.1-2_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.1-2) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../023-dh-strip-nondeterminism_1.14.1-2_all.deb ... Unpacking dh-strip-nondeterminism (1.14.1-2) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../024-libelf1t64_0.192-4_amd64.deb ... Unpacking libelf1t64:amd64 (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../025-dwz_0.15-1+b1_amd64.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libunistring5:amd64. Preparing to unpack .../026-libunistring5_1.3-2_amd64.deb ... Unpacking libunistring5:amd64 (1.3-2) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../027-libxml2_2.12.7+dfsg+really2.9.14-2.1_amd64.deb ... Unpacking libxml2:amd64 (2.12.7+dfsg+really2.9.14-2.1) ... Selecting previously unselected package gettext. Preparing to unpack .../028-gettext_0.23.1-2_amd64.deb ... Unpacking gettext (0.23.1-2) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../029-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 .../030-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../031-debhelper_13.24.2_all.deb ... Unpacking debhelper (13.24.2) ... Selecting previously unselected package libgpg-error0:amd64. Preparing to unpack .../032-libgpg-error0_1.51-4_amd64.deb ... Unpacking libgpg-error0:amd64 (1.51-4) ... Selecting previously unselected package libassuan9:amd64. Preparing to unpack .../033-libassuan9_3.0.2-2_amd64.deb ... Unpacking libassuan9:amd64 (3.0.2-2) ... Selecting previously unselected package libgcrypt20:amd64. Preparing to unpack .../034-libgcrypt20_1.11.0-7_amd64.deb ... Unpacking libgcrypt20:amd64 (1.11.0-7) ... Selecting previously unselected package gpgconf. Preparing to unpack .../035-gpgconf_2.4.7-21+b3_amd64.deb ... Unpacking gpgconf (2.4.7-21+b3) ... Selecting previously unselected package libksba8:amd64. Preparing to unpack .../036-libksba8_1.6.7-2+b1_amd64.deb ... Unpacking libksba8:amd64 (1.6.7-2+b1) ... Selecting previously unselected package libnpth0t64:amd64. Preparing to unpack .../037-libnpth0t64_1.8-3_amd64.deb ... Unpacking libnpth0t64:amd64 (1.8-3) ... Selecting previously unselected package gpg. Preparing to unpack .../038-gpg_2.4.7-21+b3_amd64.deb ... Unpacking gpg (2.4.7-21+b3) ... Selecting previously unselected package pinentry-curses. Preparing to unpack .../039-pinentry-curses_1.3.1-2_amd64.deb ... Unpacking pinentry-curses (1.3.1-2) ... Selecting previously unselected package gpg-agent. Preparing to unpack .../040-gpg-agent_2.4.7-21+b3_amd64.deb ... Unpacking gpg-agent (2.4.7-21+b3) ... Selecting previously unselected package libfile-dirlist-perl. Preparing to unpack .../041-libfile-dirlist-perl_0.05-3_all.deb ... Unpacking libfile-dirlist-perl (0.05-3) ... Selecting previously unselected package libfile-which-perl. Preparing to unpack .../042-libfile-which-perl_1.27-2_all.deb ... Unpacking libfile-which-perl (1.27-2) ... Selecting previously unselected package libfile-homedir-perl. Preparing to unpack .../043-libfile-homedir-perl_1.006-2_all.deb ... Unpacking libfile-homedir-perl (1.006-2) ... Selecting previously unselected package libfile-touch-perl. Preparing to unpack .../044-libfile-touch-perl_0.12-2_all.deb ... Unpacking libfile-touch-perl (0.12-2) ... Selecting previously unselected package libclass-method-modifiers-perl. Preparing to unpack .../045-libclass-method-modifiers-perl_2.15-1_all.deb ... Unpacking libclass-method-modifiers-perl (2.15-1) ... Selecting previously unselected package libclass-xsaccessor-perl. Preparing to unpack .../046-libclass-xsaccessor-perl_1.19-4+b5_amd64.deb ... Unpacking libclass-xsaccessor-perl (1.19-4+b5) ... Selecting previously unselected package libb-hooks-op-check-perl:amd64. Preparing to unpack .../047-libb-hooks-op-check-perl_0.22-3+b2_amd64.deb ... Unpacking libb-hooks-op-check-perl:amd64 (0.22-3+b2) ... Selecting previously unselected package libdynaloader-functions-perl. Preparing to unpack .../048-libdynaloader-functions-perl_0.004-2_all.deb ... Unpacking libdynaloader-functions-perl (0.004-2) ... Selecting previously unselected package libdevel-callchecker-perl:amd64. Preparing to unpack .../049-libdevel-callchecker-perl_0.009-2_amd64.deb ... Unpacking libdevel-callchecker-perl:amd64 (0.009-2) ... Selecting previously unselected package libparams-classify-perl:amd64. Preparing to unpack .../050-libparams-classify-perl_0.015-2+b4_amd64.deb ... Unpacking libparams-classify-perl:amd64 (0.015-2+b4) ... Selecting previously unselected package libmodule-runtime-perl. Preparing to unpack .../051-libmodule-runtime-perl_0.018-1_all.deb ... Unpacking libmodule-runtime-perl (0.018-1) ... Selecting previously unselected package libimport-into-perl. Preparing to unpack .../052-libimport-into-perl_1.002005-2_all.deb ... Unpacking libimport-into-perl (1.002005-2) ... Selecting previously unselected package librole-tiny-perl. Preparing to unpack .../053-librole-tiny-perl_2.002004-1_all.deb ... Unpacking librole-tiny-perl (2.002004-1) ... Selecting previously unselected package libsub-quote-perl. Preparing to unpack .../054-libsub-quote-perl_2.006008-1_all.deb ... Unpacking libsub-quote-perl (2.006008-1) ... Selecting previously unselected package libmoo-perl. Preparing to unpack .../055-libmoo-perl_2.005005-1_all.deb ... Unpacking libmoo-perl (2.005005-1) ... Selecting previously unselected package libencode-locale-perl. Preparing to unpack .../056-libencode-locale-perl_1.05-3_all.deb ... Unpacking libencode-locale-perl (1.05-3) ... Selecting previously unselected package libtimedate-perl. Preparing to unpack .../057-libtimedate-perl_2.3300-2_all.deb ... Unpacking libtimedate-perl (2.3300-2) ... Selecting previously unselected package libhttp-date-perl. Preparing to unpack .../058-libhttp-date-perl_6.06-1_all.deb ... Unpacking libhttp-date-perl (6.06-1) ... Selecting previously unselected package libfile-listing-perl. Preparing to unpack .../059-libfile-listing-perl_6.16-1_all.deb ... Unpacking libfile-listing-perl (6.16-1) ... Selecting previously unselected package libhtml-tagset-perl. Preparing to unpack .../060-libhtml-tagset-perl_3.24-1_all.deb ... Unpacking libhtml-tagset-perl (3.24-1) ... Selecting previously unselected package liburi-perl. Preparing to unpack .../061-liburi-perl_5.30-1_all.deb ... Unpacking liburi-perl (5.30-1) ... Selecting previously unselected package libhtml-parser-perl:amd64. Preparing to unpack .../062-libhtml-parser-perl_3.83-1+b2_amd64.deb ... Unpacking libhtml-parser-perl:amd64 (3.83-1+b2) ... Selecting previously unselected package libhtml-tree-perl. Preparing to unpack .../063-libhtml-tree-perl_5.07-3_all.deb ... Unpacking libhtml-tree-perl (5.07-3) ... Selecting previously unselected package libclone-perl:amd64. Preparing to unpack .../064-libclone-perl_0.47-1+b1_amd64.deb ... Unpacking libclone-perl:amd64 (0.47-1+b1) ... Selecting previously unselected package libio-html-perl. Preparing to unpack .../065-libio-html-perl_1.004-3_all.deb ... Unpacking libio-html-perl (1.004-3) ... Selecting previously unselected package liblwp-mediatypes-perl. Preparing to unpack .../066-liblwp-mediatypes-perl_6.04-2_all.deb ... Unpacking liblwp-mediatypes-perl (6.04-2) ... Selecting previously unselected package libhttp-message-perl. Preparing to unpack .../067-libhttp-message-perl_7.00-2_all.deb ... Unpacking libhttp-message-perl (7.00-2) ... Selecting previously unselected package libhttp-cookies-perl. Preparing to unpack .../068-libhttp-cookies-perl_6.11-1_all.deb ... Unpacking libhttp-cookies-perl (6.11-1) ... Selecting previously unselected package libhttp-negotiate-perl. Preparing to unpack .../069-libhttp-negotiate-perl_6.01-2_all.deb ... Unpacking libhttp-negotiate-perl (6.01-2) ... Selecting previously unselected package perl-openssl-defaults:amd64. Preparing to unpack .../070-perl-openssl-defaults_7+b2_amd64.deb ... Unpacking perl-openssl-defaults:amd64 (7+b2) ... Selecting previously unselected package libnet-ssleay-perl:amd64. Preparing to unpack .../071-libnet-ssleay-perl_1.94-3_amd64.deb ... Unpacking libnet-ssleay-perl:amd64 (1.94-3) ... Selecting previously unselected package libio-socket-ssl-perl. Preparing to unpack .../072-libio-socket-ssl-perl_2.089-1_all.deb ... Unpacking libio-socket-ssl-perl (2.089-1) ... Selecting previously unselected package libnet-http-perl. Preparing to unpack .../073-libnet-http-perl_6.23-1_all.deb ... Unpacking libnet-http-perl (6.23-1) ... Selecting previously unselected package liblwp-protocol-https-perl. Preparing to unpack .../074-liblwp-protocol-https-perl_6.14-1_all.deb ... Unpacking liblwp-protocol-https-perl (6.14-1) ... Selecting previously unselected package libtry-tiny-perl. Preparing to unpack .../075-libtry-tiny-perl_0.32-1_all.deb ... Unpacking libtry-tiny-perl (0.32-1) ... Selecting previously unselected package libwww-robotrules-perl. Preparing to unpack .../076-libwww-robotrules-perl_6.02-1_all.deb ... Unpacking libwww-robotrules-perl (6.02-1) ... Selecting previously unselected package libwww-perl. Preparing to unpack .../077-libwww-perl_6.78-1_all.deb ... Unpacking libwww-perl (6.78-1) ... Selecting previously unselected package patchutils. Preparing to unpack .../078-patchutils_0.4.2-1_amd64.deb ... Unpacking patchutils (0.4.2-1) ... Selecting previously unselected package gpgv. Preparing to unpack .../079-gpgv_2.4.7-21+b3_amd64.deb ... Unpacking gpgv (2.4.7-21+b3) ... Selecting previously unselected package sopv-gpgv. Preparing to unpack .../080-sopv-gpgv_0.1.4-1_all.deb ... Unpacking sopv-gpgv (0.1.4-1) ... Selecting previously unselected package wdiff. Preparing to unpack .../081-wdiff_1.2.2-9_amd64.deb ... Unpacking wdiff (1.2.2-9) ... Selecting previously unselected package devscripts. Preparing to unpack .../082-devscripts_2.25.15_all.deb ... Unpacking devscripts (2.25.15) ... Selecting previously unselected package rubygems-integration. Preparing to unpack .../083-rubygems-integration_1.19_all.deb ... Unpacking rubygems-integration (1.19) ... Selecting previously unselected package ruby-csv. Preparing to unpack .../084-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 .../085-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 .../086-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 .../087-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 .../088-ruby-webrick_1.9.1-1_all.deb ... Unpacking ruby-webrick (1.9.1-1) ... Selecting previously unselected package ruby-xmlrpc. Preparing to unpack .../089-ruby-xmlrpc_0.3.3-2_all.deb ... Unpacking ruby-xmlrpc (0.3.3-2) ... Selecting previously unselected package libyaml-0-2:amd64. Preparing to unpack .../090-libyaml-0-2_0.2.5-2_amd64.deb ... Unpacking libyaml-0-2:amd64 (0.2.5-2) ... Selecting previously unselected package libruby3.3:amd64. Preparing to unpack .../091-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 .../092-ruby3.3_3.3.8-2_amd64.deb ... Unpacking ruby3.3 (3.3.8-2) ... Selecting previously unselected package libruby:amd64. Preparing to unpack .../093-libruby_1%3a3.3+b1_amd64.deb ... Unpacking libruby:amd64 (1:3.3+b1) ... Selecting previously unselected package ruby-rubygems. Preparing to unpack .../094-ruby-rubygems_3.6.7-2_all.deb ... Unpacking ruby-rubygems (3.6.7-2) ... Selecting previously unselected package ruby. Preparing to unpack .../095-ruby_1%3a3.3+b1_amd64.deb ... Unpacking ruby (1:3.3+b1) ... Selecting previously unselected package rake. Preparing to unpack .../096-rake_13.2.1-1_all.deb ... Unpacking rake (13.2.1-1) ... Selecting previously unselected package ruby-minitest. Preparing to unpack .../097-ruby-minitest_5.25.4-3_all.deb ... Unpacking ruby-minitest (5.25.4-3) ... Selecting previously unselected package ruby-power-assert. Preparing to unpack .../098-ruby-power-assert_2.0.3-1_all.deb ... Unpacking ruby-power-assert (2.0.3-1) ... Selecting previously unselected package ruby-test-unit. Preparing to unpack .../099-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 .../100-gem2deb-test-runner_2.2.5_amd64.deb ... Unpacking gem2deb-test-runner (2.2.5) ... Selecting previously unselected package libgmpxx4ldbl:amd64. Preparing to unpack .../101-libgmpxx4ldbl_2%3a6.3.0+dfsg-3_amd64.deb ... Unpacking libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-3) ... Selecting previously unselected package libgmp-dev:amd64. Preparing to unpack .../102-libgmp-dev_2%3a6.3.0+dfsg-3_amd64.deb ... Unpacking libgmp-dev:amd64 (2:6.3.0+dfsg-3) ... Selecting previously unselected package ruby3.3-dev:amd64. Preparing to unpack .../103-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 .../104-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 .../105-gem2deb_2.2.5_amd64.deb ... Unpacking gem2deb (2.2.5) ... Selecting previously unselected package racc. Preparing to unpack .../106-racc_1.8.1-1_all.deb ... Unpacking racc (1.8.1-1) ... Selecting previously unselected package ruby-ast. Preparing to unpack .../107-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 .../108-ruby-diff-lcs_1.5.1-1_all.deb ... Unpacking ruby-diff-lcs (1.5.1-1) ... Selecting previously unselected package ruby-oedipus-lex. Preparing to unpack .../109-ruby-oedipus-lex_2.6.0-2_all.deb ... Unpacking ruby-oedipus-lex (2.6.0-2) ... Selecting previously unselected package ruby-rspec-support. Preparing to unpack .../110-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 .../111-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 .../112-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 .../113-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 .../114-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 .../115-ruby-whitequark-parser_3.3.4.2-2_all.deb ... Unpacking ruby-whitequark-parser (3.3.4.2-2) ... Setting up media-types (13.0.0) ... Setting up libpipeline1:amd64 (1.5.8-1) ... Setting up wdiff (1.2.2-9) ... Setting up libfile-which-perl (1.27-2) ... Setting up libnpth0t64:amd64 (1.8-3) ... Setting up ruby-ruby2-keywords (0.0.5-1) ... Setting up ruby-oedipus-lex (2.6.0-2) ... Setting up bsdextrautils (2.41-5) ... Setting up libgpg-error0:amd64 (1.51-4) ... Setting up libdynaloader-functions-perl (0.004-2) ... Setting up libclass-method-modifiers-perl (2.15-1) ... Setting up ruby-power-assert (2.0.3-1) ... Setting up libmagic-mgc (1:5.46-5) ... Setting up libclone-perl:amd64 (0.47-1+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libyaml-0-2:amd64 (0.2.5-2) ... Setting up libhtml-tagset-perl (3.24-1) ... Setting up libdebhelper-perl (13.24.2) ... Setting up liblwp-mediatypes-perl (6.04-2) ... Setting up libmagic1t64:amd64 (1:5.46-5) ... Setting up libtry-tiny-perl (0.32-1) ... Setting up perl-openssl-defaults:amd64 (7+b2) ... Setting up gettext-base (0.23.1-2) ... Setting up m4 (1.4.19-8) ... Setting up libgcrypt20:amd64 (1.11.0-7) ... Setting up libencode-locale-perl (1.05-3) ... Setting up file (1:5.46-5) ... Setting up libelf1t64:amd64 (0.192-4) ... Setting up tzdata (2025b-4) ... Current default time zone: 'Etc/UTC' Local time is now: Thu Aug 7 15:18:52 UTC 2025. Universal Time is now: Thu Aug 7 15:18:52 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-3) ... Setting up autotools-dev (20240727.1) ... Setting up libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-3) ... 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 libio-html-perl (1.004-3) ... Setting up autopoint (0.23.1-2) ... Setting up libb-hooks-op-check-perl:amd64 (0.22-3+b2) ... Setting up autoconf (2.72-3.1) ... Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ... Setting up libtimedate-perl (2.3300-2) ... Setting up ruby-webrick (1.9.1-1) ... Setting up libffi8:amd64 (3.4.8-2) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.25) ... Setting up gpgv (2.4.7-21+b3) ... Setting up libuchardet0:amd64 (0.0.8-1+b2) ... Setting up libassuan9:amd64 (3.0.2-2) ... Setting up librole-tiny-perl (2.002004-1) ... Setting up netbase (6.5) ... Setting up libsub-quote-perl (2.006008-1) ... Setting up libclass-xsaccessor-perl (1.19-4+b5) ... Setting up ruby-did-you-mean (1.6.3-2) ... Setting up libfile-dirlist-perl (0.05-3) ... Setting up libfile-homedir-perl (1.006-2) ... Setting up openssl (3.5.1-1) ... Setting up readline-common (8.2-6) ... Setting up ruby-xmlrpc (0.3.3-2) ... Setting up libxml2:amd64 (2.12.7+dfsg+really2.9.14-2.1) ... Setting up liburi-perl (5.30-1) ... Setting up libfile-touch-perl (0.12-2) ... Setting up libnet-ssleay-perl:amd64 (1.94-3) ... Setting up automake (1:1.17-4) ... update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode Setting up libksba8:amd64 (1.6.7-2+b1) ... Setting up pinentry-curses (1.3.1-2) ... Setting up libfile-stripnondeterminism-perl (1.14.1-2) ... Setting up libhttp-date-perl (6.06-1) ... Setting up gettext (0.23.1-2) ... Setting up libgmp-dev:amd64 (2:6.3.0+dfsg-3) ... Setting up libfile-listing-perl (6.16-1) ... Setting up libtool (2.5.4-4) ... Setting up libnet-http-perl (6.23-1) ... Setting up libdevel-callchecker-perl:amd64 (0.009-2) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up patchutils (0.4.2-1) ... Setting up ca-certificates (20250419) ... Updating certificates in /etc/ssl/certs... 150 added, 0 removed; done. Setting up libreadline8t64:amd64 (8.2-6) ... Setting up dh-strip-nondeterminism (1.14.1-2) ... Setting up libwww-robotrules-perl (6.02-1) ... Setting up groff-base (1.23.0-9) ... Setting up libhtml-parser-perl:amd64 (3.83-1+b2) ... Setting up gpgconf (2.4.7-21+b3) ... Setting up libpython3.13-stdlib:amd64 (3.13.5-2) ... Setting up libio-socket-ssl-perl (2.089-1) ... Setting up gpg (2.4.7-21+b3) ... Setting up libpython3-stdlib:amd64 (3.13.5-1) ... Setting up libhttp-message-perl (7.00-2) ... Setting up libhttp-negotiate-perl (6.01-2) ... Setting up gpg-agent (2.4.7-21+b3) ... Setting up libhttp-cookies-perl (6.11-1) ... Setting up python3.13 (3.13.5-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libhtml-tree-perl (5.07-3) ... Setting up libparams-classify-perl:amd64 (0.015-2+b4) ... Setting up python3 (3.13.5-1) ... Setting up rubygems-integration (1.19) ... Setting up sopv-gpgv (0.1.4-1) ... update-alternatives: using /usr/bin/sopv-gpgv to provide /usr/bin/sopv (sopv) in auto mode Setting up man-db (2.13.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up libmodule-runtime-perl (0.018-1) ... Setting up libimport-into-perl (1.002005-2) ... Setting up libmoo-perl (2.005005-1) ... Setting up debhelper (13.24.2) ... Setting up rake (13.2.1-1) ... Setting up liblwp-protocol-https-perl (6.14-1) ... Setting up libwww-perl (6.78-1) ... Setting up libruby3.3:amd64 (3.3.8-2) ... Setting up ruby-rubygems (3.6.7-2) ... Setting up devscripts (2.25.15) ... 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-1) ... Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ... Setting up ruby-diff-lcs (1.5.1-1) ... Setting up ruby-whitequark-parser (3.3.4.2-2) ... Setting up gem2deb-test-runner (2.2.5) ... Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... Setting up gem2deb (2.2.5) ... Setting up ruby-rspec (3.13.0c0e0m0s1-2) ... Processing triggers for libc-bin (2.41-12) ... 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. Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: Running cd /build/reproducible-path/ruby-rubocop-ast-1.24.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-rubocop-ast_1.24.0-2_source.changes dpkg-buildpackage: info: source package ruby-rubocop-ast dpkg-buildpackage: info: source version 1.24.0-2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Lucas Kanashiro 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/d20250807-1800386-t8bnab/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/d20250807-1800386-t8bnab/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 17249 RuboCop::AST::ModuleNode #identifier is expected to be const type .new is expected to be a kind of RuboCop::AST::ModuleNode #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 RuboCop::AST::NodePattern::Lexer provides tokens via next_token when given a regexp /test/ 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 `:&` when given a regexp /back\\slash/ round trips when given a regexp /[abc]+\/()?/x round trips with $type+ is parsed as `$ int + x` RuboCop::AST::NodePattern::Parser sequences parses simple sequences properly parses unions of literals as a set expands ... in sequence head deep inside unions parses function calls generates specialized nodes parses capture vs repetition with correct priority RuboCop::AST::EnsureNode .new is expected to be a kind of RuboCop::AST::EnsureNode #body is expected to be sym type RuboCop::AST::AndAsgnNode #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode #name is expected to eq :var #operator is expected to eq :"&&" #expression is expected to eq s(:send, nil, :value) .new is expected to be a kind of RuboCop::AST::AndAsgnNode RuboCop::AST::DstrNode #value with interpolation is expected to eq "foo \#{bar} baz" with a multiline string is expected to eq "this is a multiline string" with implicit concatenation is expected to eq "foo bar baz" RuboCop::AST::AliasNode .new is expected to be a kind of RuboCop::AST::AliasNode #new_identifier is expected to eq :foo is expected to be sym type #old_identifier is expected to be sym type is expected to eq :bar RuboCop::AST::SuperNode #double_colon? is expected not to be double colon #block_literal? with a block literal is expected to be block literal with no block is expected not to be block literal with a block argument is expected not to be block literal #method_name is expected to eq :super #first_argument with a single literal argument is expected to be sym type with multiple mixed arguments 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 no arguments is expected to be nil #assignment_method? is expected not to be assignment method #setter_method? is expected not to be setter method #camel_case_method? is expected not to be camel case method .new with a zsuper node is expected to be a kind of RuboCop::AST::SuperNode with a super node is expected to be a kind of RuboCop::AST::SuperNode #self_receiver? is expected not to be self receiver #block_argument? with regular arguments is expected not to be 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 #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" #dot? is expected not to be dot #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 #command? when argument is a string is expected to be command "super" when argument is a symbol is expected to be command :super #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? is expected not to be implicit call #comparison_method? is expected not to be comparison method #operator_method? is expected not to be operator method #macro? is expected not to be macro #receiver is expected to be nil #bang_method? is expected not to be bang method #arguments with multiple literal arguments is expected to eq 2 with a single literal 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 splat argument is expected to eq 1 #predicate_method? is expected not to be predicate method #splat_argument? with a splat argument is expected to be splat argument with no arguments is expected not to be splat argument with mixed arguments is expected 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 a single splat argument is expected to be splat type with a single literal argument is expected to be sym type with multiple literal arguments is expected to be sym type #arguments? with multiple literal 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 with multiple mixed arguments is expected to be arguments with a single literal argument is expected to be arguments #const_receiver? is expected not to be const receiver RuboCop::AST::PairNode .new is expected to be a kind of RuboCop::AST::PairNode #value_omission? when not using hash value omission is expected not to be value omission when using hash value omission is expected to be value omission #colon? when using a colon delimiter is expected to be colon when using a hash rocket delimiter is expected not to be colon #hash_rocket? when using a colon delimiter is expected not to be hash rocket when using a hash rocket delimiter is expected to be hash rocket #key when using a symbol key is expected to be sym type when using a string key is expected to be str type #value_delta when using hash rocket delimiters 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 when receiver value is ahead is expected to eq 2 when receiver value is behind is expected to eq -2 when both pairs are on the same line is expected to eq 0 when using colon delimiters when both pairs are on the same line is expected to eq 0 when receiver value is behind is expected to eq -2 when receiver value is ahead 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 #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 " => " #same_line? 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(:pair, s(:sym, :a), s(:begin)) is expected to be same line s(:kwsplat, s(:send, nil, :foo)) 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 both pairs are explicit pairs is expected not to be same line s(:pair, s(:sym, :b), s(:int, 2)) when last pair is a keyword splat is expected not to be same line s(:kwsplat, s(:send, nil, :foo)) #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_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 when value spans multiple lines is expected not to be value on new line #key_delta with alignment set to :right when using colon delimiters 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 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 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 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 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 both pairs are explicit 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 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 second pair is a keyword splat is expected to eq 0 when both pairs are explicit pairs is expected to eq -2 with alignment set to :left when using hash rocket 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 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 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 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 colon delimiters 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 -2 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 #value is expected to be int type RuboCop::AST::IfNode #if? with an unless statement is expected not to be if with an if statement is expected to be if with a ternary operator is expected not to be if #else? with an elsif statement is expected to be else without an else statement is expected not to be elsif #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 nested conditionals in if clause is expected to be nested conditional with nested conditionals in else clause 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 .new 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 with a modifier statement is expected to be a kind of RuboCop::AST::IfNode #else_branch with an if statement is expected to be int type with an unless statement is expected to be int type with a ternary operator is expected to be int type #branches with an elsif statement is expected to eq 3 is expected to all be literal with an else statement is expected to eq 2 is expected to all be literal with a ternary operator is expected to eq 2 is expected to all be literal with an unless statement is expected to eq 1 is expected to all be literal with an if statement is expected to eq 1 is expected to all be literal #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 "" #elsif_conditional? with nested conditionals in else clause is expected not 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 with one elsif conditional is expected to be elsif conditional #unless? with an unless statement is expected to be unless with an if statement is expected not to be unless with a ternary operator is expected not to be unless #keyword with an if statement is expected to eq "if" with an unless statement is expected to eq "unless" with a ternary operator is expected to eq "" #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 non-modifier unless statement is expected not to be modifier form with a modifier unless statement is expected to be modifier form with a modifier if statement is expected to be modifier form #if_branch with a ternary operator is expected to be sym type with an unless statement is expected to be sym type with an if statement is expected to be sym type #each_branch when not passed a block is expected to be a kind of Enumerator when passed a block yields all the branches #elsif? without an elsif statement is expected not to be elsif with an elsif statement is expected to be elsif with an if statement comtaining an elsif is expected not to be elsif #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 RuboCop::AST::RegexpNode #options 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 "o" option is expected to eq 0 with a regexp with multiple options is expected to eq 3 with an empty regexp is expected to eq 0 #ignore_case? with other options is expected not to be ignore case with i and other options is expected to be ignore case with no options is expected not to be ignore case with only i option is expected to be ignore case #no_encoding? with no options is expected not to be no encoding with n and other options is expected to be no encoding with other options is expected not to be no encoding with only n option is expected to be no encoding #to_regexp with a multi-line regexp without option is expected to eq / .+ / with an empty regexp is expected to eq // with a regexp without option is expected to eq /.+/ 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 a regexp with an "o" option is expected to eq "/abc/i" with an empty regexp with option is expected to eq //ix with a regexp with an "u" option is expected to eq "/abc/" #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 with /-delimiters is expected not to be percent r literal with multi-line %r{-delimiters is expected to be percent r literal #fixed_encoding? with only u option is expected to be fixed encoding with no options is expected not to be fixed encoding with u and other options is expected to be fixed encoding with other options is expected not to be fixed encoding #interpolation? with regexp quote is expected to be interpolation with direct variable interpoation is expected to be interpolation with no interpolation returns false is expected not to be interpolation #content with an empty regexp is expected to eq "" with a multi-line regexp without option is expected to eq "\n.+\n" with a multi-line regexp with option is expected to eq "\n.+\n" with a regexp with option is expected to eq ".+" with an empty regexp with option is expected to eq "" with a regexp without option is expected to eq ".+" #regopt with a regexp without option is expected to be regopt type is expected to be empty 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 with option is expected to be regopt type is expected to eq [:i, :m, :x] with a multi-line regexp with option is expected to eq [:i, :m, :x] is expected to be regopt type with an empty regexp is expected to be empty is expected to be regopt type #delimiter? with /-delimiters is expected not to be delimiter "{" is expected to be delimiter "/" with %r/-delimiters 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 not to be delimiter "%r" is expected not to be delimiter "{" is expected to be delimiter "/" 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 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 "/" is expected not to be delimiter "%r<" is expected to be delimiter ">" with multi-line %r{-delimiters is expected 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 "}" is expected not to be delimiter "r" is expected not to be delimiter "/" is expected not to be delimiter "%" with %r{-delimiters 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 "%r" is expected to be delimiter "}" is expected to be delimiter "{" #multiline_mode? with only m option is expected to be multiline mode with no options is expected not 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 #single_interpolation? with only o option is expected to be single interpolation with no options is expected not to be single interpolation with other options is expected not to be single interpolation with o and other options is expected to be single interpolation #slash_literal? with /-delimiters is expected to be slash literal with multi-line %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 %r{-delimiters is expected not to be slash literal #delimiters with multi-line %r{-delimiters is expected to eq ["{", "}"] with /-delimiters is expected to eq ["/", "/"] with %r{-delimiters is expected to eq ["{", "}"] with %r<-delimiters is expected to eq ["<", ">"] with %r/-delimiters is expected to eq ["/", "/"] .new is expected to be a kind of RuboCop::AST::RegexpNode #extended? with only x option is expected to be extended with no options is expected not to be extended with other options is expected not to be extended with x and other options is expected to be extended RuboCop::AST::HashNode #pairs with an empty hash is expected to be empty with a hash of literals is expected to all be pair type is expected to eq 3 with a hash of variables is expected to eq 2 is expected to all be pair type .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 all pairs on the same line is expected to be pairs on same line with some pairs on the same line is expected to be pairs on same line #values with a hash with string keys is expected to all be send type is expected to eq 2 with an empty hash is expected to be empty with a hash with literal values is expected to eq 3 is expected to all be literal #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 #empty? with a hash containing pairs is expected not to be empty with an empty hash is expected to be empty with a hash containing a keyword splat is expected not to be empty #braces? as an argument with braces is expected to be braces with braces is expected to be braces as an argument with no braces is expected not to be braces #each_key when not passed a block is expected to be a kind of Enumerator when passed a block yields all the pairs #each_pair when not passed a block is expected to be a kind of Enumerator when passed a block yields all the pairs #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_value when not passed a block is expected to be a kind of Enumerator when passed a block yields all the pairs RuboCop::AST::OrAsgnNode #expression is expected to eq s(:send, nil, :value) #name is expected to eq :var #operator is expected to eq :"||" .new is expected to be a kind of RuboCop::AST::OrAsgnNode #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode RuboCop::AST::RangeNode .new with a beignless range is expected to be range type is expected to be a kind of RuboCop::AST::RangeNode with an inclusive 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 a kind of RuboCop::AST::RangeNode is expected to be range type with an exclusive range is expected to be range type is expected to be a kind of RuboCop::AST::RangeNode RuboCop::AST::ResbodyNode #exception_variable when an exception variable is not given is expected to be nil for an implicit rescue is expected to eq "ex" for an explicit rescue is expected to eq "ex" #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 all be const type is expected to eq 2 #body is expected to be sym type .new is expected to be a kind of RuboCop::AST::ResbodyNode #branch_index is expected to eq 1 is expected to eq 2 is expected to eq 0 RuboCop::AST::CaseMatchNode when using Ruby 2.7 or newer #in_pattern_branches is expected to eq 3 is expected to all be in pattern type .new is expected to be a kind of RuboCop::AST::CaseMatchNode #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 #else? without an else statement is expected not to be else with an else statement is expected to be else #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 #each_in_pattern when passed a block yields all the conditions when not passed a block is expected to be a kind of Enumerator #keyword is expected to eq "case" RuboCop::AST::ArgsNode .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)] #empty_and_without_delimiters? with empty arguments with a method definition is expected to equal true with a lambda literal is expected to equal true with a block 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 RuboCop::AST::UntilNode #loop_keyword? with a statement until is expected to be loop keyword with a modifier until is expected to be loop keyword #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" #keyword is expected to eq "until" .new with a modifier until is expected to be a kind of RuboCop::AST::UntilNode with a statement until is expected to be a kind of RuboCop::AST::UntilNode #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 RuboCop::AST::ForNode #variable is expected to be lvasgn type #body is expected to be sym type #keyword is expected to eq "for" #collection is expected to be sym type #do? without a do keyword is expected not to be do with a do keyword is expected to be do .new is expected to be a kind of RuboCop::AST::ForNode #void_context? without a do keyword is expected to be void context with a do keyword is expected to be void context #post_condition_loop? is expected not to be post condition loop #loop_keyword? is expected to be loop keyword RuboCop::AST::ProcessedSource #tokens has an array of tokens valid_syntax? when the source is completely valid returns true when a line starts with an integer literal tokenizes the source correctly 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 itself is valid encoding but includes strange encoding literals that are accepted by MRI returns true #ast is the root node of AST #comments is an array of comments when the source is invalid returns [] #file_path returns file path #first_token_of returns first token for node accepts Node as an argument token enumerables #find_token yields correct token yields nil when there is no match #each_token yields all tokens #blank? with source with content returns false with source of no content returns true #parser_error when the source lacks encoding comment and is really utf-8 encoded but has been read as US-ASCII is nil when the source was properly parsed is nil when the source could not be parsed due to encoding error returns the error #path is the path passed to .new #buffer is a source buffer .from_file raises a Errno::ENOENT when the file does not exist when the file exists returns an instance of ProcessedSource sets the file path to the instance's #path #tokens_within accepts Node as an argument returns tokens for node when heredoc as argument is present returns tokens for heredoc node returns tokens for node before heredoc returns tokens for node after heredoc with heavily commented source #comment_at_line returns the comment at the given line number returns nil if line has no comment #each_comment yields all comments #contains_comment? provided source_range on line with comment is expected to equal true 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 comment line is expected to equal true #comments_before_line returns comments on or before given line #find_comment yields correct comment yields nil when there is no match #each_comment_in_lines yields the comments #line_with_comment? returns false for lines without comments returns true for lines with comments #following_line returns source of line after token #lines is an array contains lines as string without linefeed has same number of elements as line count #start_with? with present source returns false when passed string that does not start source returns true when passed string that starts source with blank source returns false #[] when start index and length are passed returns the array of lines when an index is passed returns the line when a range is passed returns the array of lines #last_token_of returns last token for node accepts Node as an argument #preceding_line returns source of line before token RuboCop::AST::Ext::Range #line_span accepts an `exclude_end` keyword argument returns the range of lines a range occupies Changelog parses correctly merges correctly Changelog::Entry generates correct content RuboCop::AST::ClassNode #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 .new is expected to be a kind of RuboCop::AST::ClassNode #identifier is expected to be const 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::AsgnNode #expression 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 `gvasgn` node is expected to eq s(:send, nil, :value) with a `cvasgn` node is expected to eq s(:send, nil, :value) .new with a `cvasgn` node is expected to be a kind of RuboCop::AST::AsgnNode 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 `lvasgn` node is expected to be a kind of RuboCop::AST::AsgnNode #name with a `lvasgn` node is expected to eq :var with a `cvasgn` node is expected to eq :@@var with a `ivasgn` node is expected to eq :@var with a `gvasgn` node is expected to eq :$var RuboCop::AST::ArgNode .new with an optional argument is expected to be a kind of RuboCop::AST::ArgNode with argument forwarding with Ruby >= 3.0 is expected to be a kind of RuboCop::AST::ArgNode with Ruby >= 2.7 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 double splatted 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 lambda literal 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 method definition is expected to be a kind of RuboCop::AST::ArgNode with a block argument is expected to be a kind of RuboCop::AST::ArgNode #default_value with a block is expected to be nil with an optional keyword argument is expected to eq s(:int, 42) with an optional argument is expected to eq s(:int, 42) with a shadow argument is expected to be nil with a regular 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 with a block argument is expected to be nil #name with an optional argument 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 a splatted argument is expected to eq :x with a regular argument is expected to eq :x with a block is expected to eq :x with a block argument is expected to eq :x with a nameless double splatted argument is expected to be nil with a nameless splatted argument is expected to be nil with a 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 an optional keyword argument is expected to equal true with a splatted argument is expected to equal false with a block is expected to equal false with a double splatted argument is expected to equal false with a shadow argument is expected to equal false with an optional argument is expected to equal true with argument forwarding with Ruby >= 3.0 is expected to equal false with Ruby >= 2.7 is expected to equal false with a regular argument is expected to equal false RuboCop::AST::StrNode #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 #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 .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 RuboCop::AST::BreakNode behaves like wrapped arguments node #arguments with no arguments is expected to be empty with no arguments and braces 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 multiple literal arguments is expected to eq 2 with a single splat argument is expected to eq 1 .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::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::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 #pattern with an alternative pattern is expected to be match alt type with an as pattern is expected to be match as type with an array pattern is expected to be array pattern type with a hash pattern is expected to be hash pattern type with a variable pattern is expected to be match var type with a value pattern is expected to be int type with a pin operator is expected to be pin type #branch_index is expected to eq 1 is expected to eq 2 is expected to eq 0 .new is expected to be a kind of RuboCop::AST::InPatternNode #then? with a then keyword is expected to be then without a then keyword is expected not to be then RuboCop::AST::NextNode behaves like wrapped arguments node #arguments with multiple literal arguments is expected to eq 2 with a single argument is expected to eq 1 with no arguments is expected to be empty with no arguments and braces is expected to be empty with a single argument and braces is expected to eq 1 with a single splat argument is expected to eq 1 .new with arguments is expected to be a kind of RuboCop::AST::NextNode without arguments is expected to be a kind of RuboCop::AST::NextNode RuboCop::AST::WhenNode #conditions with a multiple conditions is expected to eq 3 is expected to all be literal with a single condition is expected to all be literal is expected to eq 1 #then? with a then keyword is expected to be then without a then keyword is expected not to be then .new is expected to be a kind of RuboCop::AST::WhenNode #each_condition when passed a block yields all the conditions when not passed a block is expected to be a kind of Enumerator #body without a then keyword is expected to be array type with a then keyword is expected to be sym type #branch_index is expected to eq 2 is expected to eq 0 is expected to eq 1 RuboCop::AST::YieldNode #block_node is expected to be nil #predicate_method? is expected not to be predicate method #macro? is expected not to be macro #method_name is expected to eq :yield .new is expected to be a kind of RuboCop::AST::YieldNode #arguments with multiple literal arguments is expected to eq 2 with a single literal argument is expected to eq 1 with multiple mixed arguments is expected to eq 2 with a single splat argument is expected to eq 1 with no arguments is expected to be empty #double_colon? is expected not to be double colon #dot? is expected not to be dot #block_literal? is expected not to be block literal #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 #operator_method? is expected not to be operator method #block_argument? is expected not to be block argument #first_argument with multiple literal arguments is expected to be sym type 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 with no arguments is expected to be nil #arguments? with multiple literal arguments 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 mixed arguments is expected to be arguments with a single splat argument is expected to be arguments #camel_case_method? is expected not to be camel case method #self_receiver? is expected not to be self receiver #last_argument with multiple mixed arguments 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 no arguments is expected to be nil with a single splat argument is expected to be splat type #bang_method? is expected not to be bang method #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 using parentheses is expected to be parenthesized when not using parentheses is expected not to be parenthesized #setter_method? is expected not to be setter method #implicit_call? is expected not to be implicit call #assignment_method? is expected not to be assignment method #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 string is expected to be method "yield" when argument is a symbol is expected to be method :yield #command? when argument is a string is expected to be command "yield" when argument is a symbol is expected to be command :yield #comparison_method? is expected not to be comparison method #const_receiver? is expected not to be const receiver 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 .new is expected to be a kind of RuboCop::AST::FloatNode RuboCop::AST::CaseNode #when_branches is expected to all be when type is expected to eq 3 #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 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 .new is expected to be a kind of RuboCop::AST::CaseNode #else_branch #else? with an else statement is expected to be sym type without an else statement is expected to be nil with an empty 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 #keyword is expected to eq "case" RuboCop::AST::LambdaNode #receiver is expected to be nil #arguments is expected to eq 2 #method_name is expected to eq :lambda RuboCop::AST::WhileNode #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" #keyword is expected to eq "while" #loop_keyword? with a modifier while is expected to be loop keyword with a statement while is expected to be loop keyword #do? without a do keyword is expected not to be do with a do keyword is expected to be do .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 Set#=== tests for inclusion 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::NodePattern::Sets is expected to eq "::RuboCop::AST::NodePattern::Sets::SET_1_2_3_ETC" 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" creates a constant with the right value RuboCop::AST::ForwardArgsNode when using Ruby 2.7 or newer #to_a is expected to contain exactly (be forward arg type) RuboCop::AST::KeywordSplatNode #key_delta with alignment set to :left when using colon delimiters 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 keyword splat is behind is expected to eq -2 when using hash rocket delimiters when keyword splat is aligned is expected to eq 0 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 behind is expected to eq -2 with alignment set to :right when using hash rocket delimiters 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 when keyword splat is aligned is expected to eq 0 when using colon delimiters when keyword splat is behind is expected to eq 0 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 0 #value_delta when using colon delimiters 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 when keyword splat is left aligned is expected to eq 0 when using hash rocket delimiters when keyword splat is left 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 when keyword splat is behind is expected to eq 0 #colon? is expected not to be colon #operator is expected to eq "**" .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 #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)) #key is expected to eq s(:kwsplat, s(:send, nil, :foo)) RuboCop::AST::DefNode #bang_method? with a bang method is expected to be bang method with a predicate method is expected not to be bang method with a regular method is expected not to be bang method #self_receiver? with a class method definition is expected to be 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 #last_argument with a single regular argument is expected to be arg type with a single rest argument is expected to be restarg type with multiple regular arguments is expected to be arg type with no arguments is expected to be nil with a single keyword argument is expected to be kwoptarg type with multiple mixed arguments is expected to be restarg type .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 #operator_method? with a setter method is expected not to be operator method with a regular method is expected not to be operator method with a binary operator method is expected to be operator method with a unary operator method is expected to be operator method #arguments with a single rest argument is expected to eq 1 with multiple mixed arguments is expected to eq 2 with a single regular argument is expected to eq 1 with argument forwarding is expected to eq 1 with no arguments is expected to be empty with multiple regular arguments is expected to eq 2 #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 #receiver with a singleton method definition is expected to be const type with an instance method definition is expected to be nil with a class method definition is expected to be self type #body with a multi-expression body is expected to be begin type with no body is expected to be nil with a single expression body is expected to be send type #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" #endless? with endless method definition is expected to be endless with standard method definition is expected not to be endless #assignment_method? with an assignment method is expected to be assignment method with a comparison method is expected not to be assignment method with a regular method is expected not to be assignment method with a bracket assignment method is expected to be assignment method #comparison_method? with a regular method is expected not to be comparison method with a comparison method is expected to be comparison method #void_context? with an initializer method is expected to be void context with a regular assignment method is expected to be void context with a comparison method is expected not to be void context with a bracket assignment method is expected to be void context with a regular method is expected not to be void context #rest_argument? with a rest argument is expected to be 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 #const_receiver? with an instance method definition is expected not to be 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 #arguments? with a single rest argument is expected to be arguments with a single regular argument is expected to be arguments with no arguments is expected not to be arguments with multiple mixed arguments is expected to be arguments with multiple regular arguments is expected to be arguments with a single keyword argument is expected to be arguments #method_name with a unary method is expected to eq :-@ with a setter method is expected to eq :foo= with a plain method is expected to eq :foo with an operator method is expected to eq :== #predicate_method? with a predicate method is expected to be predicate method with a regular method is expected not to be predicate method with a bang method is expected not to be predicate method #first_argument with a single regular argument is expected to be arg type with no arguments is expected to be nil with a single keyword argument is expected to be kwoptarg type with multiple regular arguments is expected to be arg type with a single rest argument is expected to be restarg type with multiple mixed arguments is expected to be arg type when using Ruby 2.7 or newer #argument_forwarding? is expected to be argument forwarding #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 RuboCop::AST::SymbolNode #value is expected to eq :foo .new with a symbol node is expected to be a kind of RuboCop::AST::SymbolNode RuboCop::AST::Node #numeric_type? when string literal is true when float literal is true when rational literal is true when complex literal is true when integer literal is true when complex literal whose imaginary part is a rational is true #parent_module_name when node on singleton class is expected to eq "Foo::#" when node nested in a class << exp is expected to be nil when node on class in singleton class is expected to eq "Foo::#::Bar" when node on module 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 #conditional? when `while` node is true when `case_match` node is true when `case` node is true when post condition loop node is false when `until` node is true when `if` node is true #value_used? within a class definition node is always true within a method call node is always true 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 an array literal at the top level is always false assigned to an ivar is always true at the top level is false within a module definition node is always true at the end of a block is always true within a singleton class node is always true within a while node is true only for the condition #module_definition? included module definition matches prepend Module.new matches with ::ModuleName matches using module keyword matches namespaced modules matches nested modules matches with Module.new matches when using numbered parameter matches #class_definition? with inheritance matches without inheritance matches with ::ClassName matches with Class.new matches when using numbered parameter matches with object singleton class matches constant defined as Struct without block does not match with Struct matches when using numbered parameter matches with self singleton class matches namespaced class matches #struct_constructor? ::Struct matches struct definition without block does not match struct definition with a block matches sibling_access returns trivial values for a root node for a node with siblings returns the expected values for a single child returns the expected values #class_constructor? module definition with a block matches class definition with a block matches class definition on outer scope matches class definition does not match #recursive_basic_literal? behaves like literal returns true for `(false <=> true)` behaves like non literal returns false for `some_method_call(x, y)` behaves like literal returns true for `'str'` behaves like literal returns true for `1.0` behaves like literal returns true for `"#{2}"` behaves like literal returns true for `nil` behaves like literal returns true for `!true` behaves like literal returns true for `(false && true)` behaves like literal returns true for `1` behaves like literal returns true for `(false or true)` behaves like non literal returns false for `%r{abx#{foo}}ixo` behaves like non literal returns false for `[some_method_call]` behaves like non literal returns false for `/.#{some_method_call}/` behaves like literal returns true for `{ a: 1, b: 2 }` behaves like non literal returns false for `some_method_call` behaves like literal returns true for `/./` behaves like non literal returns false for `{ :sym => some_method_call }` behaves like literal returns true for `%r{abx}ixo` behaves like non literal returns false for `{ some_method_call => :sym }` behaves like non literal returns false for `(x or false)` behaves like literal returns true for `{ :a => 1, :b => 2 }` behaves like non literal returns false for `(x && false)` behaves like literal returns true for `false` behaves like non literal returns false for `(x == false)` behaves like literal returns true for `(1)` behaves like literal returns true for `[1, 2, 3]` #pure? for an integer literal returns true for an lvar assignment returns false for a cvar assignment returns false for a regexp with no interpolation returns true with options returns true with interpolated segments returns false for a class definition returns false for a nested if where the innermost descendants are local vars and literals returns true where one branch contains a method call returns false where one branch contains an assignment statement returns false for an array literal with only literal children returns true which contains a method call returns false for a module definition returns false for an ivar assignment returns false for a hash literal with only literal children returns true which contains a method call returns false for a gvar assignment returns false for a method call returns false #argument_type? method arguments returns true for all argument types block arguments returns true for all argument types RuboCop::AST::SelfClassNode #body with an empty 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 #identifier is expected to be self type .new is expected to be a kind of RuboCop::AST::SelfClassNode RuboCop::AST::SendNode #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 with a dot is expected not to be double colon #post_condition_loop? is expected not to be post condition loop #non_bare_access_modifier? when node does not have an argument is expected not to be 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 #comparison_method? with a comparison method is expected to be comparison method with a regular method is expected not to be comparison method with a negation method is expected not to be comparison method #receiver with no receiver is expected to be nil with a literal receiver is expected to be str type with a variable receiver is expected to be send type #arguments? with multiple mixed 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 with multiple literal arguments is expected to be arguments with a single literal argument is expected to be arguments #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 #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 a block argument is expected not to be block literal with no block is expected not to be block literal .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 #const_receiver? with a self receiver is expected not to be const receiver with a constant receiver is expected to be const receiver with a non-constant receiver is expected not to be const receiver #binary_operation?? with a binary operation is expected to be binary operation with a regular method call is expected not 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 #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 #splat_argument? with no arguments is expected not 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 mixed arguments is expected to be splat argument #nonmutating_array_method? with a mutating Array method is expected not to be 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 #predicate_method? with a predicate method is expected to be predicate method with a bang method is expected not to be predicate method with a regular method is expected not 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 #access_modifier? when node is a non-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 bare `module_function` is expected to be access modifier #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 without a parent is expected to be macro when parent is a class constructor 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 in the global scope is expected to be macro when parent is a singleton class is expected to be macro when the condition of an if is expected not 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 struct constructor is expected to be macro when parent is a method definition is expected not to be macro when in an if is expected to be macro when parent is a module is expected to be macro when parent is a class 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 not in a macro scope is expected not to be macro #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 #block_argument? with no arguments is expected not to be block argument with mixed arguments is expected to be block argument with regular arguments is expected not to be block argument with a block argument is expected to be block argument #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 a regular method is expected not to be assignment method with an assignment method is expected to be assignment method #loop_keyword? is expected not to be loop keyword #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 a setter method is expected to be setter method with an indexed setter method is expected to be setter method #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 #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 #first_argument with a single literal argument is expected to be sym type with a single splat argument is expected to be splat type 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 #negation_method? with prefix `not` is expected to be negation method with suffix `not` is expected not to be negation method with prefix bang is expected to be negation method with a non-negated method is expected not to be negation method #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 #def_modifier with call with no argument is expected to be nil with several prefixed def modifiers is expected to eq :qux with a prefixed def modifier is expected to eq :bar with a block containing a method definition is expected to be nil #bare_access_modifier? when node has an argument is expected not to be bare access modifier when node is a bare `module_function` is expected to be 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 is not an access modifier is expected not to be bare access modifier #last_argument 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 splat type with a single literal argument is expected to be sym type with multiple literal arguments is expected to be sym type #method? 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" 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 an implicit call method is expected to eq :call with a plain method is expected to eq :bar with an operator method is expected to eq :== with a setter method is expected to eq :bar= #nonmutating_operator_method? with a regular method is expected not to be 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 #prefix_bang? with a bang method is expected to be prefix bang with a non-negated method is expected not to be prefix bang with keyword `not` is expected not to be prefix bang #enumerable_method? with an enumerable method is expected to be enumerable method with a regular method is expected not to be enumerable method #implicit_call? with an implicit call method is expected to be 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 #def_modifier? with a prefixed def modifier is expected to be 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 #arithmetic_operation? with a regular method call is expected not to be arithmetic operation with a binary arithmetic operation is expected to be arithmetic operation with a unary numeric operation is expected not to be arithmetic operation #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 literal argument is expected to eq 1 with multiple mixed arguments is expected to eq 2 #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 #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 #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 #unary_operation? with a binary operation is expected not 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 unary operation is expected to be unary operation #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 #command? 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" when argument is a symbol with an explicit receiver is expected not to be command :bar with an implicit receiver is expected to be command :bar #dot? with a dot is expected to be dot with a double colon is expected not to be dot without a dot is expected not to be dot with a unary method is expected not to be dot #self_receiver? with a self receiver is expected to be 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 #lambda_literal? with a stabby lambda is expected to be lambda literal with a lambda method is expected not to be lambda literal with `a.() {}` style method is expected not to be lambda with a non-lambda method is expected not to be lambda #block_node with a block argument is expected to be nil with a block literal is expected to be block type with no block is expected to be nil with Ruby >= 2.7 with a numblock literal is expected to be numblock type RuboCop::AST::OrNode #rhs with a semantic or node is expected to be int type with a logical or node is expected to be int type .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 #logical_operator? with a semantic or node is expected not to be logical operator with a logical or node is expected to be logical operator #alternate_operator with a logical or node is expected to eq "or" with a semantic or node is expected to eq "||" #inverse_operator with a logical or node is expected to eq "&&" with a semantic or node is expected to eq "and" #operator with a logical or node is expected to eq "||" with a semantic or node is expected to eq "or" #lhs with a logical or node is expected to be sym type with a semantic or node is expected to be sym type #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 RuboCop::AST::Traversal knows all current node types for example class Foo end traverses all nodes for example %q(foobar) traverses all nodes for example 1.33 traverses all nodes for example f x: -> do meth do end end traverses all nodes for example if foo; bar; elsif baz; 1; else 2; end traverses all nodes for example a b{c d}, /x/m do end traverses all nodes for example unless foo then bar; else baz; end traverses all nodes for example case foo; in ^foo then nil; end traverses all nodes for example foo <= 1 traverses all nodes for example a += 1 traverses all nodes for example foo[:baz => 1,] traverses all nodes for example p begin 1.times do 1 end end traverses all nodes for example if (bar); foo; end traverses all nodes for example unless foo; bar; else baz; end traverses all nodes for example super traverses all nodes for example foo.(1) traverses all nodes for example __ENCODING__ traverses all nodes for example return(foo) traverses all nodes for example while foo do meth end traverses all nodes for example if foo then bar; else baz; end traverses all nodes for example module Bar::Foo; end traverses all nodes for example :'a\ b' traverses all nodes for example ?a traverses all nodes for example fun(foo, :foo => 1) traverses all nodes for example def f a, o=1, p, &b; end traverses all nodes for example foo.C += raise bar rescue nil traverses all nodes for example return foo traverses all nodes for example m "#{[]}" traverses all nodes for example p <<~E x y E traverses all nodes for example foo <=> 1 traverses all nodes for example class << foo; _1; end traverses all nodes for example p p{p(p);p p}, tap do end traverses all nodes for example false ? raise {} : tap {} traverses all nodes for example %I{a\ b} traverses all nodes for example -foo traverses all nodes for example a&.b traverses all nodes for example A += 1 traverses all nodes for example :"a\ b" traverses all nodes for example def f *, **; end traverses all nodes for example case foo; in "a": then true; end traverses all nodes for example foo = meth rescue bar traverses all nodes for example case foo; in *x, y, z then nil; end traverses all nodes for example f{ |o=1, p, &b| } traverses all nodes for example until foo do meth end traverses all nodes for example foo traverses all nodes for example a b(c(d)), 1.0r do end traverses all nodes for example foo::C ||= raise bar rescue nil traverses all nodes for example f{ |;a| } traverses all nodes for example @var = 10 traverses all nodes for example f{ |a, o=1, *r, p, &b| } traverses all nodes for example until foo; meth end traverses all nodes for example m1 :k => m2 do; m3() do end; end traverses all nodes for example fun (1).to_i traverses all nodes for example p <<~E x \ y E traverses all nodes for example def foo(_, _); end traverses all nodes for example ..100 traverses all nodes for example f <<-TABLE do TABLE end traverses all nodes for example a, *b = bar traverses all nodes for example a += b += raise :x traverses all nodes for example `#@1` traverses all nodes for example case foo; in A() then true; end traverses all nodes for example m ->(a = ->{_1}) {a} traverses all nodes for example 1... traverses all nodes for example foo::a = 1 traverses all nodes for example m { _1 + _9 } traverses all nodes for example def f ; end traverses all nodes for example case foo; in "#{ 'a' }": 1 then true; end traverses all nodes for example a b{c(d)}, /x/m do end traverses all nodes for example foo, bar = m foo traverses all nodes for example "#@a #@@a #$a" traverses all nodes for example next() traverses all nodes for example -> * { } traverses all nodes for example def (foo).foo; end traverses all nodes for example -> a: { } traverses all nodes for example a b(c(d)), :e do end traverses all nodes for example %x{#@1} traverses all nodes for example p -> { :hello }, a: 1 do end traverses all nodes for example def f(*); end traverses all nodes for example ~foo traverses all nodes for example foo::Fun() traverses all nodes for example let () { m(a) do; end } traverses all nodes for example not m foo traverses all nodes for example foo::fun bar traverses all nodes for example m do _1 + _9 end traverses all nodes for example fun(*bar) traverses all nodes for example def f a, o=1, *r, &b; end traverses all nodes for example %I[foo#{bar}] traverses all nodes for example __ENCODING__ traverses all nodes for example foo === 1 traverses all nodes for example p <<~E E traverses all nodes for example fun(foo, *bar, &baz) traverses all nodes for example -> { _1 + _9} traverses all nodes for example begin ensure end traverses all nodes for example def f foo: ; end traverses all nodes for example [1, 2] traverses all nodes for example module ::Foo; end traverses all nodes for example def foo a:b end traverses all nodes for example f { || a:b } traverses all nodes for example f{ |a,| } traverses all nodes for example :"#@@1" traverses all nodes for example '#@1' traverses all nodes for example f{ |&b| } traverses all nodes for example while def foo; tap do end; end; break; end traverses all nodes for example proc {_1 = nil} traverses all nodes for example !/wat/ traverses all nodes for example $foo traverses all nodes for example case foo; in x unless true; nil; end traverses all nodes for example true traverses all nodes for example p <<~E x \ y E traverses all nodes for example fun (1) traverses all nodes for example def f ((a, a1)); end traverses all nodes for example def foo(...); end traverses all nodes for example case foo; in A then true; end traverses all nodes for example case foo; in ** then true; end traverses all nodes for example meth do; foo; rescue; bar; end traverses all nodes for example td (1_500).toString(); td.num do; end traverses all nodes for example for a in foo; p a; end traverses all nodes for example def f(foo: 1); end traverses all nodes for example a b(c d), :e do end traverses all nodes for example a, *b, c = bar traverses all nodes for example '#@@1' traverses all nodes for example next traverses all nodes for example a b(c(d)), /x/ do end traverses all nodes for example foo.A = 1 traverses all nodes for example a = 1; a b: 1 traverses all nodes for example %{#@@1} traverses all nodes for example foo = baz, *bar traverses all nodes for example class Foo; end traverses all nodes for example foo[bar, :baz => 1,] traverses all nodes for example t=1;(foo)?t:T traverses all nodes for example "a\ b" traverses all nodes for example def f foo = 1; end traverses all nodes for example foo.m += raise(bar) rescue nil traverses all nodes for example foo, bar = 1, 2 traverses all nodes for example def foo(...); bar(...); end traverses all nodes for example a, *, c = bar traverses all nodes for example p <<~E E traverses all nodes for example false ? raise do end : tap do end traverses all nodes for example self.A, foo = foo traverses all nodes for example while def foo a = tap do end; end; break; end traverses all nodes for example foo.a ||= 1 traverses all nodes for example @foo traverses all nodes for example fun() { } traverses all nodes for example case foo; in 1; end traverses all nodes for example a b(c d), /x/ do end traverses all nodes for example case; when foo; 'foo'; else 'bar'; end traverses all nodes for example def f a, o=1, *r, p, &b; end traverses all nodes for example %w{a\ b} traverses all nodes for example 1.. traverses all nodes for example foo::fun (1) {} traverses all nodes for example while def self.foo a = tap do end; end; break; end traverses all nodes for example nil traverses all nodes for example foo * 1 traverses all nodes for example tap (proc do end) traverses all nodes for example foo !~ 1 traverses all nodes for example -> do rescue; end traverses all nodes for example case foo; in "#{ %Q{a} }": 1 then true; end traverses all nodes for example a @b do |c|;end traverses all nodes for example m { |(foo, bar)| } traverses all nodes for example meth 1 do end::fun(bar) traverses all nodes for example if /wat/; end traverses all nodes for example p :foo, {a: proc do end, b: proc do end} traverses all nodes for example `foobar` traverses all nodes for example ...100 traverses all nodes for example fun(foo, *bar) traverses all nodes for example { 'foo': 2, 'bar': {}} traverses all nodes for example f{ |a, o=1, p, &b| } traverses all nodes for example p <<~E x y E traverses all nodes for example def x; ::A ||= 1; end traverses all nodes for example <<-`HERE` a\ b HERE traverses all nodes for example foo[1, 2] traverses all nodes for example fun(*bar, &baz) traverses all nodes for example true ? 1.tap do |n| p n end : 0 traverses all nodes for example meth until foo traverses all nodes for example break traverses all nodes for example @@var = 10 traverses all nodes for example a b{c(d)}, 1.0r do end traverses all nodes for example %{a\ b} traverses all nodes for example foo = raise bar rescue nil traverses all nodes for example a b(c d), /x/m do end traverses all nodes for example foo + 1 traverses all nodes for example case foo; in * then nil; end traverses all nodes for example def f(foo); end traverses all nodes for example a b{c(d)}, 1.0i do end traverses all nodes for example return fun foo do end traverses all nodes for example @a |= 1 traverses all nodes for example a b{c(d)}, "x" do end traverses all nodes for example if foo; bar; end traverses all nodes for example case foo; in 1 => a then true; end traverses all nodes for example bar if foo traverses all nodes for example foo::Fun bar traverses all nodes for example f{ | | } traverses all nodes for example fun traverses all nodes for example m { |foo| } traverses all nodes for example break foo traverses all nodes for example fun (f bar) traverses all nodes for example case 1; in 2; 3; else; end traverses all nodes for example Foo = 10 traverses all nodes for example def END; end traverses all nodes for example -42 traverses all nodes for example foo != 1 traverses all nodes for example while not (true) do end traverses all nodes for example 42.1ri traverses all nodes for example f{ |a, o=1, o1=2, *r, &b| } traverses all nodes for example /(?bar)/ =~ 'bar'; match traverses all nodes for example begin meth end until foo traverses all nodes for example <<~E 1 \ 2 3 E traverses all nodes for example foo << 1 traverses all nodes for example f{ |a, c| } traverses all nodes for example %W() traverses all nodes for example def f(foo:); end traverses all nodes for example { } traverses all nodes for example traverses all nodes for example %w[] traverses all nodes for example 42.1r traverses all nodes for example yield() traverses all nodes for example a, * = bar traverses all nodes for example !foo traverses all nodes for example p :foo, {proc do end => proc do end, b: proc do end} traverses all nodes for example [*foo] traverses all nodes for example meth 1 do end.fun(bar) {} traverses all nodes for example [ 1 => 2 ] traverses all nodes for example case foo; in 1... then true; end traverses all nodes for example :'foo' traverses all nodes for example foo[m bar] traverses all nodes for example def f a, &b; end traverses all nodes for example foo "#{(1+1).to_i}" do; end traverses all nodes for example not foo traverses all nodes for example meth rescue bar traverses all nodes for example def self.foo; end traverses all nodes for example foo.fun (1) {} traverses all nodes for example case foo; in [x, y] then true; end traverses all nodes for example { 1 => 2, :foo => "bar" } traverses all nodes for example foo[0, 1] ||= 2 traverses all nodes for example class << foo; nil; end traverses all nodes for example fun () {} traverses all nodes for example %r{#@1} traverses all nodes for example () traverses all nodes for example if (a, b = foo); end traverses all nodes for example ->(**nil) {} traverses all nodes for example def self::foo; end traverses all nodes for example a b{c(d)}, 1.0 do end traverses all nodes for example def f *r, p, &b; end traverses all nodes for example def f(foo, bar); end traverses all nodes for example :foo traverses all nodes for example break(foo) traverses all nodes for example def m; class << self; module M; end; end; end traverses all nodes for example foo.a &&= 1 traverses all nodes for example f{ |a, *s, &b| } traverses all nodes for example <<-'HERE' #@1 HERE traverses all nodes for example begin meth end while foo traverses all nodes for example *, c, d = bar traverses all nodes for example f{ || } traverses all nodes for example case foo; in a: then true; end traverses all nodes for example foo::m += raise(bar) rescue nil traverses all nodes for example * = bar traverses all nodes for example self.a, self[1, 2] = foo traverses all nodes for example foo or bar traverses all nodes for example foo = *bar traverses all nodes for example :'#@1' traverses all nodes for example begin end traverses all nodes for example foo += raise(bar) rescue nil traverses all nodes for example m def x(); end; 1.tap do end traverses all nodes for example /#)/x traverses all nodes for example break fun foo do end traverses all nodes for example a b(c(d)), 1.0 do end traverses all nodes for example super(foo) traverses all nodes for example meth 1 do end.fun {} traverses all nodes for example ::Foo traverses all nodes for example %s{#@1} traverses all nodes for example p <<~E x y E traverses all nodes for example %i[] traverses all nodes for example <<-'HERE' #@@1 HERE traverses all nodes for example <<~FOO baz\ qux FOO traverses all nodes for example case foo; in *x then nil; end traverses all nodes for example foo::a += m foo traverses all nodes for example def foo; end traverses all nodes for example %i{a\ b} traverses all nodes for example a b(c d), 1.0 do end traverses all nodes for example p <<~E " y" x E traverses all nodes for example def f ((a, *r, p)); end traverses all nodes for example BEGIN { 1 } traverses all nodes for example def f (foo: 1, &b); end traverses all nodes for example case foo; when 'bar'; bar; end traverses all nodes for example Foo traverses all nodes for example *b, c = bar traverses all nodes for example %W[foo #{bar}] traverses all nodes for example def f(**foo); end traverses all nodes for example foo[0, 1] &&= 2 traverses all nodes for example __FILE__ traverses all nodes for example p :foo, {:a => proc do end, b: proc do end} traverses all nodes for example a ? b & '': nil traverses all nodes for example class A < B end traverses all nodes for example "#{-> foo {}}" traverses all nodes for example let (:a) { m do; end } 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 f{ |o=1, *r, &b| } traverses all nodes for example 42i traverses all nodes for example case foo; in {a: } true ; end traverses all nodes for example case foo; in {} then true; end traverses all nodes for example *b = bar traverses all nodes for example def a; @@var |= 10; end traverses all nodes for example foo::A += m foo traverses all nodes for example def String=; end traverses all nodes for example begin; meth; rescue => ex; bar; end traverses all nodes for example def f ((a, *r)); end traverses all nodes for example foo.a += m foo traverses all nodes for example m a + b do end traverses all nodes for example def a b: return end traverses all nodes for example next(foo) traverses all nodes for example foo[1, 2] traverses all nodes for example foo (-1.3).abs traverses all nodes for example /a\ b/ traverses all nodes for example def f (((a))); end traverses all nodes for example foo = m foo traverses all nodes for example def foo raise; raise A::B, ''; end traverses all nodes for example 42 traverses all nodes for example for a in foo do p a; end traverses all nodes for example next foo traverses all nodes for example "foo#@a" "bar" traverses all nodes for example meth 1 do end.fun bar traverses all nodes for example begin; meth; ensure; bar; end traverses all nodes for example case foo; in a: {b:}, c: p c ; end traverses all nodes for example foo.fun bar traverses all nodes for example case foo; in "a": 1 then true; end traverses all nodes for example f{ |o=1, *r, p, &b| } traverses all nodes for example bar def foo; self.each do end end traverses all nodes for example def String.foo; end traverses all nodes for example not() traverses all nodes for example def f ((*)); end traverses all nodes for example 1 in [a]; a traverses all nodes for example %W{a\ b} traverses all nodes for example %w[ #@1 ] traverses all nodes for example :"foo#{bar}baz" traverses all nodes for example fun! traverses all nodes for example super() traverses all nodes for example case foo; in 1, "a", [], {} then nil; end traverses all nodes for example def until; end traverses all nodes for example ->(scope) {}; scope traverses all nodes for example p :foo, {"a": proc do end, b: proc do end} traverses all nodes for example def BEGIN; end traverses all nodes for example f{ |foo:| } traverses all nodes for example case foo; in x, *y, z then nil; end traverses all nodes for example fun(1) traverses all nodes for example case foo; in a: 1 then true; end traverses all nodes for example -> (arg={}) {} traverses all nodes for example %Q{a\ b} traverses all nodes for example :'#@@1' traverses all nodes for example -> a: 1 { } traverses all nodes for example def f o=1, p, &b; end traverses all nodes for example meth 1 do end::fun bar traverses all nodes for example yield(foo) traverses all nodes for example fun { } traverses all nodes for example module Foo; end traverses all nodes for example %r{#@@1} traverses all nodes for example foo ? 1 : 2 traverses all nodes for example /#@1/ traverses all nodes for example foo = bar = m foo traverses all nodes for example case foo; in **a then true; end traverses all nodes for example foo.A += m foo traverses all nodes for example ::Foo = 10 traverses all nodes for example if foo then bar end traverses all nodes for example foo.a = 1 traverses all nodes for example case foo; in ..2 then true; end traverses all nodes for example case foo; in (1) then true; end traverses all nodes for example %W[foo #{bar}foo#@baz] traverses all nodes for example class Foo < Bar; end traverses all nodes for example m { |**nil| } traverses all nodes for example case foo; in [*x, y] then true; end traverses all nodes for example next fun foo do end traverses all nodes for example foo::fun traverses all nodes for example a b{c(d)}, 1 do end traverses all nodes for example %Q{#@@1} traverses all nodes for example %q{#@1} traverses all nodes for example foo.fun traverses all nodes for example a b{c(d)}, /x/ do end traverses all nodes for example alias :foo bar traverses all nodes for example case foo; in [x, y, *] then true; end traverses all nodes for example case foo; in A[x:] then true; end traverses all nodes for example foo, bar = meth rescue [1, 2] traverses all nodes for example `a\ b` traverses all nodes for example <<-`HERE` #@@1 HERE traverses all nodes for example assert dogs traverses all nodes for example a, (b, c) = foo traverses all nodes for example begin; meth; rescue; baz; else foo; ensure; bar end traverses all nodes for example for a, b in foo; p a, b; end traverses all nodes for example <<-'HERE' a\ b HERE traverses all nodes for example case foo; in "#{ %q{a} }": 1 then true; end traverses all nodes for example module A; _1; end traverses all nodes for example a b(c d), 1.0i do end traverses all nodes for example while foo; meth end traverses all nodes for example if foo..bar; end traverses all nodes for example [/()\1/, ?#] traverses all nodes for example foo && bar traverses all nodes for example if foo; bar; else baz; end traverses all nodes for example %I[foo #{bar}] traverses all nodes for example def foo(...); bar(...); end traverses all nodes for example f{ |a, *r, p, &b| } traverses all nodes for example %s{a\ b} traverses all nodes for example proc {_1 = nil} traverses all nodes for example f{ |a| } traverses all nodes for example def f o=1, *r, p, &b; end traverses all nodes for example foo || (a, b = bar) traverses all nodes for example a b(c(d)), 1.0i do end traverses all nodes for example %W[#@1] traverses all nodes for example def f(*foo); end traverses all nodes for example var = 10; var traverses all nodes for example class Foo < a:b; 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 fun do end traverses all nodes for example case foo; in ...2 then true; end traverses all nodes for example begin; rescue LoadError; else; end traverses all nodes for example a b{c d}, 1.0i do end traverses all nodes for example f{ |; a | } traverses all nodes for example f{ |foo: 1, bar: 2, **baz, &b| } traverses all nodes for example begin; meth; rescue Exception; bar; end traverses all nodes for example case foo; in [x] then nil; end traverses all nodes for example fun(1) { } traverses all nodes for example -> do end traverses all nodes for example a b{c(d)}, :e do end traverses all nodes for example p <<~"E" x #{foo} E traverses all nodes for example desc "foo" do end traverses all nodes for example proc {|_3|} traverses all nodes for example case foo; in 1 | 2 then true; end traverses all nodes for example f{ |a, *| } traverses all nodes for example f{ |*s, &b| } traverses all nodes for example bar unless foo traverses all nodes for example !m foo traverses all nodes for example case foo; when 'bar'; bar; else baz; end traverses all nodes for example case foo; in A[] then true; end traverses all nodes for example %r{a\ b} traverses all nodes for example f{ |*| } traverses all nodes for example -> do _1 + _9 end traverses all nodes for example meth while foo traverses all nodes for example foo[0] += raise(bar) rescue nil traverses all nodes for example "foo#{bar}baz" traverses all nodes for example foo % 1 traverses all nodes for example a b{c d}, 1 do end traverses all nodes for example @foo, @@bar = *foo traverses all nodes for example if (bar; a, b = foo); end traverses all nodes for example case foo; in {a: 1 } false ; end traverses all nodes for example if foo...bar; end traverses all nodes for example (foo, bar) = 1, 2 traverses all nodes for example ((b, )) = foo traverses all nodes for example foo&.bar {} traverses all nodes for example a # # .foo traverses all nodes for example foo ^ 1 traverses all nodes for example {a: if true then 42 end} traverses all nodes for example retry traverses all nodes for example foo.m += raise bar rescue nil traverses all nodes for example foo = bar, 1 traverses all nodes for example class A; _1; end traverses all nodes for example /source/im traverses all nodes for example def self._6; end traverses all nodes for example f{ |a, *s| } traverses all nodes for example p <<~"E" x\n y E traverses all nodes for example case foo; in a: 1, _a:, ** then true; end traverses all nodes for example 'foobar' traverses all nodes for example case foo; in 1..2 then true; end traverses all nodes for example ->(a) { } traverses all nodes for example foo += m foo traverses all nodes for example foo | 1 traverses all nodes for example -2 ** 10 traverses all nodes for example f (g rescue nil) traverses all nodes for example p <<~E x y E traverses all nodes for example f{ |*, &b| } traverses all nodes for example case foo; when 1, *baz; bar; when *foo; end traverses all nodes for example Bar::Foo traverses all nodes for example defined?(foo) traverses all nodes for example foo / 1 traverses all nodes for example o = { a: 1 } traverses all nodes for example m [] do end traverses all nodes for example foo::a += 1 traverses all nodes for example a b(c d), 1.0r do end traverses all nodes for example def foo(_a, _a); end traverses all nodes for example case foo; in [*, x] then true; end traverses all nodes for example _1 traverses all nodes for example begin; meth; rescue => @ex; bar; end traverses all nodes for example case foo; in ::A then true; end traverses all nodes for example $+ traverses all nodes for example /#@@1/ traverses all nodes for example a&.b &&= 1 traverses all nodes for example case foo; in a:, b: then true; end traverses all nodes for example $10 traverses all nodes for example Bar::Foo = 10 traverses all nodes for example while class Foo a = tap do end; end; break; end traverses all nodes for example _2 = 1 traverses all nodes for example f{ |a| } traverses all nodes for example foo || bar traverses all nodes for example foo >> 1 traverses all nodes for example def f ((*, p)); end traverses all nodes for example def f a, *r, p, &b; end traverses all nodes for example +2.0 ** 10 traverses all nodes for example 42.1i traverses all nodes for example p <<~E x E traverses all nodes for example ->{ } traverses all nodes for example a b(c d), 1 do end traverses all nodes for example <<-"HERE" a\ b HERE traverses all nodes for example p <<~E x y E traverses all nodes for example [1, *foo, 2] traverses all nodes for example case foo; in [x, y,] then true; end traverses all nodes for example while class Foo; tap do end; end; break; end traverses all nodes for example <<-"HERE" #@@1 HERE traverses all nodes for example case foo; in x, y then nil; end traverses all nodes for example /\xa8/n =~ "" traverses all nodes for example { foo: 2 } traverses all nodes for example case foo; when 'bar', 'baz'; bar; end traverses all nodes for example fun(f bar) 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 def f o=1, &b; end traverses all nodes for example `foo#{bar}baz` traverses all nodes for example ->(a; foo, bar) { } traverses all nodes for example fun(&bar) traverses all nodes for example alias $a $+ traverses all nodes for example begin; meth; rescue; foo; else; bar; end traverses all nodes for example "#{1}" traverses all nodes for example a b(c(d)), "x" do end traverses all nodes for example foo == 1 traverses all nodes for example unless foo then bar; end traverses all nodes for example p ->() do a() do end end traverses all nodes for example def f o=1, *r, &b; end traverses all nodes for example ::A, foo = foo traverses all nodes for example %w[ #@@1 ] traverses all nodes for example foo::C ||= raise(bar) rescue nil traverses all nodes for example begin; meth; rescue foo => ex; bar; end traverses all nodes for example case foo; in ->{ 42 } then true; end traverses all nodes for example case foo; in "#{ %Q{a} }": then true; end traverses all nodes for example case foo; in a: 1, b: 2 then true; end traverses all nodes for example defined? foo traverses all nodes for example def f *r, &b; end traverses all nodes for example def f(foo=1, bar=2); end traverses all nodes for example case foo; in x then x; end traverses all nodes for example foo.a += 1 traverses all nodes for example foo::(1) traverses all nodes for example super foo traverses all nodes for example a = b = raise :x traverses all nodes for example a # # &.foo traverses all nodes for example foo += meth rescue bar traverses all nodes for example case foo; in [x, *, y] then true; end traverses all nodes for example case foo; in [x, y, *z] then true; end traverses all nodes for example case foo; in A::B then true; end traverses all nodes for example case 1; in 2; 3; else; 4; end traverses all nodes for example m [], 1 do end traverses all nodes for example foo::m += raise bar rescue nil traverses all nodes for example /foo#{bar}baz/ traverses all nodes for example foo.C += raise(bar) rescue nil traverses all nodes for example foo::A = 1 traverses all nodes for example case foo; in {Foo: 42 } false ; end traverses all nodes for example :"#@1" traverses all nodes for example p <<~E x y E traverses all nodes for example lambda{|;a|a} traverses all nodes for example fun(:foo => 1) traverses all nodes for example { foo: 2, **bar } traverses all nodes for example a&.b = 1 traverses all nodes for example self::A, foo = foo traverses all nodes for example <<`HERE` foo bar HERE traverses all nodes for example /#{1}(?bar)/ =~ 'bar' traverses all nodes for example a b{c d}, "x" do end traverses all nodes for example %I[#@1] traverses all nodes for example super foo, bar do end traverses all nodes for example fun (1 ) traverses all nodes for example foo[0, 1] += 2 traverses all nodes for example -2.0 ** 10 traverses all nodes for example begin; meth; rescue; baz; ensure; bar; end traverses all nodes for example case foo; in "#{ %q{a} }": then true; end traverses all nodes for example def String::foo; end traverses all nodes for example f{ |a, o=1, &b| } traverses all nodes for example def f a, o=1, &b; end traverses all nodes for example case foo; in 1.. then true; end traverses all nodes for example fun(:foo => 1, &baz) traverses all nodes for example case foo; in **nil then true; end traverses all nodes for example f{ |o=1, &b| } traverses all nodes for example f{ } traverses all nodes for example %x{a\ b} traverses all nodes for example a b(c(d)), /x/m do end traverses all nodes for example def f(**); end traverses all nodes for example f(a ? "a":1) traverses all nodes for example foo = raise(bar) rescue nil traverses all nodes for example foo >= 1 traverses all nodes for example @@foo traverses all nodes for example if foo then bar; end traverses all nodes for example a b(c(d)), 1 do end traverses all nodes for example def f **baz, &b; end traverses all nodes for example a b{c d}, :e do end traverses all nodes for example [1, *foo] traverses all nodes for example __LINE__ traverses all nodes for example def self.m; _1; end traverses all nodes for example fun (1) {} traverses all nodes for example 'a\ b' traverses all nodes for example meth (-1.3).abs traverses all nodes for example !(foo..bar) traverses all nodes for example f{ |a, &b| } traverses all nodes for example def f foo: -1 ; end traverses all nodes for example foo[0] += raise bar rescue nil traverses all nodes for example undef foo, :bar, :"foo#{1}" traverses all nodes for example <(a: ->{_1}) {a} traverses all nodes for example def f ((*r)); end traverses all nodes for example %i[ #@@1 ] traverses all nodes for example +42 traverses all nodes for example ->{ } traverses all nodes for example foo[bar,] traverses all nodes for example self::a, foo = foo traverses all nodes for example foo[0, 1] += m foo traverses all nodes for example B::A += 1 traverses all nodes for example fun(foo, :foo => 1, &baz) traverses all nodes for example yield traverses all nodes for example a # # &.foo traverses all nodes for example def f ((a, *, p)); end traverses all nodes for example yield foo traverses all nodes for example def String; end traverses all nodes for example foo - 1 traverses all nodes for example def foo() a:b end traverses all nodes for example def m; class << self; A = nil; end; end traverses all nodes for example case foo; in [x, *y, z] then true; end traverses all nodes for example %x{#@@1} traverses all nodes for example foo && (a, b = bar) traverses all nodes for example begin foo!; bar! end traverses all nodes for example meth 1 do end.fun(bar) traverses all nodes for example +foo traverses all nodes for example break() traverses all nodes for example case foo; when 'bar' then bar; end traverses all nodes for example 42ri traverses all nodes for example %i[foo bar] traverses all nodes for example def m; class << self; class C; end; end; end traverses all nodes for example f{ |*s| } traverses all nodes for example [ 1, 2 => 3 ] traverses all nodes for example 1...2 traverses all nodes for example case foo; in self then true; end traverses all nodes for example foo > 1 traverses all nodes for example a b{c d}, 1.0 do end traverses all nodes for example return() traverses all nodes for example def foo =begin =end end traverses all nodes for example a ||= 1 traverses all nodes for example f{ |**baz, &b| } traverses all nodes for example def f a, *r, &b; end traverses all nodes for example case foo; in x if true; nil; end traverses all nodes for example case [__FILE__, __LINE__ + 1, __ENCODING__] in [__FILE__, __LINE__, __ENCODING__] end traverses all nodes when a class defines `on_block_pass` calls it for all block-pass arguments for example -1.33 traverses all nodes for example def f(**nil); end traverses all nodes for example case; when foo; 'foo'; end traverses all nodes for example foo < 1 traverses all nodes for example a &&= 1 traverses all nodes for example %I() traverses all nodes for example a # # .foo traverses all nodes for example def f (foo: 1, bar: 2, **baz, &b); end traverses all nodes for example m = -> *args do end traverses all nodes for example !(a, b = foo) traverses all nodes when a class defines on_arg calls it for all arguments for example begin; meth; rescue Exception, foo; bar; end traverses all nodes for example unless foo; bar; end traverses all nodes for example case foo; in { a: 1 } then true; end traverses all nodes for example def f ((*r, p)); end traverses all nodes for example p :foo, {** proc do end, b: proc do end} traverses all nodes for example f{ |a| } traverses all nodes for example a b{c d}, 1.0r do end traverses all nodes for example a, b = *foo, bar traverses all nodes for example f{ |*r, p, &b| } traverses all nodes for example super do end traverses all nodes for example meth[] {} traverses all nodes for example case foo; in { a: 1, } then true; end traverses all nodes for example return traverses all nodes for example <<-"HERE" #@1 HERE traverses all nodes for example a += b = raise :x traverses all nodes for example m "#{}#{()}" traverses all nodes for example foo, bar, baz = 1, 2 traverses all nodes for example case foo; in "#{ 'a' }": then true; end traverses all nodes for example assert do: true traverses all nodes for example 1..2 traverses all nodes for example `#@@1` traverses all nodes for example <<-`HERE` #@1 HERE traverses all nodes for example case foo; in {a: 2} false ; end 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 %W"#{1}" traverses all nodes for example <<-E 1 \ 2 3 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 a b{c d}, /x/ do end traverses all nodes for example <<'HERE' foo bar HERE traverses all nodes for example %i[ #@1 ] traverses all nodes for example %q{a\ b} traverses all nodes for example %Q{#@1} traverses all nodes for example case foo; in A[1, 2] then true; end traverses all nodes for example { 1 => 2 } traverses all nodes for example -> (a) { } traverses all nodes for example def x(_4) end traverses all nodes for example while class << self; tap do end; end; break; end traverses all nodes for example self traverses all nodes for example f{ |foo: 1, &b| } traverses all nodes for example foo & 1 traverses all nodes for example %s{#@@1} traverses all nodes for example %q{#@@1} traverses all nodes for example $var = 10 traverses all nodes RuboCop::AST::DefinedNode #receiver is expected to be nil #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 #method_name is expected to eq :defined? RuboCop::AST::RescueNode #else? without an else statement is expected not to be else with an else statement is expected to be else #else_branch without an else statement is expected to be nil with an else statement is expected to be send type #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 #resbody_branches is expected to eq 2 is expected to all be resbody type .new is expected to be a kind of RuboCop::AST::RescueNode #body is expected to be send type RuboCop::AST::ReturnNode behaves like wrapped arguments node .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 #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 a single argument and braces is expected to eq 1 with no arguments and braces is expected to be empty with multiple literal arguments is expected to eq 2 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 .new with a `casgn` node is expected to be a kind of RuboCop::AST::CasgnNode #expression is expected to eq s(:send, nil, :value) RuboCop::AST::ArrayNode #each_value without block is expected to be a kind of Enumerator with block is expected to be a kind of RuboCop::AST::ArrayNode is expected to eq ["(int 1)", "(int 2)", "(int 3)"] .new is expected to be a kind of RuboCop::AST::ArrayNode #percent_literal? with square brackets is expected not to be percent literal :string is expected not to be percent literal is expected not to be percent literal :symbol with a string percent literal is expected to be percent literal is expected to be percent literal :string is expected not to be percent literal :symbol with a symbol percent literal is expected to be percent literal is expected not to be percent literal :string is expected to be percent literal :symbol #square_brackets? with a percent literal is expected not to be square brackets with square brackets is expected to be square brackets #bracketed? with square brackets is expected to be bracketed unbracketed is expected to be nil with a percent literal is expected to be bracketed #values with an array of literals is expected to eq 3 is expected to all be literal with an array of variables is expected to all be send type is expected to eq 2 with an empty array is expected to be empty RuboCop::AST::ConstNode #absolute? is expected to be absolute with a non-namespaced constant is expected not to be absolute with a constant not starting with :: is expected not to be absolute #namespace is expected to eq "::Foo::Bar" #module_name? is expected not to be module name with a constant with a lowercase letter is expected to be module name #short_name is expected to eq :BAZ #relative? with a non-namespaced constant is expected to be relative #each_path yields all parts of the namespace RuboCop::AST::IntNode #value is expected to eq 10 #sign? explicit negative int is expected to be sign explicit positive int is expected to be sign .new is expected to be a kind of RuboCop::AST::IntNode RuboCop::AST::BlockNode #opening_delimiter when enclosed in do-end keywords is expected to eq "do" when enclosed in braces is expected to eq "{" #single_line? when block is on several lines is expected not to be single line when block is on a single line is expected to be single line #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 #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] with no arguments is expected to be empty all argument types is expected to eq [:a, :b, :c, :d, :e, :f, :g, :h, :i] #receiver with safe navigation operator call is expected to eq "foo" with dot operator call is expected to eq "foo" #delimiters when enclosed in do-end keywords is expected to eq ["do", "end"] when enclosed in braces is expected to eq ["{", "}"] #lambda? when block belongs to a non-lambda method is expected not to be lambda when block belongs to a method lambda is expected to be lambda when block belongs to a stabby lambda is expected to be lambda #keywords? when enclosed in do-end keywords is expected to be keywords when enclosed in braces is expected not to be keywords .new is expected to be a kind of RuboCop::AST::BlockNode #closing_delimiter when enclosed in do-end keywords is expected to eq "end" when enclosed in braces is expected to eq "}" #arguments? with destructuring arguments is expected to be arguments with a single argument is expected to be arguments with no arguments is expected not 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 #void_context? when block method is tap is expected to be 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 #braces? when enclosed in do-end keywords is expected not to be braces when enclosed in braces is expected to be braces #arguments with destructured arguments is expected to eq 2 with multiple mixed arguments is expected to eq 2 >= Ruby 2.7 using numbered parameters is expected to be empty 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 RuboCop::AST::NodePattern wildcards 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) at the root level is expected to match code s(:sclass, s(:self), s(:def, :something, s(:args), s(:int, 1))) and :freeze negated behaves like nonmatching doesn't match within a sequence is expected to match code nil and :Const named wildcards in head position of a sequence is expected to match code s(:int, 1), :+, and s(:send, nil, :a) 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) within a union confined to the union without unification is expected to match code s(:int, 2) and s(:int, 1) with partial unification 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) that can not be unified behaves like nonmatching doesn't match with a succeeding unifying constraint 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 branches without the wildcard encountered after behaves like invalid is invalid encountered first behaves like invalid is invalid 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)) within a sequence with values which can be unified is expected to match code s(:int, 5), :+, and s(:int, 5) 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 literals bare literal on a matching literal is expected to match code :bar on a node behaves like nonmatching doesn't match negative integer literals is expected to match code -100 negative float literals is expected to match code -2.5 positive float literals is expected to match code 1.0 double quoted string literals is expected to match code "foo" single quoted string literals is expected to match code "foo" symbol literals is expected to match code :foo caret (ascend) 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 inside a union is expected to match code "abc" inside an intersection is expected to match code 1 using unification to match self within parent with self in the right position is expected to match code 2 with self in the wrong position behaves like nonmatching doesn't match repeated twice 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 ellipsis 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 nested sequence at the end, but no remaining child 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) preceding a capture behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block 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 with a wildcard at the end, but no remaining child to match it behaves like nonmatching doesn't match 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 when nested in complex ways with (send str :<< str) behaves like nonmatching doesn't match 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) on a sequence with a matching node behaves like nonmatching doesn't match 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) 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) captures which also perform a match 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 when nested 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 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 yields captured value(s) and returns true if there is a block returns captured values if there is no 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 with captures 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 it errors raises an error with the right location 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 called on non-matching code returns an enumerator yielding nothing 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 with a pattern without captures def_node_matcher returns the method name when it errors raises an error with the right location when called on matching code is expected to match code :hello when called on non-matching code behaves like nonmatching doesn't match def_node_search returns the method name without a predicate name when called on matching code returns an enumerator yielding the matches when called on non-matching code returns an enumerator yielding nothing when it errors raises an error with the right location with a predicate name 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 match code nil, :foo, s(:sym, :hello), and s(:sym, :world) 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 simple sequence 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 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 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) with a nested sequence in head position behaves like invalid is invalid node type for a child on a child with a different type behaves like nonmatching doesn't match 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 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 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 a different type behaves like nonmatching doesn't match 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) on a node with fewer children, with a wildcard preceding behaves like nonmatching doesn't match on a node with the same type and fewer children behaves like nonmatching doesn't match captures on a wildcard 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 against nil (bug #5470) behaves like nonmatching doesn't match 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 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 in head position in a sequence against literal (bug #5470) behaves like nonmatching doesn't match nested in any child behaves like multiple capture returns captured values if there is no block yields captured value(s) and returns true if there is a block 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 comments behaves like single capture yields captured value(s) and returns true if there is a block returns captured values if there is no block nil against a node pattern (bug #5470) behaves like nonmatching doesn't match nil literals is expected to match code nil value in AST behaves like nonmatching doesn't match nil value in AST, use nil? method is expected to match code nil and :foo unions variadic multiple works for complex cases with variadic terms works for cases with variadic terms before and after union works for cases with fixed arity before and after union works for cases with variadic terms after union with fixed 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 string literals is expected to match code s(:str, "a") and :upcase containing integer literals is expected to match code s(:int, 10) and :abs 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 containing mixed node and literals is expected to match code nil and :obj 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 nested inside a sequence is expected to match code s(:const, nil, :Const) and :method with a nested sequence is expected to match code s(:const, nil, :Const) and :method params when negated, with a nonmatching value is expected to match code s(:const, s(:const, nil, :Namespace), :B) and :A when negated, with a matching value 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 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 when inside a union, with a matching value is expected to match code s(:int, 10) and 10 without explicit number is expected to match code s(:const, s(:const, nil, :Namespace), :A), :A, and s(:const, nil, :Namespace) 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 extra are provided raises an ArgumentError when not provided raises an ArgumentError when provided as argument to match is expected to match code s(:int, 10) and {:foo=>#} in a nested sequence is expected to match code s(:send, s(:send, s(:int, 5), :dec), :inc), :inc, and :dec param number zero in a position which does not match original target node behaves like nonmatching doesn't match in a position which matches original target node is expected to match code 1 when inside an intersection is expected to match code s(:int, 20), 10, and 20 when preceded by ... is expected to match code s(:send, s(:int, 1), :+, s(:int, 10)) and s(:int, 10) descend 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 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)) 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 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 without match behaves like nonmatching doesn't match repeated using ? 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 behaves like repeated pattern 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]" 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 with too many matching children behaves like nonmatching doesn't match using * without capture is expected to match code s(:sym, :hello), s(:int, 1), s(:int, 2), and s(:int, 3) 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 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 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 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]" at beginning of sequence behaves like invalid is invalid 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 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 with zero match behaves like nonmatching doesn't match captures within union 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 yields captured value(s) and returns true if there is a block returns captured values if there is no block with a different number of captures in each branch behaves like invalid is invalid within nested sequences behaves like multiple capture yields captured value(s) and returns true if there is a block returns captured values if there is no block bare node type on a node with the same type is expected to match code s(:send, nil, :obj) and :method yaml compatibility is expected to match code s(:send, nil, :obj) and :method on a node with a different type behaves like nonmatching doesn't match marshal compatibility is expected to match code s(:send, nil, :obj) and :method #to_s is instructive #dup is expected to match code s(:send, nil, :obj) and :method #== returns true iff the patterns are similar on a node with a matching, hyphenated type is expected to match code s(:lvasgn, :a), :+, and s(:int, 1) #pattern returns the pattern regexp matches symbols or strings bad syntax with negated closing curly behaves like invalid is invalid with unmatched closing paren behaves like invalid is invalid with empty union behaves like invalid is invalid with unmatched closing curly behaves like invalid is invalid with unmatched opening paren and `...` behaves like invalid is invalid with empty union subsequence in seq head behaves like invalid is invalid with doubled ellipsis is expected to match code "foo" with unmatched opening curly behaves like invalid is invalid with empty parentheses behaves like invalid is invalid with empty intersection behaves like invalid is invalid with variadic unions where not supported behaves like invalid is invalid with negated closing paren behaves like invalid is invalid with leading comma in arg list behaves like invalid is invalid with unsupported subsequence in seq head within union behaves like invalid is invalid with negated ellipsis behaves like invalid is invalid with doubled comma in arg list behaves like invalid is invalid with unmatched opening paren behaves like invalid is invalid captures on ... 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 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 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 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 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 [] 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 set 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 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 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 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 remaining patterns 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 in any order doubled 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 separated by an 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 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 yields captured value(s) and returns true if there is a block returns captured values if there is no 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 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 with too few children behaves like nonmatching doesn't match with too many children behaves like nonmatching doesn't match 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 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 nested behaves like invalid is invalid doubled with ellipsis in wrong order behaves like nonmatching doesn't match 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 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 .descend yields the given argument if it is not a Node yields all children depth first predicates 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) 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 true is expected to match code s(:int, 2), :+, and s(:float, 2.0) 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 applied to an integer for which the predicate is false behaves like nonmatching doesn't match when negated is expected to match code s(:int, 1) and :inc 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 when in last-child position, but all children have already been matched 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 with a named argument for which the predicate is false behaves like nonmatching doesn't match 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 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" commas with commas randomly strewn around behaves like invalid is invalid funcalls with one argument is expected to match code s(:str, "foo") and "foo" 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" RuboCop::AST::AndNode #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 #rhs with a semantic and node is expected to be int type with a logical and node is expected to be int type #operator with a logical and node is expected to eq "&&" with a semantic and node is expected to eq "and" #alternate_operator with a logical and node is expected to eq "and" with a semantic and node is expected to eq "&&" .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 #inverse_operator with a logical and node is expected to eq "||" with a semantic and node is expected to eq "or" #lhs with a logical and node is expected to be sym type with a semantic and node is expected to be sym 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 RuboCop::AST::Token type predicates #left_brace? returns true for right_bracket tokens returns false for non right_bracket tokens #dot? returns false for non dot tokens returns true for dot tokens with braces & parens #left_curly_brace? returns false for non left block brace tokens returns true for left block brace tokens #right_curly_brace? returns true for all right brace tokens returns false for non right brace tokens #left_brace? returns true for left hash brace tokens returns false for non left hash brace tokens #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_bracket? returns false for non right_bracket tokens returns true for all right_bracket tokens #semicolon? returns false for non semicolon tokens returns true for semicolon tokens #end? returns true for end tokens returns false for non end tokens #new_line? returns false for non new line tokens returns true for new line tokens #comment? returns false for non comment tokens returns true for comment tokens #regexp_dots? returns true for regexp tokens returns false for non comma tokens #left_ref_bracket? returns true for left_ref_bracket tokens returns false for non left_ref_bracket tokens #comma? returns false for non comma tokens returns true for comma tokens #left_bracket? returns true for all left_bracket tokens returns false for non left_bracket tokens #rescue_modifier? returns false for non rescue modifier tokens returns true for rescue modifier tokens #left_array_bracket? returns false for non left_array_bracket tokens returns true for left_array_bracket tokens #equals_sign? returns false for non equals sign tokens returns true for equals sign tokens #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 #line returns line of token #column returns index of first char in token range on that line #space_before returns nil when there is not a space before token returns nil when it is on the first line returns truthy MatchData when there is a space before token #to_s returns string of token data #end_pos returns index of last char in token range of entire source .from_parser_token sets parser token's type to rubocop token's type returns a #to_s useful for debugging sets parser token's text to rubocop token's text sets parser token's range to rubocop token's pos RuboCop::AST::OpAsgnNode #expression is expected to eq s(:send, nil, :value) #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 #name is expected to eq :var #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode Finished in 3.44 seconds (files took 1.2 seconds to load) 2392 examples, 0 failures Randomized with seed 17249 ┌──────────────────────────────────────────────────────────────────────────────┐ │ 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_all.deb'. dpkg-genbuildinfo --build=binary -O../ruby-rubocop-ast_1.24.0-2_amd64.buildinfo dpkg-genchanges --build=binary -O../ruby-rubocop-ast_1.24.0-2_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) dpkg-genchanges: info: not including original source code in upload I: copying local configuration I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/1783005 and its subdirectories I: Current time: Thu Aug 7 03:19:16 -12 2025 I: pbuilder-time-stamp: 1754579956 Thu Aug 7 15:19:17 UTC 2025 I: 1st build successful. Starting 2nd build on remote node ionos15-amd64.debian.net. Thu Aug 7 15:19:17 UTC 2025 I: Preparing to do remote build '2' on ionos15-amd64.debian.net. Thu Aug 7 15:19:17 UTC 2025 - checking /var/lib/jenkins/offline_nodes if ionos15-amd64.debian.net is marked as down. Thu Aug 7 15:19:17 UTC 2025 - checking via ssh if ionos15-amd64.debian.net is up. removed '/tmp/read-only-fs-test-yZO7Ki' ==================================================================================== Wed Sep 9 21:42:17 UTC 2026 - running /srv/jenkins/bin/reproducible_build.sh (for job /srv/jenkins/bin/reproducible_build.sh) on ionos15-amd64, called using "2 ruby-rubocop-ast trixie /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh 1.24.0-2" as arguments. Wed Sep 9 21:42:17 UTC 2026 - actually running "reproducible_build.sh" (md5sum 44ec6a3142940d5e9a7ab76543d96029) as "/tmp/jenkins-script-D4XnmrmC" $ git clone https://salsa.debian.org/qa/jenkins.debian.net.git ; more CONTRIBUTING Wed Sep 9 21:42:17 UTC 2026 I: Downloading source for trixie/ruby-rubocop-ast=1.24.0-2 Reading package lists... NOTICE: 'ruby-rubocop-ast' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/ruby-team/ruby-rubocop-ast.git Please use: git clone https://salsa.debian.org/ruby-team/ruby-rubocop-ast.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 134 kB of source archives. Get:1 http://deb.debian.org/debian trixie/main ruby-rubocop-ast 1.24.0-2 (dsc) [2224 B] Get:2 http://deb.debian.org/debian trixie/main ruby-rubocop-ast 1.24.0-2 (tar) [128 kB] Get:3 http://deb.debian.org/debian trixie/main ruby-rubocop-ast 1.24.0-2 (diff) [3600 B] Fetched 134 kB in 0s (4338 kB/s) Download complete and in download only mode Reading package lists... NOTICE: 'ruby-rubocop-ast' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/ruby-team/ruby-rubocop-ast.git Please use: git clone https://salsa.debian.org/ruby-team/ruby-rubocop-ast.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 134 kB of source archives. Get:1 http://deb.debian.org/debian trixie/main ruby-rubocop-ast 1.24.0-2 (dsc) [2224 B] Get:2 http://deb.debian.org/debian trixie/main ruby-rubocop-ast 1.24.0-2 (tar) [128 kB] Get:3 http://deb.debian.org/debian trixie/main ruby-rubocop-ast 1.24.0-2 (diff) [3600 B] Fetched 134 kB in 0s (4338 kB/s) Download complete and in download only mode ============================================================================= Re-Building ruby-rubocop-ast in trixie on amd64 on ionos15-amd64 now. Date: Wed Sep 9 21:42:18 UTC 2026 Date UTC: Wed Sep 9 21:42:18 UTC 2026 ============================================================================= ++ mktemp -t pbuilderrc_XXXX --tmpdir=/srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh + local TMPCFG=/srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/pbuilderrc_T0lf + case ${ARCH} in + case $ARCH in + locale=et_EE + language=et + case "${SUITE}" in + reproducible_buildflags=+all + extra_deb_build_options= + case "${SRCPACKAGE}" in + cat + echo BUILDDIR=/build/reproducible-path + '[' ruby-rubocop-ast = debian-installer -o ruby-rubocop-ast = debian-installer-netboot-images ']' + pbuilder_options=() + local pbuilder_options + DEBBUILDOPTS=-b + BINARYTARGET= + '[' ruby-rubocop-ast = u-boot ']' + case "${SRCPACKAGE}" in + PBUILDERTIMEOUT=24 + local PRESULT=0 + sudo timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/pbuilderrc_T0lf --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b2 --logfile b2/build.log ruby-rubocop-ast_1.24.0-2.dsc W: /root/.pbuilderrc does not exist I: Logging to b2/build.log I: pbuilder: network access will be disabled during build I: Current time: Thu Sep 10 11:42:18 +14 2026 I: pbuilder-time-stamp: 1788990138 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [ruby-rubocop-ast_1.24.0-2.dsc] I: copying [./ruby-rubocop-ast_1.24.0.orig.tar.gz] I: copying [./ruby-rubocop-ast_1.24.0-2.debian.tar.xz] I: Extracting source dpkg-source: warning: cannot verify inline signature for ./ruby-rubocop-ast_1.24.0-2.dsc: no acceptable signature found dpkg-source: info: extracting ruby-rubocop-ast in 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.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 I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/661964/tmp/hooks/D01_modify_environment starting debug: Running on ionos15-amd64. I: Changing host+domainname to test build reproducibility I: Adding a custom variable just for the fun of it... I: Changing /bin/sh to bash '/bin/sh' -> '/bin/bash' lrwxrwxrwx 1 root root 9 Sep 9 21:42 /bin/sh -> /bin/bash I: Setting pbuilder2's login shell to /bin/bash I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other I: user script /srv/workspace/pbuilder/661964/tmp/hooks/D01_modify_environment finished I: user script /srv/workspace/pbuilder/661964/tmp/hooks/D02_print_environment starting I: set BASH=/bin/sh BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=() BASH_CMDS=() BASH_LINENO=([0]="12" [1]="0") BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") BASH_VERSION='5.2.37(1)-release' BUILDDIR=/build/reproducible-path BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' BUILDUSERNAME=pbuilder2 BUILD_ARCH=amd64 DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' DIRSTACK=() DISTRIBUTION=trixie EUID=0 FUNCNAME=([0]="Echo" [1]="main") GROUPS=() HOME=/root HOSTNAME=i-capture-the-hostname HOSTTYPE=x86_64 HOST_ARCH=amd64 IFS=' ' INVOCATION_ID=76dc84391cf44f7c912161ccb929f274 LANG=C LANGUAGE=et_EE:et LC_ALL=C MACHTYPE=x86_64-pc-linux-gnu MAIL=/var/mail/root OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path PBCURRENTCOMMANDLINEOPERATION=build PBUILDER_OPERATION=build PBUILDER_PKGDATADIR=/usr/share/pbuilder PBUILDER_PKGLIBDIR=/usr/lib/pbuilder PBUILDER_SYSCONFDIR=/etc PIPESTATUS=([0]="0") POSIXLY_CORRECT=y PPID=661964 PS4='+ ' PWD=/ SHELL=/bin/bash SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix SHLVL=3 SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/pbuilderrc_T0lf --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b2 --logfile b2/build.log ruby-rubocop-ast_1.24.0-2.dsc' SUDO_GID=111 SUDO_UID=106 SUDO_USER=jenkins TERM=unknown TZ=/usr/share/zoneinfo/Etc/GMT-14 UID=0 USER=root _='I: set' http_proxy=http://213.165.73.152:3128 I: uname -a Linux i-capture-the-hostname 6.12.33+deb12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.33-1~bpo12+1 (2025-07-09) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 May 12 2025 /bin -> usr/bin I: user script /srv/workspace/pbuilder/661964/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: amd64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), gem2deb (>= 1), racc, rake, ruby-oedipus-lex, ruby-rspec, ruby-whitequark-parser (>= 3.1.1.0) dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19851 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on gem2deb (>= 1); however: Package gem2deb is not installed. pbuilder-satisfydepends-dummy depends on racc; however: Package racc is not installed. pbuilder-satisfydepends-dummy depends on rake; however: Package rake is not installed. pbuilder-satisfydepends-dummy depends on ruby-oedipus-lex; however: Package ruby-oedipus-lex is not installed. pbuilder-satisfydepends-dummy depends on ruby-rspec; however: Package ruby-rspec is not installed. pbuilder-satisfydepends-dummy depends on ruby-whitequark-parser (>= 3.1.1.0); however: Package ruby-whitequark-parser is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} ca-certificates{a} debhelper{a} devscripts{a} dh-autoreconf{a} dh-strip-nondeterminism{a} dwz{a} file{a} gem2deb{a} gem2deb-test-runner{a} gettext{a} gettext-base{a} gpg{a} gpg-agent{a} gpgconf{a} gpgv{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libassuan9{a} libb-hooks-op-check-perl{a} libclass-method-modifiers-perl{a} libclass-xsaccessor-perl{a} libclone-perl{a} libdebhelper-perl{a} libdevel-callchecker-perl{a} libdynaloader-functions-perl{a} libelf1t64{a} libencode-locale-perl{a} libexpat1{a} libffi8{a} libfile-dirlist-perl{a} libfile-homedir-perl{a} libfile-listing-perl{a} libfile-stripnondeterminism-perl{a} libfile-touch-perl{a} libfile-which-perl{a} libgcrypt20{a} libgmp-dev{a} libgmpxx4ldbl{a} libgpg-error0{a} libhtml-parser-perl{a} libhtml-tagset-perl{a} libhtml-tree-perl{a} libhttp-cookies-perl{a} libhttp-date-perl{a} libhttp-message-perl{a} libhttp-negotiate-perl{a} libimport-into-perl{a} libio-html-perl{a} libio-socket-ssl-perl{a} libksba8{a} liblwp-mediatypes-perl{a} liblwp-protocol-https-perl{a} libmagic-mgc{a} libmagic1t64{a} libmodule-runtime-perl{a} libmoo-perl{a} libnet-http-perl{a} libnet-ssleay-perl{a} libnpth0t64{a} libparams-classify-perl{a} libpipeline1{a} libpython3-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} librole-tiny-perl{a} libruby{a} libruby3.3{a} libsub-quote-perl{a} libtimedate-perl{a} libtool{a} libtry-tiny-perl{a} libuchardet0{a} libunistring5{a} liburi-perl{a} libwww-perl{a} libwww-robotrules-perl{a} libxml2{a} libyaml-0-2{a} m4{a} man-db{a} media-types{a} netbase{a} openssl{a} patchutils{a} perl-openssl-defaults{a} pinentry-curses{a} po-debconf{a} python3{a} python3-minimal{a} python3.13{a} python3.13-minimal{a} racc{a} rake{a} readline-common{a} ruby{a} ruby-all-dev{a} ruby-ast{a} ruby-csv{a} ruby-did-you-mean{a} ruby-diff-lcs{a} ruby-minitest{a} ruby-net-telnet{a} ruby-oedipus-lex{a} ruby-power-assert{a} ruby-rspec{a} ruby-rspec-core{a} ruby-rspec-expectations{a} ruby-rspec-mocks{a} ruby-rspec-support{a} ruby-ruby2-keywords{a} ruby-rubygems{a} ruby-test-unit{a} ruby-webrick{a} ruby-whitequark-parser{a} ruby-xmlrpc{a} ruby3.3{a} ruby3.3-dev{a} rubygems-integration{a} sensible-utils{a} sopv-gpgv{a} tzdata{a} wdiff{a} The following packages are RECOMMENDED but will NOT be installed: apt-file curl dctrl-tools debian-keyring debian-tag2upload-keyring dput dput-ng dupload equivs fonts-lato gnupg libarchive-cpio-perl libdata-dump-perl libdistro-info-perl libgit-wrapper-perl libgitlab-api-v4-perl libgpg-error-l10n libhtml-form-perl libhtml-format-perl libhttp-daemon-perl libio-compress-brotli-perl libjs-jquery libjson-perl liblist-compare-perl libltdl-dev libmail-sendmail-perl libmailtools-perl libnamespace-clean-perl libsoap-lite-perl libstring-shellquote-perl libxstring-perl licensecheck lintian lynx lzip pristine-tar python3-apt python3-argcomplete python3-debian python3-magic python3-requests python3-unidiff python3-xdg ruby-sdbm ruby3.3-doc sopv-doc strace unzip wget zip 0 packages upgraded, 129 newly installed, 0 to remove and 0 not upgraded. Need to get 36.1 MB of archives. After unpacking 140 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian trixie/main amd64 libexpat1 amd64 2.7.1-2 [108 kB] Get: 2 http://deb.debian.org/debian trixie/main amd64 libpython3.13-minimal amd64 3.13.5-2 [862 kB] Get: 3 http://deb.debian.org/debian trixie/main amd64 python3.13-minimal amd64 3.13.5-2 [2224 kB] Get: 4 http://deb.debian.org/debian trixie/main amd64 python3-minimal amd64 3.13.5-1 [27.2 kB] Get: 5 http://deb.debian.org/debian trixie/main amd64 media-types all 13.0.0 [29.3 kB] Get: 6 http://deb.debian.org/debian trixie/main amd64 netbase all 6.5 [12.4 kB] Get: 7 http://deb.debian.org/debian trixie/main amd64 tzdata all 2025b-4 [260 kB] Get: 8 http://deb.debian.org/debian trixie/main amd64 libffi8 amd64 3.4.8-2 [24.1 kB] Get: 9 http://deb.debian.org/debian trixie/main amd64 readline-common all 8.2-6 [69.4 kB] Get: 10 http://deb.debian.org/debian trixie/main amd64 libreadline8t64 amd64 8.2-6 [169 kB] Get: 11 http://deb.debian.org/debian trixie/main amd64 libpython3.13-stdlib amd64 3.13.5-2 [1956 kB] Get: 12 http://deb.debian.org/debian trixie/main amd64 python3.13 amd64 3.13.5-2 [757 kB] Get: 13 http://deb.debian.org/debian trixie/main amd64 libpython3-stdlib amd64 3.13.5-1 [10.2 kB] Get: 14 http://deb.debian.org/debian trixie/main amd64 python3 amd64 3.13.5-1 [28.2 kB] Get: 15 http://deb.debian.org/debian trixie/main amd64 sensible-utils all 0.0.25 [25.0 kB] Get: 16 http://deb.debian.org/debian trixie/main amd64 openssl amd64 3.5.1-1 [1494 kB] Get: 17 http://deb.debian.org/debian trixie/main amd64 ca-certificates all 20250419 [162 kB] Get: 18 http://deb.debian.org/debian trixie/main amd64 libmagic-mgc amd64 1:5.46-5 [338 kB] Get: 19 http://deb.debian.org/debian trixie/main amd64 libmagic1t64 amd64 1:5.46-5 [109 kB] Get: 20 http://deb.debian.org/debian trixie/main amd64 file amd64 1:5.46-5 [43.6 kB] Get: 21 http://deb.debian.org/debian trixie/main amd64 gettext-base amd64 0.23.1-2 [243 kB] Get: 22 http://deb.debian.org/debian trixie/main amd64 libuchardet0 amd64 0.0.8-1+b2 [68.9 kB] Get: 23 http://deb.debian.org/debian trixie/main amd64 groff-base amd64 1.23.0-9 [1187 kB] Get: 24 http://deb.debian.org/debian trixie/main amd64 bsdextrautils amd64 2.41-5 [94.6 kB] Get: 25 http://deb.debian.org/debian trixie/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB] Get: 26 http://deb.debian.org/debian trixie/main amd64 man-db amd64 2.13.1-1 [1469 kB] Get: 27 http://deb.debian.org/debian trixie/main amd64 m4 amd64 1.4.19-8 [294 kB] Get: 28 http://deb.debian.org/debian trixie/main amd64 autoconf all 2.72-3.1 [494 kB] Get: 29 http://deb.debian.org/debian trixie/main amd64 autotools-dev all 20240727.1 [60.2 kB] Get: 30 http://deb.debian.org/debian trixie/main amd64 automake all 1:1.17-4 [862 kB] Get: 31 http://deb.debian.org/debian trixie/main amd64 autopoint all 0.23.1-2 [770 kB] Get: 32 http://deb.debian.org/debian trixie/main amd64 libdebhelper-perl all 13.24.2 [90.9 kB] Get: 33 http://deb.debian.org/debian trixie/main amd64 libtool all 2.5.4-4 [539 kB] Get: 34 http://deb.debian.org/debian trixie/main amd64 dh-autoreconf all 20 [17.1 kB] Get: 35 http://deb.debian.org/debian trixie/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 36 http://deb.debian.org/debian trixie/main amd64 libfile-stripnondeterminism-perl all 1.14.1-2 [19.7 kB] Get: 37 http://deb.debian.org/debian trixie/main amd64 dh-strip-nondeterminism all 1.14.1-2 [8620 B] Get: 38 http://deb.debian.org/debian trixie/main amd64 libelf1t64 amd64 0.192-4 [189 kB] Get: 39 http://deb.debian.org/debian trixie/main amd64 dwz amd64 0.15-1+b1 [110 kB] Get: 40 http://deb.debian.org/debian trixie/main amd64 libunistring5 amd64 1.3-2 [477 kB] Get: 41 http://deb.debian.org/debian trixie/main amd64 libxml2 amd64 2.12.7+dfsg+really2.9.14-2.1 [698 kB] Get: 42 http://deb.debian.org/debian trixie/main amd64 gettext amd64 0.23.1-2 [1680 kB] Get: 43 http://deb.debian.org/debian trixie/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 44 http://deb.debian.org/debian trixie/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 45 http://deb.debian.org/debian trixie/main amd64 debhelper all 13.24.2 [919 kB] Get: 46 http://deb.debian.org/debian trixie/main amd64 libgpg-error0 amd64 1.51-4 [82.1 kB] Get: 47 http://deb.debian.org/debian trixie/main amd64 libassuan9 amd64 3.0.2-2 [61.5 kB] Get: 48 http://deb.debian.org/debian trixie/main amd64 libgcrypt20 amd64 1.11.0-7 [843 kB] Get: 49 http://deb.debian.org/debian trixie/main amd64 gpgconf amd64 2.4.7-21+b3 [129 kB] Get: 50 http://deb.debian.org/debian trixie/main amd64 libksba8 amd64 1.6.7-2+b1 [136 kB] Get: 51 http://deb.debian.org/debian trixie/main amd64 libnpth0t64 amd64 1.8-3 [23.2 kB] Get: 52 http://deb.debian.org/debian trixie/main amd64 gpg amd64 2.4.7-21+b3 [634 kB] Get: 53 http://deb.debian.org/debian trixie/main amd64 pinentry-curses amd64 1.3.1-2 [86.4 kB] Get: 54 http://deb.debian.org/debian trixie/main amd64 gpg-agent amd64 2.4.7-21+b3 [271 kB] Get: 55 http://deb.debian.org/debian trixie/main amd64 libfile-dirlist-perl all 0.05-3 [7600 B] Get: 56 http://deb.debian.org/debian trixie/main amd64 libfile-which-perl all 1.27-2 [15.1 kB] Get: 57 http://deb.debian.org/debian trixie/main amd64 libfile-homedir-perl all 1.006-2 [42.4 kB] Get: 58 http://deb.debian.org/debian trixie/main amd64 libfile-touch-perl all 0.12-2 [8816 B] Get: 59 http://deb.debian.org/debian trixie/main amd64 libclass-method-modifiers-perl all 2.15-1 [18.0 kB] Get: 60 http://deb.debian.org/debian trixie/main amd64 libclass-xsaccessor-perl amd64 1.19-4+b5 [36.1 kB] Get: 61 http://deb.debian.org/debian trixie/main amd64 libb-hooks-op-check-perl amd64 0.22-3+b2 [10.6 kB] Get: 62 http://deb.debian.org/debian trixie/main amd64 libdynaloader-functions-perl all 0.004-2 [12.2 kB] Get: 63 http://deb.debian.org/debian trixie/main amd64 libdevel-callchecker-perl amd64 0.009-2 [15.6 kB] Get: 64 http://deb.debian.org/debian trixie/main amd64 libparams-classify-perl amd64 0.015-2+b4 [22.5 kB] Get: 65 http://deb.debian.org/debian trixie/main amd64 libmodule-runtime-perl all 0.018-1 [17.8 kB] Get: 66 http://deb.debian.org/debian trixie/main amd64 libimport-into-perl all 1.002005-2 [11.3 kB] Get: 67 http://deb.debian.org/debian trixie/main amd64 librole-tiny-perl all 2.002004-1 [21.4 kB] Get: 68 http://deb.debian.org/debian trixie/main amd64 libsub-quote-perl all 2.006008-1 [21.8 kB] Get: 69 http://deb.debian.org/debian trixie/main amd64 libmoo-perl all 2.005005-1 [58.0 kB] Get: 70 http://deb.debian.org/debian trixie/main amd64 libencode-locale-perl all 1.05-3 [12.9 kB] Get: 71 http://deb.debian.org/debian trixie/main amd64 libtimedate-perl all 2.3300-2 [39.3 kB] Get: 72 http://deb.debian.org/debian trixie/main amd64 libhttp-date-perl all 6.06-1 [10.7 kB] Get: 73 http://deb.debian.org/debian trixie/main amd64 libfile-listing-perl all 6.16-1 [12.4 kB] Get: 74 http://deb.debian.org/debian trixie/main amd64 libhtml-tagset-perl all 3.24-1 [14.7 kB] Get: 75 http://deb.debian.org/debian trixie/main amd64 liburi-perl all 5.30-1 [105 kB] Get: 76 http://deb.debian.org/debian trixie/main amd64 libhtml-parser-perl amd64 3.83-1+b2 [99.7 kB] Get: 77 http://deb.debian.org/debian trixie/main amd64 libhtml-tree-perl all 5.07-3 [211 kB] Get: 78 http://deb.debian.org/debian trixie/main amd64 libclone-perl amd64 0.47-1+b1 [13.9 kB] Get: 79 http://deb.debian.org/debian trixie/main amd64 libio-html-perl all 1.004-3 [16.2 kB] Get: 80 http://deb.debian.org/debian trixie/main amd64 liblwp-mediatypes-perl all 6.04-2 [20.2 kB] Get: 81 http://deb.debian.org/debian trixie/main amd64 libhttp-message-perl all 7.00-2 [79.8 kB] Get: 82 http://deb.debian.org/debian trixie/main amd64 libhttp-cookies-perl all 6.11-1 [19.1 kB] Get: 83 http://deb.debian.org/debian trixie/main amd64 libhttp-negotiate-perl all 6.01-2 [13.1 kB] Get: 84 http://deb.debian.org/debian trixie/main amd64 perl-openssl-defaults amd64 7+b2 [6724 B] Get: 85 http://deb.debian.org/debian trixie/main amd64 libnet-ssleay-perl amd64 1.94-3 [339 kB] Get: 86 http://deb.debian.org/debian trixie/main amd64 libio-socket-ssl-perl all 2.089-1 [223 kB] Get: 87 http://deb.debian.org/debian trixie/main amd64 libnet-http-perl all 6.23-1 [23.9 kB] Get: 88 http://deb.debian.org/debian trixie/main amd64 liblwp-protocol-https-perl all 6.14-1 [10.8 kB] Get: 89 http://deb.debian.org/debian trixie/main amd64 libtry-tiny-perl all 0.32-1 [22.9 kB] Get: 90 http://deb.debian.org/debian trixie/main amd64 libwww-robotrules-perl all 6.02-1 [12.9 kB] Get: 91 http://deb.debian.org/debian trixie/main amd64 libwww-perl all 6.78-1 [183 kB] Get: 92 http://deb.debian.org/debian trixie/main amd64 patchutils amd64 0.4.2-1 [77.5 kB] Get: 93 http://deb.debian.org/debian trixie/main amd64 gpgv amd64 2.4.7-21+b3 [241 kB] Get: 94 http://deb.debian.org/debian trixie/main amd64 sopv-gpgv all 0.1.4-1 [11.3 kB] Get: 95 http://deb.debian.org/debian trixie/main amd64 wdiff amd64 1.2.2-9 [122 kB] Get: 96 http://deb.debian.org/debian trixie/main amd64 devscripts all 2.25.15 [1067 kB] Get: 97 http://deb.debian.org/debian trixie/main amd64 rubygems-integration all 1.19 [5488 B] Get: 98 http://deb.debian.org/debian trixie/main amd64 ruby-csv all 3.3.4-1 [42.2 kB] Get: 99 http://deb.debian.org/debian trixie/main amd64 ruby-did-you-mean all 1.6.3-2 [20.9 kB] Get: 100 http://deb.debian.org/debian trixie/main amd64 ruby-net-telnet all 0.2.0-1 [13.1 kB] Get: 101 http://deb.debian.org/debian trixie/main amd64 ruby-ruby2-keywords all 0.0.5-1 [4300 B] Get: 102 http://deb.debian.org/debian trixie/main amd64 ruby-webrick all 1.9.1-1 [59.6 kB] Get: 103 http://deb.debian.org/debian trixie/main amd64 ruby-xmlrpc all 0.3.3-2 [24.4 kB] Get: 104 http://deb.debian.org/debian trixie/main amd64 libyaml-0-2 amd64 0.2.5-2 [52.5 kB] Get: 105 http://deb.debian.org/debian trixie/main amd64 libruby3.3 amd64 3.3.8-2 [6301 kB] Get: 106 http://deb.debian.org/debian trixie/main amd64 ruby3.3 amd64 3.3.8-2 [834 kB] Get: 107 http://deb.debian.org/debian trixie/main amd64 libruby amd64 1:3.3+b1 [5440 B] Get: 108 http://deb.debian.org/debian trixie/main amd64 ruby-rubygems all 3.6.7-2 [407 kB] Get: 109 http://deb.debian.org/debian trixie/main amd64 ruby amd64 1:3.3+b1 [6560 B] Get: 110 http://deb.debian.org/debian trixie/main amd64 rake all 13.2.1-1 [65.2 kB] Get: 111 http://deb.debian.org/debian trixie/main amd64 ruby-minitest all 5.25.4-3 [66.3 kB] Get: 112 http://deb.debian.org/debian trixie/main amd64 ruby-power-assert all 2.0.3-1 [11.8 kB] Get: 113 http://deb.debian.org/debian trixie/main amd64 ruby-test-unit all 3.6.2-1 [79.1 kB] Get: 114 http://deb.debian.org/debian trixie/main amd64 gem2deb-test-runner amd64 2.2.5 [17.9 kB] Get: 115 http://deb.debian.org/debian trixie/main amd64 libgmpxx4ldbl amd64 2:6.3.0+dfsg-3 [329 kB] Get: 116 http://deb.debian.org/debian trixie/main amd64 libgmp-dev amd64 2:6.3.0+dfsg-3 [642 kB] Get: 117 http://deb.debian.org/debian trixie/main amd64 ruby3.3-dev amd64 3.3.8-2 [1045 kB] Get: 118 http://deb.debian.org/debian trixie/main amd64 ruby-all-dev amd64 1:3.3+b1 [6496 B] Get: 119 http://deb.debian.org/debian trixie/main amd64 gem2deb amd64 2.2.5 [48.0 kB] Get: 120 http://deb.debian.org/debian trixie/main amd64 racc all 1.8.1-1 [75.4 kB] Get: 121 http://deb.debian.org/debian trixie/main amd64 ruby-ast all 2.4.3-1 [10.7 kB] Get: 122 http://deb.debian.org/debian trixie/main amd64 ruby-diff-lcs all 1.5.1-1 [28.1 kB] Get: 123 http://deb.debian.org/debian trixie/main amd64 ruby-oedipus-lex all 2.6.0-2 [19.1 kB] Get: 124 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-support all 3.13.0c0e0m0s1-2 [28.5 kB] Get: 125 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB] Get: 126 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 127 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 128 http://deb.debian.org/debian trixie/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get: 129 http://deb.debian.org/debian trixie/main amd64 ruby-whitequark-parser all 3.3.4.2-2 [507 kB] Fetched 36.1 MB in 2s (20.0 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1: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 ... 19851 files and directories currently installed.) Preparing to unpack .../libexpat1_2.7.1-2_amd64.deb ... Unpacking libexpat1:amd64 (2.7.1-2) ... Selecting previously unselected package libpython3.13-minimal:amd64. Preparing to unpack .../libpython3.13-minimal_3.13.5-2_amd64.deb ... Unpacking libpython3.13-minimal:amd64 (3.13.5-2) ... Selecting previously unselected package python3.13-minimal. Preparing to unpack .../python3.13-minimal_3.13.5-2_amd64.deb ... Unpacking python3.13-minimal (3.13.5-2) ... Setting up libpython3.13-minimal:amd64 (3.13.5-2) ... Setting up libexpat1:amd64 (2.7.1-2) ... Setting up python3.13-minimal (3.13.5-2) ... Selecting previously unselected package python3-minimal. (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 ... 20185 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.13.5-1_amd64.deb ... Unpacking python3-minimal (3.13.5-1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_13.0.0_all.deb ... Unpacking media-types (13.0.0) ... Selecting previously unselected package netbase. Preparing to unpack .../2-netbase_6.5_all.deb ... Unpacking netbase (6.5) ... Selecting previously unselected package tzdata. Preparing to unpack .../3-tzdata_2025b-4_all.deb ... Unpacking tzdata (2025b-4) ... Selecting previously unselected package libffi8:amd64. Preparing to unpack .../4-libffi8_3.4.8-2_amd64.deb ... Unpacking libffi8:amd64 (3.4.8-2) ... Selecting previously unselected package readline-common. Preparing to unpack .../5-readline-common_8.2-6_all.deb ... Unpacking readline-common (8.2-6) ... Selecting previously unselected package libreadline8t64:amd64. Preparing to unpack .../6-libreadline8t64_8.2-6_amd64.deb ... Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8 to /lib/x86_64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8.2 to /lib/x86_64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8 to /lib/x86_64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8.2 to /lib/x86_64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:amd64 (8.2-6) ... Selecting previously unselected package libpython3.13-stdlib:amd64. Preparing to unpack .../7-libpython3.13-stdlib_3.13.5-2_amd64.deb ... Unpacking libpython3.13-stdlib:amd64 (3.13.5-2) ... Selecting previously unselected package python3.13. Preparing to unpack .../8-python3.13_3.13.5-2_amd64.deb ... Unpacking python3.13 (3.13.5-2) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../9-libpython3-stdlib_3.13.5-1_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.13.5-1) ... Setting up python3-minimal (3.13.5-1) ... Selecting previously unselected package python3. (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 ... 21200 files and directories currently installed.) Preparing to unpack .../000-python3_3.13.5-1_amd64.deb ... Unpacking python3 (3.13.5-1) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../001-sensible-utils_0.0.25_all.deb ... Unpacking sensible-utils (0.0.25) ... Selecting previously unselected package openssl. Preparing to unpack .../002-openssl_3.5.1-1_amd64.deb ... Unpacking openssl (3.5.1-1) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../003-ca-certificates_20250419_all.deb ... Unpacking ca-certificates (20250419) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../004-libmagic-mgc_1%3a5.46-5_amd64.deb ... Unpacking libmagic-mgc (1:5.46-5) ... Selecting previously unselected package libmagic1t64:amd64. Preparing to unpack .../005-libmagic1t64_1%3a5.46-5_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.46-5) ... Selecting previously unselected package file. Preparing to unpack .../006-file_1%3a5.46-5_amd64.deb ... Unpacking file (1:5.46-5) ... Selecting previously unselected package gettext-base. Preparing to unpack .../007-gettext-base_0.23.1-2_amd64.deb ... Unpacking gettext-base (0.23.1-2) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../008-libuchardet0_0.0.8-1+b2_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.8-1+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../009-groff-base_1.23.0-9_amd64.deb ... Unpacking groff-base (1.23.0-9) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../010-bsdextrautils_2.41-5_amd64.deb ... Unpacking bsdextrautils (2.41-5) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../011-libpipeline1_1.5.8-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../012-man-db_2.13.1-1_amd64.deb ... Unpacking man-db (2.13.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../013-m4_1.4.19-8_amd64.deb ... Unpacking m4 (1.4.19-8) ... Selecting previously unselected package autoconf. Preparing to unpack .../014-autoconf_2.72-3.1_all.deb ... Unpacking autoconf (2.72-3.1) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../015-autotools-dev_20240727.1_all.deb ... Unpacking autotools-dev (20240727.1) ... Selecting previously unselected package automake. Preparing to unpack .../016-automake_1%3a1.17-4_all.deb ... Unpacking automake (1:1.17-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../017-autopoint_0.23.1-2_all.deb ... Unpacking autopoint (0.23.1-2) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../018-libdebhelper-perl_13.24.2_all.deb ... Unpacking libdebhelper-perl (13.24.2) ... Selecting previously unselected package libtool. Preparing to unpack .../019-libtool_2.5.4-4_all.deb ... Unpacking libtool (2.5.4-4) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../020-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../021-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 .../022-libfile-stripnondeterminism-perl_1.14.1-2_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.1-2) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../023-dh-strip-nondeterminism_1.14.1-2_all.deb ... Unpacking dh-strip-nondeterminism (1.14.1-2) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../024-libelf1t64_0.192-4_amd64.deb ... Unpacking libelf1t64:amd64 (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../025-dwz_0.15-1+b1_amd64.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libunistring5:amd64. Preparing to unpack .../026-libunistring5_1.3-2_amd64.deb ... Unpacking libunistring5:amd64 (1.3-2) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../027-libxml2_2.12.7+dfsg+really2.9.14-2.1_amd64.deb ... Unpacking libxml2:amd64 (2.12.7+dfsg+really2.9.14-2.1) ... Selecting previously unselected package gettext. Preparing to unpack .../028-gettext_0.23.1-2_amd64.deb ... Unpacking gettext (0.23.1-2) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../029-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 .../030-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../031-debhelper_13.24.2_all.deb ... Unpacking debhelper (13.24.2) ... Selecting previously unselected package libgpg-error0:amd64. Preparing to unpack .../032-libgpg-error0_1.51-4_amd64.deb ... Unpacking libgpg-error0:amd64 (1.51-4) ... Selecting previously unselected package libassuan9:amd64. Preparing to unpack .../033-libassuan9_3.0.2-2_amd64.deb ... Unpacking libassuan9:amd64 (3.0.2-2) ... Selecting previously unselected package libgcrypt20:amd64. Preparing to unpack .../034-libgcrypt20_1.11.0-7_amd64.deb ... Unpacking libgcrypt20:amd64 (1.11.0-7) ... Selecting previously unselected package gpgconf. Preparing to unpack .../035-gpgconf_2.4.7-21+b3_amd64.deb ... Unpacking gpgconf (2.4.7-21+b3) ... Selecting previously unselected package libksba8:amd64. Preparing to unpack .../036-libksba8_1.6.7-2+b1_amd64.deb ... Unpacking libksba8:amd64 (1.6.7-2+b1) ... Selecting previously unselected package libnpth0t64:amd64. Preparing to unpack .../037-libnpth0t64_1.8-3_amd64.deb ... Unpacking libnpth0t64:amd64 (1.8-3) ... Selecting previously unselected package gpg. Preparing to unpack .../038-gpg_2.4.7-21+b3_amd64.deb ... Unpacking gpg (2.4.7-21+b3) ... Selecting previously unselected package pinentry-curses. Preparing to unpack .../039-pinentry-curses_1.3.1-2_amd64.deb ... Unpacking pinentry-curses (1.3.1-2) ... Selecting previously unselected package gpg-agent. Preparing to unpack .../040-gpg-agent_2.4.7-21+b3_amd64.deb ... Unpacking gpg-agent (2.4.7-21+b3) ... Selecting previously unselected package libfile-dirlist-perl. Preparing to unpack .../041-libfile-dirlist-perl_0.05-3_all.deb ... Unpacking libfile-dirlist-perl (0.05-3) ... Selecting previously unselected package libfile-which-perl. Preparing to unpack .../042-libfile-which-perl_1.27-2_all.deb ... Unpacking libfile-which-perl (1.27-2) ... Selecting previously unselected package libfile-homedir-perl. Preparing to unpack .../043-libfile-homedir-perl_1.006-2_all.deb ... Unpacking libfile-homedir-perl (1.006-2) ... Selecting previously unselected package libfile-touch-perl. Preparing to unpack .../044-libfile-touch-perl_0.12-2_all.deb ... Unpacking libfile-touch-perl (0.12-2) ... Selecting previously unselected package libclass-method-modifiers-perl. Preparing to unpack .../045-libclass-method-modifiers-perl_2.15-1_all.deb ... Unpacking libclass-method-modifiers-perl (2.15-1) ... Selecting previously unselected package libclass-xsaccessor-perl. Preparing to unpack .../046-libclass-xsaccessor-perl_1.19-4+b5_amd64.deb ... Unpacking libclass-xsaccessor-perl (1.19-4+b5) ... Selecting previously unselected package libb-hooks-op-check-perl:amd64. Preparing to unpack .../047-libb-hooks-op-check-perl_0.22-3+b2_amd64.deb ... Unpacking libb-hooks-op-check-perl:amd64 (0.22-3+b2) ... Selecting previously unselected package libdynaloader-functions-perl. Preparing to unpack .../048-libdynaloader-functions-perl_0.004-2_all.deb ... Unpacking libdynaloader-functions-perl (0.004-2) ... Selecting previously unselected package libdevel-callchecker-perl:amd64. Preparing to unpack .../049-libdevel-callchecker-perl_0.009-2_amd64.deb ... Unpacking libdevel-callchecker-perl:amd64 (0.009-2) ... Selecting previously unselected package libparams-classify-perl:amd64. Preparing to unpack .../050-libparams-classify-perl_0.015-2+b4_amd64.deb ... Unpacking libparams-classify-perl:amd64 (0.015-2+b4) ... Selecting previously unselected package libmodule-runtime-perl. Preparing to unpack .../051-libmodule-runtime-perl_0.018-1_all.deb ... Unpacking libmodule-runtime-perl (0.018-1) ... Selecting previously unselected package libimport-into-perl. Preparing to unpack .../052-libimport-into-perl_1.002005-2_all.deb ... Unpacking libimport-into-perl (1.002005-2) ... Selecting previously unselected package librole-tiny-perl. Preparing to unpack .../053-librole-tiny-perl_2.002004-1_all.deb ... Unpacking librole-tiny-perl (2.002004-1) ... Selecting previously unselected package libsub-quote-perl. Preparing to unpack .../054-libsub-quote-perl_2.006008-1_all.deb ... Unpacking libsub-quote-perl (2.006008-1) ... Selecting previously unselected package libmoo-perl. Preparing to unpack .../055-libmoo-perl_2.005005-1_all.deb ... Unpacking libmoo-perl (2.005005-1) ... Selecting previously unselected package libencode-locale-perl. Preparing to unpack .../056-libencode-locale-perl_1.05-3_all.deb ... Unpacking libencode-locale-perl (1.05-3) ... Selecting previously unselected package libtimedate-perl. Preparing to unpack .../057-libtimedate-perl_2.3300-2_all.deb ... Unpacking libtimedate-perl (2.3300-2) ... Selecting previously unselected package libhttp-date-perl. Preparing to unpack .../058-libhttp-date-perl_6.06-1_all.deb ... Unpacking libhttp-date-perl (6.06-1) ... Selecting previously unselected package libfile-listing-perl. Preparing to unpack .../059-libfile-listing-perl_6.16-1_all.deb ... Unpacking libfile-listing-perl (6.16-1) ... Selecting previously unselected package libhtml-tagset-perl. Preparing to unpack .../060-libhtml-tagset-perl_3.24-1_all.deb ... Unpacking libhtml-tagset-perl (3.24-1) ... Selecting previously unselected package liburi-perl. Preparing to unpack .../061-liburi-perl_5.30-1_all.deb ... Unpacking liburi-perl (5.30-1) ... Selecting previously unselected package libhtml-parser-perl:amd64. Preparing to unpack .../062-libhtml-parser-perl_3.83-1+b2_amd64.deb ... Unpacking libhtml-parser-perl:amd64 (3.83-1+b2) ... Selecting previously unselected package libhtml-tree-perl. Preparing to unpack .../063-libhtml-tree-perl_5.07-3_all.deb ... Unpacking libhtml-tree-perl (5.07-3) ... Selecting previously unselected package libclone-perl:amd64. Preparing to unpack .../064-libclone-perl_0.47-1+b1_amd64.deb ... Unpacking libclone-perl:amd64 (0.47-1+b1) ... Selecting previously unselected package libio-html-perl. Preparing to unpack .../065-libio-html-perl_1.004-3_all.deb ... Unpacking libio-html-perl (1.004-3) ... Selecting previously unselected package liblwp-mediatypes-perl. Preparing to unpack .../066-liblwp-mediatypes-perl_6.04-2_all.deb ... Unpacking liblwp-mediatypes-perl (6.04-2) ... Selecting previously unselected package libhttp-message-perl. Preparing to unpack .../067-libhttp-message-perl_7.00-2_all.deb ... Unpacking libhttp-message-perl (7.00-2) ... Selecting previously unselected package libhttp-cookies-perl. Preparing to unpack .../068-libhttp-cookies-perl_6.11-1_all.deb ... Unpacking libhttp-cookies-perl (6.11-1) ... Selecting previously unselected package libhttp-negotiate-perl. Preparing to unpack .../069-libhttp-negotiate-perl_6.01-2_all.deb ... Unpacking libhttp-negotiate-perl (6.01-2) ... Selecting previously unselected package perl-openssl-defaults:amd64. Preparing to unpack .../070-perl-openssl-defaults_7+b2_amd64.deb ... Unpacking perl-openssl-defaults:amd64 (7+b2) ... Selecting previously unselected package libnet-ssleay-perl:amd64. Preparing to unpack .../071-libnet-ssleay-perl_1.94-3_amd64.deb ... Unpacking libnet-ssleay-perl:amd64 (1.94-3) ... Selecting previously unselected package libio-socket-ssl-perl. Preparing to unpack .../072-libio-socket-ssl-perl_2.089-1_all.deb ... Unpacking libio-socket-ssl-perl (2.089-1) ... Selecting previously unselected package libnet-http-perl. Preparing to unpack .../073-libnet-http-perl_6.23-1_all.deb ... Unpacking libnet-http-perl (6.23-1) ... Selecting previously unselected package liblwp-protocol-https-perl. Preparing to unpack .../074-liblwp-protocol-https-perl_6.14-1_all.deb ... Unpacking liblwp-protocol-https-perl (6.14-1) ... Selecting previously unselected package libtry-tiny-perl. Preparing to unpack .../075-libtry-tiny-perl_0.32-1_all.deb ... Unpacking libtry-tiny-perl (0.32-1) ... Selecting previously unselected package libwww-robotrules-perl. Preparing to unpack .../076-libwww-robotrules-perl_6.02-1_all.deb ... Unpacking libwww-robotrules-perl (6.02-1) ... Selecting previously unselected package libwww-perl. Preparing to unpack .../077-libwww-perl_6.78-1_all.deb ... Unpacking libwww-perl (6.78-1) ... Selecting previously unselected package patchutils. Preparing to unpack .../078-patchutils_0.4.2-1_amd64.deb ... Unpacking patchutils (0.4.2-1) ... Selecting previously unselected package gpgv. Preparing to unpack .../079-gpgv_2.4.7-21+b3_amd64.deb ... Unpacking gpgv (2.4.7-21+b3) ... Selecting previously unselected package sopv-gpgv. Preparing to unpack .../080-sopv-gpgv_0.1.4-1_all.deb ... Unpacking sopv-gpgv (0.1.4-1) ... Selecting previously unselected package wdiff. Preparing to unpack .../081-wdiff_1.2.2-9_amd64.deb ... Unpacking wdiff (1.2.2-9) ... Selecting previously unselected package devscripts. Preparing to unpack .../082-devscripts_2.25.15_all.deb ... Unpacking devscripts (2.25.15) ... Selecting previously unselected package rubygems-integration. Preparing to unpack .../083-rubygems-integration_1.19_all.deb ... Unpacking rubygems-integration (1.19) ... Selecting previously unselected package ruby-csv. Preparing to unpack .../084-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 .../085-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 .../086-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 .../087-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 .../088-ruby-webrick_1.9.1-1_all.deb ... Unpacking ruby-webrick (1.9.1-1) ... Selecting previously unselected package ruby-xmlrpc. Preparing to unpack .../089-ruby-xmlrpc_0.3.3-2_all.deb ... Unpacking ruby-xmlrpc (0.3.3-2) ... Selecting previously unselected package libyaml-0-2:amd64. Preparing to unpack .../090-libyaml-0-2_0.2.5-2_amd64.deb ... Unpacking libyaml-0-2:amd64 (0.2.5-2) ... Selecting previously unselected package libruby3.3:amd64. Preparing to unpack .../091-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 .../092-ruby3.3_3.3.8-2_amd64.deb ... Unpacking ruby3.3 (3.3.8-2) ... Selecting previously unselected package libruby:amd64. Preparing to unpack .../093-libruby_1%3a3.3+b1_amd64.deb ... Unpacking libruby:amd64 (1:3.3+b1) ... Selecting previously unselected package ruby-rubygems. Preparing to unpack .../094-ruby-rubygems_3.6.7-2_all.deb ... Unpacking ruby-rubygems (3.6.7-2) ... Selecting previously unselected package ruby. Preparing to unpack .../095-ruby_1%3a3.3+b1_amd64.deb ... Unpacking ruby (1:3.3+b1) ... Selecting previously unselected package rake. Preparing to unpack .../096-rake_13.2.1-1_all.deb ... Unpacking rake (13.2.1-1) ... Selecting previously unselected package ruby-minitest. Preparing to unpack .../097-ruby-minitest_5.25.4-3_all.deb ... Unpacking ruby-minitest (5.25.4-3) ... Selecting previously unselected package ruby-power-assert. Preparing to unpack .../098-ruby-power-assert_2.0.3-1_all.deb ... Unpacking ruby-power-assert (2.0.3-1) ... Selecting previously unselected package ruby-test-unit. Preparing to unpack .../099-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 .../100-gem2deb-test-runner_2.2.5_amd64.deb ... Unpacking gem2deb-test-runner (2.2.5) ... Selecting previously unselected package libgmpxx4ldbl:amd64. Preparing to unpack .../101-libgmpxx4ldbl_2%3a6.3.0+dfsg-3_amd64.deb ... Unpacking libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-3) ... Selecting previously unselected package libgmp-dev:amd64. Preparing to unpack .../102-libgmp-dev_2%3a6.3.0+dfsg-3_amd64.deb ... Unpacking libgmp-dev:amd64 (2:6.3.0+dfsg-3) ... Selecting previously unselected package ruby3.3-dev:amd64. Preparing to unpack .../103-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 .../104-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 .../105-gem2deb_2.2.5_amd64.deb ... Unpacking gem2deb (2.2.5) ... Selecting previously unselected package racc. Preparing to unpack .../106-racc_1.8.1-1_all.deb ... Unpacking racc (1.8.1-1) ... Selecting previously unselected package ruby-ast. Preparing to unpack .../107-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 .../108-ruby-diff-lcs_1.5.1-1_all.deb ... Unpacking ruby-diff-lcs (1.5.1-1) ... Selecting previously unselected package ruby-oedipus-lex. Preparing to unpack .../109-ruby-oedipus-lex_2.6.0-2_all.deb ... Unpacking ruby-oedipus-lex (2.6.0-2) ... Selecting previously unselected package ruby-rspec-support. Preparing to unpack .../110-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 .../111-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 .../112-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 .../113-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 .../114-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 .../115-ruby-whitequark-parser_3.3.4.2-2_all.deb ... Unpacking ruby-whitequark-parser (3.3.4.2-2) ... Setting up media-types (13.0.0) ... Setting up libpipeline1:amd64 (1.5.8-1) ... Setting up wdiff (1.2.2-9) ... Setting up libfile-which-perl (1.27-2) ... Setting up libnpth0t64:amd64 (1.8-3) ... Setting up ruby-ruby2-keywords (0.0.5-1) ... Setting up ruby-oedipus-lex (2.6.0-2) ... Setting up bsdextrautils (2.41-5) ... Setting up libgpg-error0:amd64 (1.51-4) ... Setting up libdynaloader-functions-perl (0.004-2) ... Setting up libclass-method-modifiers-perl (2.15-1) ... Setting up ruby-power-assert (2.0.3-1) ... Setting up libmagic-mgc (1:5.46-5) ... Setting up libclone-perl:amd64 (0.47-1+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libyaml-0-2:amd64 (0.2.5-2) ... Setting up libhtml-tagset-perl (3.24-1) ... Setting up libdebhelper-perl (13.24.2) ... Setting up liblwp-mediatypes-perl (6.04-2) ... Setting up libmagic1t64:amd64 (1:5.46-5) ... Setting up libtry-tiny-perl (0.32-1) ... Setting up perl-openssl-defaults:amd64 (7+b2) ... Setting up gettext-base (0.23.1-2) ... Setting up m4 (1.4.19-8) ... Setting up libgcrypt20:amd64 (1.11.0-7) ... Setting up libencode-locale-perl (1.05-3) ... Setting up file (1:5.46-5) ... Setting up libelf1t64:amd64 (0.192-4) ... Setting up tzdata (2025b-4) ... Current default time zone: 'Etc/UTC' Local time is now: Wed Sep 9 21:43:38 UTC 2026. Universal Time is now: Wed Sep 9 21:43:38 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-3) ... Setting up autotools-dev (20240727.1) ... Setting up libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-3) ... 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 libio-html-perl (1.004-3) ... Setting up autopoint (0.23.1-2) ... Setting up libb-hooks-op-check-perl:amd64 (0.22-3+b2) ... Setting up autoconf (2.72-3.1) ... Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ... Setting up libtimedate-perl (2.3300-2) ... Setting up ruby-webrick (1.9.1-1) ... Setting up libffi8:amd64 (3.4.8-2) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.25) ... Setting up gpgv (2.4.7-21+b3) ... Setting up libuchardet0:amd64 (0.0.8-1+b2) ... Setting up libassuan9:amd64 (3.0.2-2) ... Setting up librole-tiny-perl (2.002004-1) ... Setting up netbase (6.5) ... Setting up libsub-quote-perl (2.006008-1) ... Setting up libclass-xsaccessor-perl (1.19-4+b5) ... Setting up ruby-did-you-mean (1.6.3-2) ... Setting up libfile-dirlist-perl (0.05-3) ... Setting up libfile-homedir-perl (1.006-2) ... Setting up openssl (3.5.1-1) ... Setting up readline-common (8.2-6) ... Setting up ruby-xmlrpc (0.3.3-2) ... Setting up libxml2:amd64 (2.12.7+dfsg+really2.9.14-2.1) ... Setting up liburi-perl (5.30-1) ... Setting up libfile-touch-perl (0.12-2) ... Setting up libnet-ssleay-perl:amd64 (1.94-3) ... Setting up automake (1:1.17-4) ... update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode Setting up libksba8:amd64 (1.6.7-2+b1) ... Setting up pinentry-curses (1.3.1-2) ... Setting up libfile-stripnondeterminism-perl (1.14.1-2) ... Setting up libhttp-date-perl (6.06-1) ... Setting up gettext (0.23.1-2) ... Setting up libgmp-dev:amd64 (2:6.3.0+dfsg-3) ... Setting up libfile-listing-perl (6.16-1) ... Setting up libtool (2.5.4-4) ... Setting up libnet-http-perl (6.23-1) ... Setting up libdevel-callchecker-perl:amd64 (0.009-2) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up patchutils (0.4.2-1) ... Setting up ca-certificates (20250419) ... Updating certificates in /etc/ssl/certs... 150 added, 0 removed; done. Setting up libreadline8t64:amd64 (8.2-6) ... Setting up dh-strip-nondeterminism (1.14.1-2) ... Setting up libwww-robotrules-perl (6.02-1) ... Setting up groff-base (1.23.0-9) ... Setting up libhtml-parser-perl:amd64 (3.83-1+b2) ... Setting up gpgconf (2.4.7-21+b3) ... Setting up libpython3.13-stdlib:amd64 (3.13.5-2) ... Setting up libio-socket-ssl-perl (2.089-1) ... Setting up gpg (2.4.7-21+b3) ... Setting up libpython3-stdlib:amd64 (3.13.5-1) ... Setting up libhttp-message-perl (7.00-2) ... Setting up libhttp-negotiate-perl (6.01-2) ... Setting up gpg-agent (2.4.7-21+b3) ... Setting up libhttp-cookies-perl (6.11-1) ... Setting up python3.13 (3.13.5-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libhtml-tree-perl (5.07-3) ... Setting up libparams-classify-perl:amd64 (0.015-2+b4) ... Setting up python3 (3.13.5-1) ... Setting up rubygems-integration (1.19) ... Setting up sopv-gpgv (0.1.4-1) ... update-alternatives: using /usr/bin/sopv-gpgv to provide /usr/bin/sopv (sopv) in auto mode Setting up man-db (2.13.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up libmodule-runtime-perl (0.018-1) ... Setting up libimport-into-perl (1.002005-2) ... Setting up libmoo-perl (2.005005-1) ... Setting up debhelper (13.24.2) ... Setting up rake (13.2.1-1) ... Setting up liblwp-protocol-https-perl (6.14-1) ... Setting up libwww-perl (6.78-1) ... Setting up libruby3.3:amd64 (3.3.8-2) ... Setting up ruby-rubygems (3.6.7-2) ... Setting up devscripts (2.25.15) ... 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-1) ... Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ... Setting up ruby-diff-lcs (1.5.1-1) ... Setting up ruby-whitequark-parser (3.3.4.2-2) ... Setting up gem2deb-test-runner (2.2.5) ... Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... Setting up gem2deb (2.2.5) ... Setting up ruby-rspec (3.13.0c0e0m0s1-2) ... Processing triggers for libc-bin (2.41-12) ... 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. Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: user script /srv/workspace/pbuilder/661964/tmp/hooks/A99_set_merged_usr starting Not re-configuring usrmerge for trixie I: user script /srv/workspace/pbuilder/661964/tmp/hooks/A99_set_merged_usr finished hostname: Name or service not known I: Running cd /build/reproducible-path/ruby-rubocop-ast-1.24.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-rubocop-ast_1.24.0-2_source.changes dpkg-buildpackage: info: source package ruby-rubocop-ast dpkg-buildpackage: info: source version 1.24.0-2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Lucas Kanashiro 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/d20260910-712486-2qrgvi/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/d20260910-712486-2qrgvi/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 62692 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 #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode #name is expected to eq :var #expression is expected to eq s(:send, nil, :value) RuboCop::AST::WhenNode #branch_index is expected to eq 2 is expected to eq 1 is expected to eq 0 #conditions with a single condition is expected to all be literal is expected to eq 1 with a multiple conditions is expected to eq 3 is expected to all be literal #each_condition when not passed a block is expected to be a kind of Enumerator when passed a block yields all the conditions .new is expected to be a kind of RuboCop::AST::WhenNode #then? with a then keyword is expected to be then without a then keyword is expected not to be then #body without a then keyword is expected to be array type with a then keyword is expected to be sym type 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::WhileNode #inverse_keyword is expected to eq "until" #loop_keyword? with a statement while is expected to be loop keyword with a modifier while is expected to be loop keyword #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 #do? without a do keyword is expected not to be do with a do keyword is expected to be do #keyword is expected to eq "while" .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 RuboCop::AST::AliasNode #old_identifier is expected to eq :bar is expected to be sym type #new_identifier is expected to be sym type is expected to eq :foo .new is expected to be a kind of RuboCop::AST::AliasNode RuboCop::AST::Node #conditional? when `case_match` node is true when `case` node is true when post condition loop node is false when `while` node is true when `until` node is true when `if` node is true #recursive_basic_literal? behaves like non literal returns false for `(x == false)` behaves like literal returns true for `!true` behaves like literal returns true for `(1)` behaves like literal returns true for `1.0` behaves like non literal returns false for `/.#{some_method_call}/` behaves like literal returns true for `1` behaves like non literal returns false for `some_method_call(x, y)` behaves like literal returns true for `(false or true)` behaves like literal returns true for `[1, 2, 3]` behaves like non literal returns false for `[some_method_call]` behaves like literal returns true for `(false && true)` behaves like literal returns true for `nil` behaves like non literal returns false for `%r{abx#{foo}}ixo` behaves like non literal returns false for `(x && false)` behaves like non literal returns false for `(x or false)` behaves like literal returns true for `%r{abx}ixo` behaves like literal returns true for `"#{2}"` behaves like non literal returns false for `{ some_method_call => :sym }` behaves like non literal returns false for `some_method_call` behaves like literal returns true for `'str'` behaves like non literal returns false for `{ :sym => some_method_call }` behaves like literal returns true for `false` behaves like literal returns true for `(false <=> true)` behaves like literal returns true for `/./` behaves like literal returns true for `{ a: 1, b: 2 }` behaves like literal returns true for `{ :a => 1, :b => 2 }` sibling_access returns trivial values for a root node for a node with siblings returns the expected values for a single child returns the expected values #class_constructor? module definition with a block matches class definition does not match class definition on outer scope matches class definition with a block matches #value_used? within a class definition node is always true within a singleton class node is always true within an array literal at the top level is always false assigned to an ivar is always true at the top level is false 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 at the end of a block is always true within a while node is true only for the condition within a method call node is always true #module_definition? using module keyword matches nested modules matches with Module.new matches when using numbered parameter matches namespaced modules matches included module definition matches prepend Module.new matches with ::ModuleName matches #argument_type? method arguments returns true for all argument types block arguments returns true for all argument types #parent_module_name when node nested in a class << exp is expected to be nil when node on singleton class is expected to eq "Foo::#" when node on top level is expected to eq "Object" when node on module is expected to eq "Foo" when node nested in an unknown block is expected to be nil when node on class in singleton class is expected to eq "Foo::#::Bar" #class_definition? namespaced class matches with ::ClassName matches with Struct matches when using numbered parameter matches without inheritance matches with object singleton class matches constant defined as Struct without block does not match with self singleton class matches with Class.new matches when using numbered parameter matches with inheritance matches #numeric_type? when complex literal whose imaginary part is a rational is true when rational literal is true when float literal is true when integer literal is true when complex literal is true when string literal is true #pure? for a regexp with interpolated segments returns false with options returns true with no interpolation returns true for a module definition returns false for an lvar assignment returns false for a cvar assignment 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 a gvar assignment returns false for a hash literal which contains a method call returns false with only literal children returns true for an array literal which contains a method call returns false with only literal children returns true for a class definition returns false for a method call returns false for an ivar assignment returns false for an integer literal returns true #struct_constructor? struct definition without block does not match ::Struct matches struct definition with a block matches RuboCop::AST::KeywordSplatNode #key is expected to eq s(:kwsplat, s(:send, nil, :foo)) #colon? is expected not to be colon #value is expected to eq s(:kwsplat, s(:send, nil, :foo)) #hash_rocket? is expected not to be hash rocket .new is expected to be a kind of RuboCop::AST::KeywordSplatNode #key_delta with alignment set to :left when using colon delimiters when keyword splat is aligned is expected to eq 0 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 behind is expected to eq -2 when using hash rocket delimiters 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 behind is expected to eq -2 when keyword splat is aligned is expected to eq 0 with alignment set to :right 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 behind is expected to eq 0 when keyword splat is ahead is expected to eq 0 when using colon delimiters when keyword splat is behind is expected to eq 0 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 0 #value_delta when using colon delimiters when keyword splat is on the same line 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 keyword splat is behind is expected to eq 0 when using hash rocket delimiters when keyword splat is ahead is expected to eq 0 when keyword splat is on the same line is expected to eq 0 when keyword splat is left aligned is expected to eq 0 when keyword splat is behind is expected to eq 0 #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 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 both pairs are on the same line is expected to be same line s(:kwsplat, s(:send, nil, :foo)) RuboCop::AST::DefinedNode .new with a defined? node is expected to be a kind of RuboCop::AST::DefinedNode #method_name is expected to eq :defined? #arguments is expected to eq 1 is expected to all be sym type #receiver is expected to be nil RuboCop::AST::ResbodyNode #body is expected to be sym type #exception_variable for an explicit rescue is expected to eq "ex" when an exception variable is not given is expected to be nil for an implicit rescue is expected to eq "ex" #exceptions without exception is expected to eq 0 with multiple exceptions is expected to eq 2 is expected to all be const type with a single exception is expected to eq 1 is expected to all be const type #branch_index is expected to eq 1 is expected to eq 2 is expected to eq 0 .new is expected to be a kind of RuboCop::AST::ResbodyNode RuboCop::AST::NodePattern::Sets 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" is expected to eq "::RuboCop::AST::NodePattern::Sets::SET_1_2_3_ETC" RuboCop::AST::NextNode behaves like wrapped arguments node .new with arguments is expected to be a kind of RuboCop::AST::NextNode without arguments is expected to be a kind of RuboCop::AST::NextNode #arguments with no arguments and braces is expected to be empty with a single splat argument is expected to eq 1 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 with multiple literal arguments is expected to eq 2 RuboCop::AST::ForNode #keyword is expected to eq "for" #body is expected to be sym type #collection is expected to be sym type #void_context? without a do keyword is expected to be void context with a do keyword is expected to be void context #loop_keyword? is expected to be loop keyword #variable is expected to be lvasgn type .new is expected to be a kind of RuboCop::AST::ForNode #do? without a do keyword is expected not to be do with a do keyword is expected to be do #post_condition_loop? is expected not to be post condition loop RuboCop::AST::UntilNode #do? without a do keyword is expected not to be do with a do keyword is expected to be do .new with a modifier until is expected to be a kind of RuboCop::AST::UntilNode with a statement until is expected to be a kind of RuboCop::AST::UntilNode #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" #loop_keyword? with a modifier until is expected to be loop keyword with a statement until is expected to be loop keyword #inverse_keyword is expected to eq "while" RuboCop::AST::SelfClassNode #identifier is expected to be self 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 .new is expected to be a kind of RuboCop::AST::SelfClassNode RuboCop::AST::EnsureNode .new is expected to be a kind of RuboCop::AST::EnsureNode #body is expected to be sym type 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::IfNode #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 "" #ternary? with an if statement is expected not to be ternary with a ternary operator is expected to be ternary with an unless statement is expected not to be ternary #branches with an unless statement is expected to eq 1 is expected to all be literal with a ternary operator is expected to eq 2 is expected to all be literal with an else statement is expected to eq 2 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 eq 1 is expected to all be literal #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 #else? with an elsif statement is expected to be else without an else statement is expected not to be elsif #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 with a modifier unless statement is expected 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 #keyword with a ternary operator is expected to eq "" with an if statement is expected to eq "if" with an unless statement is expected to eq "unless" .new 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 with a modifier statement is expected to be a kind of RuboCop::AST::IfNode #unless? with a ternary operator is expected not to be unless with an if statement is expected not to be unless with an unless statement is expected to be unless #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 nested conditionals in else clause is expected to be nested conditional with nested conditionals in elsif clause is expected to be nested conditional with no nested conditionals is expected not to be nested conditional with nested conditionals in if clause is expected to be nested conditional #else_branch with a ternary operator is expected to be int type with an unless statement is expected to be int type with an if statement is expected to be int type #if_branch with a ternary operator is expected to be sym type with an if statement is expected to be sym type with an unless statement is expected to be sym type #each_branch when passed a block yields all the branches when not passed a block is expected to be a kind of Enumerator #elsif? with an if statement comtaining an elsif is expected not to be elsif without an elsif statement is expected not to be elsif with an elsif statement is expected to be elsif #elsif_conditional? with one elsif conditional 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 with nested conditionals in else clause 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 RuboCop::AST::OrNode #inverse_operator with a semantic or node is expected to eq "and" with a logical or node is expected to eq "&&" .new with a logical or node is expected to be a kind of RuboCop::AST::OrNode with a semantic or node is expected to be a kind of RuboCop::AST::OrNode #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 #operator with a logical or node is expected to eq "||" with a semantic or node is expected to eq "or" #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 #rhs with a logical or node is expected to be int type with a semantic or node is expected to be int type #alternate_operator with a logical or node is expected to eq "or" with a semantic or node is expected to eq "||" RuboCop::AST::Ext::Range #line_span accepts an `exclude_end` keyword argument returns the range of lines a range occupies RuboCop::AST::RangeNode .new 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 a kind of RuboCop::AST::RangeNode is expected to be range type with an inclusive 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 a kind of RuboCop::AST::RangeNode is expected to be range type RuboCop::AST::ProcessedSource #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 #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 #each_comment yields all comments #comments_before_line returns comments on or before given line #line_with_comment? returns true for lines with comments returns false for lines without comments #each_comment_in_lines yields the comments #comment_at_line returns nil if line has no comment returns the comment at the given line number #find_comment yields nil when there is no match yields correct comment #contains_comment? provided source_range on line with comment is expected to equal true 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 comment line is expected to equal true #tokens_within accepts Node as an argument returns tokens for node when heredoc as argument is present returns tokens for node before heredoc returns tokens for node after heredoc returns tokens for heredoc node #tokens has an array of tokens #ast is the root node of AST #[] when a range is passed returns the array of lines when start index and length are passed returns the array of lines when an index is passed returns the line #comments is an array of comments when the source is invalid returns [] #buffer is a source buffer #parser_error when the source lacks encoding comment and is really utf-8 encoded but has been read as US-ASCII is nil when the source was properly parsed is nil when the source could not be parsed due to encoding error returns the error #file_path returns file path token enumerables #each_token yields all tokens #find_token yields nil when there is no match yields correct token #lines is an array contains lines as string without linefeed has same number of elements as line count #preceding_line returns source of line before token #path is the path passed to .new #last_token_of returns last token for node accepts Node as an argument #following_line returns source of line after token 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 is valid but has some warning diagnostics returns true when the source could not be parsed due to encoding error returns false when the source is completely valid returns true #blank? with source of no content returns true with source with content returns false RuboCop::AST::Traversal knows all current node types for example case foo; in A[x:] then true; end traverses all nodes for example a b(c(d)), :e do end traverses all nodes for example foo <= 1 traverses all nodes for example foo::A = 1 traverses all nodes for example <= 1 traverses all nodes for example alias $a $+ traverses all nodes for example p <<~E x \ y E traverses all nodes for example a b{c d}, 1.0 do end traverses all nodes for example not m foo traverses all nodes for example foo / 1 traverses all nodes for example case foo; in A::B then true; end traverses all nodes for example foo.A += 1 traverses all nodes for example case foo; in [*, x] then true; end traverses all nodes when a class defines on_arg calls it for all arguments for example Bar::Foo = 10 traverses all nodes for example fun(f bar) traverses all nodes for example p <<~E E traverses all nodes for example foo || bar traverses all nodes for example foo = raise bar rescue nil traverses all nodes for example def f o=1, *r, p, &b; end traverses all nodes for example ...100 traverses all nodes for example foo != 1 traverses all nodes for example +2.0 ** 10 traverses all nodes for example foo::m += raise bar rescue nil traverses all nodes for example fun (1 ) traverses all nodes for example fun(foo, *bar, &baz) traverses all nodes for example foo::C ||= raise(bar) rescue nil traverses all nodes for example m { _1 + _9 } traverses all nodes for example def f (foo: 1, &b); end traverses all nodes for example if (a, b = foo); end traverses all nodes for example def x; self::A ||= 1; end traverses all nodes for example { } traverses all nodes for example if foo; bar; else baz; end traverses all nodes for example foo % 1 traverses all nodes for example p <<~`E` x #{foo} E traverses all nodes for example case foo; in a: {b:}, c: p c ; end traverses all nodes for example foo <=> 1 traverses all nodes for example not() traverses all nodes for example @@var = 10 traverses all nodes for example %i[ #@@1 ] traverses all nodes for example foo[0] += raise(bar) rescue nil traverses all nodes for example !foo traverses all nodes for example module Bar::Foo; end traverses all nodes for example case foo; in [x, y] then true; end traverses all nodes for example f{ |a, *s, &b| } traverses all nodes for example def f a, o=1, *r, &b; end traverses all nodes for example ((b, )) = foo traverses all nodes for example def f(foo:); end traverses all nodes for example case foo; in x, y, then nil; end traverses all nodes for example a = b = raise :x traverses all nodes for example f{ |foo: 1, bar: 2, **baz, &b| } traverses all nodes for example %q{#@@1} traverses all nodes for example `#@1` traverses all nodes for example redo traverses all nodes for example p <<~"E" x #{" y"} E traverses all nodes for example begin; meth; ensure; bar; end traverses all nodes for example def f ((a, a1)); end traverses all nodes for example !m foo traverses all nodes for example case foo; in [x,] then nil; end traverses all nodes for example f{ |&b| } traverses all nodes for example /#)/x traverses all nodes for example case foo; in x, then nil; end traverses all nodes for example a b(c d), :e do end traverses all nodes for example *b, c = bar traverses all nodes for example $var = 10 traverses all nodes for example begin; meth; rescue Exception; bar; end traverses all nodes for example !/wat/ traverses all nodes for example a b(c d), 1.0r do end traverses all nodes for example fun(1) traverses all nodes for example def String::foo; end traverses all nodes for example %i[] traverses all nodes for example def String=; end traverses all nodes for example -> do rescue; end traverses all nodes for example @var = 10 traverses all nodes for example ?a traverses all nodes for example p <<~E x y E traverses all nodes for example 42ri traverses all nodes for example %I() traverses all nodes for example case foo; in {Foo: 42 } false ; end traverses all nodes for example foo << 1 traverses all nodes for example super traverses all nodes for example foo == 1 traverses all nodes for example proc {|_3|} traverses all nodes for example foo = bar = m foo traverses all nodes for example [ 1 => 2 ] traverses all nodes for example def f a, &b; end traverses all nodes for example 42r traverses all nodes for example while class << self; tap do end; end; break; end traverses all nodes for example fun(*bar, &baz) traverses all nodes for example if foo then bar; else baz; end traverses all nodes for example !(a, b = foo) traverses all nodes for example foo.a ||= 1 traverses all nodes for example a b(c d), /x/ do end traverses all nodes for example :"#@1" traverses all nodes for example a += b = raise :x traverses all nodes for example foo[1, 2] traverses all nodes for example foo[0, 1] += m foo traverses all nodes for example fun (1).to_i traverses all nodes for example class Foo end traverses all nodes for example lambda{|;a|a} traverses all nodes for example begin; meth; rescue; foo; end traverses all nodes for example ~foo 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 module Foo; end traverses all nodes for example %{#@@1} traverses all nodes for example p <<~E " y" x E traverses all nodes for example foo += raise(bar) rescue nil traverses all nodes for example td (1_500).toString(); td.num do; end traverses all nodes for example case; when foo; 'foo'; end 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 "#{ %q{a} }": then true; end traverses all nodes for example Bar::Foo traverses all nodes for example if /wat/; end traverses all nodes for example a += 1 traverses all nodes for example a b(c d), "x" do end traverses all nodes for example a b{c(d)}, /x/ do end traverses all nodes for example def x; ::A ||= 1; end traverses all nodes for example break(foo) traverses all nodes for example "#@@1" traverses all nodes for example p :foo, {:a => proc do end, b: proc do end} traverses all nodes for example foo.a = 1 traverses all nodes for example for a in foo; p a; end traverses all nodes for example f{ |a, b,| } traverses all nodes for example def f ((a, *, p)); end traverses all nodes for example f{ |*s| } traverses all nodes for example if (bar; a, b = foo); end traverses all nodes for example %I{a\ b} traverses all nodes for example def foo(...); bar(...); end traverses all nodes for example case 1; in 2; 3; else; 4; end traverses all nodes for example return fun foo do end traverses all nodes for example foo, bar = 1, 2 traverses all nodes for example case foo; in 1... then true; end traverses all nodes for example begin foo!; bar! end traverses all nodes for example f{ |a, o=1, p, &b| } traverses all nodes for example foo[1, 2] = 3 traverses all nodes for example foo.C += raise bar rescue nil traverses all nodes for example def self.foo; end traverses all nodes for example { foo: 2, **bar } traverses all nodes for example p <<~E x y E traverses all nodes for example def f(&block); end traverses all nodes for example fun(1) { } traverses all nodes for example case foo; in ** then true; end traverses all nodes for example def x(_4) end traverses all nodes for example while class << self; a = tap do end; end; break; end traverses all nodes for example %Q{a\ b} traverses all nodes for example 42 traverses all nodes for example ->(**nil) {} traverses all nodes for example -> a: { } traverses all nodes for example 'a\ b' traverses all nodes for example super foo traverses all nodes for example def f ; end traverses all nodes for example END { 1 } traverses all nodes for example f{ |foo:| } traverses all nodes for example f{ |o=1, *r, p, &b| } traverses all nodes for example %Q{#@@1} traverses all nodes for example "#@a #@@a #$a" traverses all nodes for example %s{#@1} traverses all nodes for example foo::fun traverses all nodes for example case foo; in ::A then true; end traverses all nodes for example +foo traverses all nodes for example class Foo < Bar; end traverses all nodes for example "#{-> foo {}}" traverses all nodes for example def f(**); end traverses all nodes for example class A; _1; end traverses all nodes for example foo.fun bar traverses all nodes for example case foo; in x unless true; nil; end traverses all nodes for example *b = bar traverses all nodes for example -> (a) { } traverses all nodes for example fun () {} traverses all nodes for example (foo, bar) = 1, 2 traverses all nodes for example a b{c d}, 1.0i do end traverses all nodes for example foo::A += m foo traverses all nodes for example t=1;(foo)?t:T traverses all nodes for example a b{c(d)}, "x" do end traverses all nodes for example begin; rescue LoadError; else; end traverses all nodes for example begin end traverses all nodes for example f{ |a, c| } traverses all nodes for example m def x(); end; 1.tap do end traverses all nodes for example case foo; in 1 | 2 then true; end traverses all nodes for example def _5; end traverses all nodes for example foo (-1.3).abs traverses all nodes for example foo[:baz => 1,] traverses all nodes for example %I[foo#{bar}] traverses all nodes for example def foo(_, _); end traverses all nodes for example a @b do |c|;end traverses all nodes for example <<`HERE` foo bar HERE traverses all nodes for example class A < B end traverses all nodes for example %q{#@1} traverses all nodes when a class defines `on_block_pass` calls it for all block-pass arguments for example <<-'HERE' #@@1 HERE traverses all nodes for example foo.A = 1 traverses all nodes for example %r{a\ b} traverses all nodes for example meth (-1.3).abs traverses all nodes for example __FILE__ traverses all nodes for example p p{p(p);p p}, tap do end traverses all nodes for example for a in foo do p a; end traverses all nodes for example -2 ** 10 traverses all nodes for example a b{c(d)}, 1.0i do end traverses all nodes for example fun do end traverses all nodes for example foo::C ||= raise bar rescue nil traverses all nodes for example a b{c(d)}, 1.0r do end traverses all nodes for example foo = baz, *bar traverses all nodes for example self traverses all nodes for example a, *b = bar traverses all nodes for example def foo(_a, _a); end traverses all nodes for example a&.b &&= 1 traverses all nodes for example foo::fun (1) {} traverses all nodes for example a &&= 1 traverses all nodes for example a b(c d), /x/m do end traverses all nodes for example f (g rescue nil) 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 <<-`HERE` #@1 HERE traverses all nodes for example foo > 1 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 def f *, **; end traverses all nodes for example class Foo < a:b; end traverses all nodes for example foo.A += m foo traverses all nodes for example !(foo...bar) traverses all nodes for example 1... traverses all nodes for example def foo(...); end traverses all nodes for example def foo raise; raise A::B, ''; end traverses all nodes for example f{ |foo: 1, &b| } traverses all nodes for example p <<~E x E traverses all nodes for example m "#{[]}" traverses all nodes for example while def foo a = tap do end; end; break; end traverses all nodes for example f{ |**baz, &b| } traverses all nodes for example unless foo then bar; end traverses all nodes for example $foo traverses all nodes for example case foo; in a: 1 then true; end traverses all nodes for example "foo#@a" "bar" traverses all nodes for example def String; end traverses all nodes for example def m; class << self; A = nil; end; end traverses all nodes for example p ->() do a() do end end traverses all nodes for example self::a, foo = foo traverses all nodes for example begin; meth; rescue => ex; bar; end traverses all nodes for example next() traverses all nodes for example case foo; in a: 1, _a:, ** then true; end traverses all nodes for example <<-'HERE' a\ b HERE traverses all nodes for example :'#@@1' traverses all nodes for example bar unless foo traverses all nodes for example f { || a:b } traverses all nodes for example %W[foo #{bar}foo#@baz] traverses all nodes for example def f (foo: 1, bar: 2, **baz, &b); end traverses all nodes for example :"#@@1" traverses all nodes for example f{ |o=1, &b| } traverses all nodes for example a, b = *foo, bar traverses all nodes for example case foo; in "a": 1 then true; end traverses all nodes for example case; when foo; 'foo'; else 'bar'; end traverses all nodes for example def String.foo; end traverses all nodes for example case foo; in {} then true; end traverses all nodes for example [1, *foo] traverses all nodes for example case foo; when 'bar'; bar; else baz; end traverses all nodes for example f{ |a| } traverses all nodes for example %W{a\ b} traverses all nodes for example @@foo traverses all nodes for example fun (1) {} traverses all nodes for example while def self.foo a = tap do end; end; break; end traverses all nodes for example %W() traverses all nodes for example m [] do end traverses all nodes for example '#@1' traverses all nodes for example foo[1, 2] = 3 traverses all nodes for example foo "#{(1+1).to_i}" do; end traverses all nodes for example m "#{}#{()}" traverses all nodes for example fun(:foo => 1) traverses all nodes for example B::A += 1 traverses all nodes for example yield() traverses all nodes for example foo, bar = meth rescue [1, 2] traverses all nodes for example until foo; meth end traverses all nodes for example case foo; in 1; end traverses all nodes for example break foo traverses all nodes for example <<-"HERE" a\ b HERE traverses all nodes for example a ||= 1 traverses all nodes for example -foo traverses all nodes for example yield(foo) traverses all nodes for example a b(c(d)), /x/m do end traverses all nodes for example foo, bar, baz = 1, 2 traverses all nodes for example if foo...bar; end traverses all nodes for example f{ |a, o=1, &b| } traverses all nodes for example tap (proc do end) traverses all nodes for example foo::(1) traverses all nodes for example class Foo; end traverses all nodes for example p <<~E x y E traverses all nodes for example if foo; bar; end traverses all nodes for example next foo traverses all nodes for example _2 = 1 traverses all nodes for example f{ |*r, p, &b| } traverses all nodes for example '#@@1' traverses all nodes for example case foo; in A[1, 2] then true; end traverses all nodes for example super foo, bar do end traverses all nodes for example Foo traverses all nodes for example $10 traverses all nodes for example foo.m += raise bar rescue nil traverses all nodes for example meth 1 do end.fun {} traverses all nodes for example `#@@1` traverses all nodes for example begin; meth; rescue; baz; else foo; ensure; bar end traverses all nodes for example foo::Fun bar traverses all nodes for example var = 10; var traverses all nodes for example +42 traverses all nodes for example foo + 1 traverses all nodes for example def f o=1, *r, &b; end traverses all nodes for example return() traverses all nodes for example p begin 1.times do 1 end end traverses all nodes for example %Q{#@1} traverses all nodes for example case foo; in A(1, 2) then true; end traverses all nodes for example meth 1 do end.fun(bar) traverses all nodes for example case foo; in a: 1, b: 2 then true; end traverses all nodes for example ->(a; foo, bar) { } traverses all nodes for example case foo; in x if true; nil; end traverses all nodes for example return(foo) traverses all nodes for example a&.b = 1 traverses all nodes for example a, (b, c) = foo traverses all nodes for example foo and bar traverses all nodes for example <<-'HERE' #@1 HERE traverses all nodes for example if foo then bar end traverses all nodes for example case [__FILE__, __LINE__ + 1, __ENCODING__] in [__FILE__, __LINE__, __ENCODING__] end traverses all nodes for example false ? raise {} : tap {} traverses all nodes for example def f foo = 1; end traverses all nodes for example begin; meth; rescue => @ex; bar; end traverses all nodes for example f{ || } traverses all nodes for example while foo do meth end traverses all nodes for example p -> { :hello }, a: 1 do end traverses all nodes for example 1 in [a]; a traverses all nodes for example until foo do meth end traverses all nodes for example foo += raise bar rescue nil traverses all nodes for example def self::foo; end traverses all nodes for example let (:a) { m do; end } traverses all nodes for example %s{#@@1} traverses all nodes for example def m; class << self; class C; end; end; end traverses all nodes for example `foo#{bar}baz` traverses all nodes for example %r{#@1} traverses all nodes for example a b(c(d)), 1.0i do end traverses all nodes for example o = { a: 1 } traverses all nodes for example p <<~"E" x\n y E traverses all nodes for example begin; meth; rescue; baz; ensure; bar; end traverses all nodes for example %w[] traverses all nodes for example for a, b in foo; p a, b; end traverses all nodes for example "a\ b" traverses all nodes for example ->(scope) {}; scope traverses all nodes for example proc {_1 = nil} traverses all nodes for example m [], 1 do end traverses all nodes for example unless foo; bar; else baz; end traverses all nodes for example m1 :k => m2 do; m3() do end; end traverses all nodes for example foo = bar, 1 traverses all nodes for example meth 1 do end::fun(bar) traverses all nodes for example a b{c(d)}, :e do end traverses all nodes for example def f a, *r, p, &b; end traverses all nodes for example foo.a += 1 traverses all nodes for example foo ? 1 : 2 traverses all nodes for example ::Foo traverses all nodes for example super(foo) traverses all nodes for example ::A, foo = foo traverses all nodes for example f{ } traverses all nodes for example f{ |a, *s| } traverses all nodes for example foo[bar, :baz => 1,] traverses all nodes for example foo[0] += raise bar rescue nil traverses all nodes for example case foo; in {a: } true ; end traverses all nodes for example %{#@1} traverses all nodes for example begin meth end while foo traverses all nodes for example :foo traverses all nodes for example a, *, c = bar traverses all nodes for example a += b += raise :x traverses all nodes for example def foo() a:b end traverses all nodes for example self::A, foo = foo traverses all nodes for example f{ |*| } traverses all nodes for example foo::a += m foo traverses all nodes for example [1, 2] traverses all nodes for example if foo..bar; end traverses all nodes for example not(foo) traverses all nodes for example foo&.bar {} traverses all nodes for example def f ((*r)); end traverses all nodes for example case foo; in "#{ %Q{a} }": 1 then true; end traverses all nodes for example case foo; in ->{ 42 } then true; end traverses all nodes for example def until; end traverses all nodes for example -> do end traverses all nodes for example f{ |*s, &b| } traverses all nodes for example case foo; in "#{ 'a' }": 1 then true; end traverses all nodes for example def f *r, p, &b; end traverses all nodes for example while class Foo a = tap do end; end; break; end traverses all nodes for example a&.b traverses all nodes for example `foobar` traverses all nodes for example %w{a\ b} traverses all nodes for example :"a\ b" traverses all nodes for example def f a, *r, &b; end traverses all nodes for example a b{c d}, 1.0r do end traverses all nodes for example def f(**foo); end traverses all nodes for example :"foo#{bar}baz" traverses all nodes for example 42.1r traverses all nodes for example while not (true) do end traverses all nodes for example __ENCODING__ traverses all nodes for example true ? 1.tap do |n| p n end : 0 traverses all nodes for example foo[m bar] traverses all nodes for example meth 1 do end.fun(bar) {} traverses all nodes for example %s{a\ b} traverses all nodes for example fun(*bar) traverses all nodes for example unless foo then bar; else baz; end traverses all nodes for example def a; @@var |= 10; end traverses all nodes for example f{ |a, *| } traverses all nodes for example -42 traverses all nodes for example p <<~"E" x #{foo} E traverses all nodes for example if foo then bar; end traverses all nodes for example bar if foo traverses all nodes for example a b{c(d)}, /x/m do end traverses all nodes for example retry traverses all nodes for example case foo; in "#{ 'a' }": then true; end traverses all nodes for example foo.fun (1) {} traverses all nodes for example f{ |a,| } traverses all nodes for example case foo; in {a: 1 } false ; end traverses all nodes for example case foo; when 'bar' then bar; end traverses all nodes for example def (foo).foo; end traverses all nodes for example m ->(a: ->{_1}) {a} traverses all nodes for example meth rescue bar traverses all nodes for example -> * { } traverses all nodes for example case 1; in 2; 3; else; end traverses all nodes for example %w[ #@1 ] traverses all nodes for example super do end traverses all nodes for example fun traverses all nodes for example { 'foo': 2, 'bar': {}} traverses all nodes for example meth until foo traverses all nodes for example def self._6; end traverses all nodes for example f{ |; a | } traverses all nodes for example () traverses all nodes for example p <<~E x y E traverses all nodes for example m { |foo| } traverses all nodes for example f{ |;a| } traverses all nodes for example /(?bar)/ =~ 'bar'; match traverses all nodes for example next fun foo do end traverses all nodes for example foo[0, 1] += 2 traverses all nodes for example a b(c d), 1 do end traverses all nodes for example %W[#@1] traverses all nodes for example bar def foo; self.each do end end traverses all nodes for example foo::fun bar traverses all nodes for example if foo; bar; elsif baz; 1; else 2; end traverses all nodes for example case foo; in *x, y, z then nil; end traverses all nodes for example case foo; in [x, *, y] then true; end traverses all nodes for example case foo; in A[] then true; end traverses all nodes for example def END; end traverses all nodes for example class << foo; _1; end traverses all nodes for example 1.. traverses all nodes for example foo === 1 traverses all nodes for example defined? foo traverses all nodes for example foo::Fun() traverses all nodes for example self.a, self[1, 2] = foo traverses all nodes for example def f(foo, bar); end traverses all nodes for example meth 1 do end.fun bar do end traverses all nodes for example a = b += raise :x traverses all nodes for example %q(foobar) traverses all nodes for example _1 traverses all nodes for example break fun foo do end traverses all nodes for example <<-`HERE` a\ b HERE traverses all nodes for example a b(c(d)), 1.0 do end traverses all nodes for example def foo(...); bar(...); end traverses all nodes for example foo & 1 traverses all nodes for example a ? b & '': nil traverses all nodes for example meth[] {} traverses all nodes for example begin; meth; rescue foo => ex; bar; end traverses all nodes for example -> { _1 + _9} traverses all nodes for example %r{#@@1} traverses all nodes for example %W"#{1}" traverses all nodes for example next traverses all nodes for example assert dogs traverses all nodes for example def f ((a, *)); end traverses all nodes for example m { |**nil| } traverses all nodes for example f{ |a, *, &b| } traverses all nodes for example f{ |a, *r, p, &b| } traverses all nodes for example def f ((a, *r, p)); end traverses all nodes for example foo.(1) traverses all nodes for example case foo; in { a: 1 } then true; end traverses all nodes for example __ENCODING__ traverses all nodes for example ->{ } traverses all nodes for example f{ |o=1, p, &b| } traverses all nodes for example * = bar traverses all nodes for example case foo; in a:, b: then true; end traverses all nodes for example 42.1i traverses all nodes for example a b(c d), 1.0i do end traverses all nodes for example def m; class << self; module M; end; end; end traverses all nodes for example meth 1 do end::fun bar traverses all nodes for example begin; meth; rescue Exception, foo; bar; end traverses all nodes for example @foo traverses all nodes for example a b{c(d)}, 1.0 do end traverses all nodes for example foo or bar traverses all nodes for example f{ | | } traverses all nodes for example def f ((*)); end traverses all nodes for example self.A, foo = foo traverses all nodes for example foo::a += 1 traverses all nodes for example foo += meth rescue bar traverses all nodes for example *, c, d = bar traverses all nodes for example 'foobar' traverses all nodes for example case foo; in x then x; end traverses all nodes for example foo.a += m foo traverses all nodes for example yield foo traverses all nodes for example m ->(a = ->{_1}) {a} traverses all nodes for example foo - 1 traverses all nodes for example def f o=1, p, &b; end traverses all nodes for example break() traverses all nodes for example while def self.foo; tap do end; end; break; end traverses all nodes for example :'a\ b' traverses all nodes for example case foo; in (1) then true; end traverses all nodes for example ->(a) { } traverses all nodes for example def f *r, &b; end traverses all nodes for example proc {_1 = nil} traverses all nodes for example %i{a\ b} traverses all nodes for example defined?(foo) traverses all nodes for example nil traverses all nodes for example begin ensure end traverses all nodes for example { foo: 2 } traverses all nodes for example def f(foo=1, bar=2); end traverses all nodes for example return traverses all nodes for example fun(foo, *bar) traverses all nodes for example 1..2 traverses all nodes for example a b(c(d)), 1.0r do end traverses all nodes for example fun(&bar) traverses all nodes for example /#{1}(?bar)/ =~ 'bar' traverses all nodes for example a # # &.foo traverses all nodes for example foo || (a, b = bar) traverses all nodes for example /foo#{bar}baz/ traverses all nodes for example module ::Foo; end traverses all nodes for example { 'foo': 2 } traverses all nodes for example alias :foo bar traverses all nodes for example foo::m += raise(bar) rescue nil traverses all nodes for example p :foo, {** proc do end, b: proc do end} traverses all nodes for example def f ((*, p)); end traverses all nodes for example def f(foo); end traverses all nodes for example %i[foo bar] traverses all nodes for example f{ |a, o=1, o1=2, *r, &b| } traverses all nodes for example foo = *bar traverses all nodes for example fun (1) traverses all nodes for example fun! traverses all nodes for example foo | 1 traverses all nodes for example a # # &.foo traverses all nodes for example p <<~E x \ y E traverses all nodes for example <<-`HERE` #@@1 HERE traverses all nodes for example case foo; in ^foo then nil; end traverses all nodes for example while def foo; tap do end; end; break; end traverses all nodes for example super() traverses all nodes for example %x{#@@1} traverses all nodes for example begin; meth; rescue; foo; else; bar; end traverses all nodes for example def f a, o=1, p, &b; end traverses all nodes for example <<'HERE' foo bar HERE traverses all nodes for example <<-E 1 \ 2 3 E traverses all nodes for example case foo; in A(x:) then true; end traverses all nodes for example module A; _1; end traverses all nodes for example { 1 => 2, :foo => "bar" } traverses all nodes for example f{ |a| } traverses all nodes for example m a + b do end traverses all nodes for example foo = m foo traverses all nodes for example begin meth end until foo traverses all nodes for example a b{c d}, :e do end traverses all nodes for example def f foo: ; end traverses all nodes for example def f ((*r, p)); end traverses all nodes for example {a: if true then 42 end} traverses all nodes for example "#{1}" traverses all nodes for example ..100 traverses all nodes for example foo[0, 1] ||= 2 traverses all nodes for example def a b: return end traverses all nodes for example a, *b, c = bar traverses all nodes for example a = 1; a b: 1 traverses all nodes for example a b(c d), 1.0 do end traverses all nodes for example case foo; when 1, *baz; bar; when *foo; end traverses all nodes for example def foo =begin =end end traverses all nodes for example false ? raise do end : tap do end traverses all nodes for example foo = raise(bar) rescue nil traverses all nodes for example foo traverses all nodes for example unless foo; bar; end traverses all nodes for example def f a, o=1, &b; end traverses all nodes for example def f a, o=1, *r, p, &b; end traverses all nodes for example ::A += 1 traverses all nodes for example %W[foo #{bar}] traverses all nodes for example foo.fun traverses all nodes for example f{ |*, &b| } traverses all nodes for example [1, *foo, 2] traverses all nodes for example Foo = 10 traverses all nodes for example meth do; foo; rescue; bar; end traverses all nodes for example %q{a\ b} traverses all nodes for example a, * = bar traverses all nodes for example %I[foo #{bar}] traverses all nodes for example case foo; in [x, y, *z] then true; end traverses all nodes for example foo[0, 1] &&= 2 traverses all nodes for example case foo; in "#{ %q{a} }": 1 then true; end traverses all nodes for example next(foo) traverses all nodes for example @@var |= 10 traverses all nodes for example <<~E 1 \ 2 3 E traverses all nodes for example f{ |a, o=1, *r, p, &b| } traverses all nodes for example p <<~E x y E traverses all nodes for example foo >> 1 traverses all nodes for example case foo; in "a": then true; end traverses all nodes for example m do _1 + _9 end traverses all nodes for example case foo; in [x, y, *] then true; end traverses all nodes for example :'foo' traverses all nodes for example case foo; in { a: 1, } then true; end traverses all nodes for example def self.m; _1; end traverses all nodes for example def BEGIN; end traverses all nodes for example let () { m(a) do; end } traverses all nodes for example %w[foo bar] traverses all nodes for example -2.0 ** 10 traverses all nodes for example -> a: 1 { } traverses all nodes for example p :foo, {proc do end => proc do end, b: proc do end} traverses all nodes for example case foo; in self then true; end traverses all nodes for example case foo; when 'bar'; bar; end traverses all nodes for example %i[ #@1 ] traverses all nodes for example def f foo: -1 ; end traverses all nodes for example a b{c d}, 1 do end traverses all nodes for example true traverses all nodes for example meth while foo traverses all nodes for example %x{a\ b} traverses all nodes for example case foo; in ...2 then true; end traverses all nodes for example %x{#@1} 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 foo =~ 1 traverses all nodes for example BEGIN { 1 } traverses all nodes for example [*foo] traverses all nodes for example 42i traverses all nodes for example class << foo; nil; end traverses all nodes for example return foo traverses all nodes for example %I[#@@1] traverses all nodes for example break traverses all nodes for example %w[ #@@1 ] traverses all nodes for example p :foo, {"a": proc do end, b: proc do end} traverses all nodes for example -> do _1 + _9 end traverses all nodes for example a b{c(d)}, 1 do end traverses all nodes for example f{ |o=1, *r, &b| } traverses all nodes for example case foo; in *x then nil; end traverses all nodes for example foo.m += raise(bar) rescue nil traverses all nodes for example a # # .foo traverses all nodes for example fun(:foo => 1, &baz) traverses all nodes for example %I[#@1] traverses all nodes for example 42.1ri traverses all nodes for example fun { } traverses all nodes for example p <<~E E traverses all nodes for example :'#@1' traverses all nodes for example a b{c d}, /x/m do end traverses all nodes for example foo !~ 1 traverses all nodes for example { 1 => 2 } traverses all nodes for example $+ traverses all nodes for example case foo; in A then true; end traverses all nodes for example [ 1, 2 => 3 ] traverses all nodes for example foo && (a, b = bar) traverses all nodes for example if (bar); foo; end traverses all nodes for example not foo traverses all nodes for example p <<~E x y E traverses all nodes for example desc "foo" do end traverses all nodes for example case foo; in **nil then true; end traverses all nodes for example foo, bar = m foo traverses all nodes for example meth 1 do end.fun bar traverses all nodes for example def f(**nil); end traverses all nodes for example yield traverses all nodes for example %{a\ b} traverses all nodes for example def f **baz, &b; end traverses all nodes for example case foo; in 1, "a", [], {} then nil; end traverses all nodes for example def foo(...); super(...); end traverses all nodes for example [/()\1/, ?#] traverses all nodes for example m = -> *args do end traverses all nodes for example a b(c(d)), /x/ do end traverses all nodes for example fun (f bar) traverses all nodes for example %W[#@@1] traverses all nodes for example undef foo, :bar, :"foo#{1}" traverses all nodes for example ::Foo = 10 traverses all nodes for example case foo; in ..2 then true; end traverses all nodes for example foo = meth rescue bar traverses all nodes for example foo.a &&= 1 traverses all nodes for example def f(*foo); end traverses all nodes for example defined? @foo traverses all nodes for example case foo; in 1...2 then true; end traverses all nodes for example fun() { } traverses all nodes for example case foo; in a: then true; end traverses all nodes for example case foo; in 1..2 then true; end traverses all nodes for example fun(foo, :foo => 1) traverses all nodes for example foo[1, 2] traverses all nodes for example /#@@1/ traverses all nodes for example case foo; in * then nil; end traverses all nodes for example assert do: true traverses all nodes for example case foo; in 1 => a then true; end traverses all nodes for example case foo; in [*x, y] then true; end traverses all nodes for example while class Foo; tap do end; end; break; end traverses all nodes for example !(foo..bar) traverses all nodes for example @foo, @@bar = *foo traverses all nodes for example def foo a:b end traverses all nodes for example __LINE__ traverses all nodes for example "foo#{bar}baz" traverses all nodes for example def f &b; end traverses all nodes for example foo && bar traverses all nodes for example foo * 1 traverses all nodes for example /source/im traverses all nodes for example -> (arg={}) {} traverses all nodes for example fun(foo, :foo => 1, &baz) traverses all nodes for example traverses all nodes for example "#@1" traverses all nodes for example case foo; in x, y then nil; end traverses all nodes for example /\xa8/n =~ "" traverses all nodes for example case foo; in 1.. then true; end traverses all nodes for example <<-"HERE" #@@1 HERE traverses all nodes for example case foo; in [x, y,] then true; end traverses all nodes for example ->{ } traverses all nodes for example def foo; end traverses all nodes for example foo += m foo traverses all nodes for example false traverses all nodes for example a # # .foo traverses all nodes for example 1.33 traverses all nodes for example f x: -> do meth do end end traverses all nodes for example a b(c(d)), 1 do end traverses all nodes for example foo ** 1 traverses all nodes for example <<-"HERE" #@1 HERE traverses all nodes for example while foo; meth end traverses all nodes for example a b(c(d)), "x" do end traverses all nodes for example case foo; when 'bar', 'baz'; bar; end traverses all nodes for example f{ |a, &b| } traverses all nodes for example case foo; in [x, *y, z] then true; end traverses all nodes for example f{ |a| } traverses all nodes for example foo::a = 1 traverses all nodes for example case foo; in [x] then nil; end traverses all nodes for example def f(foo: 1); end traverses all nodes for example case foo; in x, *y, z then nil; end traverses all nodes for example case foo; in A() then true; end traverses all nodes for example @a |= 1 traverses all nodes for example f <<-TABLE do TABLE end 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 += 1 traverses all nodes for example p <<~E x y E traverses all nodes for example def f (((a))); end traverses all nodes for example case foo; in {a: 2} false ; end traverses all nodes for example def f ((a, *r)); end traverses all nodes for example def f o=1, &b; end traverses all nodes for example f(a ? "a":1) traverses all nodes for example 1...2 traverses all nodes for example a b{c d}, /x/ do end traverses all nodes RuboCop::AST::CaseNode #keyword is expected to eq "case" #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 #when_branches is expected to eq 3 is expected to all be when type #else_branch #else? without an else statement is expected to be nil with an empty else statement is expected to be nil with an else statement is expected to be sym type #branches 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 when there is no else keyword returns only then when bodies #each_when when not passed a block is expected to be a kind of Enumerator when passed a block yields all the conditions RuboCop::AST::InPatternNode when using Ruby 2.7 or newer #pattern with an array pattern is expected to be array pattern type with an alternative pattern is expected to be match alt type with an as pattern is expected to be match as type with a value pattern is expected to be int type with a hash pattern is expected to be hash pattern type with a variable pattern is expected to be match var type with a pin operator is expected to be pin type #then? with a then keyword is expected to be then without a then keyword is expected not to be then #body without a then keyword is expected to be array type with a then keyword 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::InPatternNode 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::DefNode #endless? with standard method definition is expected not to be endless with endless method definition is expected to be endless #body with a single expression body is expected to be send type with a multi-expression body is expected to be begin type with no body is expected to be nil #block_argument? with regular 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 no arguments is expected not to be block argument .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 #void_context? with a regular method is expected not to be void context with an initializer method is expected to be void context with a comparison method is expected not to be void context with a bracket assignment method is expected to be void context with a regular assignment method is expected to be void context #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 with a unary operator method is expected to be operator method #arguments with multiple mixed arguments is expected to eq 2 with a single rest argument is expected to eq 1 with multiple regular arguments is expected to eq 2 with no arguments is expected to be empty with argument forwarding is expected to eq 1 with a single regular argument is expected to eq 1 when using Ruby 2.7 or newer #argument_forwarding? is expected to be argument forwarding #first_argument with no arguments is expected to be nil with a single keyword argument is expected to be kwoptarg type with multiple mixed arguments is expected to be arg type with a single regular argument is expected to be arg type 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 bracket assignment method is expected to be assignment method with a comparison method is expected not to be assignment method with a regular method is expected not to be assignment method with an assignment method is expected to be assignment method #const_receiver? with an instance method definition is expected not to be 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 #bang_method? with a bang method is expected to be bang method with a predicate method is expected not to be bang method with a regular method is expected not to be bang method #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 #comparison_method? with a regular method is expected not to be comparison method with a comparison method is expected to be comparison method #method? 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 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 #method_name with an operator method is expected to eq :== with a unary method is expected to eq :-@ with a plain method is expected to eq :foo with a setter method is expected to eq :foo= #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 #arguments? with a single keyword argument is expected to be arguments with a single regular argument is expected to be arguments with no arguments is expected not to be arguments with multiple mixed arguments is expected to be arguments with multiple regular arguments is expected to be arguments with a single rest argument is expected to be arguments #self_receiver? with a class method definition is expected to be 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 #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 #rest_argument? with no arguments is expected not to be rest argument with regular arguments is expected not to be rest argument with mixed arguments is expected to be rest argument with a rest argument is expected to be rest argument #last_argument with a single keyword argument is expected to be kwoptarg type with no arguments is expected to be nil with multiple mixed arguments is expected to be restarg type with a single rest argument is expected to be restarg type with a single regular argument is expected to be arg type with multiple regular arguments is expected to be arg type RuboCop::AST::StrNode #character_literal? with a normal string literal is expected not to be character literal with a character literal is expected to be character literal with a heredoc is expected not to be character literal .new with a normal string is expected to be a kind of RuboCop::AST::StrNode 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 #heredoc? with a normal string is expected not to be heredoc with a string with interpolation is expected not to be heredoc with a heredoc is expected to be heredoc 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 a single splat argument is expected to eq 1 with a single argument is expected to eq 1 with a single argument and braces is expected to eq 1 with no arguments is expected to be empty with no arguments and braces is expected to be empty with multiple literal arguments is expected to eq 2 RuboCop::AST::AndNode #logical_operator? with a semantic and node is expected not to be logical operator with a logical and node is expected 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 #rhs with a logical and node is expected to be int type with a semantic and node is expected to be int type #semantic_operator? with a logical and node is expected not to be semantic operator with a semantic and node is expected to be semantic operator #alternate_operator with a semantic and node is expected to eq "&&" with a logical and node is expected to eq "and" #operator with a logical and node is expected to eq "&&" with a semantic and node is expected to eq "and" #inverse_operator with a logical and node is expected to eq "||" with a semantic and node is expected to eq "or" .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 #method_name is expected to eq :lambda #receiver is expected to be nil RuboCop::AST::DstrNode #value with a multiline string is expected to eq "this is a multiline string" with implicit concatenation is expected to eq "foo bar baz" with interpolation is expected to eq "foo \#{bar} baz" RuboCop::AST::YieldNode #predicate_method? is expected not to be predicate method #bang_method? is expected not to be bang method #operator_method? is expected not to be operator method .new is expected to be a kind of RuboCop::AST::YieldNode #double_colon? is expected not to be double colon #block_node is expected to be nil #arguments with a single literal argument is expected to eq 1 with multiple mixed arguments is expected to eq 2 with a single splat argument is expected to eq 1 with multiple literal arguments is expected to eq 2 with no arguments is expected to be empty #receiver is expected to be nil #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 #macro? is expected not to be macro #const_receiver? is expected not to be const receiver #method_name is expected to eq :yield #last_argument 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 a single literal argument is expected to be sym type with multiple mixed arguments is expected to be splat type #arguments? with a single literal argument is expected to be arguments with multiple literal arguments is expected to be arguments with no arguments 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 #comparison_method? is expected not to be comparison method #camel_case_method? is expected not to be camel case method #self_receiver? is expected not to be self receiver #setter_method? is expected not to be setter method #command? when argument is a symbol is expected to be command :yield when argument is a string is expected to be command "yield" #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" #implicit_call? is expected not to be implicit call #block_literal? is expected not to be block literal #dot? is expected not to be dot #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_argument? is expected not to be block argument #assignment_method? is expected not to be assignment method #first_argument with no arguments is expected to be nil with a single splat argument is expected to be splat type with multiple literal arguments is expected to be sym type with multiple mixed arguments is expected to be sym type with a single literal argument is expected to be sym type RuboCop::AST::ReturnNode behaves like wrapped arguments node #arguments with a single splat argument is expected to eq 1 with a single argument and braces is expected to eq 1 with multiple literal arguments is expected to eq 2 with a single argument is expected to eq 1 with no arguments is expected to be empty 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::NodePattern::Lexer provides tokens via next_token when given a regexp /[abc]+\/()?/x round trips when given arithmetic symbols is parsed as `:&` when given a regexp /back\\slash/ round trips when given a regexp /test/ round trips when given node types and constants distinguishes them with $type+ is parsed as `$ int + x` when given a regexp ending with a backslash does not lexes it properly RuboCop::AST::AndAsgnNode #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode .new is expected to be a kind of RuboCop::AST::AndAsgnNode #operator is expected to eq :"&&" #expression is expected to eq s(:send, nil, :value) #name is expected to eq :var RuboCop::AST::NodePattern descend 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 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 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 captures within union 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 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 a different number of captures in each branch behaves like invalid is invalid 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 predicates 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 when negated 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" 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 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} for which the predicate is false behaves like nonmatching doesn't match with extra arguments raises an error when in last-child position, but all children have already been matched 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 applied to an integer for which the predicate is true is expected to match code s(:int, 1) and :inc macros with a pattern without captures def_node_search returns the method name with a predicate name 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) when it errors raises an error with the right location 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 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 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 with captures def_node_matcher when called on matching code is expected to eq :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 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 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 negation on a sequence 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 with a node of different type is expected to match code :@@a and s(:int, 1) on a set with a non-matching value is expected to match code :@a and s(:int, 3) with a matching value behaves like nonmatching doesn't match 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 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 str :<< str) behaves like nonmatching doesn't match 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) on a symbol with a matching symbol behaves like nonmatching doesn't match 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 bad syntax with empty intersection behaves like invalid is invalid with empty parentheses behaves like invalid is invalid with leading comma in arg list behaves like invalid is invalid with unmatched closing curly behaves like invalid is invalid with negated ellipsis behaves like invalid is invalid with empty union subsequence in seq head behaves like invalid is invalid with unsupported subsequence in seq head within union behaves like invalid is invalid with unmatched opening paren behaves like invalid is invalid with empty union behaves like invalid is invalid with unmatched opening paren and `...` behaves like invalid is invalid with doubled comma in arg list behaves like invalid is invalid with doubled ellipsis is expected to match code "foo" with negated closing paren behaves like invalid is invalid with variadic unions where not supported behaves like invalid is invalid with unmatched opening curly behaves like invalid is invalid with negated closing curly behaves like invalid is invalid with unmatched closing paren behaves like invalid is invalid nil nil value in AST, use nil? method is expected to match code nil and :foo nil literals is expected to match code nil value in AST behaves like nonmatching doesn't match against a node pattern (bug #5470) behaves like nonmatching doesn't match simple sequence on a node with too many children behaves like nonmatching doesn't match 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 with a nested sequence in head position behaves like invalid is invalid 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) in any order 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 without ellipsis with too few 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 with too many children behaves like nonmatching doesn't match 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 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 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 at the beginning of a sequence 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 containing ellipsis not at the end behaves like invalid is invalid nested behaves like invalid is invalid with a captured ellipsis 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 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 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 commas with commas randomly strewn around behaves like invalid is invalid bare node type yaml compatibility is expected to match code s(:send, nil, :obj) and :method #dup is expected to match code s(:send, nil, :obj) and :method #to_s is instructive marshal compatibility is expected to match code s(:send, nil, :obj) and :method #pattern returns the pattern 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) #== returns true iff the patterns are similar on a node with a different type behaves like nonmatching doesn't match sequence with trailing ... on a node with fewer children, with a wildcard preceding 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 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 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 a different type behaves like nonmatching doesn't match literals symbol literals is expected to match code :foo double quoted string literals is expected to match code "foo" negative integer literals is expected to match code -100 bare literal on a node behaves like nonmatching doesn't match on a matching literal is expected to match code :bar single quoted string literals is expected to match code "foo" positive float literals is expected to match code 1.0 negative float literals is expected to match code -2.5 captures which also perform a match when nested 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 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 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 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 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 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 params 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 when preceded by ... is expected to match code s(:send, s(:int, 1), :+, s(:int, 10)) and s(:int, 10) when negated, with a matching value behaves like nonmatching doesn't match when inside a union, with a matching value is expected to match code s(:int, 10) and 10 when inside a union, with a nonmatching value behaves like nonmatching doesn't match in a nested sequence is expected to match code s(:send, s(:send, s(:int, 5), :dec), :inc), :inc, and :dec as named parameters when extra are provided raises an ArgumentError when provided as argument to match is expected to match code s(:int, 10) and {:foo=>#} when not provided raises an ArgumentError when negated, with a nonmatching value is expected to match code s(:const, s(:const, nil, :Namespace), :B) and :A 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 $... 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 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 # 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 captures on a wildcard 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 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 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 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 head position in a sequence against literal (bug #5470) behaves like nonmatching doesn't match 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 node type for a child on a child litteral behaves like nonmatching doesn't match on a child with a different type behaves like nonmatching doesn't match on a child with the same type is expected to match code s(:send, nil, :foo) and :bar 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) captures on ... 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 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 sequence 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 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 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 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 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 at the very beginning of 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 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 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 [] 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 caret (ascend) inside a union is expected to match code "abc" used with a node type which matches is expected to match code 1 which doesn't match behaves like nonmatching doesn't match inside an intersection is expected to match code 1 repeated twice is expected to match code 1 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 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" .descend yields all children depth first yields the given argument if it is not a Node 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 ellipsis 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 set at the end, but no remaining child to match it behaves like nonmatching doesn't match with a nested sequence at the end, but no remaining child 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) 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 with a nodetype at the end, but no remaining child to match it 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 repeated using ? with too many matching children behaves like nonmatching doesn't match behaves like repeated pattern 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 an ellipsis in the same sequence is expected to match code "[:hello, 1, 2, 3]" 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 using + with zero match behaves like nonmatching doesn't match 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 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 * 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 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 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 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 without capture is expected to match code s(:sym, :hello), s(:int, 1), s(:int, 2), and s(:int, 3) 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 with no match behaves like nonmatching doesn't match unions at the top level 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 containing string literals is expected to match code s(:str, "a") and :upcase containing mixed node and literals is expected to match code nil and :obj containing multiple [] on a node which meets all requirements of the second [] is expected to match code 2.4 on a node which meets all requirements of the first [] is expected to match code 3 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 nested inside a sequence is expected to match code s(:const, nil, :Const) and :method with a nested sequence is expected to match code s(:const, nil, :Const) and :method variadic multiple works for complex cases 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 with fixed 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 wildcards 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 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 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 confined to the union with partial unification matching the unified branch is expected to match code s(:int, 5) and s(:int, 5) 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) without unification is expected to match code s(:int, 2) and s(:int, 1) with a preceding unifying constraint matching a branch is expected to match code s(:int, 2) and s(:array, s(:int, 2), s(:int, 1)) that can not be unified behaves like nonmatching doesn't match with a succeeding unifying constraint with all branches with the wildcard matching the first branch is expected to match code s(:array, s(:int, 1), s(:int, 2)) and s(:int, 2) 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) with branches without the wildcard encountered after behaves like invalid is invalid encountered first behaves like invalid is invalid within a sequence 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) with values which cannot be unified behaves like nonmatching doesn't match regexp matches symbols or strings 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 #last_argument with no arguments is expected to be nil with a single literal argument is expected to be sym type 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 #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 #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 with a prefixed def modifier is expected to be def modifier #splat_argument? with regular arguments is expected not to be 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 #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 #nonmutating_operator_method? with a nonmutating binary 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 unary operator method is expected to be nonmutating operator method with a regular method is expected not to be nonmutating operator method #block_node with Ruby >= 2.7 with a numblock literal is expected to be numblock type with no block is expected to be nil with a block literal is expected to be block type with a block argument is expected to be nil #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 #arguments with a single splat argument is expected to eq 1 with a single literal 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 #lambda? with a stabby lambda method is expected to be lambda with a non-lambda method is expected not 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 #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 unary operator method is expected to be operator method with a binary operator method is expected to be operator method #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 with an operator method is expected not to be setter 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 #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 with suffix `not` is expected not to be negation method .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 #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 #block_literal? with no block is expected not to be block literal with a block literal is expected to be block literal with Ruby >= 2.7 with a numblock literal is expected to be block literal with a block argument is expected not to be block literal #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 #method_name with an operator method is expected to eq :== with a plain method is expected to eq :bar with a setter method is expected to eq :bar= with an implicit call method is expected to eq :call #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 #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" #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 #prefix_bang? with a bang method is expected to be prefix bang with keyword `not` is expected not to be prefix bang with a non-negated method is expected not to be prefix bang #first_argument with multiple mixed arguments 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 a single splat argument is expected to be splat type with a single literal argument is expected to be sym type #arguments? with a single splat argument is expected to be arguments with multiple literal arguments 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 mixed arguments is expected to be arguments #enumerable_method? with an enumerable method is expected to be enumerable method with a regular method is expected not to be enumerable method #unary_operation? with a binary operation 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 regular method call is expected not to be unary operation #prefix_not? with keyword `not` is expected to be prefix not with a bang method is expected not to be prefix not with a non-negated method is expected not to be prefix not #def_modifier with call with no argument is expected to be nil with several prefixed def modifiers is expected to eq :qux with a block containing a method definition is expected to be nil with a prefixed def modifier is expected to eq :bar #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 #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 #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 without a receiver when parent is a begin without a parent is expected to be macro without a parent is expected to be macro when parent is a keyword begin inside of an class is expected to be macro when parent is a struct constructor is expected to be macro when parent is a module 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 singleton class is expected to be macro when parent is a class is expected to be macro when in the global scope is expected to be macro when in an if is expected to be macro when the condition of an if is expected not to be macro when parent is a block in a macro scope is expected to be macro when parent is a method definition is expected not 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 #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" #self_receiver? with a self receiver is expected to be self receiver with an implicit receiver is expected not to be self receiver with a non-self receiver is expected not to be self receiver #predicate_method? with a regular method is expected not to be predicate method with a predicate method is expected to be predicate method with a bang method is expected not to be predicate method #const_receiver? with a constant receiver is expected to be 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 #assignment_method? with a regular method is expected not to be 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 comparison method is expected not to be assignment method #bang_method? with a predicate method is expected not to be bang method with a regular method is expected not to be bang method with a bang method is expected to be bang method #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 with a double colon is expected not to be dot #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? when node has an argument is expected not to be bare access modifier when node is a bare `module_function` is expected to be 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 is not an access modifier is expected not to be bare access modifier #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 with a nonmutating binary operator method is expected to be nonmutating binary operator method #double_colon? without a dot is expected not to be double colon with a unary method is expected not to be double colon with a dot is expected not to be double colon with a double colon is expected to be double colon #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 #attribute_accessor? with an accessor returns the accessor method and Array] with a call without arguments is expected to be nil #loop_keyword? is expected not to be loop keyword #post_condition_loop? is expected not to be post condition loop #comparison_method? with a negation method is expected not to be comparison method with a regular method is expected not to be comparison method with a comparison method is expected to be comparison method #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 #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 binary operation is expected to be binary operation with a regular method call is expected not to be binary operation 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 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 with delimiters with a block is expected to equal false with a method definition is expected to equal false with a lambda literal is expected to equal false with arguments with a lambda literal is expected to equal false with a method definition is expected to equal false .new with a lambda literal 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 method definition is expected to be a kind of RuboCop::AST::ArgsNode RuboCop::AST::BlockNode .new is expected to be a kind of RuboCop::AST::BlockNode #closing_delimiter when enclosed in do-end keywords is expected to eq "end" when enclosed in braces is expected to eq "}" #braces? when enclosed in braces is expected to be braces when enclosed in do-end keywords is expected not to be braces #delimiters when enclosed in braces is expected to eq ["{", "}"] when enclosed in do-end keywords is expected to eq ["do", "end"] #argument_list all argument types is expected to eq [:a, :b, :c, :d, :e, :f, :g, :h, :i] with no arguments is expected to be empty >= 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] #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 tap is expected to be 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 #keywords? when enclosed in braces is expected not to be keywords when enclosed in do-end keywords is expected to be keywords #receiver with dot operator call is expected to eq "foo" with safe navigation operator call is expected to eq "foo" #arguments? with no arguments is expected not to be arguments with a single argument 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 destructuring arguments is expected to be arguments with multiple mixed arguments is expected to be arguments #single_line? when block is on several lines is expected not to be single line when block is on a single line is expected to be single line #arguments with destructured arguments is expected to eq 2 with no arguments is expected to be empty with multiple mixed arguments is expected to eq 2 >= Ruby 2.7 using numbered parameters is expected to be empty with a single splat argument is expected to eq 1 with a single literal argument is expected to eq 1 #lambda? when block belongs to a stabby 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 method lambda is expected to be lambda #opening_delimiter when enclosed in braces is expected to eq "{" when enclosed in do-end keywords is expected to eq "do" RuboCop::AST::IntNode #sign? explicit negative int is expected to be sign explicit positive int is expected to be sign #value is expected to eq 10 .new is expected to be a kind of RuboCop::AST::IntNode Set#=== tests for inclusion Changelog merges correctly parses correctly Changelog::Entry generates correct content RuboCop::AST::ForwardArgsNode when using Ruby 2.7 or newer #to_a is expected to contain exactly (be forward arg type) RuboCop::AST::OrAsgnNode #name is expected to eq :var #operator is expected to eq :"||" .new is expected to be a kind of RuboCop::AST::OrAsgnNode #expression is expected to eq s(:send, nil, :value) #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode RuboCop::AST::CasgnNode #namespace when the parent is a `const` is expected to eq s(:const, nil, :FOO) when the parent is a `cbase` is expected to eq s(:cbase) when there is no parent is expected to be nil .new with a `casgn` node is expected to be a kind of RuboCop::AST::CasgnNode #expression is expected to eq s(:send, nil, :value) #name is expected to eq :VAR RuboCop::AST::ClassNode .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 #identifier is expected to be const type #body with a single expression body is expected to be send type with a multi-expression body is expected to be begin type with an empty body is expected to be nil RuboCop::AST::ArgNode #default_value with argument forwarding with Ruby >= 2.7 is expected to be nil with Ruby >= 3.0 is expected to be nil with an optional argument is expected to eq s(:int, 42) with an optional keyword argument is expected to eq s(:int, 42) with a splatted argument is expected to be nil with a block argument is expected to be nil with a shadow argument is expected to be nil with a double splatted argument is expected to be nil with a block is expected to be nil with a regular argument is expected to be nil #name with a nameless double splatted argument is expected to be nil with a double splatted argument is expected to eq :x with an optional keyword argument is expected to eq :x with a nameless splatted argument is expected to be nil with a keyword argument is expected to eq :x with a shadow argument is expected to eq :x with a block argument is expected to eq :x with a splatted argument is expected to eq :x with a regular 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 block is expected to eq :x with an optional argument is expected to eq :x .new with a keyword 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 a block 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 argument forwarding with Ruby >= 3.0 is expected to be a kind of RuboCop::AST::ArgNode with Ruby >= 2.7 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 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 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 an optional argument is expected to be a kind of RuboCop::AST::ArgNode #default? with an optional argument is expected to equal true with a splatted argument is expected to equal false with an optional keyword argument is expected to equal true with a block 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 with a block is expected to equal false with a regular argument is expected to equal false with a shadow argument is expected to equal false RuboCop::AST::SuperNode #setter_method? is expected not to be setter method #dot? is expected not to be dot #predicate_method? is expected not to be predicate method #method_name is expected to eq :super #receiver is expected to be nil #bang_method? is expected not to be bang method #macro? is expected not to be macro #first_argument with multiple literal arguments is expected to be sym type with a single literal argument 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 #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 #operator_method? is expected not to be operator method #const_receiver? is expected not to be const receiver #comparison_method? is expected not to be comparison method #last_argument 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 with a single splat argument is expected to be splat type #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 #self_receiver? is expected not to be self receiver #assignment_method? is expected not to be assignment method #arguments? with multiple literal arguments is expected to be arguments with no arguments is expected not to be arguments with multiple mixed arguments is expected to be arguments with a single splat argument is expected to be arguments with a single literal argument is expected to be arguments #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 #arguments with multiple mixed arguments is expected to eq 2 with no arguments is expected to be empty with multiple literal arguments is expected to eq 2 with a single literal argument is expected to eq 1 with a single splat argument is expected to eq 1 #block_node with a block argument is expected to be nil with a block literal is expected to be block type with no block is expected to be nil #implicit_call? is expected not to be implicit call #double_colon? is expected not to be double colon #camel_case_method? is expected not to be camel case method #block_argument? with a block argument is expected to be 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 #command? when argument is a symbol is expected to be command :super when argument is a string is expected to be command "super" #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 using parentheses is expected to be parenthesized when not using parentheses is expected not to be parenthesized .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 RuboCop::AST::Token #space_after returns nil when there is not a space after token returns truthy MatchData when there is a space after 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 .from_parser_token sets parser token's text to rubocop token's text sets parser token's range to rubocop token's pos returns a #to_s useful for debugging sets parser token's type to rubocop token's type #begin_pos returns index of first char in token range of entire source #to_s returns string of token data #end_pos returns index of last char in token range of entire source #line returns line of token type predicates #left_ref_bracket? returns true for left_ref_bracket tokens returns false for non left_ref_bracket tokens #new_line? returns true for new line tokens returns false for non new line tokens #right_bracket? returns true for all right_bracket tokens returns false for non right_bracket tokens #semicolon? returns false for non semicolon tokens returns true for semicolon tokens #comma? returns true for comma tokens returns false for non comma tokens #left_bracket? returns true for all left_bracket tokens returns false for non left_bracket tokens #left_array_bracket? returns false for non left_array_bracket tokens returns true for left_array_bracket tokens #comment? returns false for non comment tokens returns true for comment 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 #end? returns true for end tokens returns false for non end tokens #rescue_modifier? returns true for rescue modifier tokens returns false for non rescue modifier tokens with braces & parens #right_curly_brace? returns true for all right brace tokens returns false for non right brace tokens #left_curly_brace? returns false for non left block brace tokens returns true for left block brace tokens #left_brace? returns true for left hash brace tokens returns false for non left hash brace tokens #right_parens? returns false for non right parens tokens returns true for right parens tokens #left_parens? returns true for left parens tokens returns false for non left parens tokens #left_brace? returns true for right_bracket tokens returns false for non right_bracket tokens #dot? returns false for non dot tokens returns true for dot tokens #column returns index of first char in token range on that line RuboCop::AST::ConstNode #namespace is expected to eq "::Foo::Bar" #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 #relative? with a non-namespaced constant is expected to be relative #short_name is expected to eq :BAZ #each_path yields all parts of the namespace RuboCop::AST::ArrayNode #percent_literal? with a string percent literal is expected not to be percent literal :symbol is expected 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 with a symbol percent literal is expected to be percent literal :symbol is expected to be percent literal is expected not to be percent literal :string #square_brackets? with a percent literal is expected not to be square brackets with square brackets is expected to be square brackets #values 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 eq 3 is expected to all be literal with an empty array is expected to be empty .new is expected to be a kind of RuboCop::AST::ArrayNode #bracketed? with a percent literal is expected to be bracketed with square brackets is expected to be bracketed unbracketed is expected to be nil #each_value with block is expected to be a kind of RuboCop::AST::ArrayNode is expected to eq ["(int 1)", "(int 2)", "(int 3)"] without block is expected to be a kind of Enumerator RuboCop::AST::HashNode #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 #pairs with a hash of variables is expected to all be pair type is expected to eq 2 with an empty hash is expected to be empty with a hash of literals is expected to eq 3 is expected to all be pair type #each_key when passed a block yields all the pairs when not passed a block is expected to be a kind of Enumerator #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 #mixed_delimiters? when all pairs are using a colon delimiter is expected not to be mixed delimiters when all pairs are using a hash rocket delimiter is expected not to be mixed delimiters when pairs are using different delimiters is expected to be mixed delimiters #each_value when not passed a block is expected to be a kind of Enumerator when passed a block yields all the pairs .new is expected to be a kind of RuboCop::AST::HashNode #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 eq 2 is expected to all be str type 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 #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 #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 RuboCop::AST::PairNode #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 #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 #key when using a symbol key is expected to be sym type when using a string key is expected to be str type #value_delta when using colon delimiters 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 behind is expected to eq -2 when receiver value is ahead is expected to eq 2 when using hash rocket delimiters 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 both pairs are on the same line 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 ":" #value is expected to be int type #key_delta with alignment set to :right when using hash rocket delimiters 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 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 second key is a keyword splat is expected to eq 0 when both keys are explicit keys is expected to eq 0 when using colon 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 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 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 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 :left when using colon delimiters 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 both pairs are explicit pairs is expected to eq 0 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 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 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 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 second pair is a keyword splat is expected to eq -2 when both pairs are explicit pairs is expected to eq -2 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 #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 " => " #colon? when using a hash rocket delimiter is expected not to be colon when using a colon delimiter is expected to be colon #hash_rocket? when using a colon delimiter is expected not to be hash rocket when using a hash rocket delimiter is expected to be hash rocket #same_line? when a multiline pair shares the same line 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)) 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 pairs are on separate lines when both pairs are explicit pairs is expected not to be same line s(:pair, s(:sym, :b), s(:int, 2)) when last pair is a keyword splat is expected not to be same line s(:kwsplat, s(:send, nil, :foo)) 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)) RuboCop::AST::AsgnNode #expression with a `cvasgn` node is expected to eq s(:send, nil, :value) with a `ivasgn` node is expected to eq s(:send, nil, :value) with a `gvasgn` node is expected to eq s(:send, nil, :value) with a `lvasgn` node is expected to eq s(:send, nil, :value) #name with a `lvasgn` node is expected to eq :var with a `ivasgn` node is expected to eq :@var with a `gvasgn` node is expected to eq :$var with a `cvasgn` node is expected to eq :@@var .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 `cvasgn` 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 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 #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 .new is expected to be a kind of RuboCop::AST::RescueNode 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::NodePattern::Parser sequences parses function calls parses capture vs repetition with correct priority generates specialized nodes parses unions of literals as a set expands ... in sequence head deep inside unions parses simple sequences properly RuboCop::AST::RegexpNode #fixed_encoding? with no options is expected not 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 u and other options is expected to be fixed encoding #single_interpolation? with o and other options is expected to be single interpolation with no options is expected not to be single interpolation with other options is expected not to be single interpolation with only o option is expected to be single interpolation #delimiters with %r/-delimiters is expected to eq ["/", "/"] 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 ["/", "/"] #options with a regexp with multiple options is expected to eq 3 with a regexp with "o" option is expected to eq 0 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 .new is expected to be a kind of RuboCop::AST::RegexpNode #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 with %r/-delimiters is expected to be percent r literal #delimiter? with multi-line %r{-delimiters 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 "r" is expected to be delimiter "{" is expected not to be delimiter "%r/" is expected not to be delimiter "/" with /-delimiters is expected not to be delimiter "{" is expected to be delimiter "/" with %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 %r/-delimiters 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 not to be delimiter "r" is expected not to be delimiter "%" with %r<-delimiters is expected 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 "{" 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/" #content with an empty regexp is expected to eq "" with a regexp without option is expected to eq ".+" with a multi-line regexp with option is expected to eq "\n.+\n" with a regexp with option 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" #ignore_case? with other options is expected not to be ignore case with only i option is expected to be ignore case with i and other options is expected to be ignore case with no options is expected not to be ignore case #interpolation? with regexp quote is expected to be interpolation with no interpolation returns false is expected not to be interpolation with direct variable interpoation is expected to be interpolation #regopt with an empty regexp is expected to be regopt type is expected to be empty with a regexp without option 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 with option is expected to be regopt type is expected to eq [:i, :m, :x] with a multi-line regexp with option is expected to be regopt type is expected to eq [:i, :m, :x] #no_encoding? with no options is expected not to be no encoding with other 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 #slash_literal? with multi-line %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 %r/-delimiters is expected not to be slash literal #to_regexp with a regexp with option is expected to eq /.+/mix with a multi-line regexp with option is expected to eq / .+ /ix with a regexp without option is expected to eq /.+/ with a multi-line regexp without option is expected to eq / .+ / with a regexp with an "n" option is expected to eq "/abc/n" with an empty regexp is expected to eq // with a regexp with an "u" option is expected to eq "/abc/" with an empty regexp with option is expected to eq //ix with a regexp with an "o" option is expected to eq "/abc/i" #extended? with only x option is expected to be extended with x and other options is expected to be extended with other options is expected not to be extended with no options is expected not to be extended #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 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 .new is expected to be a kind of RuboCop::AST::CaseMatchNode #each_in_pattern when not passed a block is expected to be a kind of Enumerator when passed a block yields all the conditions #keyword is expected to eq "case" #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 #else? without an else statement is expected not to be else with an else statement is expected to be else #in_pattern_branches is expected to all be in pattern type is expected to eq 3 Finished in 5.47 seconds (files took 5.02 seconds to load) 2392 examples, 0 failures Randomized with seed 62692 ┌──────────────────────────────────────────────────────────────────────────────┐ │ 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_all.deb'. dpkg-genbuildinfo --build=binary -O../ruby-rubocop-ast_1.24.0-2_amd64.buildinfo dpkg-genchanges --build=binary -O../ruby-rubocop-ast_1.24.0-2_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) dpkg-genchanges: info: not including original source code in upload I: copying local configuration I: user script /srv/workspace/pbuilder/661964/tmp/hooks/B01_cleanup starting I: user script /srv/workspace/pbuilder/661964/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/661964 and its subdirectories I: Current time: Thu Sep 10 11:44:16 +14 2026 I: pbuilder-time-stamp: 1788990256 + false + set +x Wed Sep 9 21:44:16 UTC 2026 I: Signing ./b2/ruby-rubocop-ast_1.24.0-2_amd64.buildinfo as ruby-rubocop-ast_1.24.0-2_amd64.buildinfo.asc Wed Sep 9 21:44:16 UTC 2026 I: Signed ./b2/ruby-rubocop-ast_1.24.0-2_amd64.buildinfo as ./b2/ruby-rubocop-ast_1.24.0-2_amd64.buildinfo.asc Wed Sep 9 21:44:16 UTC 2026 - build #2 for ruby-rubocop-ast/trixie/amd64 on ionos15-amd64 done. Starting cleanup. All cleanup done. Wed Sep 9 21:44:16 UTC 2026 - reproducible_build.sh stopped running as /tmp/jenkins-script-D4XnmrmC, removing. /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh: total 260 drwxr-xr-x 2 jenkins jenkins 4096 Aug 7 15:19 b1 drwxr-xr-x 2 jenkins jenkins 4096 Aug 7 15:21 b2 -rw------- 1 jenkins jenkins 248319 Aug 7 15:19 rbuildlog.uLqkVUe -rw-r--r-- 1 jenkins jenkins 2224 Dec 21 2022 ruby-rubocop-ast_1.24.0-2.dsc /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b1: total 340 -rw-r--r-- 1 jenkins jenkins 244640 Aug 7 15:19 build.log -rw-r--r-- 1 jenkins jenkins 3600 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2.debian.tar.xz -rw-r--r-- 1 jenkins jenkins 2224 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2.dsc -rw-r--r-- 1 jenkins jenkins 53520 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2_all.deb -rw-r--r-- 1 jenkins jenkins 7713 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2_amd64.buildinfo -rw-r--r-- 1 jenkins jenkins 8595 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2_amd64.buildinfo.asc -rw-r--r-- 1 jenkins jenkins 1128 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2_amd64.changes -rw-r--r-- 1 jenkins jenkins 1308 Aug 7 15:19 ruby-rubocop-ast_1.24.0-2_source.changes /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b2: total 336 -rw-r--r-- 1 jenkins jenkins 246574 Aug 7 15:21 build.log -rw-r--r-- 1 jenkins jenkins 3600 Aug 7 15:21 ruby-rubocop-ast_1.24.0-2.debian.tar.xz -rw-r--r-- 1 jenkins jenkins 2224 Aug 7 15:21 ruby-rubocop-ast_1.24.0-2.dsc -rw-r--r-- 1 jenkins jenkins 53520 Aug 7 15:21 ruby-rubocop-ast_1.24.0-2_all.deb -rw-r--r-- 1 jenkins jenkins 7726 Aug 7 15:21 ruby-rubocop-ast_1.24.0-2_amd64.buildinfo -rw-r--r-- 1 jenkins jenkins 8608 Aug 7 15:21 ruby-rubocop-ast_1.24.0-2_amd64.buildinfo.asc -rw-r--r-- 1 jenkins jenkins 1128 Aug 7 15:21 ruby-rubocop-ast_1.24.0-2_amd64.changes -rw-r--r-- 1 jenkins jenkins 1308 Aug 7 15:21 ruby-rubocop-ast_1.24.0-2_source.changes Thu Aug 7 15:21:20 UTC 2025 I: Deleting $TMPDIR on ionos15-amd64.debian.net. Thu Aug 7 15:21:21 UTC 2025 I: ruby-rubocop-ast_1.24.0-2_amd64.changes: Format: 1.8 Date: Wed, 21 Dec 2022 18:24:30 -0300 Source: ruby-rubocop-ast Binary: ruby-rubocop-ast Architecture: all Version: 1.24.0-2 Distribution: unstable Urgency: medium Maintainer: Debian Ruby Team Changed-By: Lucas Kanashiro Description: ruby-rubocop-ast - RuboCop tools to deal with Ruby code AST Changes: ruby-rubocop-ast (1.24.0-2) unstable; urgency=medium . * Team upload. * Generate parsers during the build target. Checksums-Sha1: d393d6f67524212a3d188f38f6d79d1dbd5fca25 53520 ruby-rubocop-ast_1.24.0-2_all.deb 9c6442109793082bc65d53f4c9ab945612fda321 7713 ruby-rubocop-ast_1.24.0-2_amd64.buildinfo Checksums-Sha256: 59f59511852472a544a966615957e31b936bbfdce4b2ee4e188946fa7ef13220 53520 ruby-rubocop-ast_1.24.0-2_all.deb e7687fb4c0fe8c3a4665b1ad04005c233174a9b3f438ebee1e89eef627daef64 7713 ruby-rubocop-ast_1.24.0-2_amd64.buildinfo Files: d65e748d0febd04d82f1cced5e4b7ca0 53520 ruby optional ruby-rubocop-ast_1.24.0-2_all.deb 766d5b6f6c5a7a8a9a06f84e72605d8f 7713 ruby optional ruby-rubocop-ast_1.24.0-2_amd64.buildinfo removed '/var/lib/jenkins/userContent/reproducible/debian/rbuild/trixie/amd64/ruby-rubocop-ast_1.24.0-2.rbuild.log' removed '/var/lib/jenkins/userContent/reproducible/debian/rbuild/trixie/amd64/ruby-rubocop-ast_1.24.0-2.rbuild.log.gz' removed '/var/lib/jenkins/userContent/reproducible/debian/logs/trixie/amd64/ruby-rubocop-ast_1.24.0-2.build1.log.gz' removed '/var/lib/jenkins/userContent/reproducible/debian/logs/trixie/amd64/ruby-rubocop-ast_1.24.0-2.build2.log.gz' removed '/var/lib/jenkins/userContent/reproducible/debian/buildinfo/trixie/amd64/ruby-rubocop-ast_1.24.0-2_amd64.buildinfo' removed '/var/lib/jenkins/userContent/reproducible/debian/logdiffs/trixie/amd64/ruby-rubocop-ast_1.24.0-2.diff.gz' Diff of the two buildlogs: -- --- b1/build.log 2025-08-07 15:19:16.692976835 +0000 +++ b2/build.log 2025-08-07 15:21:20.865137405 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu Aug 7 03:17:54 -12 2025 -I: pbuilder-time-stamp: 1754579874 +I: Current time: Thu Sep 10 11:42:18 +14 2026 +I: pbuilder-time-stamp: 1788990138 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -25,52 +25,84 @@ dpkg-source: info: applying 0002-Fix-compile-task.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1783005/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/661964/tmp/hooks/D01_modify_environment starting +debug: Running on ionos15-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Sep 9 21:42 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/661964/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/661964/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=40 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='4af5ed578a3e46609ae57700827bbabd' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='1783005' - PS1='# ' - PS2='> ' + INVOCATION_ID=76dc84391cf44f7c912161ccb929f274 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=661964 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/pbuilderrc_OZO1 --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b1 --logfile b1/build.log ruby-rubocop-ast_1.24.0-2.dsc' - SUDO_GID='111' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/pbuilderrc_T0lf --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b2 --logfile b2/build.log ruby-rubocop-ast_1.24.0-2.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos11-amd64 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.12.33+deb12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.33-1~bpo12+1 (2025-07-09) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 May 12 19:25 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1783005/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 12 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/661964/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -247,7 +279,7 @@ Get: 127 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 128 http://deb.debian.org/debian trixie/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get: 129 http://deb.debian.org/debian trixie/main amd64 ruby-whitequark-parser all 3.3.4.2-2 [507 kB] -Fetched 36.1 MB in 0s (80.6 MB/s) +Fetched 36.1 MB in 2s (20.0 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1: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 ... 19851 files and directories currently installed.) @@ -678,8 +710,8 @@ Setting up tzdata (2025b-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Thu Aug 7 15:18:52 UTC 2025. -Universal Time is now: Thu Aug 7 15:18:52 UTC 2025. +Local time is now: Wed Sep 9 21:43:38 UTC 2026. +Universal Time is now: Wed Sep 9 21:43:38 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-3) ... @@ -798,7 +830,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-rubocop-ast-1.24.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-rubocop-ast_1.24.0-2_source.changes +I: user script /srv/workspace/pbuilder/661964/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/661964/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-rubocop-ast-1.24.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-rubocop-ast_1.24.0-2_source.changes dpkg-buildpackage: info: source package ruby-rubocop-ast dpkg-buildpackage: info: source version 1.24.0-2 dpkg-buildpackage: info: source distribution unstable @@ -838,7 +874,7 @@ │ ruby-rubocop-ast: Installing files and building extensions for ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250807-1800386-t8bnab/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20260910-712486-2qrgvi/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" @@ -847,7 +883,7 @@ 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/d20250807-1800386-t8bnab/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/d20260910-712486-2qrgvi/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 @@ -973,1957 +1009,200 @@ 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 17249 +Randomized with seed 62692 -RuboCop::AST::ModuleNode - #identifier - is expected to be const type - .new - is expected to be a kind of RuboCop::AST::ModuleNode - #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 - -RuboCop::AST::NodePattern::Lexer - provides tokens via next_token - when given a regexp /test/ - 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 `:&` - when given a regexp /back\\slash/ - round trips - when given a regexp /[abc]+\/()?/x - round trips - with $type+ - is parsed as `$ int + x` - -RuboCop::AST::NodePattern::Parser - sequences - parses simple sequences properly - parses unions of literals as a set - expands ... in sequence head deep inside unions - parses function calls - generates specialized nodes - parses capture vs repetition with correct priority - -RuboCop::AST::EnsureNode +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 - is expected to be a kind of RuboCop::AST::EnsureNode - #body - is expected to be sym type - -RuboCop::AST::AndAsgnNode + with an `op_asgn_node` node + is expected to be a kind of RuboCop::AST::OpAsgnNode #assignment_node is expected to be a kind of RuboCop::AST::AsgnNode #name is expected to eq :var - #operator - is expected to eq :"&&" #expression is expected to eq s(:send, nil, :value) - .new - is expected to be a kind of RuboCop::AST::AndAsgnNode - -RuboCop::AST::DstrNode - #value - with interpolation - is expected to eq "foo \#{bar} baz" - with a multiline string - is expected to eq "this is a multiline string" - with implicit concatenation - is expected to eq "foo bar baz" - -RuboCop::AST::AliasNode - .new - is expected to be a kind of RuboCop::AST::AliasNode - #new_identifier - is expected to eq :foo - is expected to be sym type - #old_identifier - is expected to be sym type - is expected to eq :bar - -RuboCop::AST::SuperNode - #double_colon? - is expected not to be double colon - #block_literal? - with a block literal - is expected to be block literal - with no block - is expected not to be block literal - with a block argument - is expected not to be block literal - #method_name - is expected to eq :super - #first_argument - with a single literal argument - is expected to be sym type - with multiple mixed arguments - 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 no arguments - is expected to be nil - #assignment_method? - is expected not to be assignment method - #setter_method? - is expected not to be setter method - #camel_case_method? - is expected not to be camel case method - .new - with a zsuper node - is expected to be a kind of RuboCop::AST::SuperNode - with a super node - is expected to be a kind of RuboCop::AST::SuperNode - #self_receiver? - is expected not to be self receiver - #block_argument? - with regular arguments - is expected not to be 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 - #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" - #dot? - is expected not to be dot - #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 - #command? - when argument is a string - is expected to be command "super" - when argument is a symbol - is expected to be command :super - #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? - is expected not to be implicit call - #comparison_method? - is expected not to be comparison method - #operator_method? - is expected not to be operator method - #macro? - is expected not to be macro - #receiver - is expected to be nil - #bang_method? - is expected not to be bang method - #arguments - with multiple literal arguments - is expected to eq 2 - with a single literal 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 splat argument - is expected to eq 1 - #predicate_method? - is expected not to be predicate method - #splat_argument? - with a splat argument - is expected to be splat argument - with no arguments - is expected not to be splat argument - with mixed arguments - is expected 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 a single splat argument - is expected to be splat type - with a single literal argument - is expected to be sym type - with multiple literal arguments - is expected to be sym type - #arguments? - with multiple literal 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 - with multiple mixed arguments - is expected to be arguments - with a single literal argument - is expected to be arguments - #const_receiver? - is expected not to be const receiver - -RuboCop::AST::PairNode - .new - is expected to be a kind of RuboCop::AST::PairNode - #value_omission? - when not using hash value omission - is expected not to be value omission - when using hash value omission - is expected to be value omission - #colon? - when using a colon delimiter - is expected to be colon - when using a hash rocket delimiter - is expected not to be colon - #hash_rocket? - when using a colon delimiter - is expected not to be hash rocket - when using a hash rocket delimiter - is expected to be hash rocket - #key - when using a symbol key - is expected to be sym type - when using a string key - is expected to be str type - #value_delta - when using hash rocket delimiters - 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 - when receiver value is ahead - is expected to eq 2 - when receiver value is behind - is expected to eq -2 - when both pairs are on the same line - is expected to eq 0 - when using colon delimiters - when both pairs are on the same line - is expected to eq 0 - when receiver value is behind - is expected to eq -2 - when receiver value is ahead - 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 - #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 " => " - #same_line? - 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(:pair, - s(:sym, :a), - s(:begin)) - is expected to be same line s(:kwsplat, - s(:send, nil, :foo)) - 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 both pairs are explicit pairs - is expected not to be same line s(:pair, - s(:sym, :b), - s(:int, 2)) - when last pair is a keyword splat - is expected not to be same line s(:kwsplat, - s(:send, nil, :foo)) - #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_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 - when value spans multiple lines - is expected not to be value on new line - #key_delta - with alignment set to :right - when using colon delimiters - 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 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 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 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 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 both pairs are explicit 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 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 second pair is a keyword splat - is expected to eq 0 - when both pairs are explicit pairs - is expected to eq -2 - with alignment set to :left - when using hash rocket 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 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 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 - 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 colon delimiters - 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 -2 - 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 - #value - is expected to be int type -RuboCop::AST::IfNode - #if? - with an unless statement - is expected not to be if - with an if statement - is expected to be if - with a ternary operator - is expected not to be if - #else? - with an elsif statement - is expected to be else - without an else statement - is expected not to be elsif - #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 nested conditionals in if clause - is expected to be nested conditional - with nested conditionals in else clause - 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 - .new - 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 - with a modifier statement - is expected to be a kind of RuboCop::AST::IfNode - #else_branch - with an if statement - is expected to be int type - with an unless statement - is expected to be int type - with a ternary operator - is expected to be int type - #branches - with an elsif statement - is expected to eq 3 - is expected to all be literal - with an else statement - is expected to eq 2 - is expected to all be literal - with a ternary operator - is expected to eq 2 - is expected to all be literal - with an unless statement - is expected to eq 1 - is expected to all be literal - with an if statement - is expected to eq 1 +RuboCop::AST::WhenNode + #branch_index + is expected to eq 2 + is expected to eq 1 + is expected to eq 0 + #conditions + with a single condition is expected to all be literal - #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 "" - #elsif_conditional? - with nested conditionals in else clause - is expected not 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 - with one elsif conditional - is expected to be elsif conditional - #unless? - with an unless statement - is expected to be unless - with an if statement - is expected not to be unless - with a ternary operator - is expected not to be unless - #keyword - with an if statement - is expected to eq "if" - with an unless statement - is expected to eq "unless" - with a ternary operator - is expected to eq "" - #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 non-modifier unless statement - is expected not to be modifier form - with a modifier unless statement - is expected to be modifier form - with a modifier if statement - is expected to be modifier form - #if_branch - with a ternary operator - is expected to be sym type - with an unless statement - is expected to be sym type - with an if statement - is expected to be sym type - #each_branch - when not passed a block - is expected to be a kind of Enumerator - when passed a block - yields all the branches - #elsif? - without an elsif statement - is expected not to be elsif - with an elsif statement - is expected to be elsif - with an if statement comtaining an elsif - is expected not to be elsif - #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 - -RuboCop::AST::RegexpNode - #options - 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 "o" option - is expected to eq 0 - with a regexp with multiple options - is expected to eq 3 - with an empty regexp - is expected to eq 0 - #ignore_case? - with other options - is expected not to be ignore case - with i and other options - is expected to be ignore case - with no options - is expected not to be ignore case - with only i option - is expected to be ignore case - #no_encoding? - with no options - is expected not to be no encoding - with n and other options - is expected to be no encoding - with other options - is expected not to be no encoding - with only n option - is expected to be no encoding - #to_regexp - with a multi-line regexp without option - is expected to eq / -.+ -/ - with an empty regexp - is expected to eq // - with a regexp without option - is expected to eq /.+/ - 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 a regexp with an "o" option - is expected to eq "/abc/i" - with an empty regexp with option - is expected to eq //ix - with a regexp with an "u" option - is expected to eq "/abc/" - #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 - with /-delimiters - is expected not to be percent r literal - with multi-line %r{-delimiters - is expected to be percent r literal - #fixed_encoding? - with only u option - is expected to be fixed encoding - with no options - is expected not to be fixed encoding - with u and other options - is expected to be fixed encoding - with other options - is expected not to be fixed encoding - #interpolation? - with regexp quote - is expected to be interpolation - with direct variable interpoation - is expected to be interpolation - with no interpolation returns false - is expected not to be interpolation - #content - with an empty regexp - is expected to eq "" - with a multi-line regexp without option - is expected to eq "\n.+\n" - with a multi-line regexp with option - is expected to eq "\n.+\n" - with a regexp with option - is expected to eq ".+" - with an empty regexp with option - is expected to eq "" - with a regexp without option - is expected to eq ".+" - #regopt - with a regexp without option - is expected to be regopt type - is expected to be empty - 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 with option - is expected to be regopt type - is expected to eq [:i, :m, :x] - with a multi-line regexp with option - is expected to eq [:i, :m, :x] - is expected to be regopt type - with an empty regexp - is expected to be empty - is expected to be regopt type - #delimiter? - with /-delimiters - is expected not to be delimiter "{" - is expected to be delimiter "/" - with %r/-delimiters - 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 not to be delimiter "%r" - is expected not to be delimiter "{" - is expected to be delimiter "/" - 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 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 "/" - is expected not to be delimiter "%r<" - is expected to be delimiter ">" - with multi-line %r{-delimiters - is expected 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 "}" - is expected not to be delimiter "r" - is expected not to be delimiter "/" - is expected not to be delimiter "%" - with %r{-delimiters - 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 "%r" - is expected to be delimiter "}" - is expected to be delimiter "{" - #multiline_mode? - with only m option - is expected to be multiline mode - with no options - is expected not 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 - #single_interpolation? - with only o option - is expected to be single interpolation - with no options - is expected not to be single interpolation - with other options - is expected not to be single interpolation - with o and other options - is expected to be single interpolation - #slash_literal? - with /-delimiters - is expected to be slash literal - with multi-line %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 %r{-delimiters - is expected not to be slash literal - #delimiters - with multi-line %r{-delimiters - is expected to eq ["{", "}"] - with /-delimiters - is expected to eq ["/", "/"] - with %r{-delimiters - is expected to eq ["{", "}"] - with %r<-delimiters - is expected to eq ["<", ">"] - with %r/-delimiters - is expected to eq ["/", "/"] - .new - is expected to be a kind of RuboCop::AST::RegexpNode - #extended? - with only x option - is expected to be extended - with no options - is expected not to be extended - with other options - is expected not to be extended - with x and other options - is expected to be extended - -RuboCop::AST::HashNode - #pairs - with an empty hash - is expected to be empty - with a hash of literals - is expected to all be pair type - is expected to eq 3 - with a hash of variables - is expected to eq 2 - is expected to all be pair type - .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 all pairs on the same line - is expected to be pairs on same line - with some pairs on the same line - is expected to be pairs on same line - #values - with a hash with string keys - is expected to all be send type - is expected to eq 2 - with an empty hash - is expected to be empty - with a hash with literal values + with a multiple conditions is expected to eq 3 is expected to all be literal - #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 - #empty? - with a hash containing pairs - is expected not to be empty - with an empty hash - is expected to be empty - with a hash containing a keyword splat - is expected not to be empty - #braces? - as an argument with braces - is expected to be braces - with braces - is expected to be braces - as an argument with no braces - is expected not to be braces - #each_key - when not passed a block - is expected to be a kind of Enumerator - when passed a block - yields all the pairs - #each_pair - when not passed a block - is expected to be a kind of Enumerator - when passed a block - yields all the pairs - #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_value + #each_condition when not passed a block is expected to be a kind of Enumerator when passed a block - yields all the pairs - -RuboCop::AST::OrAsgnNode - #expression - is expected to eq s(:send, nil, :value) - #name - is expected to eq :var - #operator - is expected to eq :"||" - .new - is expected to be a kind of RuboCop::AST::OrAsgnNode - #assignment_node - is expected to be a kind of RuboCop::AST::AsgnNode - -RuboCop::AST::RangeNode - .new - with a beignless range - is expected to be range type - is expected to be a kind of RuboCop::AST::RangeNode - with an inclusive 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 a kind of RuboCop::AST::RangeNode - is expected to be range type - with an exclusive range - is expected to be range type - is expected to be a kind of RuboCop::AST::RangeNode - -RuboCop::AST::ResbodyNode - #exception_variable - when an exception variable is not given - is expected to be nil - for an implicit rescue - is expected to eq "ex" - for an explicit rescue - is expected to eq "ex" - #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 all be const type - is expected to eq 2 - #body - is expected to be sym type - .new - is expected to be a kind of RuboCop::AST::ResbodyNode - #branch_index - is expected to eq 1 - is expected to eq 2 - is expected to eq 0 - -RuboCop::AST::CaseMatchNode - when using Ruby 2.7 or newer - #in_pattern_branches - is expected to eq 3 - is expected to all be in pattern type - .new - is expected to be a kind of RuboCop::AST::CaseMatchNode - #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 - #else? - without an else statement - is expected not to be else - with an else statement - is expected to be else - #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 - #each_in_pattern - when passed a block - yields all the conditions - when not passed a block - is expected to be a kind of Enumerator - #keyword - is expected to eq "case" - -RuboCop::AST::ArgsNode - .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)] - #empty_and_without_delimiters? - with empty arguments - with a method definition - is expected to equal true - with a lambda literal - is expected to equal true - with a block - 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 - -RuboCop::AST::UntilNode - #loop_keyword? - with a statement until - is expected to be loop keyword - with a modifier until - is expected to be loop keyword - #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" - #keyword - is expected to eq "until" - .new - with a modifier until - is expected to be a kind of RuboCop::AST::UntilNode - with a statement until - is expected to be a kind of RuboCop::AST::UntilNode - #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 - -RuboCop::AST::ForNode - #variable - is expected to be lvasgn type - #body - is expected to be sym type - #keyword - is expected to eq "for" - #collection - is expected to be sym type - #do? - without a do keyword - is expected not to be do - with a do keyword - is expected to be do - .new - is expected to be a kind of RuboCop::AST::ForNode - #void_context? - without a do keyword - is expected to be void context - with a do keyword - is expected to be void context - #post_condition_loop? - is expected not to be post condition loop - #loop_keyword? - is expected to be loop keyword - -RuboCop::AST::ProcessedSource - #tokens - has an array of tokens - valid_syntax? - when the source is completely valid - returns true - when a line starts with an integer literal - tokenizes the source correctly - 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 itself is valid encoding but includes strange encoding literals that are accepted by MRI - returns true - #ast - is the root node of AST - #comments - is an array of comments - when the source is invalid - returns [] - #file_path - returns file path - #first_token_of - returns first token for node - accepts Node as an argument - token enumerables - #find_token - yields correct token - yields nil when there is no match - #each_token - yields all tokens - #blank? - with source with content - returns false - with source of no content - returns true - #parser_error - when the source lacks encoding comment and is really utf-8 encoded but has been read as US-ASCII - is nil - when the source was properly parsed - is nil - when the source could not be parsed due to encoding error - returns the error - #path - is the path passed to .new - #buffer - is a source buffer - .from_file - raises a Errno::ENOENT when the file does not exist - when the file exists - returns an instance of ProcessedSource - sets the file path to the instance's #path - #tokens_within - accepts Node as an argument - returns tokens for node - when heredoc as argument is present - returns tokens for heredoc node - returns tokens for node before heredoc - returns tokens for node after heredoc - with heavily commented source - #comment_at_line - returns the comment at the given line number - returns nil if line has no comment - #each_comment - yields all comments - #contains_comment? - provided source_range on line with comment - is expected to equal true - 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 comment line - is expected to equal true - #comments_before_line - returns comments on or before given line - #find_comment - yields correct comment - yields nil when there is no match - #each_comment_in_lines - yields the comments - #line_with_comment? - returns false for lines without comments - returns true for lines with comments - #following_line - returns source of line after token - #lines - is an array - contains lines as string without linefeed - has same number of elements as line count - #start_with? - with present source - returns false when passed string that does not start source - returns true when passed string that starts source - with blank source - returns false - #[] - when start index and length are passed - returns the array of lines - when an index is passed - returns the line - when a range is passed - returns the array of lines - #last_token_of - returns last token for node - accepts Node as an argument - #preceding_line - returns source of line before token - -RuboCop::AST::Ext::Range - #line_span - accepts an `exclude_end` keyword argument - returns the range of lines a range occupies - -Changelog - parses correctly - merges correctly - Changelog::Entry - generates correct content - -RuboCop::AST::ClassNode - #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 - .new - is expected to be a kind of RuboCop::AST::ClassNode - #identifier - is expected to be const 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::AsgnNode - #expression - 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 `gvasgn` node - is expected to eq s(:send, nil, :value) - with a `cvasgn` node - is expected to eq s(:send, nil, :value) - .new - with a `cvasgn` node - is expected to be a kind of RuboCop::AST::AsgnNode - 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 `lvasgn` node - is expected to be a kind of RuboCop::AST::AsgnNode - #name - with a `lvasgn` node - is expected to eq :var - with a `cvasgn` node - is expected to eq :@@var - with a `ivasgn` node - is expected to eq :@var - with a `gvasgn` node - is expected to eq :$var - -RuboCop::AST::ArgNode - .new - with an optional argument - is expected to be a kind of RuboCop::AST::ArgNode - with argument forwarding - with Ruby >= 3.0 - is expected to be a kind of RuboCop::AST::ArgNode - with Ruby >= 2.7 - 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 double splatted 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 lambda literal - 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 method definition - is expected to be a kind of RuboCop::AST::ArgNode - with a block argument - is expected to be a kind of RuboCop::AST::ArgNode - #default_value - with a block - is expected to be nil - with an optional keyword argument - is expected to eq s(:int, 42) - with an optional argument - is expected to eq s(:int, 42) - with a shadow argument - is expected to be nil - with a regular 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 - with a block argument - is expected to be nil - #name - with an optional argument - 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 a splatted argument - is expected to eq :x - with a regular argument - is expected to eq :x - with a block - is expected to eq :x - with a block argument - is expected to eq :x - with a nameless double splatted argument - is expected to be nil - with a nameless splatted argument - is expected to be nil - with a 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 an optional keyword argument - is expected to equal true - with a splatted argument - is expected to equal false - with a block - is expected to equal false - with a double splatted argument - is expected to equal false - with a shadow argument - is expected to equal false - with an optional argument - is expected to equal true - with argument forwarding - with Ruby >= 3.0 - is expected to equal false - with Ruby >= 2.7 - is expected to equal false - with a regular argument - is expected to equal false - -RuboCop::AST::StrNode - #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 - #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 + yields all the conditions .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 - -RuboCop::AST::BreakNode - behaves like wrapped arguments node - #arguments - with no arguments - is expected to be empty - with no arguments and braces - 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 multiple literal arguments - is expected to eq 2 - with a single splat argument - is expected to eq 1 - .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::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::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 - #pattern - with an alternative pattern - is expected to be match alt type - with an as pattern - is expected to be match as type - with an array pattern - is expected to be array pattern type - with a hash pattern - is expected to be hash pattern type - with a variable pattern - is expected to be match var type - with a value pattern - is expected to be int type - with a pin operator - is expected to be pin type - #branch_index - is expected to eq 1 - is expected to eq 2 - is expected to eq 0 - .new - is expected to be a kind of RuboCop::AST::InPatternNode - #then? - with a then keyword - is expected to be then - without a then keyword - is expected not to be then - -RuboCop::AST::NextNode - behaves like wrapped arguments node - #arguments - with multiple literal arguments - is expected to eq 2 - with a single argument - is expected to eq 1 - with no arguments - is expected to be empty - with no arguments and braces - is expected to be empty - with a single argument and braces - is expected to eq 1 - with a single splat argument - is expected to eq 1 - .new - with arguments - is expected to be a kind of RuboCop::AST::NextNode - without arguments - is expected to be a kind of RuboCop::AST::NextNode - -RuboCop::AST::WhenNode - #conditions - with a multiple conditions - is expected to eq 3 - is expected to all be literal - with a single condition - is expected to all be literal - is expected to eq 1 + is expected to be a kind of RuboCop::AST::WhenNode #then? with a then keyword is expected to be then without a then keyword is expected not to be then - .new - is expected to be a kind of RuboCop::AST::WhenNode - #each_condition - when passed a block - yields all the conditions - when not passed a block - is expected to be a kind of Enumerator #body without a then keyword is expected to be array type with a then keyword is expected to be sym type - #branch_index - is expected to eq 2 - is expected to eq 0 - is expected to eq 1 - -RuboCop::AST::YieldNode - #block_node - is expected to be nil - #predicate_method? - is expected not to be predicate method - #macro? - is expected not to be macro - #method_name - is expected to eq :yield - .new - is expected to be a kind of RuboCop::AST::YieldNode - #arguments - with multiple literal arguments - is expected to eq 2 - with a single literal argument - is expected to eq 1 - with multiple mixed arguments - is expected to eq 2 - with a single splat argument - is expected to eq 1 - with no arguments - is expected to be empty - #double_colon? - is expected not to be double colon - #dot? - is expected not to be dot - #block_literal? - is expected not to be block literal - #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 - #operator_method? - is expected not to be operator method - #block_argument? - is expected not to be block argument - #first_argument - with multiple literal arguments - is expected to be sym type - 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 - with no arguments - is expected to be nil - #arguments? - with multiple literal arguments - 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 mixed arguments - is expected to be arguments - with a single splat argument - is expected to be arguments - #camel_case_method? - is expected not to be camel case method - #self_receiver? - is expected not to be self receiver - #last_argument - with multiple mixed arguments - 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 no arguments - is expected to be nil - with a single splat argument - is expected to be splat type - #bang_method? - is expected not to be bang method - #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 using parentheses - is expected to be parenthesized - when not using parentheses - is expected not to be parenthesized - #setter_method? - is expected not to be setter method - #implicit_call? - is expected not to be implicit call - #assignment_method? - is expected not to be assignment method - #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 string - is expected to be method "yield" - when argument is a symbol - is expected to be method :yield - #command? - when argument is a string - is expected to be command "yield" - when argument is a symbol - is expected to be command :yield - #comparison_method? - is expected not to be comparison method - #const_receiver? - is expected not to be const receiver 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 + explicit negative float + is expected to be sign .new is expected to be a kind of RuboCop::AST::FloatNode - -RuboCop::AST::CaseNode - #when_branches - is expected to all be when type - is expected to eq 3 - #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 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 - .new - is expected to be a kind of RuboCop::AST::CaseNode - #else_branch - #else? - with an else statement - is expected to be sym type - without an else statement - is expected to be nil - with an empty 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 - #keyword - is expected to eq "case" - -RuboCop::AST::LambdaNode - #receiver - is expected to be nil - #arguments - is expected to eq 2 - #method_name - is expected to eq :lambda + #value + is expected to eq 1.5 RuboCop::AST::WhileNode - #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" - #keyword - is expected to eq "while" #loop_keyword? + with a statement while + is expected to be loop keyword with a modifier while is expected to be loop keyword + #post_condition_loop? with a statement while - is expected to be loop keyword + is expected not to be post condition loop + with a modifier while + is expected 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 + #keyword + is expected to eq "while" .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 -Set#=== - tests for inclusion - -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::NodePattern::Sets - is expected to eq "::RuboCop::AST::NodePattern::Sets::SET_1_2_3_ETC" - 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" - creates a constant with the right value - -RuboCop::AST::ForwardArgsNode - when using Ruby 2.7 or newer - #to_a - is expected to contain exactly (be forward arg type) - -RuboCop::AST::KeywordSplatNode - #key_delta - with alignment set to :left - when using colon delimiters - 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 keyword splat is behind - is expected to eq -2 - when using hash rocket delimiters - when keyword splat is aligned - is expected to eq 0 - 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 behind - is expected to eq -2 - with alignment set to :right - when using hash rocket delimiters - 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 - when keyword splat is aligned - is expected to eq 0 - when using colon delimiters - when keyword splat is behind - is expected to eq 0 - 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 0 - #value_delta - when using colon delimiters - 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 - when keyword splat is left aligned - is expected to eq 0 - when using hash rocket delimiters - when keyword splat is left 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 - when keyword splat is behind - is expected to eq 0 - #colon? - is expected not to be colon - #operator - is expected to eq "**" - .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 - #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)) - #key - is expected to eq s(:kwsplat, - s(:send, nil, :foo)) - -RuboCop::AST::DefNode - #bang_method? - with a bang method - is expected to be bang method - with a predicate method - is expected not to be bang method - with a regular method - is expected not to be bang method - #self_receiver? - with a class method definition - is expected to be 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 - #last_argument - with a single regular argument - is expected to be arg type - with a single rest argument - is expected to be restarg type - with multiple regular arguments - is expected to be arg type - with no arguments - is expected to be nil - with a single keyword argument - is expected to be kwoptarg type - with multiple mixed arguments - is expected to be restarg type - .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 - #operator_method? - with a setter method - is expected not to be operator method - with a regular method - is expected not to be operator method - with a binary operator method - is expected to be operator method - with a unary operator method - is expected to be operator method - #arguments - with a single rest argument - is expected to eq 1 - with multiple mixed arguments - is expected to eq 2 - with a single regular argument - is expected to eq 1 - with argument forwarding - is expected to eq 1 - with no arguments - is expected to be empty - with multiple regular arguments - is expected to eq 2 - #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 - #receiver - with a singleton method definition - is expected to be const type - with an instance method definition - is expected to be nil - with a class method definition - is expected to be self type - #body - with a multi-expression body - is expected to be begin type - with no body - is expected to be nil - with a single expression body - is expected to be send type - #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" - #endless? - with endless method definition - is expected to be endless - with standard method definition - is expected not to be endless - #assignment_method? - with an assignment method - is expected to be assignment method - with a comparison method - is expected not to be assignment method - with a regular method - is expected not to be assignment method - with a bracket assignment method - is expected to be assignment method - #comparison_method? - with a regular method - is expected not to be comparison method - with a comparison method - is expected to be comparison method - #void_context? - with an initializer method - is expected to be void context - with a regular assignment method - is expected to be void context - with a comparison method - is expected not to be void context - with a bracket assignment method - is expected to be void context - with a regular method - is expected not to be void context - #rest_argument? - with a rest argument - is expected to be 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 - #const_receiver? - with an instance method definition - is expected not to be 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 - #arguments? - with a single rest argument - is expected to be arguments - with a single regular argument - is expected to be arguments - with no arguments - is expected not to be arguments - with multiple mixed arguments - is expected to be arguments - with multiple regular arguments - is expected to be arguments - with a single keyword argument - is expected to be arguments - #method_name - with a unary method - is expected to eq :-@ - with a setter method - is expected to eq :foo= - with a plain method - is expected to eq :foo - with an operator method - is expected to eq :== - #predicate_method? - with a predicate method - is expected to be predicate method - with a regular method - is expected not to be predicate method - with a bang method - is expected not to be predicate method - #first_argument - with a single regular argument - is expected to be arg type - with no arguments - is expected to be nil - with a single keyword argument - is expected to be kwoptarg type - with multiple regular arguments - is expected to be arg type - with a single rest argument - is expected to be restarg type - with multiple mixed arguments - is expected to be arg type - when using Ruby 2.7 or newer - #argument_forwarding? - is expected to be argument forwarding - #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 - -RuboCop::AST::SymbolNode - #value +RuboCop::AST::AliasNode + #old_identifier + is expected to eq :bar + is expected to be sym type + #new_identifier + is expected to be sym type is expected to eq :foo .new - with a symbol node - is expected to be a kind of RuboCop::AST::SymbolNode + is expected to be a kind of RuboCop::AST::AliasNode RuboCop::AST::Node - #numeric_type? - when string literal - is true - when float literal - is true - when rational literal - is true - when complex literal - is true - when integer literal - is true - when complex literal whose imaginary part is a rational - is true - #parent_module_name - when node on singleton class - is expected to eq "Foo::#" - when node nested in a class << exp - is expected to be nil - when node on class in singleton class - is expected to eq "Foo::#::Bar" - when node on module - 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 #conditional? - when `while` node - is true when `case_match` node is true when `case` node is true when post condition loop node is false + when `while` node + is true when `until` node is true when `if` node is true + #recursive_basic_literal? + behaves like non literal + returns false for `(x == false)` + behaves like literal + returns true for `!true` + behaves like literal + returns true for `(1)` + behaves like literal + returns true for `1.0` + behaves like non literal + returns false for `/.#{some_method_call}/` + behaves like literal + returns true for `1` + behaves like non literal + returns false for `some_method_call(x, y)` + behaves like literal + returns true for `(false or true)` + behaves like literal + returns true for `[1, 2, 3]` + behaves like non literal + returns false for `[some_method_call]` + behaves like literal + returns true for `(false && true)` + behaves like literal + returns true for `nil` + behaves like non literal + returns false for `%r{abx#{foo}}ixo` + behaves like non literal + returns false for `(x && false)` + behaves like non literal + returns false for `(x or false)` + behaves like literal + returns true for `%r{abx}ixo` + behaves like literal + returns true for `"#{2}"` + behaves like non literal + returns false for `{ some_method_call => :sym }` + behaves like non literal + returns false for `some_method_call` + behaves like literal + returns true for `'str'` + behaves like non literal + returns false for `{ :sym => some_method_call }` + behaves like literal + returns true for `false` + behaves like literal + returns true for `(false <=> true)` + behaves like literal + returns true for `/./` + behaves like literal + returns true for `{ a: 1, b: 2 }` + behaves like literal + returns true for `{ :a => 1, :b => 2 }` + sibling_access + returns trivial values for a root node + for a node with siblings + returns the expected values + for a single child + returns the expected values + #class_constructor? + module definition with a block + matches + class definition + does not match + class definition on outer scope + matches + class definition with a block + matches #value_used? within a class definition node is always true - within a method call node + within a singleton class node is always true - 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 an array literal at the top level is always false @@ -2933,2842 +1212,3126 @@ is false 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 at the end of a block is always true - within a singleton class node - is always true within a while node is true only for the condition + within a method call node + is always true #module_definition? - included module definition - matches - prepend Module.new - matches - with ::ModuleName - matches using module keyword matches - namespaced modules - matches nested modules matches with Module.new matches when using numbered parameter matches - #class_definition? - with inheritance + namespaced modules matches - without inheritance + included module definition matches - with ::ClassName + prepend Module.new matches - with Class.new + with ::ModuleName matches - when using numbered parameter - matches - with object singleton class + #argument_type? + method arguments + returns true for all argument types + block arguments + returns true for all argument types + #parent_module_name + when node nested in a class << exp + is expected to be nil + when node on singleton class + is expected to eq "Foo::#" + when node on top level + is expected to eq "Object" + when node on module + is expected to eq "Foo" + when node nested in an unknown block + is expected to be nil + when node on class in singleton class + is expected to eq "Foo::#::Bar" + #class_definition? + namespaced class + matches + with ::ClassName matches - constant defined as Struct without block - does not match with Struct matches when using numbered parameter matches - with self singleton class - matches - namespaced class + without inheritance matches - #struct_constructor? - ::Struct + with object singleton class matches - struct definition without block + constant defined as Struct without block does not match - struct definition with a block - matches - sibling_access - returns trivial values for a root node - for a node with siblings - returns the expected values - for a single child - returns the expected values - #class_constructor? - module definition with a block + with self singleton class matches - class definition with a block + with Class.new matches - class definition on outer scope + when using numbered parameter + matches + with inheritance matches - class definition - does not match - #recursive_basic_literal? - behaves like literal - returns true for `(false <=> true)` - behaves like non literal - returns false for `some_method_call(x, y)` - behaves like literal - returns true for `'str'` - behaves like literal - returns true for `1.0` - behaves like literal - returns true for `"#{2}"` - behaves like literal - returns true for `nil` - behaves like literal - returns true for `!true` - behaves like literal - returns true for `(false && true)` - behaves like literal - returns true for `1` - behaves like literal - returns true for `(false or true)` - behaves like non literal - returns false for `%r{abx#{foo}}ixo` - behaves like non literal - returns false for `[some_method_call]` - behaves like non literal - returns false for `/.#{some_method_call}/` - behaves like literal - returns true for `{ a: 1, b: 2 }` - behaves like non literal - returns false for `some_method_call` - behaves like literal - returns true for `/./` - behaves like non literal - returns false for `{ :sym => some_method_call }` - behaves like literal - returns true for `%r{abx}ixo` - behaves like non literal - returns false for `{ some_method_call => :sym }` - behaves like non literal - returns false for `(x or false)` - behaves like literal - returns true for `{ :a => 1, :b => 2 }` - behaves like non literal - returns false for `(x && false)` - behaves like literal - returns true for `false` - behaves like non literal - returns false for `(x == false)` - behaves like literal - returns true for `(1)` - behaves like literal - returns true for `[1, 2, 3]` + #numeric_type? + when complex literal whose imaginary part is a rational + is true + when rational literal + is true + when float literal + is true + when integer literal + is true + when complex literal + is true + when string literal + is true #pure? - for an integer literal - returns true - for an lvar assignment - returns false - for a cvar assignment - returns false for a regexp - with no interpolation - returns true - with options - returns true with interpolated segments returns false - for a class definition + with options + returns true + with no interpolation + returns true + for a module definition + returns false + for an lvar assignment + returns false + for a cvar assignment returns false for a nested if - where the innermost descendants are local vars and literals - returns true where one branch contains a method call returns false - where one branch contains an assignment statement - returns false - for an array literal - with only literal children + where the innermost descendants are local vars and literals returns true - which contains a method call + where one branch contains an assignment statement returns false - for a module definition - returns false - for an ivar assignment + for a gvar assignment returns false for a hash literal + which contains a method call + returns false with only literal children returns true + for an array literal which contains a method call returns false - for a gvar assignment + with only literal children + returns true + for a class definition returns false for a method call returns false - #argument_type? - method arguments - returns true for all argument types - block arguments - returns true for all argument types + for an ivar assignment + returns false + for an integer literal + returns true + #struct_constructor? + struct definition without block + does not match + ::Struct + matches + struct definition with a block + matches -RuboCop::AST::SelfClassNode +RuboCop::AST::KeywordSplatNode + #key + is expected to eq s(:kwsplat, + s(:send, nil, :foo)) + #colon? + is expected not to be colon + #value + is expected to eq s(:kwsplat, + s(:send, nil, :foo)) + #hash_rocket? + is expected not to be hash rocket + .new + is expected to be a kind of RuboCop::AST::KeywordSplatNode + #key_delta + with alignment set to :left + when using colon delimiters + when keyword splat is aligned + is expected to eq 0 + 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 behind + is expected to eq -2 + when using hash rocket delimiters + 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 behind + is expected to eq -2 + when keyword splat is aligned + is expected to eq 0 + with alignment set to :right + 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 behind + is expected to eq 0 + when keyword splat is ahead + is expected to eq 0 + when using colon delimiters + when keyword splat is behind + is expected to eq 0 + 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 0 + #value_delta + when using colon delimiters + when keyword splat is on the same line + 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 keyword splat is behind + is expected to eq 0 + when using hash rocket delimiters + when keyword splat is ahead + is expected to eq 0 + when keyword splat is on the same line + is expected to eq 0 + when keyword splat is left aligned + is expected to eq 0 + when keyword splat is behind + is expected to eq 0 + #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 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 both pairs are on the same line + is expected to be same line s(:kwsplat, + s(:send, nil, :foo)) + +RuboCop::AST::DefinedNode + .new + with a defined? node + is expected to be a kind of RuboCop::AST::DefinedNode + #method_name + is expected to eq :defined? + #arguments + is expected to eq 1 + is expected to all be sym type + #receiver + is expected to be nil + +RuboCop::AST::ResbodyNode #body - with an empty body + is expected to be sym type + #exception_variable + for an explicit rescue + is expected to eq "ex" + when an exception variable is not given is expected to be nil + for an implicit rescue + is expected to eq "ex" + #exceptions + without exception + is expected to eq 0 + with multiple exceptions + is expected to eq 2 + is expected to all be const type + with a single exception + is expected to eq 1 + is expected to all be const type + #branch_index + is expected to eq 1 + is expected to eq 2 + is expected to eq 0 + .new + is expected to be a kind of RuboCop::AST::ResbodyNode + +RuboCop::AST::NodePattern::Sets + 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" + is expected to eq "::RuboCop::AST::NodePattern::Sets::SET_1_2_3_ETC" + +RuboCop::AST::NextNode + behaves like wrapped arguments node + .new + with arguments + is expected to be a kind of RuboCop::AST::NextNode + without arguments + is expected to be a kind of RuboCop::AST::NextNode + #arguments + with no arguments and braces + is expected to be empty + with a single splat argument + is expected to eq 1 + 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 + with multiple literal arguments + is expected to eq 2 + +RuboCop::AST::ForNode + #keyword + is expected to eq "for" + #body + is expected to be sym type + #collection + is expected to be sym type + #void_context? + without a do keyword + is expected to be void context + with a do keyword + is expected to be void context + #loop_keyword? + is expected to be loop keyword + #variable + is expected to be lvasgn type + .new + is expected to be a kind of RuboCop::AST::ForNode + #do? + without a do keyword + is expected not to be do + with a do keyword + is expected to be do + #post_condition_loop? + is expected not to be post condition loop + +RuboCop::AST::UntilNode + #do? + without a do keyword + is expected not to be do + with a do keyword + is expected to be do + .new + with a modifier until + is expected to be a kind of RuboCop::AST::UntilNode + with a statement until + is expected to be a kind of RuboCop::AST::UntilNode + #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" + #loop_keyword? + with a modifier until + is expected to be loop keyword + with a statement until + is expected to be loop keyword + #inverse_keyword + is expected to eq "while" + +RuboCop::AST::SelfClassNode + #identifier + is expected to be self 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 - #identifier - is expected to be self type .new is expected to be a kind of RuboCop::AST::SelfClassNode -RuboCop::AST::SendNode - #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 - with a dot - is expected not to be double colon - #post_condition_loop? - is expected not to be post condition loop - #non_bare_access_modifier? - when node does not have an argument - is expected not to be 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 - #comparison_method? - with a comparison method - is expected to be comparison method - with a regular method - is expected not to be comparison method - with a negation method - is expected not to be comparison method - #receiver - with no receiver - is expected to be nil - with a literal receiver - is expected to be str type - with a variable receiver - is expected to be send type - #arguments? - with multiple mixed 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 - with multiple literal arguments - is expected to be arguments - with a single literal argument - is expected to be arguments - #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 - #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 a block argument - is expected not to be block literal - with no block - is expected not to be block literal +RuboCop::AST::EnsureNode .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 - #const_receiver? - with a self receiver - is expected not to be const receiver - with a constant receiver - is expected to be const receiver - with a non-constant receiver - is expected not to be const receiver - #binary_operation?? - with a binary operation - is expected to be binary operation - with a regular method call - is expected not 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 - #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 - #splat_argument? - with no arguments - is expected not 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 mixed arguments - is expected to be splat argument - #nonmutating_array_method? - with a mutating Array method - is expected not to be 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 - #predicate_method? - with a predicate method - is expected to be predicate method - with a bang method - is expected not to be predicate method - with a regular method - is expected not 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 - #access_modifier? - when node is a non-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 bare `module_function` - is expected to be access modifier - #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 - without a parent - is expected to be macro - when parent is a class constructor - 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 in the global scope - is expected to be macro - when parent is a singleton class - is expected to be macro - when the condition of an if - is expected not 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 struct constructor - is expected to be macro - when parent is a method definition - is expected not to be macro - when in an if - is expected to be macro - when parent is a module - is expected to be macro - when parent is a class - 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 not in a macro scope - is expected not to be macro - #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 - #block_argument? - with no arguments - is expected not to be block argument - with mixed arguments - is expected to be block argument - with regular arguments - is expected not to be block argument - with a block argument - is expected to be block argument - #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 a regular method - is expected not to be assignment method - with an assignment method - is expected to be assignment method - #loop_keyword? - is expected not to be loop keyword - #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 a setter method - is expected to be setter method - with an indexed setter method - is expected to be setter method - #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 - #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 - #first_argument - with a single literal argument - is expected to be sym type - with a single splat argument - is expected to be splat type - 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 a kind of RuboCop::AST::EnsureNode + #body + is expected to be sym type + +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::IfNode + #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 "" + #ternary? + with an if statement + is expected not to be ternary + with a ternary operator + is expected to be ternary + with an unless statement + is expected not to be ternary + #branches + with an unless statement + is expected to eq 1 + is expected to all be literal + with a ternary operator + is expected to eq 2 + is expected to all be literal + with an else statement + is expected to eq 2 + 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 eq 1 + is expected to all be literal + #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 + #else? + with an elsif statement + is expected to be else + without an else statement + is expected not to be elsif + #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 + with a modifier unless statement + is expected 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 + #keyword + with a ternary operator + is expected to eq "" + with an if statement + is expected to eq "if" + with an unless statement + is expected to eq "unless" + .new + 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 + with a modifier statement + is expected to be a kind of RuboCop::AST::IfNode + #unless? + with a ternary operator + is expected not to be unless + with an if statement + is expected not to be unless + with an unless statement + is expected to be unless + #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 nested conditionals in else clause + is expected to be nested conditional + with nested conditionals in elsif clause + is expected to be nested conditional + with no nested conditionals + is expected not to be nested conditional + with nested conditionals in if clause + is expected to be nested conditional + #else_branch + with a ternary operator + is expected to be int type + with an unless statement + is expected to be int type + with an if statement + is expected to be int type + #if_branch + with a ternary operator is expected to be sym type - #negation_method? - with prefix `not` - is expected to be negation method - with suffix `not` - is expected not to be negation method - with prefix bang - is expected to be negation method - with a non-negated method - is expected not to be negation method - #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 - #def_modifier - with call with no argument - is expected to be nil - with several prefixed def modifiers - is expected to eq :qux - with a prefixed def modifier - is expected to eq :bar - with a block containing a method definition - is expected to be nil - #bare_access_modifier? - when node has an argument - is expected not to be bare access modifier - when node is a bare `module_function` - is expected to be 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 is not an access modifier - is expected not to be bare access modifier - #last_argument - 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 splat type - with a single literal argument + with an if statement is expected to be sym type - with multiple literal arguments + with an unless statement is expected to be sym type - #method? - 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" - 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 an implicit call method - is expected to eq :call - with a plain method - is expected to eq :bar - with an operator method - is expected to eq :== - with a setter method - is expected to eq :bar= - #nonmutating_operator_method? - with a regular method - is expected not to be 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 - #prefix_bang? - with a bang method - is expected to be prefix bang - with a non-negated method - is expected not to be prefix bang - with keyword `not` - is expected not to be prefix bang - #enumerable_method? - with an enumerable method - is expected to be enumerable method - with a regular method - is expected not to be enumerable method - #implicit_call? - with an implicit call method - is expected to be 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 - #def_modifier? - with a prefixed def modifier - is expected to be 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 - #arithmetic_operation? - with a regular method call - is expected not to be arithmetic operation - with a binary arithmetic operation - is expected to be arithmetic operation - with a unary numeric operation - is expected not to be arithmetic operation - #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 literal argument - is expected to eq 1 - with multiple mixed arguments - is expected to eq 2 - #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 - #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 - #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 - #unary_operation? - with a binary operation - is expected not 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 unary operation - is expected to be unary operation - #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 - #command? - 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" - when argument is a symbol - with an explicit receiver - is expected not to be command :bar - with an implicit receiver - is expected to be command :bar - #dot? - with a dot - is expected to be dot - with a double colon - is expected not to be dot - without a dot - is expected not to be dot - with a unary method - is expected not to be dot - #self_receiver? - with a self receiver - is expected to be 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 - #lambda_literal? - with a stabby lambda - is expected to be lambda literal - with a lambda method - is expected not to be lambda literal - with `a.() {}` style method - is expected not to be lambda - with a non-lambda method - is expected not to be lambda - #block_node - with a block argument - is expected to be nil - with a block literal - is expected to be block type - with no block - is expected to be nil - with Ruby >= 2.7 - with a numblock literal - is expected to be numblock type + #each_branch + when passed a block + yields all the branches + when not passed a block + is expected to be a kind of Enumerator + #elsif? + with an if statement comtaining an elsif + is expected not to be elsif + without an elsif statement + is expected not to be elsif + with an elsif statement + is expected to be elsif + #elsif_conditional? + with one elsif conditional + 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 + with nested conditionals in else clause + 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 RuboCop::AST::OrNode - #rhs + #inverse_operator with a semantic or node - is expected to be int type + is expected to eq "and" with a logical or node - is expected to be int type + 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 - #logical_operator? with a semantic or node - is expected not to be logical operator + is expected to be a kind of RuboCop::AST::OrNode + #logical_operator? with a logical or node is expected to be logical operator - #alternate_operator - with a logical or node - is expected to eq "or" with a semantic or node - is expected to eq "||" - #inverse_operator + is expected not to be logical operator + #lhs with a logical or node - is expected to eq "&&" + is expected to be sym type with a semantic or node - is expected to eq "and" + is expected to be sym type #operator with a logical or node is expected to eq "||" with a semantic or node is expected to eq "or" - #lhs - with a logical or node - is expected to be sym type - with a semantic or node - is expected to be sym type #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 + #rhs + with a logical or node + is expected to be int type with a semantic or node - is expected to be semantic operator + is expected to be int type + #alternate_operator + with a logical or node + is expected to eq "or" + with a semantic or node + is expected to eq "||" + +RuboCop::AST::Ext::Range + #line_span + accepts an `exclude_end` keyword argument + returns the range of lines a range occupies + +RuboCop::AST::RangeNode + .new + 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 a kind of RuboCop::AST::RangeNode + is expected to be range type + with an inclusive 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 a kind of RuboCop::AST::RangeNode + is expected to be range type + +RuboCop::AST::ProcessedSource + #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 + #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 + #each_comment + yields all comments + #comments_before_line + returns comments on or before given line + #line_with_comment? + returns true for lines with comments + returns false for lines without comments + #each_comment_in_lines + yields the comments + #comment_at_line + returns nil if line has no comment + returns the comment at the given line number + #find_comment + yields nil when there is no match + yields correct comment + #contains_comment? + provided source_range on line with comment + is expected to equal true + 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 comment line + is expected to equal true + #tokens_within + accepts Node as an argument + returns tokens for node + when heredoc as argument is present + returns tokens for node before heredoc + returns tokens for node after heredoc + returns tokens for heredoc node + #tokens + has an array of tokens + #ast + is the root node of AST + #[] + when a range is passed + returns the array of lines + when start index and length are passed + returns the array of lines + when an index is passed + returns the line + #comments + is an array of comments + when the source is invalid + returns [] + #buffer + is a source buffer + #parser_error + when the source lacks encoding comment and is really utf-8 encoded but has been read as US-ASCII + is nil + when the source was properly parsed + is nil + when the source could not be parsed due to encoding error + returns the error + #file_path + returns file path + token enumerables + #each_token + yields all tokens + #find_token + yields nil when there is no match + yields correct token + #lines + is an array + contains lines as string without linefeed + has same number of elements as line count + #preceding_line + returns source of line before token + #path + is the path passed to .new + #last_token_of + returns last token for node + accepts Node as an argument + #following_line + returns source of line after token + 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 is valid but has some warning diagnostics + returns true + when the source could not be parsed due to encoding error + returns false + when the source is completely valid + returns true + #blank? + with source of no content + returns true + with source with content + returns false RuboCop::AST::Traversal knows all current node types - for example class Foo end + for example case foo; in A[x:] then true; end traverses all nodes - for example %q(foobar) + for example a b(c(d)), :e do end traverses all nodes - for example 1.33 + for example foo <= 1 traverses all nodes - for example f x: -> do meth do end end + for example foo::A = 1 traverses all nodes - for example if foo; bar; elsif baz; 1; else 2; end + for example < 1,] + for example p :foo, {a: proc do end, b: proc do end} traverses all nodes - for example p begin 1.times do 1 end end + for example a b{c d}, "x" do end traverses all nodes - for example if (bar); foo; end + for example foo.C += raise(bar) rescue nil traverses all nodes - for example unless foo; bar; else baz; end + for example foo >= 1 traverses all nodes - for example super + for example alias $a $+ traverses all nodes - for example foo.(1) + for example p <<~E + x + \ y +E traverses all nodes - for example __ENCODING__ + for example a b{c d}, 1.0 do end traverses all nodes - for example return(foo) + for example not m foo traverses all nodes - for example while foo do meth end + for example foo / 1 traverses all nodes - for example if foo then bar; else baz; end + for example case foo; in A::B then true; end traverses all nodes - for example module Bar::Foo; end + for example foo.A += 1 traverses all nodes - for example :'a\ -b' + for example case foo; in [*, x] then true; end traverses all nodes - for example ?a + when a class defines on_arg + calls it for all arguments + for example Bar::Foo = 10 traverses all nodes - for example fun(foo, :foo => 1) + for example fun(f bar) traverses all nodes - for example def f a, o=1, p, &b; end + for example p <<~E + E traverses all nodes - for example foo.C += raise bar rescue nil + for example foo || bar traverses all nodes - for example return foo + for example foo = raise bar rescue nil traverses all nodes - for example m "#{[]}" + for example def f o=1, *r, p, &b; end traverses all nodes - for example p <<~E - x - y -E + for example ...100 traverses all nodes - for example foo <=> 1 + for example foo != 1 traverses all nodes - for example class << foo; _1; end + for example +2.0 ** 10 traverses all nodes - for example p p{p(p);p p}, tap do end + for example foo::m += raise bar rescue nil traverses all nodes - for example false ? raise {} : tap {} + for example fun (1 +) traverses all nodes - for example %I{a\ -b} + for example fun(foo, *bar, &baz) traverses all nodes - for example -foo + for example foo::C ||= raise(bar) rescue nil traverses all nodes - for example a&.b + for example m { _1 + _9 } traverses all nodes - for example A += 1 + for example def f (foo: 1, &b); end traverses all nodes - for example :"a\ -b" + for example if (a, b = foo); end traverses all nodes - for example def f *, **; end + for example def x; self::A ||= 1; end traverses all nodes - for example case foo; in "a": then true; end + for example { } traverses all nodes - for example foo = meth rescue bar + for example if foo; bar; else baz; end traverses all nodes - for example case foo; in *x, y, z then nil; end + for example foo % 1 traverses all nodes - for example f{ |o=1, p, &b| } + for example p <<~`E` + x + #{foo} +E traverses all nodes - for example until foo do meth end + for example case foo; + in a: {b:}, c: + p c + ; end traverses all nodes - for example foo + for example foo <=> 1 traverses all nodes - for example a b(c(d)), 1.0r do end + for example not() traverses all nodes - for example foo::C ||= raise bar rescue nil + for example @@var = 10 traverses all nodes - for example f{ |;a| } + for example %i[ #@@1 ] traverses all nodes - for example @var = 10 + for example foo[0] += raise(bar) rescue nil traverses all nodes - for example f{ |a, o=1, *r, p, &b| } + for example !foo traverses all nodes - for example until foo; meth end + for example module Bar::Foo; end traverses all nodes - for example m1 :k => m2 do; m3() do end; end + for example case foo; in [x, y] then true; end traverses all nodes - for example fun (1).to_i + for example f{ |a, *s, &b| } traverses all nodes - for example p <<~E - x - \ y -E + for example def f a, o=1, *r, &b; end traverses all nodes - for example def foo(_, _); end + for example ((b, )) = foo traverses all nodes - for example ..100 + for example def f(foo:); end traverses all nodes - for example f <<-TABLE do -TABLE -end + for example case foo; in x, y, then nil; end traverses all nodes - for example a, *b = bar + for example a = b = raise :x traverses all nodes - for example a += b += raise :x + for example f{ |foo: 1, bar: 2, **baz, &b| } + traverses all nodes + for example %q{#@@1} traverses all nodes for example `#@1` traverses all nodes - for example case foo; in A() then true; end + for example redo traverses all nodes - for example m ->(a = ->{_1}) {a} + for example p <<~"E" + x + #{" y"} +E traverses all nodes - for example 1... + for example begin; meth; ensure; bar; end traverses all nodes - for example foo::a = 1 + for example def f ((a, a1)); end traverses all nodes - for example m { _1 + _9 } + for example !m foo traverses all nodes - for example def f ; end + for example case foo; in [x,] then nil; end traverses all nodes - for example case foo; in "#{ 'a' }": 1 then true; end + for example f{ |&b| } traverses all nodes - for example a b{c(d)}, /x/m do end + for example /#)/x traverses all nodes - for example foo, bar = m foo + for example case foo; in x, then nil; end traverses all nodes - for example "#@a #@@a #$a" + for example a b(c d), :e do end traverses all nodes - for example next() + for example *b, c = bar traverses all nodes - for example -> * { } + for example $var = 10 traverses all nodes - for example def (foo).foo; end + for example begin; meth; rescue Exception; bar; end traverses all nodes - for example -> a: { } + for example !/wat/ traverses all nodes - for example a b(c(d)), :e do end + for example a b(c d), 1.0r do end traverses all nodes - for example %x{#@1} + for example fun(1) traverses all nodes - for example p -> { :hello }, a: 1 do end + for example def String::foo; end traverses all nodes - for example def f(*); end + for example %i[] traverses all nodes - for example ~foo + for example def String=; end traverses all nodes - for example foo::Fun() + for example -> do rescue; end traverses all nodes - for example let () { m(a) do; end } + for example @var = 10 traverses all nodes - for example not m foo + for example ?a traverses all nodes - for example foo::fun bar + for example p <<~E + x + y +E traverses all nodes - for example m do _1 + _9 end + for example 42ri traverses all nodes - for example fun(*bar) + for example %I() traverses all nodes - for example def f a, o=1, *r, &b; end + for example case foo; + in {Foo: 42 + } + false + ; end traverses all nodes - for example %I[foo#{bar}] + for example foo << 1 traverses all nodes - for example __ENCODING__ + for example super traverses all nodes - for example foo === 1 + for example foo == 1 traverses all nodes - for example p <<~E - E + for example proc {|_3|} traverses all nodes - for example fun(foo, *bar, &baz) + for example foo = bar = m foo traverses all nodes - for example -> { _1 + _9} + for example [ 1 => 2 ] traverses all nodes - for example begin ensure end + for example def f a, &b; end traverses all nodes - for example def f foo: -; end + for example 42r traverses all nodes - for example [1, 2] + for example while class << self; tap do end; end; break; end traverses all nodes - for example module ::Foo; end + for example fun(*bar, &baz) traverses all nodes - for example def foo - a:b end + for example if foo then bar; else baz; end traverses all nodes - for example f { || a:b } + for example !(a, b = foo) traverses all nodes - for example f{ |a,| } + for example foo.a ||= 1 traverses all nodes - for example :"#@@1" + for example a b(c d), /x/ do end traverses all nodes - for example '#@1' + for example :"#@1" traverses all nodes - for example f{ |&b| } + for example a += b = raise :x traverses all nodes - for example while def foo; tap do end; end; break; end + for example foo[1, 2] traverses all nodes - for example proc {_1 = nil} + for example foo[0, 1] += m foo traverses all nodes - for example !/wat/ + for example fun (1).to_i traverses all nodes - for example $foo + for example class Foo end traverses all nodes - for example case foo; in x unless true; nil; end + for example lambda{|;a|a} traverses all nodes - for example true + for example begin; meth; rescue; foo; end traverses all nodes - for example p <<~E - x - \ y -E + for example ~foo traverses all nodes - for example fun (1) + for example case foo; in **a then true; end traverses all nodes - for example def f ((a, a1)); end + for example def f(*); end traverses all nodes - for example def foo(...); end + for example module Foo; end traverses all nodes - for example case foo; in A then true; end + for example %{#@@1} traverses all nodes - for example case foo; in ** then true; end + for example p <<~E " y" + x +E traverses all nodes - for example meth do; foo; rescue; bar; end + for example foo += raise(bar) rescue nil traverses all nodes for example td (1_500).toString(); td.num do; end traverses all nodes - for example for a in foo; p a; end + for example case; when foo; 'foo'; end traverses all nodes - for example def f(foo: 1); end + when given an unexpected AST + with too few children + raises debugging error + with too many children + raises debugging error + for example case foo; in "#{ %q{a} }": then true; end traverses all nodes - for example a b(c d), :e do end + for example Bar::Foo traverses all nodes - for example a, *b, c = bar + for example if /wat/; end traverses all nodes - for example '#@@1' + for example a += 1 traverses all nodes - for example next + for example a b(c d), "x" do end traverses all nodes - for example a b(c(d)), /x/ do end + for example a b{c(d)}, /x/ do end traverses all nodes - for example foo.A = 1 + for example def x; ::A ||= 1; end traverses all nodes - for example a = 1; a b: 1 + for example break(foo) traverses all nodes - for example %{#@@1} + for example "#@@1" traverses all nodes - for example foo = baz, *bar + for example p :foo, {:a => proc do end, b: proc do end} traverses all nodes - for example class Foo; end + for example foo.a = 1 traverses all nodes - for example foo[bar, :baz => 1,] + for example for a in foo; p a; end traverses all nodes - for example t=1;(foo)?t:T + for example f{ |a, b,| } traverses all nodes - for example "a\ -b" + for example def f ((a, *, p)); end traverses all nodes - for example def f foo = 1; end + for example f{ |*s| } traverses all nodes - for example foo.m += raise(bar) rescue nil + for example if (bar; a, b = foo); end traverses all nodes - for example foo, bar = 1, 2 + for example %I{a\ +b} traverses all nodes for example def foo(...); bar(...); end traverses all nodes - for example a, *, c = bar - traverses all nodes - for example p <<~E -E - traverses all nodes - for example false ? raise do end : tap do end + for example case 1; in 2; 3; else; 4; end traverses all nodes - for example self.A, foo = foo + for example return fun foo do end traverses all nodes - for example while def foo a = tap do end; end; break; end + for example foo, bar = 1, 2 traverses all nodes - for example foo.a ||= 1 + for example case foo; in 1... then true; end traverses all nodes - for example @foo + for example begin foo!; bar! end traverses all nodes - for example fun() { } + for example f{ |a, o=1, p, &b| } traverses all nodes - for example case foo; in 1; end + for example foo[1, 2] = 3 traverses all nodes - for example a b(c d), /x/ do end + for example foo.C += raise bar rescue nil traverses all nodes - for example case; when foo; 'foo'; else 'bar'; end + for example def self.foo; end traverses all nodes - for example def f a, o=1, *r, p, &b; end + for example { foo: 2, **bar } traverses all nodes - for example %w{a\ -b} + for example p <<~E + x + y +E traverses all nodes - for example 1.. + for example def f(&block); end traverses all nodes - for example foo::fun (1) {} + for example fun(1) { } traverses all nodes - for example while def self.foo a = tap do end; end; break; end + for example case foo; in ** then true; end traverses all nodes - for example nil + for example def x(_4) end traverses all nodes - for example foo * 1 + for example while class << self; a = tap do end; end; break; end traverses all nodes - for example tap (proc do end) + for example %Q{a\ +b} traverses all nodes - for example foo !~ 1 + for example 42 traverses all nodes - for example -> do rescue; end + for example ->(**nil) {} traverses all nodes - for example case foo; in "#{ %Q{a} }": 1 then true; end + for example -> a: { } traverses all nodes - for example a @b do |c|;end + for example 'a\ +b' traverses all nodes - for example m { |(foo, bar)| } + for example super foo traverses all nodes - for example meth 1 do end::fun(bar) + for example def f ; end traverses all nodes - for example if /wat/; end + for example END { 1 } traverses all nodes - for example p :foo, {a: proc do end, b: proc do end} + for example f{ |foo:| } traverses all nodes - for example `foobar` + for example f{ |o=1, *r, p, &b| } traverses all nodes - for example ...100 + for example %Q{#@@1} traverses all nodes - for example fun(foo, *bar) + for example "#@a #@@a #$a" traverses all nodes - for example { 'foo': 2, 'bar': {}} + for example %s{#@1} traverses all nodes - for example f{ |a, o=1, p, &b| } + for example foo::fun traverses all nodes - for example p <<~E - x - y -E + for example case foo; in ::A then true; end traverses all nodes - for example def x; ::A ||= 1; end + for example +foo traverses all nodes - for example <<-`HERE` -a\ -b -HERE + for example class Foo < Bar; end traverses all nodes - for example foo[1, 2] + for example "#{-> foo {}}" traverses all nodes - for example fun(*bar, &baz) + for example def f(**); end traverses all nodes - for example true ? 1.tap do |n| p n end : 0 + for example class A; _1; end traverses all nodes - for example meth until foo + for example foo.fun bar traverses all nodes - for example break + for example case foo; in x unless true; nil; end traverses all nodes - for example @@var = 10 + for example *b = bar traverses all nodes - for example a b{c(d)}, 1.0r do end + for example -> (a) { } traverses all nodes - for example %{a\ -b} + for example fun () {} traverses all nodes - for example foo = raise bar rescue nil + for example (foo, bar) = 1, 2 traverses all nodes - for example a b(c d), /x/m do end + for example a b{c d}, 1.0i do end traverses all nodes - for example foo + 1 + for example foo::A += m foo traverses all nodes - for example case foo; in * then nil; end + for example t=1;(foo)?t:T traverses all nodes - for example def f(foo); end + for example a b{c(d)}, "x" do end traverses all nodes - for example a b{c(d)}, 1.0i do end + for example begin; rescue LoadError; else; end traverses all nodes - for example return fun foo do end + for example begin end traverses all nodes - for example @a |= 1 + for example f{ |a, c| } traverses all nodes - for example a b{c(d)}, "x" do end + for example m def x(); end; 1.tap do end traverses all nodes - for example if foo; bar; end + for example case foo; in 1 | 2 then true; end traverses all nodes - for example case foo; in 1 => a then true; end + for example def _5; end traverses all nodes - for example bar if foo + for example foo (-1.3).abs traverses all nodes - for example foo::Fun bar + for example foo[:baz => 1,] traverses all nodes - for example f{ | | } + for example %I[foo#{bar}] traverses all nodes - for example fun + for example def foo(_, _); end traverses all nodes - for example m { |foo| } + for example a @b do |c|;end traverses all nodes - for example break foo + for example <<`HERE` +foo +bar +HERE traverses all nodes - for example fun (f bar) + for example class A < B +end traverses all nodes - for example case 1; in 2; 3; else; end + for example %q{#@1} traverses all nodes - for example Foo = 10 + when a class defines `on_block_pass` + calls it for all block-pass arguments + for example <<-'HERE' +#@@1 +HERE traverses all nodes - for example def END; end + for example foo.A = 1 traverses all nodes - for example -42 + for example %r{a\ +b} traverses all nodes - for example foo != 1 + for example meth (-1.3).abs traverses all nodes - for example while not (true) do end + for example __FILE__ traverses all nodes - for example 42.1ri + for example p p{p(p);p p}, tap do end traverses all nodes - for example f{ |a, o=1, o1=2, *r, &b| } + for example for a in foo do p a; end traverses all nodes - for example /(?bar)/ =~ 'bar'; match + for example -2 ** 10 traverses all nodes - for example begin meth end until foo + for example a b{c(d)}, 1.0i do end traverses all nodes - for example <<~E - 1 \ - 2 - 3 -E + for example fun do end traverses all nodes - for example foo << 1 + for example foo::C ||= raise bar rescue nil traverses all nodes - for example f{ |a, c| } + for example a b{c(d)}, 1.0r do end traverses all nodes - for example %W() + for example foo = baz, *bar traverses all nodes - for example def f(foo:); end + for example self traverses all nodes - for example { } + for example a, *b = bar traverses all nodes - for example + for example def foo(_a, _a); end traverses all nodes - for example %w[] + for example a&.b &&= 1 traverses all nodes - for example 42.1r + for example foo::fun (1) {} traverses all nodes - for example yield() + for example a &&= 1 traverses all nodes - for example a, * = bar + for example a b(c d), /x/m do end traverses all nodes - for example !foo + for example f (g rescue nil) traverses all nodes - for example p :foo, {proc do end => proc do end, b: proc do end} + for example case foo; in "#{ %Q{a} }": then true; end traverses all nodes - for example [*foo] + for example foo ^ 1 traverses all nodes - for example meth 1 do end.fun(bar) {} + for example <<-`HERE` +#@1 +HERE traverses all nodes - for example [ 1 => 2 ] + for example foo > 1 traverses all nodes - for example case foo; in 1... then true; end + 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' + for example def f *, **; end traverses all nodes - for example foo[m bar] + for example class Foo < a:b; end traverses all nodes - for example def f a, &b; end + for example foo.A += m foo traverses all nodes - for example foo "#{(1+1).to_i}" do; end + for example !(foo...bar) traverses all nodes - for example not foo + for example 1... traverses all nodes - for example meth rescue bar + for example def foo(...); end traverses all nodes - for example def self.foo; end + for example def foo raise; raise A::B, ''; end traverses all nodes - for example foo.fun (1) {} + for example f{ |foo: 1, &b| } traverses all nodes - for example case foo; in [x, y] then true; end + for example p <<~E + x +E traverses all nodes - for example { 1 => 2, :foo => "bar" } + for example m "#{[]}" traverses all nodes - for example foo[0, 1] ||= 2 + for example while def foo a = tap do end; end; break; end traverses all nodes - for example class << foo; nil; end + for example f{ |**baz, &b| } traverses all nodes - for example fun () {} + for example unless foo then bar; end traverses all nodes - for example %r{#@1} + for example $foo traverses all nodes - for example () + for example case foo; in a: 1 then true; end traverses all nodes - for example if (a, b = foo); end + for example "foo#@a" "bar" traverses all nodes - for example ->(**nil) {} + for example def String; end traverses all nodes - for example def self::foo; end + for example def m; class << self; A = nil; end; end traverses all nodes - for example a b{c(d)}, 1.0 do end + for example p ->() do a() do end end traverses all nodes - for example def f *r, p, &b; end + for example self::a, foo = foo traverses all nodes - for example def f(foo, bar); end + for example begin; meth; rescue => ex; bar; end traverses all nodes - for example :foo + for example next() traverses all nodes - for example break(foo) + for example case foo; in a: 1, _a:, ** then true; end traverses all nodes - for example def m; class << self; module M; end; end; end + for example <<-'HERE' +a\ +b +HERE traverses all nodes - for example foo.a &&= 1 + for example :'#@@1' traverses all nodes - for example f{ |a, *s, &b| } + for example bar unless foo traverses all nodes - for example <<-'HERE' -#@1 -HERE + for example f { || a:b } traverses all nodes - for example begin meth end while foo + for example %W[foo #{bar}foo#@baz] traverses all nodes - for example *, c, d = bar + for example def f (foo: 1, bar: 2, **baz, &b); end traverses all nodes - for example f{ || } + for example :"#@@1" traverses all nodes - for example case foo; in a: then true; end + for example f{ |o=1, &b| } traverses all nodes - for example foo::m += raise(bar) rescue nil + for example a, b = *foo, bar traverses all nodes - for example * = bar + for example case foo; in "a": 1 then true; end traverses all nodes - for example self.a, self[1, 2] = foo + for example case; when foo; 'foo'; else 'bar'; end traverses all nodes - for example foo or bar + for example def String.foo; end traverses all nodes - for example foo = *bar + for example case foo; in {} then true; end traverses all nodes - for example :'#@1' + for example [1, *foo] traverses all nodes - for example begin end + for example case foo; when 'bar'; bar; else baz; end traverses all nodes - for example foo += raise(bar) rescue nil + for example f{ |a| } traverses all nodes - for example m def x(); end; 1.tap do end + for example %W{a\ +b} traverses all nodes - for example /#)/x + for example @@foo traverses all nodes - for example break fun foo do end + for example fun (1) {} traverses all nodes - for example a b(c(d)), 1.0 do end + for example while def self.foo a = tap do end; end; break; end traverses all nodes - for example super(foo) + for example %W() traverses all nodes - for example meth 1 do end.fun {} + for example m [] do end traverses all nodes - for example ::Foo + for example '#@1' traverses all nodes - for example %s{#@1} + for example foo[1, 2] = 3 traverses all nodes - for example p <<~E - x - -y -E + for example foo "#{(1+1).to_i}" do; end traverses all nodes - for example %i[] + for example m "#{}#{()}" traverses all nodes - for example <<-'HERE' -#@@1 -HERE + for example fun(:foo => 1) traverses all nodes - for example <<~FOO - baz\ - qux -FOO + for example B::A += 1 traverses all nodes - for example case foo; in *x then nil; end + for example yield() traverses all nodes - for example foo::a += m foo + for example foo, bar = meth rescue [1, 2] traverses all nodes - for example def foo; end + for example until foo; meth end traverses all nodes - for example %i{a\ -b} + for example case foo; in 1; end traverses all nodes - for example a b(c d), 1.0 do end + for example break foo traverses all nodes - for example p <<~E " y" - x -E + for example <<-"HERE" +a\ +b +HERE traverses all nodes - for example def f ((a, *r, p)); end + for example a ||= 1 traverses all nodes - for example BEGIN { 1 } + for example -foo traverses all nodes - for example def f (foo: 1, &b); end + for example yield(foo) traverses all nodes - for example case foo; when 'bar'; bar; end + for example a b(c(d)), /x/m do end traverses all nodes - for example Foo + for example foo, bar, baz = 1, 2 traverses all nodes - for example *b, c = bar + for example if foo...bar; end traverses all nodes - for example %W[foo #{bar}] + for example f{ |a, o=1, &b| } traverses all nodes - for example def f(**foo); end + for example tap (proc do end) traverses all nodes - for example foo[0, 1] &&= 2 + for example foo::(1) traverses all nodes - for example __FILE__ + for example class Foo; end traverses all nodes - for example p :foo, {:a => proc do end, b: proc do end} + for example p <<~E + x + +y +E traverses all nodes - for example a ? b & '': nil + for example if foo; bar; end traverses all nodes - for example class A < B -end + for example next foo traverses all nodes - for example "#{-> foo {}}" + for example _2 = 1 traverses all nodes - for example let (:a) { m do; end } + for example f{ |*r, p, &b| } 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 + for example '#@@1' traverses all nodes - for example f{ |o=1, *r, &b| } + for example case foo; in A[1, 2] then true; end traverses all nodes - for example 42i + for example super foo, bar do end traverses all nodes - for example case foo; - in {a: - } - true - ; end + for example Foo traverses all nodes - for example case foo; in {} then true; end + for example $10 traverses all nodes - for example *b = bar + for example foo.m += raise bar rescue nil traverses all nodes - for example def a; @@var |= 10; end + for example meth 1 do end.fun {} traverses all nodes - for example foo::A += m foo + for example `#@@1` traverses all nodes - for example def String=; end + for example begin; meth; rescue; baz; else foo; ensure; bar end traverses all nodes - for example begin; meth; rescue => ex; bar; end + for example foo::Fun bar traverses all nodes - for example def f ((a, *r)); end + for example var = 10; var traverses all nodes - for example foo.a += m foo + for example +42 traverses all nodes - for example m a + b do end + for example foo + 1 traverses all nodes - for example def a b: -return -end + for example def f o=1, *r, &b; end traverses all nodes - for example next(foo) + for example return() traverses all nodes - for example foo[1, 2] + for example p begin 1.times do 1 end end traverses all nodes - for example foo (-1.3).abs + for example %Q{#@1} traverses all nodes - for example /a\ -b/ + for example case foo; in A(1, 2) then true; end traverses all nodes - for example def f (((a))); end + for example meth 1 do end.fun(bar) traverses all nodes - for example foo = m foo + for example case foo; in a: 1, b: 2 then true; end traverses all nodes - for example def foo raise; raise A::B, ''; end + for example ->(a; foo, bar) { } traverses all nodes - for example 42 + for example case foo; in x if true; nil; end traverses all nodes - for example for a in foo do p a; end + for example return(foo) traverses all nodes - for example next foo + for example a&.b = 1 traverses all nodes - for example "foo#@a" "bar" + for example a, (b, c) = foo traverses all nodes - for example meth 1 do end.fun bar + for example foo and bar traverses all nodes - for example begin; meth; ensure; bar; end + for example <<-'HERE' +#@1 +HERE traverses all nodes - for example case foo; - in a: {b:}, c: - p c - ; end + for example if foo +then bar end traverses all nodes - for example foo.fun bar + for example case [__FILE__, __LINE__ + 1, __ENCODING__] + in [__FILE__, __LINE__, __ENCODING__] + end traverses all nodes - for example case foo; in "a": 1 then true; end + for example false ? raise {} : tap {} traverses all nodes - for example f{ |o=1, *r, p, &b| } + for example def f foo = 1; end traverses all nodes - for example bar def foo; self.each do end end + for example begin; meth; rescue => @ex; bar; end traverses all nodes - for example def String.foo; end + for example f{ || } traverses all nodes - for example not() + for example while foo do meth end traverses all nodes - for example def f ((*)); end + for example p -> { :hello }, a: 1 do end traverses all nodes for example 1 in [a]; a traverses all nodes - for example %W{a\ -b} + for example until foo do meth end traverses all nodes - for example %w[ #@1 ] + for example foo += raise bar rescue nil traverses all nodes - for example :"foo#{bar}baz" + for example def self::foo; end traverses all nodes - for example fun! + for example let (:a) { m do; end } traverses all nodes - for example super() + for example %s{#@@1} traverses all nodes - for example case foo; in 1, "a", [], {} then nil; end + for example def m; class << self; class C; end; end; end traverses all nodes - for example def until; end + for example `foo#{bar}baz` traverses all nodes - for example ->(scope) {}; scope + for example %r{#@1} traverses all nodes - for example p :foo, {"a": proc do end, b: proc do end} + for example a b(c(d)), 1.0i do end traverses all nodes - for example def BEGIN; end + for example o = { +a: +1 +} traverses all nodes - for example f{ |foo:| } + for example p <<~"E" + x\n y +E traverses all nodes - for example case foo; in x, *y, z then nil; end + for example begin; meth; rescue; baz; ensure; bar; end traverses all nodes - for example fun(1) + for example %w[] traverses all nodes - for example case foo; in a: 1 then true; end + for example for a, b in foo; p a, b; end traverses all nodes - for example -> (arg={}) {} + for example "a\ +b" traverses all nodes - for example %Q{a\ -b} + for example ->(scope) {}; scope traverses all nodes - for example :'#@@1' + for example proc {_1 = nil} traverses all nodes - for example -> a: 1 { } + for example m [], 1 do end traverses all nodes - for example def f o=1, p, &b; end + for example unless foo; bar; else baz; end traverses all nodes - for example meth 1 do end::fun bar + for example m1 :k => m2 do; m3() do end; end traverses all nodes - for example yield(foo) + for example foo = bar, 1 traverses all nodes - for example fun { } + for example meth 1 do end::fun(bar) traverses all nodes - for example module Foo; end + for example a b{c(d)}, :e do end traverses all nodes - for example %r{#@@1} + for example def f a, *r, p, &b; end + traverses all nodes + for example foo.a += 1 traverses all nodes for example foo ? 1 : 2 traverses all nodes - for example /#@1/ + for example ::Foo traverses all nodes - for example foo = bar = m foo + for example super(foo) traverses all nodes - for example case foo; in **a then true; end + for example ::A, foo = foo traverses all nodes - for example foo.A += m foo + for example f{ } traverses all nodes - for example ::Foo = 10 + for example f{ |a, *s| } traverses all nodes - for example if foo -then bar end + for example foo[bar, :baz => 1,] traverses all nodes - for example foo.a = 1 + for example foo[0] += raise bar rescue nil traverses all nodes - for example case foo; in ..2 then true; end + for example case foo; + in {a: + } + true + ; end traverses all nodes - for example case foo; in (1) then true; end + for example %{#@1} traverses all nodes - for example %W[foo #{bar}foo#@baz] + for example begin meth end while foo traverses all nodes - for example class Foo < Bar; end + for example :foo traverses all nodes - for example m { |**nil| } + for example a, *, c = bar traverses all nodes - for example case foo; in [*x, y] then true; end + for example a += b += raise :x traverses all nodes - for example next fun foo do end + for example def foo() a:b end traverses all nodes - for example foo::fun + for example self::A, foo = foo traverses all nodes - for example a b{c(d)}, 1 do end + for example f{ |*| } traverses all nodes - for example %Q{#@@1} + for example foo::a += m foo traverses all nodes - for example %q{#@1} + for example [1, 2] traverses all nodes - for example foo.fun + for example if foo..bar; end traverses all nodes - for example a b{c(d)}, /x/ do end + for example not(foo) traverses all nodes - for example alias :foo bar + for example foo&.bar {} traverses all nodes - for example case foo; in [x, y, *] then true; end + for example def f ((*r)); end traverses all nodes - for example case foo; in A[x:] then true; end + for example case foo; in "#{ %Q{a} }": 1 then true; end traverses all nodes - for example foo, bar = meth rescue [1, 2] + for example case foo; in ->{ 42 } then true; end traverses all nodes - for example `a\ -b` + for example def until; end traverses all nodes - for example <<-`HERE` -#@@1 -HERE + for example -> do end traverses all nodes - for example assert dogs + for example f{ |*s, &b| } traverses all nodes - for example a, (b, c) = foo + for example case foo; in "#{ 'a' }": 1 then true; end traverses all nodes - for example begin; meth; rescue; baz; else foo; ensure; bar end + for example def f *r, p, &b; end traverses all nodes - for example for a, b in foo; p a, b; end + for example while class Foo a = tap do end; end; break; end traverses all nodes - for example <<-'HERE' -a\ -b -HERE + for example a&.b traverses all nodes - for example case foo; in "#{ %q{a} }": 1 then true; end + for example `foobar` traverses all nodes - for example module A; _1; end + for example %w{a\ +b} traverses all nodes - for example a b(c d), 1.0i do end + for example :"a\ +b" traverses all nodes - for example while foo; meth end + for example def f a, *r, &b; end traverses all nodes - for example if foo..bar; end + for example a b{c d}, 1.0r do end traverses all nodes - for example [/()\1/, ?#] + for example def f(**foo); end traverses all nodes - for example foo && bar + for example :"foo#{bar}baz" traverses all nodes - for example if foo; bar; else baz; end + for example 42.1r traverses all nodes - for example %I[foo #{bar}] + for example while not (true) do end traverses all nodes - for example def foo(...); bar(...); end + for example __ENCODING__ traverses all nodes - for example f{ |a, *r, p, &b| } + for example true ? 1.tap do |n| p n end : 0 traverses all nodes - for example %s{a\ -b} - traverses all nodes - for example proc {_1 = nil} - traverses all nodes - for example f{ |a| } - traverses all nodes - for example def f o=1, *r, p, &b; end + for example foo[m bar] traverses all nodes - for example foo || (a, b = bar) + for example meth 1 do end.fun(bar) {} traverses all nodes - for example a b(c(d)), 1.0i do end + for example %s{a\ +b} traverses all nodes - for example %W[#@1] + for example fun(*bar) traverses all nodes - for example def f(*foo); end + for example unless foo then bar; else baz; end traverses all nodes - for example var = 10; var + for example def a; @@var |= 10; end traverses all nodes - for example class Foo < a:b; end + for example f{ |a, *| } traverses all nodes - for example a b(c d), "x" do end + for example -42 traverses all nodes for example p <<~"E" x - #{" y"} + #{foo} E traverses all nodes - for example fun do end - traverses all nodes - for example case foo; in ...2 then true; end + for example if foo then bar; end traverses all nodes - for example begin; rescue LoadError; else; end + for example bar if foo traverses all nodes - for example a b{c d}, 1.0i do end + for example a b{c(d)}, /x/m do end traverses all nodes - for example f{ |; -a -| } + for example retry traverses all nodes - for example f{ |foo: 1, bar: 2, **baz, &b| } + for example case foo; in "#{ 'a' }": then true; end traverses all nodes - for example begin; meth; rescue Exception; bar; end + for example foo.fun (1) {} traverses all nodes - for example case foo; in [x] then nil; end + for example f{ |a,| } traverses all nodes - for example fun(1) { } + for example case foo; + in {a: 1 + } + false + ; end traverses all nodes - for example -> do end + for example case foo; when 'bar' then bar; end traverses all nodes - for example a b{c(d)}, :e do end + for example def (foo).foo; end traverses all nodes - for example p <<~"E" - x - #{foo} -E + for example m ->(a: ->{_1}) {a} traverses all nodes - for example desc "foo" do end + for example meth rescue bar traverses all nodes - for example proc {|_3|} + for example -> * { } traverses all nodes - for example case foo; in 1 | 2 then true; end + for example case 1; in 2; 3; else; end traverses all nodes - for example f{ |a, *| } + for example %w[ #@1 ] traverses all nodes - for example f{ |*s, &b| } + for example super do end traverses all nodes - for example bar unless foo + for example fun traverses all nodes - for example !m foo + for example { 'foo': 2, 'bar': {}} traverses all nodes - for example case foo; when 'bar'; bar; else baz; end + for example meth until foo traverses all nodes - for example case foo; in A[] then true; end + for example def self._6; end traverses all nodes - for example %r{a\ -b} + for example f{ |; +a +| } traverses all nodes - for example f{ |*| } + for example () traverses all nodes - for example -> do _1 + _9 end + for example p <<~E + x + + y +E traverses all nodes - for example meth while foo + for example m { |foo| } traverses all nodes - for example foo[0] += raise(bar) rescue nil + for example f{ |;a| } traverses all nodes - for example "foo#{bar}baz" + for example /(?bar)/ =~ 'bar'; match traverses all nodes - for example foo % 1 + for example next fun foo do end traverses all nodes - for example a b{c d}, 1 do end + for example foo[0, 1] += 2 traverses all nodes - for example @foo, @@bar = *foo + for example a b(c d), 1 do end traverses all nodes - for example if (bar; a, b = foo); end + for example %W[#@1] traverses all nodes - for example case foo; - in {a: 1 - } - false - ; end + for example bar def foo; self.each do end end traverses all nodes - for example if foo...bar; end + for example foo::fun bar traverses all nodes - for example (foo, bar) = 1, 2 + for example if foo; bar; elsif baz; 1; else 2; end traverses all nodes - for example ((b, )) = foo + for example case foo; in *x, y, z then nil; end traverses all nodes - for example foo&.bar {} + for example case foo; in [x, *, y] then true; end traverses all nodes - for example a # - # -.foo + for example case foo; in A[] then true; end traverses all nodes - for example foo ^ 1 + for example def END; end traverses all nodes - for example {a: if true then 42 end} + for example class << foo; _1; end traverses all nodes - for example retry + for example 1.. traverses all nodes - for example foo.m += raise bar rescue nil + for example foo === 1 traverses all nodes - for example foo = bar, 1 + for example defined? foo traverses all nodes - for example class A; _1; end + for example foo::Fun() traverses all nodes - for example /source/im + for example self.a, self[1, 2] = foo traverses all nodes - for example def self._6; end + for example def f(foo, bar); end traverses all nodes - for example f{ |a, *s| } + for example meth 1 do end.fun bar do end traverses all nodes - for example p <<~"E" - x\n y -E + for example a = b += raise :x traverses all nodes - for example case foo; in a: 1, _a:, ** then true; end + for example %q(foobar) traverses all nodes - for example 'foobar' + for example _1 traverses all nodes - for example case foo; in 1..2 then true; end + for example break fun foo do end traverses all nodes - for example ->(a) { } + for example <<-`HERE` +a\ +b +HERE traverses all nodes - for example foo += m foo + for example a b(c(d)), 1.0 do end traverses all nodes - for example foo | 1 + for example def foo(...); bar(...); end traverses all nodes - for example -2 ** 10 + for example foo & 1 traverses all nodes - for example f (g rescue nil) + for example a ? b & '': nil traverses all nodes - for example p <<~E - x - y -E + for example meth[] {} traverses all nodes - for example f{ |*, &b| } + for example begin; meth; rescue foo => ex; bar; end traverses all nodes - for example case foo; when 1, *baz; bar; when *foo; end + for example -> { _1 + _9} traverses all nodes - for example Bar::Foo + for example %r{#@@1} traverses all nodes - for example defined?(foo) + for example %W"#{1}" traverses all nodes - for example foo / 1 + for example next traverses all nodes - for example o = { -a: -1 -} + for example assert dogs traverses all nodes - for example m [] do end + for example def f ((a, *)); end traverses all nodes - for example foo::a += 1 + for example m { |**nil| } traverses all nodes - for example a b(c d), 1.0r do end + for example f{ |a, *, &b| } traverses all nodes - for example def foo(_a, _a); end + for example f{ |a, *r, p, &b| } traverses all nodes - for example case foo; in [*, x] then true; end + for example def f ((a, *r, p)); end traverses all nodes - for example _1 + for example foo.(1) traverses all nodes - for example begin; meth; rescue => @ex; bar; end + for example case foo; in { a: 1 } then true; end traverses all nodes - for example case foo; in ::A then true; end + for example __ENCODING__ traverses all nodes - for example $+ + for example ->{ } traverses all nodes - for example /#@@1/ + for example f{ |o=1, p, &b| } traverses all nodes - for example a&.b &&= 1 + for example * = bar traverses all nodes for example case foo; in a:, b: then true; end traverses all nodes - for example $10 + for example 42.1i traverses all nodes - for example Bar::Foo = 10 + for example a b(c d), 1.0i do end traverses all nodes - for example while class Foo a = tap do end; end; break; end + for example def m; class << self; module M; end; end; end traverses all nodes - for example _2 = 1 + for example meth 1 do end::fun bar traverses all nodes - for example f{ |a| } + for example begin; meth; rescue Exception, foo; bar; end traverses all nodes - for example foo || bar + for example @foo traverses all nodes - for example foo >> 1 + for example a b{c(d)}, 1.0 do end traverses all nodes - for example def f ((*, p)); end + for example foo or bar traverses all nodes - for example def f a, *r, p, &b; end + for example f{ | | } traverses all nodes - for example +2.0 ** 10 + for example def f ((*)); end traverses all nodes - for example 42.1i + for example self.A, foo = foo traverses all nodes - for example p <<~E - x -E + for example foo::a += 1 traverses all nodes - for example ->{ } + for example foo += meth rescue bar traverses all nodes - for example a b(c d), 1 do end + for example *, c, d = bar traverses all nodes - for example <<-"HERE" -a\ -b -HERE + for example 'foobar' traverses all nodes - for example p <<~E - x - - y -E + for example case foo; in x then x; end traverses all nodes - for example [1, *foo, 2] + for example foo.a += m foo traverses all nodes - for example case foo; in [x, y,] then true; end + for example yield foo traverses all nodes - for example while class Foo; tap do end; end; break; end + for example m ->(a = ->{_1}) {a} traverses all nodes - for example <<-"HERE" -#@@1 -HERE + for example foo - 1 traverses all nodes - for example case foo; in x, y then nil; end + for example def f o=1, p, &b; end traverses all nodes - for example /\xa8/n =~ "" + for example break() traverses all nodes - for example { foo: 2 } + for example while def self.foo; tap do end; end; break; end traverses all nodes - for example case foo; when 'bar', 'baz'; bar; end + for example :'a\ +b' traverses all nodes - for example fun(f bar) + for example case foo; in (1) then true; end traverses all nodes - for example case foo; in [x,] then nil; end + for example ->(a) { } traverses all nodes - for example p <<~E - x - y -E + for example def f *r, &b; end traverses all nodes - for example def f o=1, &b; end + for example proc {_1 = nil} traverses all nodes - for example `foo#{bar}baz` + for example %i{a\ +b} traverses all nodes - for example ->(a; foo, bar) { } + for example defined?(foo) traverses all nodes - for example fun(&bar) + for example nil traverses all nodes - for example alias $a $+ + for example begin ensure end traverses all nodes - for example begin; meth; rescue; foo; else; bar; end + for example { foo: 2 } traverses all nodes - for example "#{1}" + for example def f(foo=1, bar=2); end traverses all nodes - for example a b(c(d)), "x" do end + for example return traverses all nodes - for example foo == 1 + for example fun(foo, *bar) traverses all nodes - for example unless foo then bar; end + for example 1..2 traverses all nodes - for example p ->() do a() do end end + for example a b(c(d)), 1.0r do end traverses all nodes - for example def f o=1, *r, &b; end + for example fun(&bar) traverses all nodes - for example ::A, foo = foo + for example /#{1}(?bar)/ =~ 'bar' traverses all nodes - for example %w[ #@@1 ] + for example a # +# +&.foo traverses all nodes - for example foo::C ||= raise(bar) rescue nil + for example foo || (a, b = bar) traverses all nodes - for example begin; meth; rescue foo => ex; bar; end + for example /foo#{bar}baz/ traverses all nodes - for example case foo; in ->{ 42 } then true; end + for example module ::Foo; end traverses all nodes - for example case foo; in "#{ %Q{a} }": then true; end + for example { 'foo': 2 } traverses all nodes - for example case foo; in a: 1, b: 2 then true; end + for example alias :foo bar traverses all nodes - for example defined? foo + for example foo::m += raise(bar) rescue nil traverses all nodes - for example def f *r, &b; end + for example p :foo, {** proc do end, b: proc do end} traverses all nodes - for example def f(foo=1, bar=2); end + for example def f ((*, p)); end traverses all nodes - for example case foo; in x then x; end + for example def f(foo); end traverses all nodes - for example foo.a += 1 + for example %i[foo bar] traverses all nodes - for example foo::(1) + for example f{ |a, o=1, o1=2, *r, &b| } traverses all nodes - for example super foo + for example foo = *bar traverses all nodes - for example a = b = raise :x + for example fun (1) + traverses all nodes + for example fun! + traverses all nodes + for example foo | 1 traverses all nodes for example a # # &.foo traverses all nodes - for example foo += meth rescue bar - traverses all nodes - for example case foo; in [x, *, y] then true; end - traverses all nodes - for example case foo; in [x, y, *z] then true; end - traverses all nodes - for example case foo; in A::B then true; end + for example p <<~E + x + \ y +E traverses all nodes - for example case 1; in 2; 3; else; 4; end + for example <<-`HERE` +#@@1 +HERE traverses all nodes - for example m [], 1 do end + for example case foo; in ^foo then nil; end traverses all nodes - for example foo::m += raise bar rescue nil + for example while def foo; tap do end; end; break; end traverses all nodes - for example /foo#{bar}baz/ + for example super() traverses all nodes - for example foo.C += raise(bar) rescue nil + for example %x{#@@1} traverses all nodes - for example foo::A = 1 + for example begin; meth; rescue; foo; else; bar; end traverses all nodes - for example case foo; - in {Foo: 42 - } - false - ; end + for example def f a, o=1, p, &b; end traverses all nodes - for example :"#@1" + for example <<'HERE' +foo +bar +HERE traverses all nodes - for example p <<~E - x - y + for example <<-E + 1 \ + 2 + 3 E traverses all nodes - for example lambda{|;a|a} + for example case foo; in A(x:) then true; end traverses all nodes - for example fun(:foo => 1) + for example module A; _1; end traverses all nodes - for example { foo: 2, **bar } + for example { 1 => 2, :foo => "bar" } traverses all nodes - for example a&.b = 1 + for example f{ |a| } traverses all nodes - for example self::A, foo = foo + for example m a + b do end traverses all nodes - for example <<`HERE` -foo -bar -HERE + for example foo = m foo traverses all nodes - for example /#{1}(?bar)/ =~ 'bar' + for example begin meth end until foo traverses all nodes - for example a b{c d}, "x" do end + for example a b{c d}, :e do end traverses all nodes - for example %I[#@1] + for example def f foo: +; end traverses all nodes - for example super foo, bar do end + for example def f ((*r, p)); end traverses all nodes - for example fun (1 -) + for example {a: if true then 42 end} traverses all nodes - for example foo[0, 1] += 2 + for example "#{1}" traverses all nodes - for example -2.0 ** 10 + for example ..100 traverses all nodes - for example begin; meth; rescue; baz; ensure; bar; end + for example foo[0, 1] ||= 2 traverses all nodes - for example case foo; in "#{ %q{a} }": then true; end + for example def a b: +return +end traverses all nodes - for example def String::foo; end + for example a, *b, c = bar traverses all nodes - for example f{ |a, o=1, &b| } + for example a = 1; a b: 1 traverses all nodes - for example def f a, o=1, &b; end + for example a b(c d), 1.0 do end traverses all nodes - for example case foo; in 1.. then true; end + for example case foo; when 1, *baz; bar; when *foo; end traverses all nodes - for example fun(:foo => 1, &baz) + for example def foo +=begin +=end +end traverses all nodes - for example case foo; in **nil then true; end + for example false ? raise do end : tap do end traverses all nodes - for example f{ |o=1, &b| } + for example foo = raise(bar) rescue nil traverses all nodes - for example f{ } + for example foo traverses all nodes - for example %x{a\ -b} + for example unless foo; bar; end traverses all nodes - for example a b(c(d)), /x/m do end + for example def f a, o=1, &b; end traverses all nodes - for example def f(**); end + for example def f a, o=1, *r, p, &b; end traverses all nodes - for example f(a ? "a":1) + for example ::A += 1 traverses all nodes - for example foo = raise(bar) rescue nil + for example %W[foo #{bar}] traverses all nodes - for example foo >= 1 + for example foo.fun traverses all nodes - for example @@foo + for example f{ |*, &b| } traverses all nodes - for example if foo then bar; end + for example [1, *foo, 2] traverses all nodes - for example a b(c(d)), 1 do end + for example Foo = 10 traverses all nodes - for example def f **baz, &b; end + for example meth do; foo; rescue; bar; end traverses all nodes - for example a b{c d}, :e do end + for example %q{a\ +b} traverses all nodes - for example [1, *foo] + for example a, * = bar traverses all nodes - for example __LINE__ + for example %I[foo #{bar}] traverses all nodes - for example def self.m; _1; end + for example case foo; in [x, y, *z] then true; end traverses all nodes - for example fun (1) {} + for example foo[0, 1] &&= 2 traverses all nodes - for example 'a\ -b' + for example case foo; in "#{ %q{a} }": 1 then true; end traverses all nodes - for example meth (-1.3).abs + for example next(foo) traverses all nodes - for example !(foo..bar) + for example @@var |= 10 traverses all nodes - for example f{ |a, &b| } + for example <<~E + 1 \ + 2 + 3 +E traverses all nodes - for example def f foo: -1 -; end + for example f{ |a, o=1, *r, p, &b| } traverses all nodes - for example foo[0] += raise bar rescue nil + for example p <<~E + x + y +E traverses all nodes - for example undef foo, :bar, :"foo#{1}" + for example foo >> 1 traverses all nodes - for example < a: 1 { } traverses all nodes - for example foo[1, 2] = 3 + for example p :foo, {proc do end => proc do end, b: proc do end} traverses all nodes - for example !(foo...bar) + for example case foo; in self then true; end traverses all nodes - for example a = b += raise :x + for example case foo; when 'bar'; bar; end traverses all nodes - for example defined? @foo + for example %i[ #@1 ] traverses all nodes - for example begin; meth; rescue; foo; end + for example def f foo: -1 +; end traverses all nodes - for example case foo; in x, then nil; end + for example a b{c d}, 1 do end traverses all nodes - for example { 'foo': 2 } + for example true traverses all nodes - for example @@var |= 10 + for example meth while foo traverses all nodes - for example def x; self::A ||= 1; end + for example %x{a\ +b} traverses all nodes - for example redo + for example case foo; in ...2 then true; end traverses all nodes - for example f{ |a, b,| } + for example %x{#@1} traverses all nodes - for example case foo; in x, y, then nil; end + for example /a\ +b/ traverses all nodes - for example f{ |a, *, &b| } + for example /#@1/ traverses all nodes - for example def _5; end + for example foo < 1 traverses all nodes - for example def f &b; end + for example foo =~ 1 traverses all nodes - for example def foo(...); super(...); end + for example BEGIN { 1 } traverses all nodes - for example %W[#@@1] + for example [*foo] traverses all nodes - for example while def self.foo; tap do end; end; break; end + for example 42i traverses all nodes - for example END { 1 } + for example class << foo; nil; end traverses all nodes - for example ::A += 1 + for example return foo traverses all nodes - for example case foo; in 1...2 then true; end + for example %I[#@@1] traverses all nodes - for example foo[1, 2] = 3 + for example break traverses all nodes - for example %w[foo bar] + for example %w[ #@@1 ] traverses all nodes - when given an unexpected AST - with too many children - raises debugging error - with too few children - raises debugging error - for example %I[#@@1] + for example p :foo, {"a": proc do end, b: proc do end} traverses all nodes - for example while class << self; a = tap do end; end; break; end + for example -> do _1 + _9 end traverses all nodes - for example foo.A += 1 + for example a b{c(d)}, 1 do end traverses all nodes - for example meth 1 do end.fun bar do end + for example f{ |o=1, *r, &b| } traverses all nodes - for example def f(&block); end + for example case foo; in *x then nil; end traverses all nodes - for example 42r + for example foo.m += raise(bar) rescue nil traverses all nodes - for example not(foo) + for example a # + # +.foo traverses all nodes - for example m ->(a: ->{_1}) {a} + for example fun(:foo => 1, &baz) traverses all nodes - for example def f ((*r)); end + for example %I[#@1] traverses all nodes - for example %i[ #@@1 ] + for example 42.1ri traverses all nodes - for example +42 + for example fun { } traverses all nodes - for example ->{ } + for example p <<~E +E traverses all nodes - for example foo[bar,] + for example :'#@1' traverses all nodes - for example self::a, foo = foo + for example a b{c d}, /x/m do end traverses all nodes - for example foo[0, 1] += m foo + for example foo !~ 1 traverses all nodes - for example B::A += 1 + for example { 1 => 2 } traverses all nodes - for example fun(foo, :foo => 1, &baz) + for example $+ traverses all nodes - for example yield + for example case foo; in A then true; end traverses all nodes - for example a # -# -&.foo + for example [ 1, 2 => 3 ] traverses all nodes - for example def f ((a, *, p)); end + for example foo && (a, b = bar) traverses all nodes - for example yield foo + for example if (bar); foo; end traverses all nodes - for example def String; end + for example not foo traverses all nodes - for example foo - 1 + for example p <<~E + x + y +E traverses all nodes - for example def foo() a:b end + for example desc "foo" do end traverses all nodes - for example def m; class << self; A = nil; end; end + for example case foo; in **nil then true; end traverses all nodes - for example case foo; in [x, *y, z] then true; end + for example foo, bar = m foo traverses all nodes - for example %x{#@@1} + for example meth 1 do end.fun bar traverses all nodes - for example foo && (a, b = bar) + for example def f(**nil); end traverses all nodes - for example begin foo!; bar! end + for example yield traverses all nodes - for example meth 1 do end.fun(bar) + for example %{a\ +b} traverses all nodes - for example +foo + for example def f **baz, &b; end traverses all nodes - for example break() + for example case foo; in 1, "a", [], {} then nil; end traverses all nodes - for example case foo; when 'bar' then bar; end + for example def foo(...); super(...); end traverses all nodes - for example 42ri + for example [/()\1/, ?#] traverses all nodes - for example %i[foo bar] + for example m = -> *args do end traverses all nodes - for example def m; class << self; class C; end; end; end + for example a b(c(d)), /x/ do end traverses all nodes - for example f{ |*s| } + for example fun (f bar) traverses all nodes - for example [ 1, 2 => 3 ] + for example %W[#@@1] traverses all nodes - for example 1...2 + for example undef foo, :bar, :"foo#{1}" traverses all nodes - for example case foo; in self then true; end + for example ::Foo = 10 traverses all nodes - for example foo > 1 + for example case foo; in ..2 then true; end traverses all nodes - for example a b{c d}, 1.0 do end + for example foo = meth rescue bar traverses all nodes - for example return() + for example foo.a &&= 1 traverses all nodes - for example def foo -=begin -=end -end + for example def f(*foo); end traverses all nodes - for example a ||= 1 + for example defined? @foo traverses all nodes - for example f{ |**baz, &b| } + for example case foo; in 1...2 then true; end traverses all nodes - for example def f a, *r, &b; end + for example fun() { } traverses all nodes - for example case foo; in x if true; nil; end + for example case foo; in a: then true; end traverses all nodes - for example case [__FILE__, __LINE__ + 1, __ENCODING__] - in [__FILE__, __LINE__, __ENCODING__] - end + for example case foo; in 1..2 then true; end traverses all nodes - when a class defines `on_block_pass` - calls it for all block-pass arguments - for example -1.33 + for example fun(foo, :foo => 1) traverses all nodes - for example def f(**nil); end + for example foo[1, 2] traverses all nodes - for example case; when foo; 'foo'; end + for example /#@@1/ traverses all nodes - for example foo < 1 + for example case foo; in * then nil; end traverses all nodes - for example a &&= 1 + for example assert do: true traverses all nodes - for example %I() + for example case foo; in 1 => a then true; end traverses all nodes - for example a # -# -.foo + for example case foo; in [*x, y] then true; end traverses all nodes - for example def f (foo: 1, bar: 2, **baz, &b); end + for example while class Foo; tap do end; end; break; end traverses all nodes - for example m = -> *args do end + for example !(foo..bar) traverses all nodes - for example !(a, b = foo) + for example @foo, @@bar = *foo traverses all nodes - when a class defines on_arg - calls it for all arguments - for example begin; meth; rescue Exception, foo; bar; end + for example def foo + a:b end traverses all nodes - for example unless foo; bar; end + for example __LINE__ traverses all nodes - for example case foo; in { a: 1 } then true; end + for example "foo#{bar}baz" traverses all nodes - for example def f ((*r, p)); end + for example def f &b; end traverses all nodes - for example p :foo, {** proc do end, b: proc do end} + for example foo && bar traverses all nodes - for example f{ |a| } + for example foo * 1 traverses all nodes - for example a b{c d}, 1.0r do end + for example /source/im traverses all nodes - for example a, b = *foo, bar + for example -> (arg={}) {} traverses all nodes - for example f{ |*r, p, &b| } + for example fun(foo, :foo => 1, &baz) traverses all nodes - for example super do end + for example traverses all nodes - for example meth[] {} + for example "#@1" traverses all nodes - for example case foo; in { a: 1, } then true; end + for example case foo; in x, y then nil; end traverses all nodes - for example return + for example /\xa8/n =~ "" + traverses all nodes + for example case foo; in 1.. then true; end traverses all nodes for example <<-"HERE" -#@1 +#@@1 HERE traverses all nodes - for example a += b = raise :x + for example case foo; in [x, y,] then true; end traverses all nodes - for example m "#{}#{()}" + for example ->{ } traverses all nodes - for example foo, bar, baz = 1, 2 + for example def foo; end traverses all nodes - for example case foo; in "#{ 'a' }": then true; end + for example foo += m foo traverses all nodes - for example assert do: true + for example false traverses all nodes - for example 1..2 + for example a # +# +.foo traverses all nodes - for example `#@@1` + for example 1.33 traverses all nodes - for example <<-`HERE` + for example f x: -> do meth do end end + traverses all nodes + for example a b(c(d)), 1 do end + traverses all nodes + for example foo ** 1 + traverses all nodes + for example <<-"HERE" #@1 HERE traverses all nodes - for example case foo; - in {a: - 2} - false - ; end + for example while foo; meth end traverses all nodes - for example case foo; in A(1, 2) then true; end + for example a b(c(d)), "x" do end traverses all nodes - for example def f ((a, *)); end + for example case foo; when 'bar', 'baz'; bar; end traverses all nodes - for example %W"#{1}" + for example f{ |a, &b| } traverses all nodes - for example <<-E - 1 \ - 2 - 3 -E + for example case foo; in [x, *y, z] then true; 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" + for example f{ |a| } traverses all nodes - for example a b{c d}, /x/ do end + for example foo::a = 1 traverses all nodes - for example <<'HERE' -foo -bar -HERE + for example case foo; in [x] then nil; end traverses all nodes - for example %i[ #@1 ] + for example def f(foo: 1); end traverses all nodes - for example %q{a\ -b} + for example case foo; in x, *y, z then nil; end traverses all nodes - for example %Q{#@1} + for example case foo; in A() then true; end traverses all nodes - for example case foo; in A[1, 2] then true; end + for example @a |= 1 traverses all nodes - for example { 1 => 2 } + for example f <<-TABLE do +TABLE +end traverses all nodes - for example -> (a) { } + 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 def x(_4) end + for example A += 1 traverses all nodes - for example while class << self; tap do end; end; break; end + for example p <<~E + x + y +E traverses all nodes - for example self + for example def f (((a))); end traverses all nodes - for example f{ |foo: 1, &b| } + for example case foo; + in {a: + 2} + false + ; end traverses all nodes - for example foo & 1 + for example def f ((a, *r)); end traverses all nodes - for example %s{#@@1} + for example def f o=1, &b; end traverses all nodes - for example %q{#@@1} + for example f(a ? "a":1) traverses all nodes - for example $var = 10 + for example 1...2 + traverses all nodes + for example a b{c d}, /x/ do end traverses all nodes -RuboCop::AST::DefinedNode - #receiver - is expected to be nil - #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 - #method_name - is expected to eq :defined? - -RuboCop::AST::RescueNode +RuboCop::AST::CaseNode + #keyword + is expected to eq "case" #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 + #when_branches + is expected to eq 3 + is expected to all be when type #else_branch - without an else statement - is expected to be nil - with an else statement - is expected to be send type + #else? + without an else statement + is expected to be nil + with an empty else statement + is expected to be nil + with an else statement + is expected to be sym type #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 - #resbody_branches - is expected to eq 2 - is expected to all be resbody type + when compared to an IfNode + returns the same + when there is no else keyword + returns only then when bodies + #each_when + when not passed a block + is expected to be a kind of Enumerator + when passed a block + yields all the conditions + +RuboCop::AST::InPatternNode + when using Ruby 2.7 or newer + #pattern + with an array pattern + is expected to be array pattern type + with an alternative pattern + is expected to be match alt type + with an as pattern + is expected to be match as type + with a value pattern + is expected to be int type + with a hash pattern + is expected to be hash pattern type + with a variable pattern + is expected to be match var type + with a pin operator + is expected to be pin type + #then? + with a then keyword + is expected to be then + without a then keyword + is expected not to be then + #body + without a then keyword + is expected to be array type + with a then keyword + 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::InPatternNode + +RuboCop::AST::Procarg0Node .new - is expected to be a kind of RuboCop::AST::RescueNode + with a block + is expected to be a kind of RuboCop::AST::ArgNode + #name + is expected to eq :x + +RuboCop::AST::DefNode + #endless? + with standard method definition + is expected not to be endless + with endless method definition + is expected to be endless #body - is expected to be send type + with a single expression body + is expected to be send type + with a multi-expression body + is expected to be begin type + with no body + is expected to be nil + #block_argument? + with regular 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 no arguments + is expected not to be block argument + .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 + #void_context? + with a regular method + is expected not to be void context + with an initializer method + is expected to be void context + with a comparison method + is expected not to be void context + with a bracket assignment method + is expected to be void context + with a regular assignment method + is expected to be void context + #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 + with a unary operator method + is expected to be operator method + #arguments + with multiple mixed arguments + is expected to eq 2 + with a single rest argument + is expected to eq 1 + with multiple regular arguments + is expected to eq 2 + with no arguments + is expected to be empty + with argument forwarding + is expected to eq 1 + with a single regular argument + is expected to eq 1 + when using Ruby 2.7 or newer + #argument_forwarding? + is expected to be argument forwarding + #first_argument + with no arguments + is expected to be nil + with a single keyword argument + is expected to be kwoptarg type + with multiple mixed arguments + is expected to be arg type + with a single regular argument + is expected to be arg type + 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 bracket assignment method + is expected to be assignment method + with a comparison method + is expected not to be assignment method + with a regular method + is expected not to be assignment method + with an assignment method + is expected to be assignment method + #const_receiver? + with an instance method definition + is expected not to be 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 + #bang_method? + with a bang method + is expected to be bang method + with a predicate method + is expected not to be bang method + with a regular method + is expected not to be bang method + #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 + #comparison_method? + with a regular method + is expected not to be comparison method + with a comparison method + is expected to be comparison method + #method? + 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 + 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 + #method_name + with an operator method + is expected to eq :== + with a unary method + is expected to eq :-@ + with a plain method + is expected to eq :foo + with a setter method + is expected to eq :foo= + #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 + #arguments? + with a single keyword argument + is expected to be arguments + with a single regular argument + is expected to be arguments + with no arguments + is expected not to be arguments + with multiple mixed arguments + is expected to be arguments + with multiple regular arguments + is expected to be arguments + with a single rest argument + is expected to be arguments + #self_receiver? + with a class method definition + is expected to be 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 + #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 + #rest_argument? + with no arguments + is expected not to be rest argument + with regular arguments + is expected not to be rest argument + with mixed arguments + is expected to be rest argument + with a rest argument + is expected to be rest argument + #last_argument + with a single keyword argument + is expected to be kwoptarg type + with no arguments + is expected to be nil + with multiple mixed arguments + is expected to be restarg type + with a single rest argument + is expected to be restarg type + with a single regular argument + is expected to be arg type + with multiple regular arguments + is expected to be arg type -RuboCop::AST::ReturnNode +RuboCop::AST::StrNode + #character_literal? + with a normal string literal + is expected not to be character literal + with a character literal + is expected to be character literal + with a heredoc + is expected not to be character literal + .new + with a normal string + is expected to be a kind of RuboCop::AST::StrNode + 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 + #heredoc? + with a normal string + is expected not to be heredoc + with a string with interpolation + is expected not to be heredoc + with a heredoc + is expected to be heredoc + +RuboCop::AST::BreakNode behaves like wrapped arguments node .new with arguments - is expected to be a kind of RuboCop::AST::ReturnNode + is expected to be a kind of RuboCop::AST::BreakNode without arguments - is expected to be a kind of RuboCop::AST::ReturnNode + 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 a single argument + is expected to eq 1 with a single argument and braces is expected to eq 1 + with no arguments + is expected to be empty with no arguments and braces is expected to be empty with multiple literal arguments is expected to eq 2 -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 - .new - with a `casgn` node - is expected to be a kind of RuboCop::AST::CasgnNode - #expression - is expected to eq s(:send, nil, :value) - -RuboCop::AST::ArrayNode - #each_value - without block - is expected to be a kind of Enumerator - with block - is expected to be a kind of RuboCop::AST::ArrayNode - is expected to eq ["(int 1)", "(int 2)", "(int 3)"] +RuboCop::AST::AndNode + #logical_operator? + with a semantic and node + is expected not to be logical operator + with a logical and node + is expected 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 + #rhs + with a logical and node + is expected to be int type + with a semantic and node + is expected to be int type + #semantic_operator? + with a logical and node + is expected not to be semantic operator + with a semantic and node + is expected to be semantic operator + #alternate_operator + with a semantic and node + is expected to eq "&&" + with a logical and node + is expected to eq "and" + #operator + with a logical and node + is expected to eq "&&" + with a semantic and node + is expected to eq "and" + #inverse_operator + with a logical and node + is expected to eq "||" + with a semantic and node + is expected to eq "or" .new - is expected to be a kind of RuboCop::AST::ArrayNode - #percent_literal? - with square brackets - is expected not to be percent literal :string - is expected not to be percent literal - is expected not to be percent literal :symbol - with a string percent literal - is expected to be percent literal - is expected to be percent literal :string - is expected not to be percent literal :symbol - with a symbol percent literal - is expected to be percent literal - is expected not to be percent literal :string - is expected to be percent literal :symbol - #square_brackets? - with a percent literal - is expected not to be square brackets - with square brackets - is expected to be square brackets - #bracketed? - with square brackets - is expected to be bracketed - unbracketed - is expected to be nil - with a percent literal - is expected to be bracketed - #values - with an array of literals - is expected to eq 3 - is expected to all be literal - with an array of variables - is expected to all be send type - is expected to eq 2 - with an empty array - is expected to be empty + 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::ConstNode - #absolute? - is expected to be absolute - with a non-namespaced constant - is expected not to be absolute - with a constant not starting with :: - is expected not to be absolute - #namespace - is expected to eq "::Foo::Bar" - #module_name? - is expected not to be module name - with a constant with a lowercase letter - is expected to be module name - #short_name - is expected to eq :BAZ - #relative? - with a non-namespaced constant - is expected to be relative - #each_path - yields all parts of the namespace +RuboCop::AST::LambdaNode + #arguments + is expected to eq 2 + #method_name + is expected to eq :lambda + #receiver + is expected to be nil -RuboCop::AST::IntNode +RuboCop::AST::DstrNode #value - is expected to eq 10 - #sign? - explicit negative int - is expected to be sign - explicit positive int - is expected to be sign - .new - is expected to be a kind of RuboCop::AST::IntNode + with a multiline string + is expected to eq "this is a multiline string" + with implicit concatenation + is expected to eq "foo bar baz" + with interpolation + is expected to eq "foo \#{bar} baz" -RuboCop::AST::BlockNode - #opening_delimiter - when enclosed in do-end keywords - is expected to eq "do" - when enclosed in braces - is expected to eq "{" - #single_line? - when block is on several lines - is expected not to be single line - when block is on a single line - is expected to be single line - #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 - #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] +RuboCop::AST::YieldNode + #predicate_method? + is expected not to be predicate method + #bang_method? + is expected not to be bang method + #operator_method? + is expected not to be operator method + .new + is expected to be a kind of RuboCop::AST::YieldNode + #double_colon? + is expected not to be double colon + #block_node + is expected to be nil + #arguments + with a single literal argument + is expected to eq 1 + with multiple mixed arguments + is expected to eq 2 + with a single splat argument + is expected to eq 1 + with multiple literal arguments + is expected to eq 2 with no arguments is expected to be empty - all argument types - is expected to eq [:a, :b, :c, :d, :e, :f, :g, :h, :i] #receiver - with safe navigation operator call - is expected to eq "foo" - with dot operator call - is expected to eq "foo" - #delimiters - when enclosed in do-end keywords - is expected to eq ["do", "end"] - when enclosed in braces - is expected to eq ["{", "}"] - #lambda? - when block belongs to a non-lambda method - is expected not to be lambda - when block belongs to a method lambda - is expected to be lambda - when block belongs to a stabby lambda - is expected to be lambda - #keywords? - when enclosed in do-end keywords - is expected to be keywords - when enclosed in braces - is expected not to be keywords - .new - is expected to be a kind of RuboCop::AST::BlockNode - #closing_delimiter - when enclosed in do-end keywords - is expected to eq "end" - when enclosed in braces - is expected to eq "}" + is expected to be nil + #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 + #macro? + is expected not to be macro + #const_receiver? + is expected not to be const receiver + #method_name + is expected to eq :yield + #last_argument + 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 a single literal argument + is expected to be sym type + with multiple mixed arguments + is expected to be splat type #arguments? - with destructuring arguments + with a single literal argument is expected to be arguments - with a single argument + with multiple literal arguments is expected to be arguments with no arguments is expected not 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 - #void_context? - when block method is tap - is expected to be 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 - #braces? - when enclosed in do-end keywords - is expected not to be braces - when enclosed in braces - is expected to be braces - #arguments - with destructured arguments - is expected to eq 2 - with multiple mixed arguments - is expected to eq 2 - >= Ruby 2.7 - using numbered parameters - is expected to be empty - with a single literal argument - is expected to eq 1 + #comparison_method? + is expected not to be comparison method + #camel_case_method? + is expected not to be camel case method + #self_receiver? + is expected not to be self receiver + #setter_method? + is expected not to be setter method + #command? + when argument is a symbol + is expected to be command :yield + when argument is a string + is expected to be command "yield" + #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" + #implicit_call? + is expected not to be implicit call + #block_literal? + is expected not to be block literal + #dot? + is expected not to be dot + #parenthesized? with no arguments - is expected to be empty + 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_argument? + is expected not to be block argument + #assignment_method? + is expected not to be assignment method + #first_argument + with no arguments + is expected to be nil with a single splat argument - is expected to eq 1 + is expected to be splat type + with multiple literal arguments + is expected to be sym type + with multiple mixed arguments + is expected to be sym type + with a single literal argument + is expected to be sym type + +RuboCop::AST::ReturnNode + behaves like wrapped arguments node + #arguments + with a single splat argument + is expected to eq 1 + with a single argument and braces + is expected to eq 1 + with multiple literal arguments + is expected to eq 2 + with a single argument + is expected to eq 1 + with no arguments + is expected to be empty + 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::NodePattern::Lexer + provides tokens via next_token + when given a regexp /[abc]+\/()?/x + round trips + when given arithmetic symbols + is parsed as `:&` + when given a regexp /back\\slash/ + round trips + when given a regexp /test/ + round trips + when given node types and constants + distinguishes them + with $type+ + is parsed as `$ int + x` + when given a regexp ending with a backslash + does not lexes it properly + +RuboCop::AST::AndAsgnNode + #assignment_node + is expected to be a kind of RuboCop::AST::AsgnNode + .new + is expected to be a kind of RuboCop::AST::AndAsgnNode + #operator + is expected to eq :"&&" + #expression + is expected to eq s(:send, nil, :value) + #name + is expected to eq :var RuboCop::AST::NodePattern - wildcards - 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) - at the root level - is expected to match code s(:sclass, - s(:self), - s(:def, :something, - s(:args), - s(:int, 1))) and :freeze - negated - behaves like nonmatching - doesn't match - within a sequence - is expected to match code nil and :Const - named wildcards - in head position of a sequence - is expected to match code s(:int, 1), :+, and s(:send, nil, :a) - 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) - within a union - confined to the union - without unification - is expected to match code s(:int, 2) and s(:int, 1) - with partial unification - 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) - that can not be unified - behaves like nonmatching - doesn't match - with a succeeding unifying constraint - 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 branches without the wildcard - encountered after - behaves like invalid - is invalid - encountered first - behaves like invalid - is invalid - 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)) - within a sequence - with values which can be unified - is expected to match code s(:int, 5), :+, and s(:int, 5) - 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 - literals - bare literal - on a matching literal - is expected to match code :bar - on a node - behaves like nonmatching - doesn't match - negative integer literals - is expected to match code -100 - negative float literals - is expected to match code -2.5 - positive float literals - is expected to match code 1.0 - double quoted string literals - is expected to match code "foo" - single quoted string literals - is expected to match code "foo" - symbol literals - is expected to match code :foo - caret (ascend) - 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 - inside a union - is expected to match code "abc" - inside an intersection - is expected to match code 1 - using unification to match self within parent - with self in the right position - is expected to match code 2 - with self in the wrong position - behaves like nonmatching - doesn't match - repeated twice - 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 - ellipsis - 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 nested sequence at the end, but no remaining child - behaves like nonmatching - doesn't match - with a nodetype at the end, but no remaining child to match it + descend + 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 + 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 - at the very beginning of a sequence - is expected to match code s(:int, 10), :*, and s(:int, 1) - preceding a capture + 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 + 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 - preceding multiple captures + captures within union + 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 + 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 a different number of captures in each branch + behaves like invalid + is invalid + 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 - with a wildcard at the end, but no remaining child to match it + predicates + applied to an integer for which the predicate is false behaves like nonmatching doesn't match - 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 - when nested in complex ways - with (send str :<< str) - behaves like nonmatching - doesn't match - 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) - on a sequence - with a matching node - behaves like nonmatching - doesn't match - 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) - 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 + at head position of a sequence + is expected to match code s(:int, 1) and :inc + when negated + 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 - with a non-matching symbol - is expected to match code s(:send, nil, :obj) and :xyz - with a matching symbol + for which the predicate is true + is expected to match code s(:str, "c"), "a", and "d" + with an expression argument + for which the predicate is false behaves like nonmatching doesn't match - on a set - with a matching value + 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 - with a non-matching value - is expected to match code :@a and s(:int, 3) - captures which also perform a match - 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 - when nested - 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 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 [] + 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 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 - on a set - behaves like single capture - yields captured value(s) and returns true if there is a block - returns captured values if there is no block - macros - with a pattern with a constant - is expected to match code :hello - when the value is not in the set + 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} + for which the predicate is false behaves like nonmatching doesn't match - with a pattern with captures + with extra arguments + raises an error + when in last-child position, but all children have already been matched + 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 + applied to an integer for which the predicate is true + is expected to match code s(:int, 1) and :inc + macros + 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 + when called on matching code + is expected to match code nil, :foo, s(:sym, :hello), and s(:sym, :world) + when it errors + raises an error with the right location without a predicate name when it errors raises an error with the right location - 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 called on non-matching code returns an enumerator yielding nothing + 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 it errors - raises an error with the right location when called on matching code - is expected to eq :hello - with a pattern without captures - def_node_matcher - returns the method name + is expected to match code :hello when it errors raises an error with the right location + 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 with captures + def_node_matcher when called on matching code - is expected to match code :hello + is expected to eq :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 without a predicate name when called on matching code - returns an enumerator yielding the matches - when called on non-matching code - returns an enumerator yielding nothing + 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 - with a predicate name when called on non-matching code - behaves like nonmatching - doesn't match + returns an enumerator yielding nothing + 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) - with a pattern with a namespaced call - is expected to match code :hello - when the value is not in the set + when called on non-matching code + behaves like nonmatching + doesn't match + negation + on a sequence + 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 + with a node of different type + is expected to match code :@@a and s(:int, 1) + on a set + with a non-matching value + is expected to match code :@a and s(:int, 3) + with a matching value + behaves like nonmatching + doesn't match + 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 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 str :<< str) + behaves like nonmatching + doesn't match + 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) + on a symbol + with a matching symbol + behaves like nonmatching + doesn't match + 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 + bad syntax + with empty intersection + behaves like invalid + is invalid + with empty parentheses + behaves like invalid + is invalid + with leading comma in arg list + behaves like invalid + is invalid + with unmatched closing curly + behaves like invalid + is invalid + with negated ellipsis + behaves like invalid + is invalid + with empty union subsequence in seq head + behaves like invalid + is invalid + with unsupported subsequence in seq head within union + behaves like invalid + is invalid + with unmatched opening paren + behaves like invalid + is invalid + with empty union + behaves like invalid + is invalid + with unmatched opening paren and `...` + behaves like invalid + is invalid + with doubled comma in arg list + behaves like invalid + is invalid + with doubled ellipsis + is expected to match code "foo" + with negated closing paren + behaves like invalid + is invalid + with variadic unions where not supported + behaves like invalid + is invalid + with unmatched opening curly + behaves like invalid + is invalid + with negated closing curly + behaves like invalid + is invalid + with unmatched closing paren + behaves like invalid + is invalid + nil + nil value in AST, use nil? method + is expected to match code nil and :foo + nil literals + is expected to match code + nil value in AST + behaves like nonmatching + doesn't match + against a node pattern (bug #5470) + behaves like nonmatching + doesn't match simple sequence - 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 too many children + behaves like nonmatching + doesn't match on a node with the same type and non-matching children with non-matching receiver type behaves like nonmatching @@ -5776,391 +4339,296 @@ with non-matching selector behaves like nonmatching doesn't match - on a node with too many children - 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 + with a nested sequence in head position + behaves like invalid + is invalid 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) - with a nested sequence in head position - behaves like invalid - is invalid - node type - for a child - on a child with a different type + in any order + 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 + without ellipsis + with too few children behaves like nonmatching doesn't match - on a child litteral + 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 + with too many children behaves like nonmatching doesn't match - on a child with the same type - is expected to match code s(:send, nil, :foo) and :bar - in seq head - on a child with a different type + 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 + 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 + 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 - on a node with the same type - is expected to match code s(:ivar, :@ivar), :+, and s(:int, 2) + at the beginning of a sequence + 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 + containing ellipsis not at the end + behaves like invalid + is invalid + nested + behaves like invalid + is invalid + with a captured ellipsis + 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 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 + 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 + commas + with commas randomly strewn around + behaves like invalid + is invalid + bare node type + yaml compatibility + is expected to match code s(:send, nil, :obj) and :method + #dup + is expected to match code s(:send, nil, :obj) and :method + #to_s + is instructive + marshal compatibility + is expected to match code s(:send, nil, :obj) and :method + #pattern + returns the pattern + 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) + #== + returns true iff the patterns are similar + on a node with a different type + behaves like nonmatching + doesn't match sequence with trailing ... - on a node with non-matching children + on a node with fewer children, with a wildcard preceding 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 a different type + 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 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) - on a node with fewer children, with a wildcard preceding - behaves like nonmatching - doesn't match - on a node with the same type and fewer children + with 1 child more + is expected to match code s(:int, 1), :blah, and s(:int, 1) + on a node with a different type behaves like nonmatching doesn't match - captures on a wildcard - at the root level - behaves like single capture - returns captured values if there is no block + literals + symbol literals + is expected to match code :foo + double quoted string literals + is expected to match code "foo" + negative integer literals + is expected to match code -100 + bare literal + on a node + behaves like nonmatching + doesn't match + on a matching literal + is expected to match code :bar + single quoted string literals + is expected to match code "foo" + positive float literals + is expected to match code 1.0 + negative float literals + is expected to match code -2.5 + captures which also perform a match + when nested + behaves like multiple capture 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 - in head position in a sequence + 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 literal + behaves like single capture yields captured value(s) and returns true if there is a block - in non-head position in a sequence + 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 - in head position in a sequence against literal (bug #5470) - behaves like nonmatching - doesn't match - nested in any child - behaves like multiple capture + 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 - in a nested sequence + 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 - comments - behaves like single capture - yields captured value(s) and returns true if there is a block - returns captured values if there is no block - nil - against a node pattern (bug #5470) - behaves like nonmatching - doesn't match - nil literals - is expected to match code - nil value in AST - behaves like nonmatching - doesn't match - nil value in AST, use nil? method - is expected to match code nil and :foo - unions - variadic - multiple - works for complex cases - with variadic terms - works for cases with variadic terms before and after union - works for cases with fixed arity before and after union - works for cases with variadic terms after union - with fixed 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 string literals - is expected to match code s(:str, "a") and :upcase - containing integer literals - is expected to match code s(:int, 10) and :abs - 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 - containing mixed node and literals - is expected to match code nil and :obj - 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 - nested inside a sequence - is expected to match code s(:const, nil, :Const) and :method - with a nested sequence - is expected to match code s(:const, nil, :Const) and :method params - when negated, with a nonmatching value - is expected to match code s(:const, - s(:const, nil, :Namespace), :B) and :A - when negated, with a matching value - 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 - 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 + when preceded by ... + is expected to match code s(:send, + s(:int, 1), :+, + s(:int, 10)) and s(:int, 10) + when negated, with a matching value + behaves like nonmatching + doesn't match when inside a union, with a matching value is expected to match code s(:int, 10) and 10 - without explicit number - is expected to match code s(:const, - s(:const, nil, :Namespace), :A), :A, and s(:const, nil, :Namespace) 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 # + in a nested sequence + is expected to match code s(:send, + s(:send, + s(:int, 5), :dec), :inc), :inc, and :dec as named parameters when extra are provided raises an ArgumentError + when provided as argument to match + is expected to match code s(:int, 10) and {:foo=>#} when not provided raises an ArgumentError - when provided as argument to match - is expected to match code s(:int, 10) and {:foo=>#} - in a nested sequence - is expected to match code s(:send, - s(:send, - s(:int, 5), :dec), :inc), :inc, and :dec + when negated, with a nonmatching value + is expected to match code s(:const, + s(:const, nil, :Namespace), :B) and :A 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 - in a position which matches original target node - is expected to match code 1 + 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 + 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 # + 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 preceded by ... - is expected to match code s(:send, - s(:int, 1), :+, - s(:int, 10)) and s(:int, 10) - descend - with a match multiple levels, depth first + captures on a wildcard + 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 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)) - with an immediate match + in head position in a sequence against nil (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 - nested + yields captured value(s) and returns true if there is a 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 - without match + in head position in a sequence against literal (bug #5470) behaves like nonmatching doesn't match - repeated - using ? - 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 - behaves like repeated pattern - 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]" - 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 - with too many matching children + 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 + node type + for a child + on a child litteral behaves like nonmatching doesn't match - using * - without capture - is expected to match code s(:sym, :hello), s(:int, 1), s(:int, 2), and s(:int, 3) - 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 - 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 + on a child with a different type 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]" - 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 - 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]" - at beginning of sequence - behaves like invalid - is invalid - 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 - 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 - with zero match + on a child with the same type + is expected to match code s(:send, nil, :foo) and :bar + in seq head + on a child with a different type behaves like nonmatching doesn't match - captures within union - 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 + on a node with the same type + is expected to match code s(:ivar, :@ivar), :+, and s(:int, 2) + captures on ... + 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 - with a different number of captures in each branch - behaves like invalid - is invalid - within nested sequences - behaves like multiple capture - yields captured value(s) and returns true if there is a block - returns captured values if there is no block - bare node type - on a node with the same type - is expected to match code s(:send, nil, :obj) and :method - yaml compatibility - is expected to match code s(:send, nil, :obj) and :method - on a node with a different type - behaves like nonmatching - doesn't match - marshal compatibility - is expected to match code s(:send, nil, :obj) and :method - #to_s - is instructive - #dup - is expected to match code s(:send, nil, :obj) and :method - #== - returns true iff the patterns are similar - on a node with a matching, hyphenated type - is expected to match code s(:lvasgn, :a), :+, and s(:int, 1) - #pattern - returns the pattern - regexp - matches symbols or strings - bad syntax - with negated closing curly - behaves like invalid - is invalid - with unmatched closing paren - behaves like invalid - is invalid - with empty union - behaves like invalid - is invalid - with unmatched closing curly - behaves like invalid - is invalid - with unmatched opening paren and `...` - behaves like invalid - is invalid - with empty union subsequence in seq head - behaves like invalid - is invalid - with doubled ellipsis - is expected to match code "foo" - with unmatched opening curly - behaves like invalid - is invalid - with empty parentheses - behaves like invalid - is invalid - with empty intersection - behaves like invalid - is invalid - with variadic unions where not supported - behaves like invalid - is invalid - with negated closing paren - behaves like invalid - is invalid - with leading comma in arg list - behaves like invalid - is invalid - with unsupported subsequence in seq head within union - behaves like invalid - is invalid - with negated ellipsis - behaves like invalid - is invalid - with doubled comma in arg list - behaves like invalid - is invalid - with unmatched opening paren - behaves like invalid - is invalid - captures on ... 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 sequence 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 no remaining pattern at the end + behaves like single capture returns captured values if there is no block - with a remaining node type at the end + 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 + 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 - with a remaining wildcard at the end + 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 [] at the end + at the very beginning of 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 - with a remaining set at the end + 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 @@ -6168,313 +4636,1881 @@ 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 very beginning of a sequence + with a remaining [] 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 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 remaining patterns at the end + caret (ascend) + inside a union + is expected to match code "abc" + used with a node type + which matches + is expected to match code 1 + which doesn't match + behaves like nonmatching + doesn't match + inside an intersection + is expected to match code 1 + repeated twice + is expected to match code 1 + 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 + 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" + .descend + yields all children depth first + yields the given argument if it is not a Node + 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 + ellipsis + 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 set at the end, but no remaining child to match it + behaves like nonmatching + doesn't match + with a nested sequence at the end, but no remaining child + 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) + preceding multiple captures + behaves like multiple capture returns captured values if there is no block - in any order - doubled - 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 - separated by an 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 all children + 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 nodetype at the end, but no remaining child to match it + 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 + repeated + using ? + with too many matching children + behaves like nonmatching + doesn't match + behaves like repeated pattern + 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 an ellipsis in the same sequence + is expected to match code "[:hello, 1, 2, 3]" + 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 - matching non sequential children + using + + with zero match + behaves like nonmatching + doesn't match + 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 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 - 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 matching children - behaves like multiple capture + using * + 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 too few children - behaves like nonmatching - doesn't match - with too many children - behaves like nonmatching - doesn't match - captured - without ellipsis - behaves like single capture + 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 + 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 - invalid - with an ellipsis inside and outside + 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 - nested - behaves like invalid - is invalid - doubled with ellipsis in wrong order - behaves like nonmatching - doesn't match - 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 + without capture + is expected to match code s(:sym, :hello), s(:int, 1), s(:int, 2), and s(:int, 3) + 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 - 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 - .descend - yields the given argument if it is not a Node - yields all children depth first - predicates - 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) - 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 true - is expected to match code s(:int, 2), :+, and s(:float, 2.0) - 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 - applied to an integer for which the predicate is false - behaves like nonmatching - doesn't match - when negated - is expected to match code s(:int, 1) and :inc - 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 - when in last-child position, but all children have already been matched - 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 - with a named argument - for which the predicate is false + with no match behaves like nonmatching doesn't match - 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 - with multiple arguments - for which the predicate is false + unions + at the top level + 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 + containing string literals + is expected to match code s(:str, "a") and :upcase + containing mixed node and literals + is expected to match code nil and :obj + containing multiple [] + on a node which meets all requirements of the second [] + is expected to match code 2.4 + on a node which meets all requirements of the first [] + is expected to match code 3 + 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 + nested inside a sequence + is expected to match code s(:const, nil, :Const) and :method + with a nested sequence + is expected to match code s(:const, nil, :Const) and :method + variadic + multiple + works for complex cases + 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 + with fixed 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 + wildcards + 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 - for which the predicate is true - is expected to match code s(:str, "c"), "a", and "d" - commas - with commas randomly strewn around - behaves like invalid - is invalid - funcalls - with one argument - is expected to match code s(:str, "foo") and "foo" - 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" + 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 + 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 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 + confined to the union + with partial unification + matching the unified branch + is expected to match code s(:int, 5) and s(:int, 5) + 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) + without unification + is expected to match code s(:int, 2) and s(:int, 1) + with a preceding unifying constraint + matching a branch + is expected to match code s(:int, 2) and s(:array, + s(:int, 2), + s(:int, 1)) + that can not be unified + behaves like nonmatching + doesn't match + with a succeeding unifying constraint + with all branches with the wildcard + matching the first branch + is expected to match code s(:array, + s(:int, 1), + s(:int, 2)) and s(:int, 2) + 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) + with branches without the wildcard + encountered after + behaves like invalid + is invalid + encountered first + behaves like invalid + is invalid + within a sequence + 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) + with values which cannot be unified + behaves like nonmatching + doesn't match + regexp + matches symbols or strings -RuboCop::AST::AndNode - #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 - #rhs - with a semantic and node - is expected to be int type - with a logical and node - is expected to be int type +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 + #last_argument + with no arguments + is expected to be nil + with a single literal argument + is expected to be sym type + 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 + #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 + #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 + with a prefixed def modifier + is expected to be def modifier + #splat_argument? + with regular arguments + is expected not to be 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 + #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 + #nonmutating_operator_method? + with a nonmutating binary 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 unary operator method + is expected to be nonmutating operator method + with a regular method + is expected not to be nonmutating operator method + #block_node + with Ruby >= 2.7 + with a numblock literal + is expected to be numblock type + with no block + is expected to be nil + with a block literal + is expected to be block type + with a block argument + is expected to be nil + #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 + #arguments + with a single splat argument + is expected to eq 1 + with a single literal 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 + #lambda? + with a stabby lambda method + is expected to be lambda + with a non-lambda method + is expected not 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 + #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 unary operator method + is expected to be operator method + with a binary operator method + is expected to be operator method + #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 + with an operator method + is expected not to be setter 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 + #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 + with suffix `not` + is expected not to be negation method + .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 + #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 + #block_literal? + with no block + is expected not to be block literal + with a block literal + is expected to be block literal + with Ruby >= 2.7 + with a numblock literal + is expected to be block literal + with a block argument + is expected not to be block literal + #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 + #method_name + with an operator method + is expected to eq :== + with a plain method + is expected to eq :bar + with a setter method + is expected to eq :bar= + with an implicit call method + is expected to eq :call + #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 + #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" + #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 + #prefix_bang? + with a bang method + is expected to be prefix bang + with keyword `not` + is expected not to be prefix bang + with a non-negated method + is expected not to be prefix bang + #first_argument + with multiple mixed arguments + 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 a single splat argument + is expected to be splat type + with a single literal argument + is expected to be sym type + #arguments? + with a single splat argument + is expected to be arguments + with multiple literal arguments + 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 mixed arguments + is expected to be arguments + #enumerable_method? + with an enumerable method + is expected to be enumerable method + with a regular method + is expected not to be enumerable method + #unary_operation? + with a binary operation + 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 regular method call + is expected not to be unary operation + #prefix_not? + with keyword `not` + is expected to be prefix not + with a bang method + is expected not to be prefix not + with a non-negated method + is expected not to be prefix not + #def_modifier + with call with no argument + is expected to be nil + with several prefixed def modifiers + is expected to eq :qux + with a block containing a method definition + is expected to be nil + with a prefixed def modifier + is expected to eq :bar + #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 + #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 + #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 + without a receiver + when parent is a begin without a parent + is expected to be macro + without a parent + is expected to be macro + when parent is a keyword begin inside of an class + is expected to be macro + when parent is a struct constructor + is expected to be macro + when parent is a module + 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 singleton class + is expected to be macro + when parent is a class + is expected to be macro + when in the global scope + is expected to be macro + when in an if + is expected to be macro + when the condition of an if + is expected not to be macro + when parent is a block in a macro scope + is expected to be macro + when parent is a method definition + is expected not 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 + #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" + #self_receiver? + with a self receiver + is expected to be self receiver + with an implicit receiver + is expected not to be self receiver + with a non-self receiver + is expected not to be self receiver + #predicate_method? + with a regular method + is expected not to be predicate method + with a predicate method + is expected to be predicate method + with a bang method + is expected not to be predicate method + #const_receiver? + with a constant receiver + is expected to be 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 + #assignment_method? + with a regular method + is expected not to be 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 comparison method + is expected not to be assignment method + #bang_method? + with a predicate method + is expected not to be bang method + with a regular method + is expected not to be bang method + with a bang method + is expected to be bang method + #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 + with a double colon + is expected not to be dot + #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? + when node has an argument + is expected not to be bare access modifier + when node is a bare `module_function` + is expected to be 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 is not an access modifier + is expected not to be bare access modifier + #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 + with a nonmutating binary operator method + is expected to be nonmutating binary operator method + #double_colon? + without a dot + is expected not to be double colon + with a unary method + is expected not to be double colon + with a dot + is expected not to be double colon + with a double colon + is expected to be double colon + #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 + #attribute_accessor? + with an accessor + returns the accessor method and Array] + with a call without arguments + is expected to be nil + #loop_keyword? + is expected not to be loop keyword + #post_condition_loop? + is expected not to be post condition loop + #comparison_method? + with a negation method + is expected not to be comparison method + with a regular method + is expected not to be comparison method + with a comparison method + is expected to be comparison method + #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 + #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 binary operation + is expected to be binary operation + with a regular method call + is expected not to be binary operation + +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 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 + with delimiters + with a block + is expected to equal false + with a method definition + is expected to equal false + with a lambda literal + is expected to equal false + with arguments + with a lambda literal + is expected to equal false + with a method definition + is expected to equal false + .new + with a lambda literal + 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 method definition + is expected to be a kind of RuboCop::AST::ArgsNode + +RuboCop::AST::BlockNode + .new + is expected to be a kind of RuboCop::AST::BlockNode + #closing_delimiter + when enclosed in do-end keywords + is expected to eq "end" + when enclosed in braces + is expected to eq "}" + #braces? + when enclosed in braces + is expected to be braces + when enclosed in do-end keywords + is expected not to be braces + #delimiters + when enclosed in braces + is expected to eq ["{", "}"] + when enclosed in do-end keywords + is expected to eq ["do", "end"] + #argument_list + all argument types + is expected to eq [:a, :b, :c, :d, :e, :f, :g, :h, :i] + with no arguments + is expected to be empty + >= 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] + #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 tap + is expected to be 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 + #keywords? + when enclosed in braces + is expected not to be keywords + when enclosed in do-end keywords + is expected to be keywords + #receiver + with dot operator call + is expected to eq "foo" + with safe navigation operator call + is expected to eq "foo" + #arguments? + with no arguments + is expected not to be arguments + with a single argument + 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 destructuring arguments + is expected to be arguments + with multiple mixed arguments + is expected to be arguments + #single_line? + when block is on several lines + is expected not to be single line + when block is on a single line + is expected to be single line + #arguments + with destructured arguments + is expected to eq 2 + with no arguments + is expected to be empty + with multiple mixed arguments + is expected to eq 2 + >= Ruby 2.7 + using numbered parameters + is expected to be empty + with a single splat argument + is expected to eq 1 + with a single literal argument + is expected to eq 1 + #lambda? + when block belongs to a stabby 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 method lambda + is expected to be lambda + #opening_delimiter + when enclosed in braces + is expected to eq "{" + when enclosed in do-end keywords + is expected to eq "do" + +RuboCop::AST::IntNode + #sign? + explicit negative int + is expected to be sign + explicit positive int + is expected to be sign + #value + is expected to eq 10 + .new + is expected to be a kind of RuboCop::AST::IntNode + +Set#=== + tests for inclusion + +Changelog + merges correctly + parses correctly + Changelog::Entry + generates correct content + +RuboCop::AST::ForwardArgsNode + when using Ruby 2.7 or newer + #to_a + is expected to contain exactly (be forward arg type) + +RuboCop::AST::OrAsgnNode + #name + is expected to eq :var #operator - with a logical and node - is expected to eq "&&" - with a semantic and node - is expected to eq "and" - #alternate_operator - with a logical and node - is expected to eq "and" - with a semantic and node - is expected to eq "&&" + is expected to eq :"||" .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 - #inverse_operator - with a logical and node - is expected to eq "||" - with a semantic and node - is expected to eq "or" - #lhs - with a logical and node + is expected to be a kind of RuboCop::AST::OrAsgnNode + #expression + is expected to eq s(:send, nil, :value) + #assignment_node + is expected to be a kind of RuboCop::AST::AsgnNode + +RuboCop::AST::CasgnNode + #namespace + when the parent is a `const` + is expected to eq s(:const, nil, :FOO) + when the parent is a `cbase` + is expected to eq s(:cbase) + when there is no parent + is expected to be nil + .new + with a `casgn` node + is expected to be a kind of RuboCop::AST::CasgnNode + #expression + is expected to eq s(:send, nil, :value) + #name + is expected to eq :VAR + +RuboCop::AST::ClassNode + .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 + #identifier + is expected to be const type + #body + with a single expression body + is expected to be send type + with a multi-expression body + is expected to be begin type + with an empty body + is expected to be nil + +RuboCop::AST::ArgNode + #default_value + with argument forwarding + with Ruby >= 2.7 + is expected to be nil + with Ruby >= 3.0 + is expected to be nil + with an optional argument + is expected to eq s(:int, 42) + with an optional keyword argument + is expected to eq s(:int, 42) + with a splatted argument + is expected to be nil + with a block argument + is expected to be nil + with a shadow argument + is expected to be nil + with a double splatted argument + is expected to be nil + with a block + is expected to be nil + with a regular argument + is expected to be nil + #name + with a nameless double splatted argument + is expected to be nil + with a double splatted argument + is expected to eq :x + with an optional keyword argument + is expected to eq :x + with a nameless splatted argument + is expected to be nil + with a keyword argument + is expected to eq :x + with a shadow argument + is expected to eq :x + with a block argument + is expected to eq :x + with a splatted argument + is expected to eq :x + with a regular 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 block + is expected to eq :x + with an optional argument + is expected to eq :x + .new + with a keyword 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 a block 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 argument forwarding + with Ruby >= 3.0 + is expected to be a kind of RuboCop::AST::ArgNode + with Ruby >= 2.7 + 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 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 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 an optional argument + is expected to be a kind of RuboCop::AST::ArgNode + #default? + with an optional argument + is expected to equal true + with a splatted argument + is expected to equal false + with an optional keyword argument + is expected to equal true + with a block 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 + with a block + is expected to equal false + with a regular argument + is expected to equal false + with a shadow argument + is expected to equal false + +RuboCop::AST::SuperNode + #setter_method? + is expected not to be setter method + #dot? + is expected not to be dot + #predicate_method? + is expected not to be predicate method + #method_name + is expected to eq :super + #receiver + is expected to be nil + #bang_method? + is expected not to be bang method + #macro? + is expected not to be macro + #first_argument + with multiple literal arguments is expected to be sym type - with a semantic and node + with a single literal argument is expected to be sym 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 + 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 + #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 + #operator_method? + is expected not to be operator method + #const_receiver? + is expected not to be const receiver + #comparison_method? + is expected not to be comparison method + #last_argument + 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 + with a single splat argument + is expected to be splat type + #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 + #self_receiver? + is expected not to be self receiver + #assignment_method? + is expected not to be assignment method + #arguments? + with multiple literal arguments + is expected to be arguments + with no arguments + is expected not to be arguments + with multiple mixed arguments + is expected to be arguments + with a single splat argument + is expected to be arguments + with a single literal argument + is expected to be arguments + #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 + #arguments + with multiple mixed arguments + is expected to eq 2 + with no arguments + is expected to be empty + with multiple literal arguments + is expected to eq 2 + with a single literal argument + is expected to eq 1 + with a single splat argument + is expected to eq 1 + #block_node + with a block argument + is expected to be nil + with a block literal + is expected to be block type + with no block + is expected to be nil + #implicit_call? + is expected not to be implicit call + #double_colon? + is expected not to be double colon + #camel_case_method? + is expected not to be camel case method + #block_argument? + with a block argument + is expected to be 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 + #command? + when argument is a symbol + is expected to be command :super + when argument is a string + is expected to be command "super" + #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 using parentheses + is expected to be parenthesized + when not using parentheses + is expected not to be parenthesized + .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 RuboCop::AST::Token + #space_after + returns nil when there is not a space after token + returns truthy MatchData when there is a space after 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 + .from_parser_token + sets parser token's text to rubocop token's text + sets parser token's range to rubocop token's pos + returns a #to_s useful for debugging + sets parser token's type to rubocop token's type + #begin_pos + returns index of first char in token range of entire source + #to_s + returns string of token data + #end_pos + returns index of last char in token range of entire source + #line + returns line of token type predicates - #left_brace? - returns true for right_bracket tokens - returns false for non right_bracket tokens - #dot? - returns false for non dot tokens - returns true for dot tokens - with braces & parens - #left_curly_brace? - returns false for non left block brace tokens - returns true for left block brace tokens - #right_curly_brace? - returns true for all right brace tokens - returns false for non right brace tokens - #left_brace? - returns true for left hash brace tokens - returns false for non left hash brace tokens - #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 + #left_ref_bracket? + returns true for left_ref_bracket tokens + returns false for non left_ref_bracket tokens + #new_line? + returns true for new line tokens + returns false for non new line tokens #right_bracket? - returns false for non right_bracket tokens returns true for all right_bracket tokens + returns false for non right_bracket tokens #semicolon? returns false for non semicolon tokens returns true for semicolon tokens - #end? - returns true for end tokens - returns false for non end tokens - #new_line? - returns false for non new line tokens - returns true for new line tokens - #comment? - returns false for non comment tokens - returns true for comment tokens - #regexp_dots? - returns true for regexp tokens - returns false for non comma tokens - #left_ref_bracket? - returns true for left_ref_bracket tokens - returns false for non left_ref_bracket tokens #comma? - returns false for non comma tokens returns true for comma tokens + returns false for non comma tokens #left_bracket? returns true for all left_bracket tokens returns false for non left_bracket tokens - #rescue_modifier? - returns false for non rescue modifier tokens - returns true for rescue modifier tokens #left_array_bracket? returns false for non left_array_bracket tokens returns true for left_array_bracket tokens + #comment? + returns false for non comment tokens + returns true for comment tokens #equals_sign? returns false for non equals sign tokens returns true for equals sign tokens - #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 - #line - returns line of token + #regexp_dots? + returns true for regexp tokens + returns false for non comma tokens + #end? + returns true for end tokens + returns false for non end tokens + #rescue_modifier? + returns true for rescue modifier tokens + returns false for non rescue modifier tokens + with braces & parens + #right_curly_brace? + returns true for all right brace tokens + returns false for non right brace tokens + #left_curly_brace? + returns false for non left block brace tokens + returns true for left block brace tokens + #left_brace? + returns true for left hash brace tokens + returns false for non left hash brace tokens + #right_parens? + returns false for non right parens tokens + returns true for right parens tokens + #left_parens? + returns true for left parens tokens + returns false for non left parens tokens + #left_brace? + returns true for right_bracket tokens + returns false for non right_bracket tokens + #dot? + returns false for non dot tokens + returns true for dot tokens #column returns index of first char in token range on that line - #space_before - returns nil when there is not a space before token - returns nil when it is on the first line - returns truthy MatchData when there is a space before token - #to_s - returns string of token data - #end_pos - returns index of last char in token range of entire source - .from_parser_token - sets parser token's type to rubocop token's type - returns a #to_s useful for debugging - sets parser token's text to rubocop token's text - sets parser token's range to rubocop token's pos -RuboCop::AST::OpAsgnNode - #expression - is expected to eq s(:send, nil, :value) - #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 :% +RuboCop::AST::ConstNode + #namespace + is expected to eq "::Foo::Bar" + #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 + #relative? + with a non-namespaced constant + is expected to be relative + #short_name + is expected to eq :BAZ + #each_path + yields all parts of the namespace + +RuboCop::AST::ArrayNode + #percent_literal? + with a string percent literal + is expected not to be percent literal :symbol + is expected 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 + with a symbol percent literal + is expected to be percent literal :symbol + is expected to be percent literal + is expected not to be percent literal :string + #square_brackets? + with a percent literal + is expected not to be square brackets + with square brackets + is expected to be square brackets + #values + 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 eq 3 + is expected to all be literal + with an empty array + is expected to be empty .new - with an `op_asgn_node` node - is expected to be a kind of RuboCop::AST::OpAsgnNode + is expected to be a kind of RuboCop::AST::ArrayNode + #bracketed? + with a percent literal + is expected to be bracketed + with square brackets + is expected to be bracketed + unbracketed + is expected to be nil + #each_value + with block + is expected to be a kind of RuboCop::AST::ArrayNode + is expected to eq ["(int 1)", "(int 2)", "(int 3)"] + without block + is expected to be a kind of Enumerator + +RuboCop::AST::HashNode + #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 + #pairs + with a hash of variables + is expected to all be pair type + is expected to eq 2 + with an empty hash + is expected to be empty + with a hash of literals + is expected to eq 3 + is expected to all be pair type + #each_key + when passed a block + yields all the pairs + when not passed a block + is expected to be a kind of Enumerator + #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 + #mixed_delimiters? + when all pairs are using a colon delimiter + is expected not to be mixed delimiters + when all pairs are using a hash rocket delimiter + is expected not to be mixed delimiters + when pairs are using different delimiters + is expected to be mixed delimiters + #each_value + when not passed a block + is expected to be a kind of Enumerator + when passed a block + yields all the pairs + .new + is expected to be a kind of RuboCop::AST::HashNode + #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 eq 2 + is expected to all be str type + 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 + #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 + #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 + +RuboCop::AST::PairNode + #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 + #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 + #key + when using a symbol key + is expected to be sym type + when using a string key + is expected to be str type + #value_delta + when using colon delimiters + 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 behind + is expected to eq -2 + when receiver value is ahead + is expected to eq 2 + when using hash rocket delimiters + 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 both pairs are on the same line + 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 ":" + #value + is expected to be int type + #key_delta + with alignment set to :right + when using hash rocket delimiters + 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 + 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 second key is a keyword splat + is expected to eq 0 + when both keys are explicit keys + is expected to eq 0 + when using colon 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 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 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 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 :left + when using colon delimiters + 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 both pairs are explicit pairs + is expected to eq 0 + 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 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 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 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 second pair is a keyword splat + is expected to eq -2 + when both pairs are explicit pairs + is expected to eq -2 + 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 + #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 " => " + #colon? + when using a hash rocket delimiter + is expected not to be colon + when using a colon delimiter + is expected to be colon + #hash_rocket? + when using a colon delimiter + is expected not to be hash rocket + when using a hash rocket delimiter + is expected to be hash rocket + #same_line? + when a multiline pair shares the same line + 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)) + 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 pairs are on separate lines + when both pairs are explicit pairs + is expected not to be same line s(:pair, + s(:sym, :b), + s(:int, 2)) + when last pair is a keyword splat + is expected not to be same line s(:kwsplat, + s(:send, nil, :foo)) + 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)) + +RuboCop::AST::AsgnNode + #expression + with a `cvasgn` node + is expected to eq s(:send, nil, :value) + with a `ivasgn` node + is expected to eq s(:send, nil, :value) + with a `gvasgn` node + is expected to eq s(:send, nil, :value) + with a `lvasgn` node + 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 + with a `lvasgn` node + is expected to eq :var + with a `ivasgn` node + is expected to eq :@var + with a `gvasgn` node + is expected to eq :$var + with a `cvasgn` node + is expected to eq :@@var + .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 `cvasgn` 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 + +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 + #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 + .new + is expected to be a kind of RuboCop::AST::RescueNode + +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::NodePattern::Parser + sequences + parses function calls + parses capture vs repetition with correct priority + generates specialized nodes + parses unions of literals as a set + expands ... in sequence head deep inside unions + parses simple sequences properly + +RuboCop::AST::RegexpNode + #fixed_encoding? + with no options + is expected not 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 u and other options + is expected to be fixed encoding + #single_interpolation? + with o and other options + is expected to be single interpolation + with no options + is expected not to be single interpolation + with other options + is expected not to be single interpolation + with only o option + is expected to be single interpolation + #delimiters + with %r/-delimiters + is expected to eq ["/", "/"] + 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 ["/", "/"] + #options + with a regexp with multiple options + is expected to eq 3 + with a regexp with "o" option + is expected to eq 0 + 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 + .new + is expected to be a kind of RuboCop::AST::RegexpNode + #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 + with %r/-delimiters + is expected to be percent r literal + #delimiter? + with multi-line %r{-delimiters + 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 "r" + is expected to be delimiter "{" + is expected not to be delimiter "%r/" + is expected not to be delimiter "/" + with /-delimiters + is expected not to be delimiter "{" + is expected to be delimiter "/" + with %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 %r/-delimiters + 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 not to be delimiter "r" + is expected not to be delimiter "%" + with %r<-delimiters + is expected 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 "{" + 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/" + #content + with an empty regexp + is expected to eq "" + with a regexp without option + is expected to eq ".+" + with a multi-line regexp with option + is expected to eq "\n.+\n" + with a regexp with option + 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" + #ignore_case? + with other options + is expected not to be ignore case + with only i option + is expected to be ignore case + with i and other options + is expected to be ignore case + with no options + is expected not to be ignore case + #interpolation? + with regexp quote + is expected to be interpolation + with no interpolation returns false + is expected not to be interpolation + with direct variable interpoation + is expected to be interpolation + #regopt + with an empty regexp + is expected to be regopt type + is expected to be empty + with a regexp without option + 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 with option + is expected to be regopt type + is expected to eq [:i, :m, :x] + with a multi-line regexp with option + is expected to be regopt type + is expected to eq [:i, :m, :x] + #no_encoding? + with no options + is expected not to be no encoding + with other 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 + #slash_literal? + with multi-line %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 %r/-delimiters + is expected not to be slash literal + #to_regexp + with a regexp with option + is expected to eq /.+/mix + with a multi-line regexp with option + is expected to eq / +.+ +/ix + with a regexp without option + is expected to eq /.+/ + with a multi-line regexp without option + is expected to eq / +.+ +/ + with a regexp with an "n" option + is expected to eq "/abc/n" + with an empty regexp + is expected to eq // + with a regexp with an "u" option + is expected to eq "/abc/" + with an empty regexp with option + is expected to eq //ix + with a regexp with an "o" option + is expected to eq "/abc/i" + #extended? + with only x option + is expected to be extended + with x and other options + is expected to be extended + with other options + is expected not to be extended + with no options + is expected not to be extended + #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 + +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 + .new + is expected to be a kind of RuboCop::AST::CaseMatchNode + #each_in_pattern + when not passed a block + is expected to be a kind of Enumerator + when passed a block + yields all the conditions + #keyword + is expected to eq "case" + #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 + #else? + without an else statement + is expected not to be else + with an else statement + is expected to be else + #in_pattern_branches + is expected to all be in pattern type + is expected to eq 3 -Finished in 3.44 seconds (files took 1.2 seconds to load) +Finished in 5.47 seconds (files took 5.02 seconds to load) 2392 examples, 0 failures -Randomized with seed 17249 +Randomized with seed 62692 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -6509,12 +6545,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/661964/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/661964/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/1783005 and its subdirectories -I: Current time: Thu Aug 7 03:19:16 -12 2025 -I: pbuilder-time-stamp: 1754579956 +I: removing directory /srv/workspace/pbuilder/661964 and its subdirectories +I: Current time: Thu Sep 10 11:44:16 +14 2026 +I: pbuilder-time-stamp: 1788990256 Compressing the 2nd log... /var/lib/jenkins/userContent/reproducible/debian/logdiffs/trixie/amd64/ruby-rubocop-ast_1.24.0-2.diff: 86.2% -- replaced with /var/lib/jenkins/userContent/reproducible/debian/logdiffs/trixie/amd64/ruby-rubocop-ast_1.24.0-2.diff.gz b2/build.log: 85.6% -- replaced with stdout Compressing the 1st log... b1/build.log: 85.9% -- replaced with stdout Thu Aug 7 15:21:22 UTC 2025 I: diffoscope 303 will be used to compare the two builds: ++ date -u +%s + DIFFOSCOPE_STAMP=/var/log/reproducible-builds/diffoscope_stamp_ruby-rubocop-ast_trixie_amd64_1754580082 + touch /var/log/reproducible-builds/diffoscope_stamp_ruby-rubocop-ast_trixie_amd64_1754580082 + RESULT=0 + systemd-run '--description=diffoscope on ruby-rubocop-ast/1.24.0-2 in trixie/amd64' --slice=rb-build-diffoscope.slice -u rb-diffoscope-amd64_27-66427 '--property=SuccessExitStatus=1 124' --user --send-sighup --pipe --wait -E TMPDIR timeout 155m nice schroot --directory /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh --run-session -c jenkins-reproducible-trixie-diffoscope-39ca2e3f-82d5-44ca-891e-c017fb930e31 -- sh -c 'export TMPDIR=/srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/dbd-tmp-3Ouaa7W ; timeout 150m diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/ruby-rubocop-ast_1.24.0-2.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/ruby-rubocop-ast_1.24.0-2.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/ruby-rubocop-ast_1.24.0-2.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b1/ruby-rubocop-ast_1.24.0-2_amd64.changes /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b2/ruby-rubocop-ast_1.24.0-2_amd64.changes' + false + set +x Running as unit: rb-diffoscope-amd64_27-66427.service # Profiling output for: /usr/bin/diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/ruby-rubocop-ast_1.24.0-2.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/ruby-rubocop-ast_1.24.0-2.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/ruby-rubocop-ast_1.24.0-2.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b1/ruby-rubocop-ast_1.24.0-2_amd64.changes /srv/reproducible-results/rbuild-debian/r-b-build.GsxMnpIh/b2/ruby-rubocop-ast_1.24.0-2_amd64.changes ## command (total time: 0.000s) 0.000s 1 call cmp (internal) ## has_same_content_as (total time: 0.000s) 0.000s 1 call diffoscope.comparators.binary.FilesystemFile ## main (total time: 0.003s) 0.003s 2 calls outputs 0.000s 1 call cleanup Finished with result: success Main processes terminated with: code=exited/status=0 Service runtime: 160ms CPU time consumed: 162ms _ _ _ __ _ _| |__ _ _ _ __ _ _| |__ ___ ___ ___ _ __ | '__| | | | '_ \| | | |_____| '__| | | | '_ \ / _ \ / __/ _ \| '_ \ _____ | | | |_| | |_) | |_| |_____| | | |_| | |_) | (_) | (_| (_) | |_) |_____| |_| \__,_|_.__/ \__, | |_| \__,_|_.__/ \___/ \___\___/| .__/ |___/ |_| _ __ _ ___| |_ / _` / __| __| | (_| \__ \ |_ \__,_|___/\__| Thu Aug 7 15:21:22 UTC 2025 I: diffoscope 303 found no differences in the changes files, and a .buildinfo file also exists. Thu Aug 7 15:21:22 UTC 2025 I: ruby-rubocop-ast from trixie built successfully and reproducibly on amd64. INSERT 0 1 INSERT 0 1 DELETE 1 [2025-08-07 15:21:23] INFO: Starting at 2025-08-07 15:21:23.026207 [2025-08-07 15:21:23] INFO: Generating the pages of 1 package(s) [2025-08-07 15:21:23] CRITICAL: https://tests.reproducible-builds.org/debian/trixie/amd64/ruby-rubocop-ast didn't produce a buildlog, even though it has been built. [2025-08-07 15:21:23] INFO: Finished at 2025-08-07 15:21:23.268682, took: 0:00:00.242480 Thu Aug 7 15:21:23 UTC 2025 - successfully updated the database and updated https://tests.reproducible-builds.org/debian/rb-pkg/trixie/amd64/ruby-rubocop-ast.html Thu Aug 7 15:21:23 UTC 2025 I: Removing signed ruby-rubocop-ast_1.24.0-2_amd64.buildinfo.asc files: removed './b1/ruby-rubocop-ast_1.24.0-2_amd64.buildinfo.asc' removed './b2/ruby-rubocop-ast_1.24.0-2_amd64.buildinfo.asc' 1754580083 amd64 trixie ruby-rubocop-ast Starting cleanup. /var/lib/jenkins/userContent/reproducible/debian/rbuild/trixie/amd64/ruby-rubocop-ast_1.24.0-2.rbuild.log: 85.1% -- replaced with /var/lib/jenkins/userContent/reproducible/debian/rbuild/trixie/amd64/ruby-rubocop-ast_1.24.0-2.rbuild.log.gz [2025-08-07 15:21:23] INFO: Starting at 2025-08-07 15:21:23.553344 [2025-08-07 15:21:23] INFO: Generating the pages of 1 package(s) [2025-08-07 15:21:23] INFO: Finished at 2025-08-07 15:21:23.775401, took: 0:00:00.222061 All cleanup done. Thu Aug 7 15:21:23 UTC 2025 - total duration: 0h 3m 45s. Thu Aug 7 15:21:23 UTC 2025 - reproducible_build.sh stopped running as /tmp/jenkins-script-mt2Er3bB, removing. Finished with result: success Main processes terminated with: code=exited/status=0 Service runtime: 3min 46.222s CPU time consumed: 5.152s