Repository: prettier/plugin-php
Pull request #2334 (2024-02-23 23:10:47)

build(deps-dev): bump eslint from 8.56.0 to 8.57.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.56.0 to 8.57.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/eslint/eslint/releases">eslint's releases</a>.</em></p>
<blockquote>
<h2>v8.57.0</h2>
<h2>Features</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/1120b9b7b97f10f059d8b7ede19de2572f892366"><code>1120b9b</code></a> feat: Add loadESLint() API method for v8 (<a href="https://redirect.github.com/eslint/eslint/issues/18098">#18098</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/dca7d0f1c262bc72310147bcefe1d04ecf60acbc"><code>dca7d0f</code></a> feat: Enable <code>eslint.config.mjs</code> and <code>eslint.config.cjs</code> (<a href="https://redirect.github.com/eslint/eslint/issues/18066">#18066</a>) (Nitin Kumar)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/2196d97094ba94d6d750828879a29538d1600de5"><code>2196d97</code></a> fix: handle absolute file paths in <code>FlatRuleTester</code> (<a href="https://redirect.github.com/eslint/eslint/issues/18064">#18064</a>) (Nitin Kumar)</li>
<li><a href="https://github.com/eslint/eslint/commit/69dd1d1387b7b53617548d1f9f2c149f179e6e17"><code>69dd1d1</code></a> fix: Ensure config keys are printed for config errors (<a href="https://redirect.github.com/eslint/eslint/issues/18067">#18067</a>) (Nitin Kumar)</li>
<li><a href="https://github.com/eslint/eslint/commit/9852a31edcf054bd5d15753ef18e2ad3216b1b71"><code>9852a31</code></a> fix: deep merge behavior in flat config (<a href="https://redirect.github.com/eslint/eslint/issues/18065">#18065</a>) (Nitin Kumar)</li>
<li><a href="https://github.com/eslint/eslint/commit/4c7e9b0b539ba879ac1799e81f3b6add2eed4b2f"><code>4c7e9b0</code></a> fix: allow circular references in config (<a href="https://redirect.github.com/eslint/eslint/issues/18056">#18056</a>) (Milos Djermanovic)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/84922d0bfa10689a34a447ab8e55975ff1c1c708"><code>84922d0</code></a> docs: Show prerelease version in dropdown (<a href="https://redirect.github.com/eslint/eslint/issues/18139">#18139</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/5b8c3636a3d7536535a6878eca0e5b773e4829d4"><code>5b8c363</code></a> docs: Switch to Ethical Ads (<a href="https://redirect.github.com/eslint/eslint/issues/18117">#18117</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/77dbfd9887b201a46fc68631cbde50c08e1a8dbf"><code>77dbfd9</code></a> docs: show NEXT in version selectors (<a href="https://redirect.github.com/eslint/eslint/issues/18052">#18052</a>) (Milos Djermanovic)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/1813aecc4660582b0678cf32ba466eb9674266c4"><code>1813aec</code></a> chore: upgrade <code>@​eslint/js</code><a href="https://github.com/8"><code>@​8</code></a>.57.0 (<a href="https://redirect.github.com/eslint/eslint/issues/18143">#18143</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/5c356bb0c6f53c570224f8e9f02c4baca8fc6d2f"><code>5c356bb</code></a> chore: package.json update for <code>@​eslint/js</code> release (Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/f4a1fe2e45aa1089fe775290bf530de82f34bf16"><code>f4a1fe2</code></a> test: add more tests for ignoring files and directories (<a href="https://redirect.github.com/eslint/eslint/issues/18068">#18068</a>) (Nitin Kumar)</li>
<li><a href="https://github.com/eslint/eslint/commit/42c0aefaf6ea8b998b1c6db61906a79c046d301a"><code>42c0aef</code></a> ci: Enable CI for <code>v8.x</code> branch (<a href="https://redirect.github.com/eslint/eslint/issues/18047">#18047</a>) (Milos Djermanovic)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/eslint/eslint/blob/main/CHANGELOG.md">eslint's changelog</a>.</em></p>
<blockquote>
<p>v8.57.0 - February 23, 2024</p>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/1813aecc4660582b0678cf32ba466eb9674266c4"><code>1813aec</code></a> chore: upgrade <code>@​eslint/js</code><a href="https://github.com/8"><code>@​8</code></a>.57.0 (<a href="https://redirect.github.com/eslint/eslint/issues/18143">#18143</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/5c356bb0c6f53c570224f8e9f02c4baca8fc6d2f"><code>5c356bb</code></a> chore: package.json update for <code>@​eslint/js</code> release (Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/84922d0bfa10689a34a447ab8e55975ff1c1c708"><code>84922d0</code></a> docs: Show prerelease version in dropdown (<a href="https://redirect.github.com/eslint/eslint/issues/18139">#18139</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/1120b9b7b97f10f059d8b7ede19de2572f892366"><code>1120b9b</code></a> feat: Add loadESLint() API method for v8 (<a href="https://redirect.github.com/eslint/eslint/issues/18098">#18098</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/5b8c3636a3d7536535a6878eca0e5b773e4829d4"><code>5b8c363</code></a> docs: Switch to Ethical Ads (<a href="https://redirect.github.com/eslint/eslint/issues/18117">#18117</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/2196d97094ba94d6d750828879a29538d1600de5"><code>2196d97</code></a> fix: handle absolute file paths in <code>FlatRuleTester</code> (<a href="https://redirect.github.com/eslint/eslint/issues/18064">#18064</a>) (Nitin Kumar)</li>
<li><a href="https://github.com/eslint/eslint/commit/f4a1fe2e45aa1089fe775290bf530de82f34bf16"><code>f4a1fe2</code></a> test: add more tests for ignoring files and directories (<a href="https://redirect.github.com/eslint/eslint/issues/18068">#18068</a>) (Nitin Kumar)</li>
<li><a href="https://github.com/eslint/eslint/commit/69dd1d1387b7b53617548d1f9f2c149f179e6e17"><code>69dd1d1</code></a> fix: Ensure config keys are printed for config errors (<a href="https://redirect.github.com/eslint/eslint/issues/18067">#18067</a>) (Nitin Kumar)</li>
<li><a href="https://github.com/eslint/eslint/commit/9852a31edcf054bd5d15753ef18e2ad3216b1b71"><code>9852a31</code></a> fix: deep merge behavior in flat config (<a href="https://redirect.github.com/eslint/eslint/issues/18065">#18065</a>) (Nitin Kumar)</li>
<li><a href="https://github.com/eslint/eslint/commit/dca7d0f1c262bc72310147bcefe1d04ecf60acbc"><code>dca7d0f</code></a> feat: Enable <code>eslint.config.mjs</code> and <code>eslint.config.cjs</code> (<a href="https://redirect.github.com/eslint/eslint/issues/18066">#18066</a>) (Nitin Kumar)</li>
<li><a href="https://github.com/eslint/eslint/commit/4c7e9b0b539ba879ac1799e81f3b6add2eed4b2f"><code>4c7e9b0</code></a> fix: allow circular references in config (<a href="https://redirect.github.com/eslint/eslint/issues/18056">#18056</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/77dbfd9887b201a46fc68631cbde50c08e1a8dbf"><code>77dbfd9</code></a> docs: show NEXT in version selectors (<a href="https://redirect.github.com/eslint/eslint/issues/18052">#18052</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/42c0aefaf6ea8b998b1c6db61906a79c046d301a"><code>42c0aef</code></a> ci: Enable CI for <code>v8.x</code> branch (<a href="https://redirect.github.com/eslint/eslint/issues/18047">#18047</a>) (Milos Djermanovic)</li>
</ul>
<p>v9.0.0-beta.0 - February 9, 2024</p>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/e40d1d74a5b9788cbec195f4e602b50249f26659"><code>e40d1d7</code></a> chore: upgrade <code>@​eslint/js</code><a href="https://github.com/9"><code>@​9</code></a>.0.0-beta.0 (<a href="https://redirect.github.com/eslint/eslint/issues/18108">#18108</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/9870f93e714edefb410fccae1e9924a3c1972a2e"><code>9870f93</code></a> chore: package.json update for <code>@​eslint/js</code> release (Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/2c62e797a433e5fc298b976872a89c594f88bb19"><code>2c62e79</code></a> chore: upgrade <code>@​eslint/eslintrc</code><a href="https://github.com/3"><code>@​3</code></a>.0.1 (<a href="https://redirect.github.com/eslint/eslint/issues/18107">#18107</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/81f0294e651928b49eb49495b90b54376073a790"><code>81f0294</code></a> chore: upgrade espree@10.0.1 (<a href="https://redirect.github.com/eslint/eslint/issues/18106">#18106</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/5e2b2922aa65bda54b0966d1bf71acda82b3047c"><code>5e2b292</code></a> chore: upgrade eslint-visitor-keys@4.0.0 (<a href="https://redirect.github.com/eslint/eslint/issues/18105">#18105</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/916364692bae6a93c10b5d48fc1e9de1677d0d09"><code>9163646</code></a> feat!: Rule Tester checks for missing placeholder data in the message (<a href="https://redirect.github.com/eslint/eslint/issues/18073">#18073</a>) (fnx)</li>
<li><a href="https://github.com/eslint/eslint/commit/53f0f47badffa1b04ec2836f2ae599f4fc464da2"><code>53f0f47</code></a> feat: Add loadESLint() API method for v9 (<a href="https://redirect.github.com/eslint/eslint/issues/18097">#18097</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/f1c7e6fc8ea77fcdae4ad1f8fe1cd104a281d2e9"><code>f1c7e6f</code></a> docs: Switch to Ethical Ads (<a href="https://redirect.github.com/eslint/eslint/issues/18090">#18090</a>) (Strek)</li>
<li><a href="https://github.com/eslint/eslint/commit/15c143f96ef164943fd3d39b5ad79d9a4a40de8f"><code>15c143f</code></a> docs: JS Foundation -&gt; OpenJS Foundation in PR template (<a href="https://redirect.github.com/eslint/eslint/issues/18092">#18092</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/c4d26fd3d1f59c1c0f2266664887ad18692039f3"><code>c4d26fd</code></a> fix: <code>use-isnan</code> doesn't report on <code>SequenceExpression</code>s (<a href="https://redirect.github.com/eslint/eslint/issues/18059">#18059</a>) (StyleShit)</li>
<li><a href="https://github.com/eslint/eslint/commit/6ea339e658d29791528ab26aabd86f1683cab6c3"><code>6ea339e</code></a> docs: add stricter rule test validations to v9 migration guide (<a href="https://redirect.github.com/eslint/eslint/issues/18085">#18085</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/ce838adc3b673e52a151f36da0eedf5876977514"><code>ce838ad</code></a> chore: replace dependency npm-run-all with npm-run-all2 ^5.0.0 (<a href="https://redirect.github.com/eslint/eslint/issues/18045">#18045</a>) (renovate[bot])</li>
<li><a href="https://github.com/eslint/eslint/commit/3c816f193eecace5efc6166efa2852a829175ef8"><code>3c816f1</code></a> docs: use relative link from CLI to core concepts (<a href="https://redirect.github.com/eslint/eslint/issues/18083">#18083</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/54df731174d2528170560d1f765e1336eca0a8bd"><code>54df731</code></a> chore: update dependency markdownlint-cli to ^0.39.0 (<a href="https://redirect.github.com/eslint/eslint/issues/18084">#18084</a>) (renovate[bot])</li>
<li><a href="https://github.com/eslint/eslint/commit/9458735381269d12b24f76e1b2b6fda1bc5a509b"><code>9458735</code></a> docs: fix malformed <code>eslint</code> config comments in rule examples (<a href="https://redirect.github.com/eslint/eslint/issues/18078">#18078</a>) (Francesco Trotta)</li>
<li><a href="https://github.com/eslint/eslint/commit/07a1ada7166b76c7af6186f4c5e5de8b8532edba"><code>07a1ada</code></a> docs: link from <code>--fix</code> CLI doc to the relevant core concept (<a href="https://redirect.github.com/eslint/eslint/issues/18080">#18080</a>) (Bryan Mishkin)</li>
<li><a href="https://github.com/eslint/eslint/commit/8f06a606845f40aaf0fea1fd83d5930747c5acec"><code>8f06a60</code></a> chore: update dependency shelljs to ^0.8.5 (<a href="https://redirect.github.com/eslint/eslint/issues/18079">#18079</a>) (Francesco Trotta)</li>
<li><a href="https://github.com/eslint/eslint/commit/b844324e4e8f511c9985a96c7aca063269df9570"><code>b844324</code></a> docs: Update team responsibilities (<a href="https://redirect.github.com/eslint/eslint/issues/18048">#18048</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/aadfb609f1b847e492fc3b28ced62f830fe7f294"><code>aadfb60</code></a> docs: document languageOptions and other v9 changes for context (<a href="https://redirect.github.com/eslint/eslint/issues/18074">#18074</a>) (fnx)</li>
<li><a href="https://github.com/eslint/eslint/commit/3c4d51d55fa5435ab18b6bf46f6b97df0f480ae7"><code>3c4d51d</code></a> feat!: default for <code>enforceForClassMembers</code> in <code>no-useless-computed-key</code> (<a href="https://redirect.github.com/eslint/eslint/issues/18054">#18054</a>) (Francesco Trotta)</li>
<li><a href="https://github.com/eslint/eslint/commit/47e60f85e0c3f275207bb4be9b5947166a190477"><code>47e60f8</code></a> feat!: Stricter rule test validations (<a href="https://redirect.github.com/eslint/eslint/issues/17654">#17654</a>) (fnx)</li>
<li><a href="https://github.com/eslint/eslint/commit/1a945890105d307541dcbff15f6438c19b476ade"><code>1a94589</code></a> feat!: <code>no-unused-vars</code> default caughtErrors to 'all' (<a href="https://redirect.github.com/eslint/eslint/issues/18043">#18043</a>) (Josh Goldberg ✨)</li>
<li><a href="https://github.com/eslint/eslint/commit/857e242584227181ecb8af79fc6bc236b9975228"><code>857e242</code></a> docs: tweak explanation for meta.docs rule properties (<a href="https://redirect.github.com/eslint/eslint/issues/18057">#18057</a>) (Bryan Mishkin)</li>
<li><a href="https://github.com/eslint/eslint/commit/10485e8b961d045514bc1e34227cf09867a6c4b7"><code>10485e8</code></a> docs: recommend messageId over message for reporting rule violations (<a href="https://redirect.github.com/eslint/eslint/issues/18050">#18050</a>) (Bryan Mishkin)</li>
<li><a href="https://github.com/eslint/eslint/commit/98b5ab406bac6279eadd84e8a5fd5a01fc586ff1"><code>98b5ab4</code></a> docs: Update README (GitHub Actions Bot)</li>
<li><a href="https://github.com/eslint/eslint/commit/93ffe30da5e2127e336c1c22e69e09ec0558a8e6"><code>93ffe30</code></a> chore: update dependency file-entry-cache to v8 (<a href="https://redirect.github.com/eslint/eslint/issues/17903">#17903</a>) (renovate[bot])</li>
<li><a href="https://github.com/eslint/eslint/commit/505fbf4b35c14332bffb0c838cce4843a00fad68"><code>505fbf4</code></a> docs: update <code>no-restricted-imports</code> rule (<a href="https://redirect.github.com/eslint/eslint/issues/18015">#18015</a>) (Tanuj Kanti)</li>
<li><a href="https://github.com/eslint/eslint/commit/2d11d46e890a9f1b5f639b8ee034ffa9bd453e42"><code>2d11d46</code></a> feat: add suggestions to <code>use-isnan</code> in binary expressions (<a href="https://redirect.github.com/eslint/eslint/issues/17996">#17996</a>) (StyleShit)</li>
<li><a href="https://github.com/eslint/eslint/commit/c25b4aff1fe35e5bd9d4fcdbb45b739b6d253828"><code>c25b4af</code></a> docs: Update README (GitHub Actions Bot)</li>
</ul>
<p>v9.0.0-alpha.2 - January 26, 2024</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/abea3b6f399fde9e28cf6dc5d6c013938f163cdc"><code>abea3b6</code></a> 8.57.0</li>
<li><a href="https://github.com/eslint/eslint/commit/1cd3f8c34d3f1614f16d602d660e7c9653311a47"><code>1cd3f8c</code></a> Build: changelog update for 8.57.0</li>
<li><a href="https://github.com/eslint/eslint/commit/1813aecc4660582b0678cf32ba466eb9674266c4"><code>1813aec</code></a> chore: upgrade <code>@​eslint/js</code><a href="https://github.com/8"><code>@​8</code></a>.57.0 (<a href="https://redirect.github.com/eslint/eslint/issues/18143">#18143</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/5c356bb0c6f53c570224f8e9f02c4baca8fc6d2f"><code>5c356bb</code></a> chore: package.json update for <code>@​eslint/js</code> release</li>
<li><a href="https://github.com/eslint/eslint/commit/84922d0bfa10689a34a447ab8e55975ff1c1c708"><code>84922d0</code></a> docs: Show prerelease version in dropdown (<a href="https://redirect.github.com/eslint/eslint/issues/18139">#18139</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/1120b9b7b97f10f059d8b7ede19de2572f892366"><code>1120b9b</code></a> feat: Add loadESLint() API method for v8 (<a href="https://redirect.github.com/eslint/eslint/issues/18098">#18098</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/5b8c3636a3d7536535a6878eca0e5b773e4829d4"><code>5b8c363</code></a> docs: Switch to Ethical Ads (<a href="https://redirect.github.com/eslint/eslint/issues/18117">#18117</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/2196d97094ba94d6d750828879a29538d1600de5"><code>2196d97</code></a> fix: handle absolute file paths in <code>FlatRuleTester</code> (<a href="https://redirect.github.com/eslint/eslint/issues/18064">#18064</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/f4a1fe2e45aa1089fe775290bf530de82f34bf16"><code>f4a1fe2</code></a> test: add more tests for ignoring files and directories (<a href="https://redirect.github.com/eslint/eslint/issues/18068">#18068</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/69dd1d1387b7b53617548d1f9f2c149f179e6e17"><code>69dd1d1</code></a> fix: Ensure config keys are printed for config errors (<a href="https://redirect.github.com/eslint/eslint/issues/18067">#18067</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/eslint/eslint/compare/v8.56.0...v8.57.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=eslint&package-manager=npm_and_yarn&previous-version=8.56.0&new-version=8.57.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has been open for over 30 days.



Patch:
diff --git a/package.json b/package.json
index c745516..5bb4005 100644
--- a/package.json
+++ b/package.json
@@ -35,7 +35,7 @@
     "@rollup/plugin-terser": "^0.4.3",
     "c8": "^9.1.0",
     "cross-env": "^7.0.2",
-    "eslint": "8.56.0",
+    "eslint": "8.57.0",
     "eslint-config-prettier": "9.1.0",
     "eslint-plugin-import": "2.29.1",
     "eslint-plugin-jest": "27.6.3",
diff --git a/src/printer.mjs b/src/printer.mjs
index 53f812a..cf73880 100644
--- a/src/printer.mjs
+++ b/src/printer.mjs
@@ -509,8 +509,8 @@ function printMemberChain(path, options, print) {
     printIndentedGroup(groups.slice(shouldMerge ? 2 : 1)),
   ];
 
-  const callExpressions = printedNodes.filter((tuple) =>
-    ["call", "new"].includes(tuple.node.kind)
+  const callExpressions = printedNodes.filter(
+    (tuple) => tuple.node.kind === "call"
   );
 
   // We don't want to print in one line if there's:
diff --git a/src/util.mjs b/src/util.mjs
index 1bda959..b4bf9e4 100644
--- a/src/util.mjs
+++ b/src/util.mjs
@@ -622,27 +622,35 @@ function createTypeCheckFunction(kindsArray) {
 }
 
 const isSingleWordType = createTypeCheckFunction([
-  "variable",
+  "variadicplaceholder",
+  "namedargument",
+  "nullkeyword",
+  "identifier",
   "parameter",
+  "variable",
   "variadic",
-  "clone",
-  "cast",
   "boolean",
+  "literal",
   "number",
   "string",
-  "literal",
-  "nullkeyword",
-  "namedargument",
-  "variadicplaceholder",
+  "clone",
+  "cast",
 ]);
 
 const isArrayExpression = createTypeCheckFunction(["array"]);
-const isCallOrNewExpression = createTypeCheckFunction(["call", "new"]);
+const isCallLikeExpression = createTypeCheckFunction([
+  "nullsafepropertylookup",
+  "propertylookup",
+  "staticlookup",
+  "offsetlookup",
+  "call",
+  "new",
+]);
 const isArrowFuncExpression = createTypeCheckFunction(["arrowfunc"]);
 
 function getChainParts(node, prev = []) {
   const parts = prev;
-  if (isCallOrNewExpression(node)) {
+  if (isCallLikeExpression(node)) {
     parts.push(node);
   }
 
@@ -668,11 +676,17 @@ function isSimpleCallArgument(node, depth = 2) {
     return node.items.every((x) => x === null || isChildSimple(x));
   }
 
-  if (isCallOrNewExpression(node)) {
+  if (isCallLikeExpression(node)) {
     const parts = getChainParts(node);
+    parts.unshift();
+
     return (
-      parts.filter((node) => node.kind === "call").length <= depth &&
-      parts.every((node) => node.arguments.every(isChildSimple))
+      parts.length <= depth &&
+      parts.every((node) =>
+        isLookupNode(node)
+          ? isChildSimple(node.offset)
+          : node.arguments.every(isChildSimple)
+      )
     );
   }
 
diff --git a/yarn.lock b/yarn.lock
index b754bee..0ea9d0b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1292,18 +1292,18 @@
     minimatch "^3.1.2"
     strip-json-comments "^3.1.1"
 
-"@eslint/js@8.56.0":
-  version "8.56.0"
-  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b"
-  integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==
-
-"@humanwhocodes/config-array@^0.11.13":
-  version "0.11.13"
-  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297"
-  integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==
-  dependencies:
-    "@humanwhocodes/object-schema" "^2.0.1"
-    debug "^4.1.1"
+"@eslint/js@8.57.0":
+  version "8.57.0"
+  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f"
+  integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
+
+"@humanwhocodes/config-array@^0.11.14":
+  version "0.11.14"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
+  integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==
+  dependencies:
+    "@humanwhocodes/object-schema" "^2.0.2"
+    debug "^4.3.1"
     minimatch "^3.0.5"
 
 "@humanwhocodes/module-importer@^1.0.1":
@@ -1311,10 +1311,10 @@
   resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
   integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
 
-"@humanwhocodes/object-schema@^2.0.1":
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044"
-  integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==
+"@humanwhocodes/object-schema@^2.0.2":
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917"
+  integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==
 
 "@istanbuljs/load-nyc-config@^1.0.0":
   version "1.1.0"
@@ -2643,7 +2643,7 @@ data-urls@^3.0.2:
     whatwg-mimetype "^3.0.0"
     whatwg-url "^11.0.0"
 
-debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2:
+debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:
   version "4.3.4"
   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
   integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -2999,16 +2999,16 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4
   resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
   integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
 
-eslint@8.56.0:
-  version "8.56.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15"
-  integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==
+eslint@8.57.0:
+  version "8.57.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
+  integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
   dependencies:
     "@eslint-community/eslint-utils" "^4.2.0"
     "@eslint-community/regexpp" "^4.6.1"
     "@eslint/eslintrc" "^2.1.4"
-    "@eslint/js" "8.56.0"
-    "@humanwhocodes/config-array" "^0.11.13"
+    "@eslint/js" "8.57.0"
+    "@humanwhocodes/config-array" "^0.11.14"
     "@humanwhocodes/module-importer" "^1.0.1"
     "@nodelib/fs.walk" "^1.2.8"
     "@ungap/structured-clone" "^1.2.0"
@@ -5057,9 +5057,9 @@ prettier-linter-helpers@^1.0.0:
     fast-diff "^1.1.2"
 
 prettier@^3.0.1:
-  version "3.2.4"
-  resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283"
-  integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==
+  version "3.2.5"
+  resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368"
+  integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==
 
 pretty-format@30.0.0-alpha.2:
   version "30.0.0-alpha.2"


Test patch:
diff --git a/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap b/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap
index 5089bfd..283177c 100644
--- a/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap
+++ b/tests/member_chain/__snapshots__/jsfmt.spec.mjs.snap
@@ -583,11 +583,9 @@ $var = Foo::keys($items)
         return $x * 2;
     });
 
-(new static(func_get_args()))
-    ->push($this)
-    ->each(function ($item) {
-        VarDumper::dump($item);
-    });
+(new static(func_get_args()))->push($this)->each(function ($item) {
+    VarDumper::dump($item);
+});
 (new static(func_get_args()))
     ->offset(10)
     ->push($this)
@@ -721,6 +719,16 @@ $window->{call()}
         return $b;
     });
 
+
+$window->call($foo->bar->baz)->first()->second();
+$window->call($foo->bar->baz->foo())->first()->second();
+
+(new Foo())->call($foo->bar->baz)->first()->second();
+(new Foo())->call($foo->bar->baz->foo())->first()->second();
+
+Foo::call($foo->bar->baz)->first()->second();
+Foo::call($foo->bar->baz->foo())->first()->second();
+
 =====================================output=====================================
 <?php
 
@@ -798,6 +806,23 @@ $window->{call()}
         return $b;
     });
 
+$window->call($foo->bar->baz)->first()->second();
+$window
+    ->call($foo->bar->baz->foo())
+    ->first()
+    ->second();
+
+(new Foo())->call($foo->bar->baz)->first()->second();
+(new Foo())
+    ->call($foo->bar->baz->foo())
+    ->first()
+    ->second();
+
+Foo::call($foo->bar->baz)->first()->second();
+Foo::call($foo->bar->baz->foo())
+    ->first()
+    ->second();
+
 ================================================================================
 `;
 
diff --git a/tests/member_chain/offsetlookup.php b/tests/member_chain/offsetlookup.php
index a619ac7..5b37bc3 100644
--- a/tests/member_chain/offsetlookup.php
+++ b/tests/member_chain/offsetlookup.php
@@ -53,3 +53,13 @@ $window->{call()}
     ->catch(function () {
         return $b;
     });
+
+
+$window->call($foo->bar->baz)->first()->second();
+$window->call($foo->bar->baz->foo())->first()->second();
+
+(new Foo())->call($foo->bar->baz)->first()->second();
+(new Foo())->call($foo->bar->baz->foo())->first()->second();
+
+Foo::call($foo->bar->baz)->first()->second();
+Foo::call($foo->bar->baz->foo())->first()->second();