From 700452d015f717b8d2f350ccc0d6fede2fc755bf Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Mon, 23 Jan 2023 06:06:23 +0000 Subject: [PATCH 01/15] Update package-lock.json --- package-lock.json | 557 +++++++++++++++++----------------------------- 1 file changed, 209 insertions(+), 348 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5913c19a5b..61ce7fcf2c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,9 +59,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.3.tgz", - "integrity": "sha512-1Mlz934GvbgdDmt26rTLmf03cAgLg5HyOgJN+ZGCeP3Q9ynYTNMn2/LQxIl7Uy+o4K6Rfi2OuLsr12JQQR8gNg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.4.tgz", + "integrity": "sha512-R9GCe2xl2XDSc2XbQB63mFiFXHIVkOP+ltIxICKXqUPrFX97z6Z7vONCLQM1pSOLGqfLrGi3B7nbhxmFY/fomg==", "cpu": [ "arm" ], @@ -75,9 +75,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.3.tgz", - "integrity": "sha512-XvJsYo3dO3Pi4kpalkyMvfQsjxPWHYjoX4MDiB/FUM4YMfWcXa5l4VCwFWVYI1+92yxqjuqrhNg0CZg3gSouyQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.4.tgz", + "integrity": "sha512-91VwDrl4EpxBCiG6h2LZZEkuNvVZYJkv2T9gyLG/mhGG1qrM7i5SwUcg/hlSPnL/4hDT0TFcF35/XMGSn0bemg==", "cpu": [ "arm64" ], @@ -91,9 +91,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.3.tgz", - "integrity": "sha512-nuV2CmLS07Gqh5/GrZLuqkU9Bm6H6vcCspM+zjp9TdQlxJtIe+qqEXQChmfc7nWdyr/yz3h45Utk1tUn8Cz5+A==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.4.tgz", + "integrity": "sha512-mGSqhEPL7029XL7QHNPxPs15JVa02hvZvysUcyMP9UXdGFwncl2WU0bqx+Ysgzd+WAbv8rfNa73QveOxAnAM2w==", "cpu": [ "x64" ], @@ -107,9 +107,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.3.tgz", - "integrity": "sha512-01Hxaaat6m0Xp9AXGM8mjFtqqwDjzlMP0eQq9zll9U85ttVALGCGDuEvra5Feu/NbP5AEP1MaopPwzsTcUq1cw==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.4.tgz", + "integrity": "sha512-tTyJRM9dHvlMPt1KrBFVB5OW1kXOsRNvAPtbzoKazd5RhD5/wKlXk1qR2MpaZRYwf4WDMadt0Pv0GwxB41CVow==", "cpu": [ "arm64" ], @@ -123,9 +123,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.3.tgz", - "integrity": "sha512-Eo2gq0Q/er2muf8Z83X21UFoB7EU6/m3GNKvrhACJkjVThd0uA+8RfKpfNhuMCl1bKRfBzKOk6xaYKQZ4lZqvA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.4.tgz", + "integrity": "sha512-phQuC2Imrb3TjOJwLN8EO50nb2FHe8Ew0OwgZDH1SV6asIPGudnwTQtighDF2EAYlXChLoMJwqjAp4vAaACq6w==", "cpu": [ "x64" ], @@ -139,9 +139,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.3.tgz", - "integrity": "sha512-CN62ESxaquP61n1ZjQP/jZte8CE09M6kNn3baos2SeUfdVBkWN5n6vGp2iKyb/bm/x4JQzEvJgRHLGd5F5b81w==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.4.tgz", + "integrity": "sha512-oH6JUZkocgmjzzYaP5juERLpJQSwazdjZrTPgLRmAU2bzJ688x0vfMB/WTv4r58RiecdHvXOPC46VtsMy/mepg==", "cpu": [ "arm64" ], @@ -155,9 +155,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.3.tgz", - "integrity": "sha512-feq+K8TxIznZE+zhdVurF3WNJ/Sa35dQNYbaqM/wsCbWdzXr5lyq+AaTUSER2cUR+SXPnd/EY75EPRjf4s1SLg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.4.tgz", + "integrity": "sha512-U4iWGn/9TrAfpAdfd56eO0pRxIgb0a8Wj9jClrhT8hvZnOnS4dfMPW7o4fn15D/KqoiVYHRm43jjBaTt3g/2KA==", "cpu": [ "x64" ], @@ -171,9 +171,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.3.tgz", - "integrity": "sha512-CLP3EgyNuPcg2cshbwkqYy5bbAgK+VhyfMU7oIYyn+x4Y67xb5C5ylxsNUjRmr8BX+MW3YhVNm6Lq6FKtRTWHQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.4.tgz", + "integrity": "sha512-S2s9xWTGMTa/fG5EyMGDeL0wrWVgOSQcNddJWgu6rG1NCSXJHs76ZP9AsxjB3f2nZow9fWOyApklIgiTGZKhiw==", "cpu": [ "arm" ], @@ -187,9 +187,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.3.tgz", - "integrity": "sha512-JHeZXD4auLYBnrKn6JYJ0o5nWJI9PhChA/Nt0G4MvLaMrvXuWnY93R3a7PiXeJQphpL1nYsaMcoV2QtuvRnF/g==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.4.tgz", + "integrity": "sha512-UkGfQvYlwOaeYJzZG4cLV0hCASzQZnKNktRXUo3/BMZvdau40AOz9GzmGA063n1piq6VrFFh43apRDQx8hMP2w==", "cpu": [ "arm64" ], @@ -203,9 +203,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.3.tgz", - "integrity": "sha512-FyXlD2ZjZqTFh0sOQxFDiWG1uQUEOLbEh9gKN/7pFxck5Vw0qjWSDqbn6C10GAa1rXJpwsntHcmLqydY9ST9ZA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.4.tgz", + "integrity": "sha512-3lqFi4VFo/Vwvn77FZXeLd0ctolIJH/uXkH3yNgEk89Eh6D3XXAC9/iTPEzeEpsNE5IqGIsFa5Z0iPeOh25IyA==", "cpu": [ "ia32" ], @@ -219,9 +219,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.3.tgz", - "integrity": "sha512-OrDGMvDBI2g7s04J8dh8/I7eSO+/E7nMDT2Z5IruBfUO/RiigF1OF6xoH33Dn4W/OwAWSUf1s2nXamb28ZklTA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.4.tgz", + "integrity": "sha512-HqpWZkVslDHIwdQ9D+gk7NuAulgQvRxF9no54ut/M55KEb3mi7sQS3GwpPJzSyzzP0UkjQVN7/tbk88/CaX4EQ==", "cpu": [ "loong64" ], @@ -235,9 +235,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.3.tgz", - "integrity": "sha512-DcnUpXnVCJvmv0TzuLwKBC2nsQHle8EIiAJiJ+PipEVC16wHXaPEKP0EqN8WnBe0TPvMITOUlP2aiL5YMld+CQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.4.tgz", + "integrity": "sha512-d/nMCKKh/SVDbqR9ju+b78vOr0tNXtfBjcp5vfHONCCOAL9ad8gN9dC/u+UnH939pz7wO+0u/x9y1MaZcb/lKA==", "cpu": [ "mips64el" ], @@ -251,9 +251,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.3.tgz", - "integrity": "sha512-BDYf/l1WVhWE+FHAW3FzZPtVlk9QsrwsxGzABmN4g8bTjmhazsId3h127pliDRRu5674k1Y2RWejbpN46N9ZhQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.4.tgz", + "integrity": "sha512-lOD9p2dmjZcNiTU+sGe9Nn6G3aYw3k0HBJies1PU0j5IGfp6tdKOQ6mzfACRFCqXjnBuTqK7eTYpwx09O5LLfg==", "cpu": [ "ppc64" ], @@ -267,9 +267,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.3.tgz", - "integrity": "sha512-WViAxWYMRIi+prTJTyV1wnqd2mS2cPqJlN85oscVhXdb/ZTFJdrpaqm/uDsZPGKHtbg5TuRX/ymKdOSk41YZow==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.4.tgz", + "integrity": "sha512-mTGnwWwVshAjGsd8rP+K6583cPDgxOunsqqldEYij7T5/ysluMHKqUIT4TJHfrDFadUwrghAL6QjER4FeqQXoA==", "cpu": [ "riscv64" ], @@ -283,9 +283,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.3.tgz", - "integrity": "sha512-Iw8lkNHUC4oGP1O/KhumcVy77u2s6+KUjieUqzEU3XuWJqZ+AY7uVMrrCbAiwWTkpQHkr00BuXH5RpC6Sb/7Ug==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.4.tgz", + "integrity": "sha512-AQYuUGp50XM29/N/dehADxvc2bUqDcoqrVuijop1Wv72SyxT6dDB9wjUxuPZm2HwIM876UoNNBMVd+iX/UTKVQ==", "cpu": [ "s390x" ], @@ -299,9 +299,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.3.tgz", - "integrity": "sha512-0AGkWQMzeoeAtXQRNB3s4J1/T2XbigM2/Mn2yU1tQSmQRmHIZdkGbVq2A3aDdNslPyhb9/lH0S5GMTZ4xsjBqg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.4.tgz", + "integrity": "sha512-+AsFBwKgQuhV2shfGgA9YloxLDVjXgUEWZum7glR5lLmV94IThu/u2JZGxTgjYby6kyXEx8lKOqP5rTEVBR0Rw==", "cpu": [ "x64" ], @@ -315,9 +315,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.3.tgz", - "integrity": "sha512-4+rR/WHOxIVh53UIQIICryjdoKdHsFZFD4zLSonJ9RRw7bhKzVyXbnRPsWSfwybYqw9sB7ots/SYyufL1mBpEg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.4.tgz", + "integrity": "sha512-zD1TKYX9553OiLS/qkXPMlWoELYkH/VkzRYNKEU+GwFiqkq0SuxsKnsCg5UCdxN3cqd+1KZ8SS3R+WG/Hxy2jQ==", "cpu": [ "x64" ], @@ -331,9 +331,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.3.tgz", - "integrity": "sha512-cVpWnkx9IYg99EjGxa5Gc0XmqumtAwK3aoz7O4Dii2vko+qXbkHoujWA68cqXjhh6TsLaQelfDO4MVnyr+ODeA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.4.tgz", + "integrity": "sha512-PY1NjEsLRhPEFFg1AV0/4Or/gR+q2dOb9s5rXcPuCjyHRzbt8vnHJl3vYj+641TgWZzTFmSUnZbzs1zwTzjeqw==", "cpu": [ "x64" ], @@ -347,9 +347,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.3.tgz", - "integrity": "sha512-RxmhKLbTCDAY2xOfrww6ieIZkZF+KBqG7S2Ako2SljKXRFi+0863PspK74QQ7JpmWwncChY25JTJSbVBYGQk2Q==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.4.tgz", + "integrity": "sha512-B3Z7s8QZQW9tKGleMRXvVmwwLPAUoDCHs4WZ2ElVMWiortLJFowU1NjAhXOKjDgC7o9ByeVcwyOlJ+F2r6ZgmQ==", "cpu": [ "x64" ], @@ -363,9 +363,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.3.tgz", - "integrity": "sha512-0r36VeEJ4efwmofxVJRXDjVRP2jTmv877zc+i+Pc7MNsIr38NfsjkQj23AfF7l0WbB+RQ7VUb+LDiqC/KY/M/A==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.4.tgz", + "integrity": "sha512-0HCu8R3mY/H5V7N6kdlsJkvrT591bO/oRZy8ztF1dhgNU5xD5tAh5bKByT1UjTGjp/VVBsl1PDQ3L18SfvtnBQ==", "cpu": [ "arm64" ], @@ -379,9 +379,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.3.tgz", - "integrity": "sha512-wgO6rc7uGStH22nur4aLFcq7Wh86bE9cOFmfTr/yxN3BXvDEdCSXyKkO+U5JIt53eTOgC47v9k/C1bITWL/Teg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.4.tgz", + "integrity": "sha512-VUjhVDQycse1gLbe06pC/uaA0M+piQXJpdpNdhg8sPmeIZZqu5xPoGWVCmcsOO2gaM2cywuTYTHkXRozo3/Nkg==", "cpu": [ "ia32" ], @@ -395,9 +395,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.3.tgz", - "integrity": "sha512-FdVl64OIuiKjgXBjwZaJLKp0eaEckifbhn10dXWhysMJkWblg3OEEGKSIyhiD5RSgAya8WzP3DNkngtIg3Nt7g==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.4.tgz", + "integrity": "sha512-0kLAjs+xN5OjhTt/aUA6t48SfENSCKgGPfExADYTOo/UCn0ivxos9/anUVeSfg+L+2O9xkFxvJXIJfG+Q4sYSg==", "cpu": [ "x64" ], @@ -1090,12 +1090,12 @@ "dev": true }, "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/array-includes": { @@ -1399,21 +1399,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/command-line-usage": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", @@ -1441,15 +1426,6 @@ "node": ">=4" } }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/command-line-usage/node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -1509,15 +1485,6 @@ "node": ">=4" } }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1780,9 +1747,9 @@ } }, "node_modules/esbuild": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.3.tgz", - "integrity": "sha512-9n3AsBRe6sIyOc6kmoXg2ypCLgf3eZSraWFRpnkto+svt8cZNuKTkb1bhQcitBcvIqjNiK7K0J3KPmwGSfkA8g==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.4.tgz", + "integrity": "sha512-zBn9MeCwT7W5F1a3lXClD61ip6vQM+H8Msb0w8zMT4ZKBpDg+rFAraNyWCDelB/2L6M3g6AXHPnsyvjMFnxtFw==", "dev": true, "hasInstallScript": true, "bin": { @@ -1792,28 +1759,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.3", - "@esbuild/android-arm64": "0.17.3", - "@esbuild/android-x64": "0.17.3", - "@esbuild/darwin-arm64": "0.17.3", - "@esbuild/darwin-x64": "0.17.3", - "@esbuild/freebsd-arm64": "0.17.3", - "@esbuild/freebsd-x64": "0.17.3", - "@esbuild/linux-arm": "0.17.3", - "@esbuild/linux-arm64": "0.17.3", - "@esbuild/linux-ia32": "0.17.3", - "@esbuild/linux-loong64": "0.17.3", - "@esbuild/linux-mips64el": "0.17.3", - "@esbuild/linux-ppc64": "0.17.3", - "@esbuild/linux-riscv64": "0.17.3", - "@esbuild/linux-s390x": "0.17.3", - "@esbuild/linux-x64": "0.17.3", - "@esbuild/netbsd-x64": "0.17.3", - "@esbuild/openbsd-x64": "0.17.3", - "@esbuild/sunos-x64": "0.17.3", - "@esbuild/win32-arm64": "0.17.3", - "@esbuild/win32-ia32": "0.17.3", - "@esbuild/win32-x64": "0.17.3" + "@esbuild/android-arm": "0.17.4", + "@esbuild/android-arm64": "0.17.4", + "@esbuild/android-x64": "0.17.4", + "@esbuild/darwin-arm64": "0.17.4", + "@esbuild/darwin-x64": "0.17.4", + "@esbuild/freebsd-arm64": "0.17.4", + "@esbuild/freebsd-x64": "0.17.4", + "@esbuild/linux-arm": "0.17.4", + "@esbuild/linux-arm64": "0.17.4", + "@esbuild/linux-ia32": "0.17.4", + "@esbuild/linux-loong64": "0.17.4", + "@esbuild/linux-mips64el": "0.17.4", + "@esbuild/linux-ppc64": "0.17.4", + "@esbuild/linux-riscv64": "0.17.4", + "@esbuild/linux-s390x": "0.17.4", + "@esbuild/linux-x64": "0.17.4", + "@esbuild/netbsd-x64": "0.17.4", + "@esbuild/openbsd-x64": "0.17.4", + "@esbuild/sunos-x64": "0.17.4", + "@esbuild/win32-arm64": "0.17.4", + "@esbuild/win32-ia32": "0.17.4", + "@esbuild/win32-x64": "0.17.4" } }, "node_modules/escalade": { @@ -2227,9 +2194,9 @@ "dev": true }, "node_modules/fast-xml-parser": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.13.tgz", - "integrity": "sha512-g+OboAw8ol1FgTHhKLR7ZHcItNudceiY04BBrvqa0JBWoPhi/+e5r4H5AeW+EsQCroJLJwsuOP3dD3c6cc5uOg==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.14.tgz", + "integrity": "sha512-uKe7uxZ9DgNOmHfUmBdhkTBZcMMVxvQ3vELTxUpmotAqRxkpMayEiiQ4AQWTGAVyfzT4Dv79jaszLECWCYbd4w==", "dev": true, "dependencies": { "strnum": "^1.0.5" @@ -2307,18 +2274,6 @@ "node": ">=8" } }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -2717,15 +2672,15 @@ } }, "node_modules/hereby": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/hereby/-/hereby-1.7.1.tgz", - "integrity": "sha512-lh5w90yCUYkajcuuoIjWkqXDdQyzonLRYmZ7QSf8gJVURKP8SjoO4LtQz2d+saAEszOWfBd1gY50ngbppga1Xw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/hereby/-/hereby-1.8.0.tgz", + "integrity": "sha512-htYg9T4qDeaCyo/2xX3rJVG7JXUjE9p0xJl/50RSV30qPOpHOipDjOSlO1sdhCTMBIf/P7CXer8GUuiEfgzmsg==", "dev": true, "dependencies": { - "command-line-args": "^5.2.1", "command-line-usage": "^6.1.3", "fastest-levenshtein": "^1.0.16", "import-meta-resolve": "^2.2.1", + "minimist": "^1.2.7", "picocolors": "^1.0.0", "pretty-ms": "^8.0.0" }, @@ -3222,12 +3177,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -4216,24 +4165,6 @@ "node": ">=8.0.0" } }, - "node_modules/table-layout/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -4378,9 +4309,9 @@ } }, "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, "engines": { "node": ">=8" @@ -4529,15 +4460,6 @@ "node": ">=8.0.0" } }, - "node_modules/wordwrapjs/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", @@ -4639,156 +4561,156 @@ }, "dependencies": { "@esbuild/android-arm": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.3.tgz", - "integrity": "sha512-1Mlz934GvbgdDmt26rTLmf03cAgLg5HyOgJN+ZGCeP3Q9ynYTNMn2/LQxIl7Uy+o4K6Rfi2OuLsr12JQQR8gNg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.4.tgz", + "integrity": "sha512-R9GCe2xl2XDSc2XbQB63mFiFXHIVkOP+ltIxICKXqUPrFX97z6Z7vONCLQM1pSOLGqfLrGi3B7nbhxmFY/fomg==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.3.tgz", - "integrity": "sha512-XvJsYo3dO3Pi4kpalkyMvfQsjxPWHYjoX4MDiB/FUM4YMfWcXa5l4VCwFWVYI1+92yxqjuqrhNg0CZg3gSouyQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.4.tgz", + "integrity": "sha512-91VwDrl4EpxBCiG6h2LZZEkuNvVZYJkv2T9gyLG/mhGG1qrM7i5SwUcg/hlSPnL/4hDT0TFcF35/XMGSn0bemg==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.3.tgz", - "integrity": "sha512-nuV2CmLS07Gqh5/GrZLuqkU9Bm6H6vcCspM+zjp9TdQlxJtIe+qqEXQChmfc7nWdyr/yz3h45Utk1tUn8Cz5+A==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.4.tgz", + "integrity": "sha512-mGSqhEPL7029XL7QHNPxPs15JVa02hvZvysUcyMP9UXdGFwncl2WU0bqx+Ysgzd+WAbv8rfNa73QveOxAnAM2w==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.3.tgz", - "integrity": "sha512-01Hxaaat6m0Xp9AXGM8mjFtqqwDjzlMP0eQq9zll9U85ttVALGCGDuEvra5Feu/NbP5AEP1MaopPwzsTcUq1cw==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.4.tgz", + "integrity": "sha512-tTyJRM9dHvlMPt1KrBFVB5OW1kXOsRNvAPtbzoKazd5RhD5/wKlXk1qR2MpaZRYwf4WDMadt0Pv0GwxB41CVow==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.3.tgz", - "integrity": "sha512-Eo2gq0Q/er2muf8Z83X21UFoB7EU6/m3GNKvrhACJkjVThd0uA+8RfKpfNhuMCl1bKRfBzKOk6xaYKQZ4lZqvA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.4.tgz", + "integrity": "sha512-phQuC2Imrb3TjOJwLN8EO50nb2FHe8Ew0OwgZDH1SV6asIPGudnwTQtighDF2EAYlXChLoMJwqjAp4vAaACq6w==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.3.tgz", - "integrity": "sha512-CN62ESxaquP61n1ZjQP/jZte8CE09M6kNn3baos2SeUfdVBkWN5n6vGp2iKyb/bm/x4JQzEvJgRHLGd5F5b81w==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.4.tgz", + "integrity": "sha512-oH6JUZkocgmjzzYaP5juERLpJQSwazdjZrTPgLRmAU2bzJ688x0vfMB/WTv4r58RiecdHvXOPC46VtsMy/mepg==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.3.tgz", - "integrity": "sha512-feq+K8TxIznZE+zhdVurF3WNJ/Sa35dQNYbaqM/wsCbWdzXr5lyq+AaTUSER2cUR+SXPnd/EY75EPRjf4s1SLg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.4.tgz", + "integrity": "sha512-U4iWGn/9TrAfpAdfd56eO0pRxIgb0a8Wj9jClrhT8hvZnOnS4dfMPW7o4fn15D/KqoiVYHRm43jjBaTt3g/2KA==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.3.tgz", - "integrity": "sha512-CLP3EgyNuPcg2cshbwkqYy5bbAgK+VhyfMU7oIYyn+x4Y67xb5C5ylxsNUjRmr8BX+MW3YhVNm6Lq6FKtRTWHQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.4.tgz", + "integrity": "sha512-S2s9xWTGMTa/fG5EyMGDeL0wrWVgOSQcNddJWgu6rG1NCSXJHs76ZP9AsxjB3f2nZow9fWOyApklIgiTGZKhiw==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.3.tgz", - "integrity": "sha512-JHeZXD4auLYBnrKn6JYJ0o5nWJI9PhChA/Nt0G4MvLaMrvXuWnY93R3a7PiXeJQphpL1nYsaMcoV2QtuvRnF/g==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.4.tgz", + "integrity": "sha512-UkGfQvYlwOaeYJzZG4cLV0hCASzQZnKNktRXUo3/BMZvdau40AOz9GzmGA063n1piq6VrFFh43apRDQx8hMP2w==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.3.tgz", - "integrity": "sha512-FyXlD2ZjZqTFh0sOQxFDiWG1uQUEOLbEh9gKN/7pFxck5Vw0qjWSDqbn6C10GAa1rXJpwsntHcmLqydY9ST9ZA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.4.tgz", + "integrity": "sha512-3lqFi4VFo/Vwvn77FZXeLd0ctolIJH/uXkH3yNgEk89Eh6D3XXAC9/iTPEzeEpsNE5IqGIsFa5Z0iPeOh25IyA==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.3.tgz", - "integrity": "sha512-OrDGMvDBI2g7s04J8dh8/I7eSO+/E7nMDT2Z5IruBfUO/RiigF1OF6xoH33Dn4W/OwAWSUf1s2nXamb28ZklTA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.4.tgz", + "integrity": "sha512-HqpWZkVslDHIwdQ9D+gk7NuAulgQvRxF9no54ut/M55KEb3mi7sQS3GwpPJzSyzzP0UkjQVN7/tbk88/CaX4EQ==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.3.tgz", - "integrity": "sha512-DcnUpXnVCJvmv0TzuLwKBC2nsQHle8EIiAJiJ+PipEVC16wHXaPEKP0EqN8WnBe0TPvMITOUlP2aiL5YMld+CQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.4.tgz", + "integrity": "sha512-d/nMCKKh/SVDbqR9ju+b78vOr0tNXtfBjcp5vfHONCCOAL9ad8gN9dC/u+UnH939pz7wO+0u/x9y1MaZcb/lKA==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.3.tgz", - "integrity": "sha512-BDYf/l1WVhWE+FHAW3FzZPtVlk9QsrwsxGzABmN4g8bTjmhazsId3h127pliDRRu5674k1Y2RWejbpN46N9ZhQ==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.4.tgz", + "integrity": "sha512-lOD9p2dmjZcNiTU+sGe9Nn6G3aYw3k0HBJies1PU0j5IGfp6tdKOQ6mzfACRFCqXjnBuTqK7eTYpwx09O5LLfg==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.3.tgz", - "integrity": "sha512-WViAxWYMRIi+prTJTyV1wnqd2mS2cPqJlN85oscVhXdb/ZTFJdrpaqm/uDsZPGKHtbg5TuRX/ymKdOSk41YZow==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.4.tgz", + "integrity": "sha512-mTGnwWwVshAjGsd8rP+K6583cPDgxOunsqqldEYij7T5/ysluMHKqUIT4TJHfrDFadUwrghAL6QjER4FeqQXoA==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.3.tgz", - "integrity": "sha512-Iw8lkNHUC4oGP1O/KhumcVy77u2s6+KUjieUqzEU3XuWJqZ+AY7uVMrrCbAiwWTkpQHkr00BuXH5RpC6Sb/7Ug==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.4.tgz", + "integrity": "sha512-AQYuUGp50XM29/N/dehADxvc2bUqDcoqrVuijop1Wv72SyxT6dDB9wjUxuPZm2HwIM876UoNNBMVd+iX/UTKVQ==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.3.tgz", - "integrity": "sha512-0AGkWQMzeoeAtXQRNB3s4J1/T2XbigM2/Mn2yU1tQSmQRmHIZdkGbVq2A3aDdNslPyhb9/lH0S5GMTZ4xsjBqg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.4.tgz", + "integrity": "sha512-+AsFBwKgQuhV2shfGgA9YloxLDVjXgUEWZum7glR5lLmV94IThu/u2JZGxTgjYby6kyXEx8lKOqP5rTEVBR0Rw==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.3.tgz", - "integrity": "sha512-4+rR/WHOxIVh53UIQIICryjdoKdHsFZFD4zLSonJ9RRw7bhKzVyXbnRPsWSfwybYqw9sB7ots/SYyufL1mBpEg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.4.tgz", + "integrity": "sha512-zD1TKYX9553OiLS/qkXPMlWoELYkH/VkzRYNKEU+GwFiqkq0SuxsKnsCg5UCdxN3cqd+1KZ8SS3R+WG/Hxy2jQ==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.3.tgz", - "integrity": "sha512-cVpWnkx9IYg99EjGxa5Gc0XmqumtAwK3aoz7O4Dii2vko+qXbkHoujWA68cqXjhh6TsLaQelfDO4MVnyr+ODeA==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.4.tgz", + "integrity": "sha512-PY1NjEsLRhPEFFg1AV0/4Or/gR+q2dOb9s5rXcPuCjyHRzbt8vnHJl3vYj+641TgWZzTFmSUnZbzs1zwTzjeqw==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.3.tgz", - "integrity": "sha512-RxmhKLbTCDAY2xOfrww6ieIZkZF+KBqG7S2Ako2SljKXRFi+0863PspK74QQ7JpmWwncChY25JTJSbVBYGQk2Q==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.4.tgz", + "integrity": "sha512-B3Z7s8QZQW9tKGleMRXvVmwwLPAUoDCHs4WZ2ElVMWiortLJFowU1NjAhXOKjDgC7o9ByeVcwyOlJ+F2r6ZgmQ==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.3.tgz", - "integrity": "sha512-0r36VeEJ4efwmofxVJRXDjVRP2jTmv877zc+i+Pc7MNsIr38NfsjkQj23AfF7l0WbB+RQ7VUb+LDiqC/KY/M/A==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.4.tgz", + "integrity": "sha512-0HCu8R3mY/H5V7N6kdlsJkvrT591bO/oRZy8ztF1dhgNU5xD5tAh5bKByT1UjTGjp/VVBsl1PDQ3L18SfvtnBQ==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.3.tgz", - "integrity": "sha512-wgO6rc7uGStH22nur4aLFcq7Wh86bE9cOFmfTr/yxN3BXvDEdCSXyKkO+U5JIt53eTOgC47v9k/C1bITWL/Teg==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.4.tgz", + "integrity": "sha512-VUjhVDQycse1gLbe06pC/uaA0M+piQXJpdpNdhg8sPmeIZZqu5xPoGWVCmcsOO2gaM2cywuTYTHkXRozo3/Nkg==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.3.tgz", - "integrity": "sha512-FdVl64OIuiKjgXBjwZaJLKp0eaEckifbhn10dXWhysMJkWblg3OEEGKSIyhiD5RSgAya8WzP3DNkngtIg3Nt7g==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.4.tgz", + "integrity": "sha512-0kLAjs+xN5OjhTt/aUA6t48SfENSCKgGPfExADYTOo/UCn0ivxos9/anUVeSfg+L+2O9xkFxvJXIJfG+Q4sYSg==", "dev": true, "optional": true }, @@ -5284,9 +5206,9 @@ "dev": true }, "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true }, "array-includes": { @@ -5510,18 +5432,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - } - }, "command-line-usage": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", @@ -5543,12 +5453,6 @@ "color-convert": "^1.9.0" } }, - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -5595,12 +5499,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true } } }, @@ -5806,33 +5704,33 @@ } }, "esbuild": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.3.tgz", - "integrity": "sha512-9n3AsBRe6sIyOc6kmoXg2ypCLgf3eZSraWFRpnkto+svt8cZNuKTkb1bhQcitBcvIqjNiK7K0J3KPmwGSfkA8g==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.4.tgz", + "integrity": "sha512-zBn9MeCwT7W5F1a3lXClD61ip6vQM+H8Msb0w8zMT4ZKBpDg+rFAraNyWCDelB/2L6M3g6AXHPnsyvjMFnxtFw==", "dev": true, "requires": { - "@esbuild/android-arm": "0.17.3", - "@esbuild/android-arm64": "0.17.3", - "@esbuild/android-x64": "0.17.3", - "@esbuild/darwin-arm64": "0.17.3", - "@esbuild/darwin-x64": "0.17.3", - "@esbuild/freebsd-arm64": "0.17.3", - "@esbuild/freebsd-x64": "0.17.3", - "@esbuild/linux-arm": "0.17.3", - "@esbuild/linux-arm64": "0.17.3", - "@esbuild/linux-ia32": "0.17.3", - "@esbuild/linux-loong64": "0.17.3", - "@esbuild/linux-mips64el": "0.17.3", - "@esbuild/linux-ppc64": "0.17.3", - "@esbuild/linux-riscv64": "0.17.3", - "@esbuild/linux-s390x": "0.17.3", - "@esbuild/linux-x64": "0.17.3", - "@esbuild/netbsd-x64": "0.17.3", - "@esbuild/openbsd-x64": "0.17.3", - "@esbuild/sunos-x64": "0.17.3", - "@esbuild/win32-arm64": "0.17.3", - "@esbuild/win32-ia32": "0.17.3", - "@esbuild/win32-x64": "0.17.3" + "@esbuild/android-arm": "0.17.4", + "@esbuild/android-arm64": "0.17.4", + "@esbuild/android-x64": "0.17.4", + "@esbuild/darwin-arm64": "0.17.4", + "@esbuild/darwin-x64": "0.17.4", + "@esbuild/freebsd-arm64": "0.17.4", + "@esbuild/freebsd-x64": "0.17.4", + "@esbuild/linux-arm": "0.17.4", + "@esbuild/linux-arm64": "0.17.4", + "@esbuild/linux-ia32": "0.17.4", + "@esbuild/linux-loong64": "0.17.4", + "@esbuild/linux-mips64el": "0.17.4", + "@esbuild/linux-ppc64": "0.17.4", + "@esbuild/linux-riscv64": "0.17.4", + "@esbuild/linux-s390x": "0.17.4", + "@esbuild/linux-x64": "0.17.4", + "@esbuild/netbsd-x64": "0.17.4", + "@esbuild/openbsd-x64": "0.17.4", + "@esbuild/sunos-x64": "0.17.4", + "@esbuild/win32-arm64": "0.17.4", + "@esbuild/win32-ia32": "0.17.4", + "@esbuild/win32-x64": "0.17.4" } }, "escalade": { @@ -6157,9 +6055,9 @@ "dev": true }, "fast-xml-parser": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.13.tgz", - "integrity": "sha512-g+OboAw8ol1FgTHhKLR7ZHcItNudceiY04BBrvqa0JBWoPhi/+e5r4H5AeW+EsQCroJLJwsuOP3dD3c6cc5uOg==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.14.tgz", + "integrity": "sha512-uKe7uxZ9DgNOmHfUmBdhkTBZcMMVxvQ3vELTxUpmotAqRxkpMayEiiQ4AQWTGAVyfzT4Dv79jaszLECWCYbd4w==", "dev": true, "requires": { "strnum": "^1.0.5" @@ -6208,15 +6106,6 @@ "to-regex-range": "^5.0.1" } }, - "find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "requires": { - "array-back": "^3.0.1" - } - }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -6502,15 +6391,15 @@ "dev": true }, "hereby": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/hereby/-/hereby-1.7.1.tgz", - "integrity": "sha512-lh5w90yCUYkajcuuoIjWkqXDdQyzonLRYmZ7QSf8gJVURKP8SjoO4LtQz2d+saAEszOWfBd1gY50ngbppga1Xw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/hereby/-/hereby-1.8.0.tgz", + "integrity": "sha512-htYg9T4qDeaCyo/2xX3rJVG7JXUjE9p0xJl/50RSV30qPOpHOipDjOSlO1sdhCTMBIf/P7CXer8GUuiEfgzmsg==", "dev": true, "requires": { - "command-line-args": "^5.2.1", "command-line-usage": "^6.1.3", "fastest-levenshtein": "^1.0.16", "import-meta-resolve": "^2.2.1", + "minimist": "^1.2.7", "picocolors": "^1.0.0", "pretty-ms": "^8.0.0" } @@ -6853,12 +6742,6 @@ "p-locate": "^5.0.0" } }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -7533,20 +7416,6 @@ "deep-extend": "~0.6.0", "typical": "^5.2.0", "wordwrapjs": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true - } } }, "text-table": { @@ -7661,9 +7530,9 @@ "dev": true }, "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true }, "unbox-primitive": { @@ -7777,14 +7646,6 @@ "requires": { "reduce-flatten": "^2.0.0", "typical": "^5.2.0" - }, - "dependencies": { - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true - } } }, "workerpool": { From 87c808ff2a43fa37207fff6c93648a1f20670db9 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Mon, 23 Jan 2023 11:59:24 -0800 Subject: [PATCH 02/15] Add test case for #52271 (#52333) Fixes https://github.com/microsoft/TypeScript/issues/52271 --- .../substitutionTypePassedToExtends.js | 10 ++++++ .../substitutionTypePassedToExtends.symbols | 32 +++++++++++++++++++ .../substitutionTypePassedToExtends.types | 13 ++++++++ .../substitutionTypePassedToExtends.ts | 8 +++++ 4 files changed, 63 insertions(+) create mode 100644 tests/baselines/reference/substitutionTypePassedToExtends.js create mode 100644 tests/baselines/reference/substitutionTypePassedToExtends.symbols create mode 100644 tests/baselines/reference/substitutionTypePassedToExtends.types create mode 100644 tests/cases/compiler/substitutionTypePassedToExtends.ts diff --git a/tests/baselines/reference/substitutionTypePassedToExtends.js b/tests/baselines/reference/substitutionTypePassedToExtends.js new file mode 100644 index 00000000000..13460c28e5f --- /dev/null +++ b/tests/baselines/reference/substitutionTypePassedToExtends.js @@ -0,0 +1,10 @@ +//// [substitutionTypePassedToExtends.ts] +type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' +type Bar1 = T + +type Foo2 = Set extends Set ? Bar2> : 'else' +type Bar2> = T + + +//// [substitutionTypePassedToExtends.js] +"use strict"; diff --git a/tests/baselines/reference/substitutionTypePassedToExtends.symbols b/tests/baselines/reference/substitutionTypePassedToExtends.symbols new file mode 100644 index 00000000000..b4ff138a915 --- /dev/null +++ b/tests/baselines/reference/substitutionTypePassedToExtends.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/substitutionTypePassedToExtends.ts === +type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' +>Foo1 : Symbol(Foo1, Decl(substitutionTypePassedToExtends.ts, 0, 0)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 0, 10)) +>B : Symbol(B, Decl(substitutionTypePassedToExtends.ts, 0, 12)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 0, 10)) +>B : Symbol(B, Decl(substitutionTypePassedToExtends.ts, 0, 12)) +>Bar1 : Symbol(Bar1, Decl(substitutionTypePassedToExtends.ts, 0, 67)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 0, 10)) +>B : Symbol(B, Decl(substitutionTypePassedToExtends.ts, 0, 12)) + +type Bar1 = T +>Bar1 : Symbol(Bar1, Decl(substitutionTypePassedToExtends.ts, 0, 67)) +>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 1, 10)) +>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 1, 10)) + +type Foo2 = Set extends Set ? Bar2> : 'else' +>Foo2 : Symbol(Foo2, Decl(substitutionTypePassedToExtends.ts, 1, 36)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 3, 10)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 3, 10)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Bar2 : Symbol(Bar2, Decl(substitutionTypePassedToExtends.ts, 3, 68)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 3, 10)) + +type Bar2> = T +>Bar2 : Symbol(Bar2, Decl(substitutionTypePassedToExtends.ts, 3, 68)) +>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 4, 10)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 4, 10)) + diff --git a/tests/baselines/reference/substitutionTypePassedToExtends.types b/tests/baselines/reference/substitutionTypePassedToExtends.types new file mode 100644 index 00000000000..80ed20dfc5f --- /dev/null +++ b/tests/baselines/reference/substitutionTypePassedToExtends.types @@ -0,0 +1,13 @@ +=== tests/cases/compiler/substitutionTypePassedToExtends.ts === +type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' +>Foo1 : Foo1 + +type Bar1 = T +>Bar1 : T + +type Foo2 = Set extends Set ? Bar2> : 'else' +>Foo2 : Foo2 + +type Bar2> = T +>Bar2 : T + diff --git a/tests/cases/compiler/substitutionTypePassedToExtends.ts b/tests/cases/compiler/substitutionTypePassedToExtends.ts new file mode 100644 index 00000000000..e969208e5a0 --- /dev/null +++ b/tests/cases/compiler/substitutionTypePassedToExtends.ts @@ -0,0 +1,8 @@ +// @strict: true +// @target: esnext + +type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' +type Bar1 = T + +type Foo2 = Set extends Set ? Bar2> : 'else' +type Bar2> = T From 97dfe72a0cff2f23eb1c36f4a5579c6b46689946 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Mon, 23 Jan 2023 12:52:51 -0800 Subject: [PATCH 03/15] Swap minestarks for zkat and joj in fabricbot.json (#52374) --- .github/fabricbot.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/fabricbot.json b/.github/fabricbot.json index 012b7884d7c..70c26603f34 100644 --- a/.github/fabricbot.json +++ b/.github/fabricbot.json @@ -31,7 +31,7 @@ { "name": "addReply", "parameters": { - "comment": "Thanks for the PR! It looks like you've changed the TSServer protocol in some way. Please ensure that any changes here don't break consumers of the current TSServer API. For some extra review, we'll ping @sheetalkamat, @mjbvz, and @minestarks for you. Feel free to loop in other consumers/maintainers if necessary" + "comment": "Thanks for the PR! It looks like you've changed the TSServer protocol in some way. Please ensure that any changes here don't break consumers of the current TSServer API. For some extra review, we'll ping @sheetalkamat, @mjbvz, @zkat, and @joj for you. Feel free to loop in other consumers/maintainers if necessary" } } ], @@ -487,7 +487,7 @@ { "name": "addReply", "parameters": { - "comment": "Thanks for the PR! It looks like you've changed 'preProcess.ts' in some way. Please ensure that any changes here don't break consumers with unique project systems such as Visual Studio. Pinging @sheetalkamat and @minestarks so they are aware of the changes." + "comment": "Thanks for the PR! It looks like you've changed 'preProcess.ts' in some way. Please ensure that any changes here don't break consumers with unique project systems such as Visual Studio. Pinging @sheetalkamat, @zkat, and @joj so they are aware of the changes." } } ] From 3d38971b7f9966d60cc8f9e320322ccd014d02c8 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Mon, 23 Jan 2023 13:49:26 -0800 Subject: [PATCH 04/15] Fix error in herebyfile after comparison strictness change (#52376) --- scripts/build/options.mjs | 8 ++++---- scripts/build/tests.mjs | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/build/options.mjs b/scripts/build/options.mjs index 2c3d1a2ce07..8c354552b10 100644 --- a/scripts/build/options.mjs +++ b/scripts/build/options.mjs @@ -26,13 +26,13 @@ const parsed = minimist(process.argv.slice(2), { inspect: process.env.inspect || process.env["inspect-brk"] || process.env.i, host: process.env.TYPESCRIPT_HOST || process.env.host || "node", browser: process.env.browser || process.env.b || (os.platform() === "win32" ? "edge" : "chrome"), - timeout: process.env.timeout || 40000, + timeout: +(process.env.timeout ?? 0) || 40000, tests: process.env.test || process.env.tests || process.env.t, runners: process.env.runners || process.env.runner || process.env.ru, light: process.env.light === undefined || process.env.light !== "false", reporter: process.env.reporter || process.env.r, fix: process.env.fix || process.env.f, - workers: process.env.workerCount || ((os.cpus().length - (ci ? 0 : 1)) || 1), + workers: +(process.env.workerCount ?? 0) || ((os.cpus().length - (ci ? 0 : 1)) || 1), failed: false, keepFailed: false, lkg: true, @@ -73,11 +73,11 @@ export default options; * @property {string | boolean} break * @property {string | boolean} inspect * @property {string} runners - * @property {string|number} workers + * @property {number} workers * @property {string} host * @property {string} reporter * @property {string} stackTraceLimit - * @property {string|number} timeout + * @property {number} timeout * @property {boolean} failed * @property {boolean} keepFailed * @property {boolean} ci diff --git a/scripts/build/tests.mjs b/scripts/build/tests.mjs index 4db74ec5c07..daaa7c25133 100644 --- a/scripts/build/tests.mjs +++ b/scripts/build/tests.mjs @@ -175,9 +175,9 @@ export async function cleanTestDirs() { * @param {string} runners * @param {boolean} light * @param {string} [taskConfigsFolder] - * @param {string | number} [workerCount] + * @param {number} [workerCount] * @param {string} [stackTraceLimit] - * @param {string | number} [timeout] + * @param {number} [timeout] * @param {boolean} [keepFailed] * @param {number | undefined} [shards] * @param {number | undefined} [shardId] From 10941888dca8dc68a64fe1729258cf9ffef861ec Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Mon, 23 Jan 2023 15:31:58 -0800 Subject: [PATCH 05/15] Plumb formatting to getDocCommentTemplateAtPosition (#52349) Fixes https://github.com/microsoft/TypeScript/issues/52348 --- src/harness/client.ts | 2 +- src/harness/fourslashImpl.ts | 2 +- src/harness/fourslashInterfaceImpl.ts | 2 +- src/harness/harnessLanguageService.ts | 4 ++-- src/server/session.ts | 2 +- src/services/services.ts | 5 +++-- src/services/shims.ts | 6 +++--- src/services/types.ts | 2 +- tests/baselines/reference/api/tsserverlibrary.d.ts | 2 +- tests/baselines/reference/api/typescript.d.ts | 2 +- .../docCommentTemplateClassDeclMethods01.ts | 2 +- .../docCommentTemplateClassDeclMethods02.ts | 2 +- .../docCommentTemplateClassDeclProperty01.ts | 2 +- .../fourslash/docCommentTemplateConstructor01.ts | 2 +- .../docCommentTemplateExportAssignmentJS.ts | 2 +- .../docCommentTemplateFunctionExpression.ts | 2 +- .../docCommentTemplateFunctionWithParameters.ts | 2 +- .../docCommentTemplateFunctionWithParameters_js.ts | 2 +- ...ocCommentTemplateInterfacePropertyFunctionType.ts | 4 ++-- ...ocCommentTemplateInterfacesEnumsAndTypeAliases.ts | 4 ++-- .../docCommentTemplateJsSpecialPropertyAssignment.ts | 4 ++-- .../docCommentTemplateObjectLiteralMethods01.ts | 2 +- .../fourslash/docCommentTemplatePrototypeMethod.ts | 2 +- .../cases/fourslash/docCommentTemplateReturnsTag1.ts | 8 ++++---- .../cases/fourslash/docCommentTemplateReturnsTag2.ts | 4 ++-- .../docCommentTemplateVariableStatements01.ts | 6 +++--- .../docCommentTemplateVariableStatements03.ts | 12 ++++++------ .../docCommentTemplate_insideEmptyComment.ts | 2 +- 28 files changed, 47 insertions(+), 46 deletions(-) diff --git a/src/harness/client.ts b/src/harness/client.ts index 435c367e4e7..1b52ef2abe2 100644 --- a/src/harness/client.ts +++ b/src/harness/client.ts @@ -727,7 +727,7 @@ export class SessionClient implements LanguageService { return notImplemented(); } - getDocCommentTemplateAtPosition(_fileName: string, _position: number, _options?: DocCommentTemplateOptions): TextInsertion { + getDocCommentTemplateAtPosition(_fileName: string, _position: number, _options?: DocCommentTemplateOptions, _formatOptions?: FormatCodeSettings): TextInsertion { return notImplemented(); } diff --git a/src/harness/fourslashImpl.ts b/src/harness/fourslashImpl.ts index 0d8f5f4080d..153de11f3c5 100644 --- a/src/harness/fourslashImpl.ts +++ b/src/harness/fourslashImpl.ts @@ -3249,7 +3249,7 @@ export class TestState { public verifyDocCommentTemplate(expected: ts.TextInsertion | undefined, options?: ts.DocCommentTemplateOptions) { const name = "verifyDocCommentTemplate"; - const actual = this.languageService.getDocCommentTemplateAtPosition(this.activeFile.fileName, this.currentCaretPosition, options || { generateReturnInDocTemplate: true })!; + const actual = this.languageService.getDocCommentTemplateAtPosition(this.activeFile.fileName, this.currentCaretPosition, options || { generateReturnInDocTemplate: true }, this.formatCodeSettings)!; if (expected === undefined) { if (actual) { diff --git a/src/harness/fourslashInterfaceImpl.ts b/src/harness/fourslashInterfaceImpl.ts index f3eb069e6f6..b8bac73e899 100644 --- a/src/harness/fourslashInterfaceImpl.ts +++ b/src/harness/fourslashInterfaceImpl.ts @@ -452,7 +452,7 @@ export class Verify extends VerifyNegatable { public docCommentTemplateAt(marker: string | FourSlash.Marker, expectedOffset: number, expectedText: string, options?: ts.DocCommentTemplateOptions) { this.state.goToMarker(marker); - this.state.verifyDocCommentTemplate({ newText: expectedText.replace(/\r?\n/g, "\r\n"), caretOffset: expectedOffset }, options); + this.state.verifyDocCommentTemplate({ newText: expectedText.replace(/\r?\n/g, ts.testFormatSettings.newLineCharacter!), caretOffset: expectedOffset }, options); } public noDocCommentTemplateAt(marker: string | FourSlash.Marker) { diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 9c481ce1506..5b393da4b3b 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -587,8 +587,8 @@ class LanguageServiceShimProxy implements ts.LanguageService { getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: ts.FormatCodeOptions): ts.TextChange[] { return unwrapJSONCallResult(this.shim.getFormattingEditsAfterKeystroke(fileName, position, key, JSON.stringify(options))); } - getDocCommentTemplateAtPosition(fileName: string, position: number, options?: ts.DocCommentTemplateOptions): ts.TextInsertion { - return unwrapJSONCallResult(this.shim.getDocCommentTemplateAtPosition(fileName, position, options)); + getDocCommentTemplateAtPosition(fileName: string, position: number, options?: ts.DocCommentTemplateOptions, formatOptions?: ts.FormatCodeSettings): ts.TextInsertion { + return unwrapJSONCallResult(this.shim.getDocCommentTemplateAtPosition(fileName, position, options, formatOptions)); } isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean { return unwrapJSONCallResult(this.shim.isValidBraceCompletionAtPosition(fileName, position, openingBrace)); diff --git a/src/server/session.ts b/src/server/session.ts index 762469e1f60..820226c2f55 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -2083,7 +2083,7 @@ export class Session implements EventSender { private getDocCommentTemplate(args: protocol.FileLocationRequestArgs) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const position = this.getPositionInFile(args, file); - return languageService.getDocCommentTemplateAtPosition(file, position, this.getPreferences(file)); + return languageService.getDocCommentTemplateAtPosition(file, position, this.getPreferences(file), this.getFormatOptions(file)); } private getSpanOfEnclosingComment(args: protocol.SpanOfEnclosingCommentRequestArgs) { diff --git a/src/services/services.ts b/src/services/services.ts index aa1c2da69ba..f6e5fccfe06 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2436,8 +2436,9 @@ export function createLanguageService( : Promise.reject("Host does not implement `installPackage`"); } - function getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): TextInsertion | undefined { - return JsDoc.getDocCommentTemplateAtPosition(getNewLineOrDefaultFromHost(host, /*formatSettings*/ undefined), syntaxTreeCache.getCurrentSourceFile(fileName), position, options); + function getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): TextInsertion | undefined { + const formatSettings = formatOptions ? formatting.getFormatContext(formatOptions, host).options : undefined; + return JsDoc.getDocCommentTemplateAtPosition(getNewLineOrDefaultFromHost(host, formatSettings), syntaxTreeCache.getCurrentSourceFile(fileName), position, options); } function isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean { diff --git a/src/services/shims.ts b/src/services/shims.ts index 2f6f9fad8d4..eca35a4a6eb 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -349,7 +349,7 @@ export interface LanguageServiceShim extends Shim { /** * Returns JSON-encoded value of the type TextInsertion. */ - getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): string; + getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): string; /** * Returns JSON-encoded boolean to indicate whether we should support brace location @@ -1091,10 +1091,10 @@ class LanguageServiceShimObject extends ShimBase implements LanguageServiceShim }); } - public getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): string { + public getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): string { return this.forwardJSONCall( `getDocCommentTemplateAtPosition('${fileName}', ${position})`, - () => this.languageService.getDocCommentTemplateAtPosition(fileName, position, options) + () => this.languageService.getDocCommentTemplateAtPosition(fileName, position, options, formatOptions) ); } diff --git a/src/services/types.ts b/src/services/types.ts index ff726ff0663..11f22f4fc94 100644 --- a/src/services/types.ts +++ b/src/services/types.ts @@ -604,7 +604,7 @@ export interface LanguageService { getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; - getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): TextInsertion | undefined; + getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): TextInsertion | undefined; isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean; /** diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index d37896300e8..65f9a35b41d 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -9990,7 +9990,7 @@ declare namespace ts { getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; - getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): TextInsertion | undefined; + getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): TextInsertion | undefined; isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean; /** * This will return a defined result if the position is after the `>` of the opening tag, or somewhere in the text, of a JSXElement with no closing tag. diff --git a/tests/baselines/reference/api/typescript.d.ts b/tests/baselines/reference/api/typescript.d.ts index c9eeb8a00a1..e973a181793 100644 --- a/tests/baselines/reference/api/typescript.d.ts +++ b/tests/baselines/reference/api/typescript.d.ts @@ -6088,7 +6088,7 @@ declare namespace ts { getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions | FormatCodeSettings): TextChange[]; - getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions): TextInsertion | undefined; + getDocCommentTemplateAtPosition(fileName: string, position: number, options?: DocCommentTemplateOptions, formatOptions?: FormatCodeSettings): TextInsertion | undefined; isValidBraceCompletionAtPosition(fileName: string, position: number, openingBrace: number): boolean; /** * This will return a defined result if the position is after the `>` of the opening tag, or somewhere in the text, of a JSXElement with no closing tag. diff --git a/tests/cases/fourslash/docCommentTemplateClassDeclMethods01.ts b/tests/cases/fourslash/docCommentTemplateClassDeclMethods01.ts index 6acd0ad314e..15eccb60ce1 100644 --- a/tests/cases/fourslash/docCommentTemplateClassDeclMethods01.ts +++ b/tests/cases/fourslash/docCommentTemplateClassDeclMethods01.ts @@ -1,7 +1,7 @@ /// const singleLineOffset = 3; -const multiLineOffset = 12; +const multiLineOffset = 11; ////class C { diff --git a/tests/cases/fourslash/docCommentTemplateClassDeclMethods02.ts b/tests/cases/fourslash/docCommentTemplateClassDeclMethods02.ts index 5eed624a915..8aacf248d7d 100644 --- a/tests/cases/fourslash/docCommentTemplateClassDeclMethods02.ts +++ b/tests/cases/fourslash/docCommentTemplateClassDeclMethods02.ts @@ -1,6 +1,6 @@ /// -const multiLineOffset = 12; +const multiLineOffset = 11; ////class C { //// /*0*/ diff --git a/tests/cases/fourslash/docCommentTemplateClassDeclProperty01.ts b/tests/cases/fourslash/docCommentTemplateClassDeclProperty01.ts index 221bf619308..cf8cc5ca5a2 100644 --- a/tests/cases/fourslash/docCommentTemplateClassDeclProperty01.ts +++ b/tests/cases/fourslash/docCommentTemplateClassDeclProperty01.ts @@ -1,7 +1,7 @@ /// const singleLineOffset = 3; -const multiLineOffset = 12; +const multiLineOffset = 11; ////class C { diff --git a/tests/cases/fourslash/docCommentTemplateConstructor01.ts b/tests/cases/fourslash/docCommentTemplateConstructor01.ts index 6c9eedb773d..7e742c8f8b3 100644 --- a/tests/cases/fourslash/docCommentTemplateConstructor01.ts +++ b/tests/cases/fourslash/docCommentTemplateConstructor01.ts @@ -13,7 +13,7 @@ //// } ////} -const newTextOffset = 12; +const newTextOffset = 11; verify.docCommentTemplateAt("0", /*newTextOffset*/ newTextOffset, `/** * diff --git a/tests/cases/fourslash/docCommentTemplateExportAssignmentJS.ts b/tests/cases/fourslash/docCommentTemplateExportAssignmentJS.ts index 849227ba74b..be160acf488 100644 --- a/tests/cases/fourslash/docCommentTemplateExportAssignmentJS.ts +++ b/tests/cases/fourslash/docCommentTemplateExportAssignmentJS.ts @@ -8,7 +8,7 @@ //// exports.foo = (a) => {}; -verify.docCommentTemplateAt("", 8, +verify.docCommentTemplateAt("", 7, `/** * * @param {any} a diff --git a/tests/cases/fourslash/docCommentTemplateFunctionExpression.ts b/tests/cases/fourslash/docCommentTemplateFunctionExpression.ts index eaf75d064fc..aab2f30ed47 100644 --- a/tests/cases/fourslash/docCommentTemplateFunctionExpression.ts +++ b/tests/cases/fourslash/docCommentTemplateFunctionExpression.ts @@ -4,7 +4,7 @@ ////const x = /*next*/ function f(p) {} for (const marker of test.markerNames()) { - verify.docCommentTemplateAt(marker, 8, + verify.docCommentTemplateAt(marker, 7, `/** * * @param p diff --git a/tests/cases/fourslash/docCommentTemplateFunctionWithParameters.ts b/tests/cases/fourslash/docCommentTemplateFunctionWithParameters.ts index 50cebb527ce..a818ad8ac3d 100644 --- a/tests/cases/fourslash/docCommentTemplateFunctionWithParameters.ts +++ b/tests/cases/fourslash/docCommentTemplateFunctionWithParameters.ts @@ -7,7 +7,7 @@ const noIndentScaffolding = "/**\n * \n * @param x\n * @param y\n */"; const oneIndentScaffolding = "/**\n * \n * @param x\n * @param y\n */"; -const noIndentOffset = 8; +const noIndentOffset = 7; const oneIndentOffset = noIndentOffset + 4; goTo.marker("0"); diff --git a/tests/cases/fourslash/docCommentTemplateFunctionWithParameters_js.ts b/tests/cases/fourslash/docCommentTemplateFunctionWithParameters_js.ts index c2917d8f807..eb7fbaee2fe 100644 --- a/tests/cases/fourslash/docCommentTemplateFunctionWithParameters_js.ts +++ b/tests/cases/fourslash/docCommentTemplateFunctionWithParameters_js.ts @@ -4,7 +4,7 @@ /////*0*/ ////function f(a, ...b): boolean {} -verify.docCommentTemplateAt("0", 8, +verify.docCommentTemplateAt("0", 7, `/** * * @param {any} a diff --git a/tests/cases/fourslash/docCommentTemplateInterfacePropertyFunctionType.ts b/tests/cases/fourslash/docCommentTemplateInterfacePropertyFunctionType.ts index d14274800e6..a84d4ed6213 100644 --- a/tests/cases/fourslash/docCommentTemplateInterfacePropertyFunctionType.ts +++ b/tests/cases/fourslash/docCommentTemplateInterfacePropertyFunctionType.ts @@ -5,7 +5,7 @@ //// foo: (a: number, b: string) => void; ////} -verify.docCommentTemplateAt("", 12, +verify.docCommentTemplateAt("", 11, `/** * * @param a @@ -13,7 +13,7 @@ verify.docCommentTemplateAt("", 12, * @returns */`); -verify.docCommentTemplateAt("", 12, +verify.docCommentTemplateAt("", 11, `/** * * @param a diff --git a/tests/cases/fourslash/docCommentTemplateInterfacesEnumsAndTypeAliases.ts b/tests/cases/fourslash/docCommentTemplateInterfacesEnumsAndTypeAliases.ts index d0805d53255..2f2d7f50ae9 100644 --- a/tests/cases/fourslash/docCommentTemplateInterfacesEnumsAndTypeAliases.ts +++ b/tests/cases/fourslash/docCommentTemplateInterfacesEnumsAndTypeAliases.ts @@ -30,7 +30,7 @@ verify.docCommentTemplateAt("interfaceFoo", /*expectedOffset*/ 3, verify.docCommentTemplateAt("propertybar", /*expectedOffset*/ 3, "/** */"); -verify.docCommentTemplateAt("methodbaz", /*expectedOffset*/ 12, +verify.docCommentTemplateAt("methodbaz", /*expectedOffset*/ 11, `/** * * @param message @@ -46,4 +46,4 @@ verify.docCommentTemplateAt("memberOpen", /*expectedOffset*/ 3, "/** */"); verify.docCommentTemplateAt("memberClosed", /*expectedOffset*/ 3, - "/** */"); \ No newline at end of file + "/** */"); diff --git a/tests/cases/fourslash/docCommentTemplateJsSpecialPropertyAssignment.ts b/tests/cases/fourslash/docCommentTemplateJsSpecialPropertyAssignment.ts index 6a15ce133e4..6ade6753a28 100644 --- a/tests/cases/fourslash/docCommentTemplateJsSpecialPropertyAssignment.ts +++ b/tests/cases/fourslash/docCommentTemplateJsSpecialPropertyAssignment.ts @@ -5,14 +5,14 @@ ////const myNamespace = {}; /////*1*/myNamespace.myExport = function(x) {}; -verify.docCommentTemplateAt("0", 8, +verify.docCommentTemplateAt("0", 7, `/** * * @param {any} a */ `); -verify.docCommentTemplateAt("1", 8, +verify.docCommentTemplateAt("1", 7, `/** * * @param {any} x diff --git a/tests/cases/fourslash/docCommentTemplateObjectLiteralMethods01.ts b/tests/cases/fourslash/docCommentTemplateObjectLiteralMethods01.ts index 567fa89495f..4536f5f4f7e 100644 --- a/tests/cases/fourslash/docCommentTemplateObjectLiteralMethods01.ts +++ b/tests/cases/fourslash/docCommentTemplateObjectLiteralMethods01.ts @@ -1,6 +1,6 @@ /// -const multiLineOffset = 12; +const multiLineOffset = 11; ////var x = { //// /*0*/ diff --git a/tests/cases/fourslash/docCommentTemplatePrototypeMethod.ts b/tests/cases/fourslash/docCommentTemplatePrototypeMethod.ts index 9031898d52a..c2a39748234 100644 --- a/tests/cases/fourslash/docCommentTemplatePrototypeMethod.ts +++ b/tests/cases/fourslash/docCommentTemplatePrototypeMethod.ts @@ -7,7 +7,7 @@ ////C.prototype.method = /*next*/ function (p) {} for (const marker of test.markerNames()) { - verify.docCommentTemplateAt(marker, 8, + verify.docCommentTemplateAt(marker, 7, `/** * * @param {any} p diff --git a/tests/cases/fourslash/docCommentTemplateReturnsTag1.ts b/tests/cases/fourslash/docCommentTemplateReturnsTag1.ts index 09efa26036f..7276ce30cb4 100644 --- a/tests/cases/fourslash/docCommentTemplateReturnsTag1.ts +++ b/tests/cases/fourslash/docCommentTemplateReturnsTag1.ts @@ -28,19 +28,19 @@ verify.docCommentTemplateAt("0", 3, "/** */"); -verify.docCommentTemplateAt("1", 8, +verify.docCommentTemplateAt("1", 7, `/** * * @returns */`); -verify.docCommentTemplateAt("2", 8, +verify.docCommentTemplateAt("2", 7, `/** * * @returns */`); -verify.docCommentTemplateAt("3", 8, +verify.docCommentTemplateAt("3", 7, `/** * * @returns @@ -49,7 +49,7 @@ verify.docCommentTemplateAt("3", 8, verify.docCommentTemplateAt("4", 3, "/** */"); -verify.docCommentTemplateAt("5", 12, +verify.docCommentTemplateAt("5", 11, `/** * * @returns diff --git a/tests/cases/fourslash/docCommentTemplateReturnsTag2.ts b/tests/cases/fourslash/docCommentTemplateReturnsTag2.ts index 18767a42280..ab545182029 100644 --- a/tests/cases/fourslash/docCommentTemplateReturnsTag2.ts +++ b/tests/cases/fourslash/docCommentTemplateReturnsTag2.ts @@ -5,7 +5,7 @@ //// return 1; ////} -verify.docCommentTemplateAt("0", 8, +verify.docCommentTemplateAt("0", 7, `/** * * @param x @@ -13,7 +13,7 @@ verify.docCommentTemplateAt("0", 8, * @returns */`, { generateReturnInDocTemplate: true }); -verify.docCommentTemplateAt("0", 8, +verify.docCommentTemplateAt("0", 7, `/** * * @param x diff --git a/tests/cases/fourslash/docCommentTemplateVariableStatements01.ts b/tests/cases/fourslash/docCommentTemplateVariableStatements01.ts index 974ce1641ab..9c6633dbabb 100644 --- a/tests/cases/fourslash/docCommentTemplateVariableStatements01.ts +++ b/tests/cases/fourslash/docCommentTemplateVariableStatements01.ts @@ -33,7 +33,7 @@ for (const varName of ["a", "b", "c", "d"]) { "/** */"); } -verify.docCommentTemplateAt("e", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("e", /*newTextOffset*/ 7, `/** * * @param x @@ -42,10 +42,10 @@ verify.docCommentTemplateAt("e", /*newTextOffset*/ 8, * @returns */`); -verify.docCommentTemplateAt("f", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("f", /*newTextOffset*/ 7, `/** * * @param a * @param b * @param c - */`); \ No newline at end of file + */`); diff --git a/tests/cases/fourslash/docCommentTemplateVariableStatements03.ts b/tests/cases/fourslash/docCommentTemplateVariableStatements03.ts index a998760fc74..2af54e350b0 100644 --- a/tests/cases/fourslash/docCommentTemplateVariableStatements03.ts +++ b/tests/cases/fourslash/docCommentTemplateVariableStatements03.ts @@ -29,14 +29,14 @@ //// } ////})) -verify.docCommentTemplateAt("a", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("a", /*newTextOffset*/ 7, `/** * * @param x * @returns */`); -verify.docCommentTemplateAt("b", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("b", /*newTextOffset*/ 7, `/** * * @param x @@ -45,7 +45,7 @@ verify.docCommentTemplateAt("b", /*newTextOffset*/ 8, * @returns */`); -verify.docCommentTemplateAt("c", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("c", /*newTextOffset*/ 7, `/** * * @param x @@ -55,7 +55,7 @@ verify.docCommentTemplateAt("c", /*newTextOffset*/ 8, verify.docCommentTemplateAt("d", /*newTextOffset*/ 3, "/** */"); -verify.docCommentTemplateAt("e", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("e", /*newTextOffset*/ 7, `/** * * @param param0 @@ -65,8 +65,8 @@ verify.docCommentTemplateAt("e", /*newTextOffset*/ 8, verify.docCommentTemplateAt("f", /*newTextOffset*/ 3, "/** */"); -verify.docCommentTemplateAt("g", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("g", /*newTextOffset*/ 7, `/** * * @param x - */`); \ No newline at end of file + */`); diff --git a/tests/cases/fourslash/docCommentTemplate_insideEmptyComment.ts b/tests/cases/fourslash/docCommentTemplate_insideEmptyComment.ts index e5d20a49df0..88371c8a52e 100644 --- a/tests/cases/fourslash/docCommentTemplate_insideEmptyComment.ts +++ b/tests/cases/fourslash/docCommentTemplate_insideEmptyComment.ts @@ -6,7 +6,7 @@ /////** Doc/*1*/ */ ////function g(p) { return p; } -verify.docCommentTemplateAt("", /*newTextOffset*/ 8, +verify.docCommentTemplateAt("", /*newTextOffset*/ 7, `/** * * @param p From 7458629f1a442924a339af4dd292493084350f47 Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Tue, 24 Jan 2023 06:06:21 +0000 Subject: [PATCH 06/15] Update package-lock.json --- package-lock.json | 184 +++++++++++++++++++++++----------------------- 1 file changed, 92 insertions(+), 92 deletions(-) diff --git a/package-lock.json b/package-lock.json index 61ce7fcf2c1..526310b7f4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -558,9 +558,9 @@ } }, "node_modules/@octokit/endpoint": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.4.tgz", - "integrity": "sha512-hXJP43VT2IrUxBCNIahta8qawpIzLvCjHLCuDDsdIPbd6+jPwsc3KGl/kdQ37mLd+sdiJm6c9qKI7k5CjE0Z9A==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", + "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", "dev": true, "dependencies": { "@octokit/types": "^9.0.0", @@ -801,14 +801,14 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz", - "integrity": "sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.49.0.tgz", + "integrity": "sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/type-utils": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/type-utils": "5.49.0", + "@typescript-eslint/utils": "5.49.0", "debug": "^4.3.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", @@ -834,14 +834,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.2.tgz", - "integrity": "sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.49.0.tgz", + "integrity": "sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/typescript-estree": "5.49.0", "debug": "^4.3.4" }, "engines": { @@ -861,13 +861,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", - "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.49.0.tgz", + "integrity": "sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2" + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/visitor-keys": "5.49.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -878,13 +878,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", - "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.49.0.tgz", + "integrity": "sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/typescript-estree": "5.49.0", + "@typescript-eslint/utils": "5.49.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -905,9 +905,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", - "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.49.0.tgz", + "integrity": "sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -918,13 +918,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", - "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.49.0.tgz", + "integrity": "sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/visitor-keys": "5.49.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -945,16 +945,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", - "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.49.0.tgz", + "integrity": "sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/typescript-estree": "5.49.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" @@ -971,12 +971,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.49.0.tgz", + "integrity": "sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/types": "5.49.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -988,9 +988,9 @@ } }, "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -4831,9 +4831,9 @@ } }, "@octokit/endpoint": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.4.tgz", - "integrity": "sha512-hXJP43VT2IrUxBCNIahta8qawpIzLvCjHLCuDDsdIPbd6+jPwsc3KGl/kdQ37mLd+sdiJm6c9qKI7k5CjE0Z9A==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.5.tgz", + "integrity": "sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==", "dev": true, "requires": { "@octokit/types": "^9.0.0", @@ -5036,14 +5036,14 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz", - "integrity": "sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.49.0.tgz", + "integrity": "sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/type-utils": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/type-utils": "5.49.0", + "@typescript-eslint/utils": "5.49.0", "debug": "^4.3.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", @@ -5053,53 +5053,53 @@ } }, "@typescript-eslint/parser": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.2.tgz", - "integrity": "sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.49.0.tgz", + "integrity": "sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/typescript-estree": "5.49.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", - "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.49.0.tgz", + "integrity": "sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2" + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/visitor-keys": "5.49.0" } }, "@typescript-eslint/type-utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", - "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.49.0.tgz", + "integrity": "sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/typescript-estree": "5.49.0", + "@typescript-eslint/utils": "5.49.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", - "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.49.0.tgz", + "integrity": "sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", - "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.49.0.tgz", + "integrity": "sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/visitor-keys": "5.49.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5108,35 +5108,35 @@ } }, "@typescript-eslint/utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", - "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.49.0.tgz", + "integrity": "sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.49.0", + "@typescript-eslint/types": "5.49.0", + "@typescript-eslint/typescript-estree": "5.49.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.49.0.tgz", + "integrity": "sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/types": "5.49.0", "eslint-visitor-keys": "^3.3.0" } }, "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true }, "acorn-jsx": { From 273a67fba3fd8a57995d602ed919f728880d0e75 Mon Sep 17 00:00:00 2001 From: Jesper van den Ende Date: Tue, 24 Jan 2023 10:59:05 +0100 Subject: [PATCH 07/15] Add linkcode and linkplain to jsdoc tags (#52176) --- src/services/jsDoc.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/services/jsDoc.ts b/src/services/jsDoc.ts index 866ef2d9df2..04284edbfde 100644 --- a/src/services/jsDoc.ts +++ b/src/services/jsDoc.ts @@ -135,6 +135,8 @@ const jsDocTagNames = [ "lends", "license", "link", + "linkcode", + "linkplain", "listens", "member", "memberof", From 9ee093c0949b86c32120d0b5942ce05fad093a5b Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Tue, 24 Jan 2023 12:00:23 +0200 Subject: [PATCH 08/15] feat(52366): @prop is not provided as a valid JSDoc tag in autocompletion (#52384) --- src/services/jsDoc.ts | 1 + tests/cases/fourslash/jsdocPropTagCompletion.ts | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 tests/cases/fourslash/jsdocPropTagCompletion.ts diff --git a/src/services/jsDoc.ts b/src/services/jsDoc.ts index 04284edbfde..bf4226c22e6 100644 --- a/src/services/jsDoc.ts +++ b/src/services/jsDoc.ts @@ -149,6 +149,7 @@ const jsDocTagNames = [ "package", "param", "private", + "prop", "property", "protected", "public", diff --git a/tests/cases/fourslash/jsdocPropTagCompletion.ts b/tests/cases/fourslash/jsdocPropTagCompletion.ts new file mode 100644 index 00000000000..6501fbedd71 --- /dev/null +++ b/tests/cases/fourslash/jsdocPropTagCompletion.ts @@ -0,0 +1,11 @@ +/// + +/////** +//// * @typedef Foo +//// * @pr/**/ +//// */ + +verify.completions({ + marker: "", + includes: ["prop"], +}); From 7f64af23230d3682b852279ceba4891e5cc88077 Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Wed, 25 Jan 2023 06:06:34 +0000 Subject: [PATCH 09/15] Update package-lock.json --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 526310b7f4a..4cfc6841d5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2194,9 +2194,9 @@ "dev": true }, "node_modules/fast-xml-parser": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.14.tgz", - "integrity": "sha512-uKe7uxZ9DgNOmHfUmBdhkTBZcMMVxvQ3vELTxUpmotAqRxkpMayEiiQ4AQWTGAVyfzT4Dv79jaszLECWCYbd4w==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.15.tgz", + "integrity": "sha512-bF4/E33/K/EZDHV23IJpSK2SU7rZTaSkDH5G85nXX8SKlQ9qBpWQhyPpm2nlTBewDJgtpd6+1x4TNpKmocmthQ==", "dev": true, "dependencies": { "strnum": "^1.0.5" @@ -6055,9 +6055,9 @@ "dev": true }, "fast-xml-parser": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.14.tgz", - "integrity": "sha512-uKe7uxZ9DgNOmHfUmBdhkTBZcMMVxvQ3vELTxUpmotAqRxkpMayEiiQ4AQWTGAVyfzT4Dv79jaszLECWCYbd4w==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.15.tgz", + "integrity": "sha512-bF4/E33/K/EZDHV23IJpSK2SU7rZTaSkDH5G85nXX8SKlQ9qBpWQhyPpm2nlTBewDJgtpd6+1x4TNpKmocmthQ==", "dev": true, "requires": { "strnum": "^1.0.5" From 43ecac801bbd4625ad91d4fe067814afbb0e72b6 Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Wed, 25 Jan 2023 09:42:57 +0200 Subject: [PATCH 10/15] fix(52386): JSDoc code fixes for arrow-function initialized const duplicates comment (#52390) --- .../codefixes/fixUnmatchedParameter.ts | 4 ++-- .../codeFixRenameUnmatchedParameter4.ts | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 tests/cases/fourslash/codeFixRenameUnmatchedParameter4.ts diff --git a/src/services/codefixes/fixUnmatchedParameter.ts b/src/services/codefixes/fixUnmatchedParameter.ts index 0bf1d4195e0..267e207a6cc 100644 --- a/src/services/codefixes/fixUnmatchedParameter.ts +++ b/src/services/codefixes/fixUnmatchedParameter.ts @@ -83,7 +83,7 @@ function getDeleteAction(context: CodeFixContext, { name, jsDocHost, jsDocParame ); } -function getRenameAction(context: CodeFixContext, { name, signature, jsDocParameterTag }: Info) { +function getRenameAction(context: CodeFixContext, { name, jsDocHost, signature, jsDocParameterTag }: Info) { if (!length(signature.parameters)) return undefined; const sourceFile = context.sourceFile; @@ -110,7 +110,7 @@ function getRenameAction(context: CodeFixContext, { name, signature, jsDocParame jsDocParameterTag.comment ); const changes = textChanges.ChangeTracker.with(context, changeTracker => - changeTracker.replaceJSDocComment(sourceFile, signature, map(tags, t => t === jsDocParameterTag ? newJSDocParameterTag : t))); + changeTracker.replaceJSDocComment(sourceFile, jsDocHost, map(tags, t => t === jsDocParameterTag ? newJSDocParameterTag : t))); return createCodeFixActionWithoutFixAll(renameUnmatchedParameter, changes, [Diagnostics.Rename_param_tag_name_0_to_1, name.getText(sourceFile), parameterName]); } diff --git a/tests/cases/fourslash/codeFixRenameUnmatchedParameter4.ts b/tests/cases/fourslash/codeFixRenameUnmatchedParameter4.ts new file mode 100644 index 00000000000..9c271e6e158 --- /dev/null +++ b/tests/cases/fourslash/codeFixRenameUnmatchedParameter4.ts @@ -0,0 +1,19 @@ +/// + +// @filename: /a.ts +/////** +//// * @param {string} y +//// * @returns +//// */ +////export const foo = (x: string) => x; + +verify.codeFix({ + description: [ts.Diagnostics.Rename_param_tag_name_0_to_1.message, "y", "x"], + index: 1, + newFileContent: +`/** + * @param {string} x + * @returns + */ +export const foo = (x: string) => x;`, +}); From 022516e24df53ea011d5cb6adc700de916217e43 Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Wed, 25 Jan 2023 10:22:56 -0800 Subject: [PATCH 11/15] Suppress verbatimModuleSyntax error on ambient `export default` (#52414) --- src/compiler/checker.ts | 1 + .../verbatimModuleSyntaxRestrictionsCJS.errors.txt | 11 +++++++---- .../reference/verbatimModuleSyntaxRestrictionsCJS.js | 6 ++++++ .../verbatimModuleSyntaxRestrictionsCJS.symbols | 11 +++++++++++ .../verbatimModuleSyntaxRestrictionsCJS.types | 11 +++++++++++ ...xRestrictionsESM(esmoduleinterop=false).errors.txt | 6 ++++++ ...uleSyntaxRestrictionsESM(esmoduleinterop=false).js | 6 ++++++ ...axRestrictionsESM(esmoduleinterop=true).errors.txt | 6 ++++++ ...duleSyntaxRestrictionsESM(esmoduleinterop=true).js | 6 ++++++ .../verbatimModuleSyntaxRestrictionsCJS.ts | 6 ++++++ .../verbatimModuleSyntaxRestrictionsESM.ts | 6 ++++++ 11 files changed, 72 insertions(+), 4 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 9f77641faf5..3f53795cbe6 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -43901,6 +43901,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } const isIllegalExportDefaultInCJS = !node.isExportEquals && + !(node.flags & NodeFlags.Ambient) && compilerOptions.verbatimModuleSyntax && (moduleKind === ModuleKind.CommonJS || getSourceFileOfNode(node).impliedNodeFormat === ModuleKind.CommonJS); diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.errors.txt b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.errors.txt index 0be83274c5d..9bcb8b0214e 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.errors.txt +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.errors.txt @@ -1,4 +1,3 @@ -/decl.d.ts(2,1): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. /main.ts(1,8): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. /main.ts(2,13): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. /main.ts(3,10): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. @@ -12,13 +11,17 @@ /main7.ts(2,1): error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. -==== /decl.d.ts (1 errors) ==== +==== /decl.d.ts (0 errors) ==== declare function esmy(): void; export default esmy; - ~~~~~~~~~~~~~~~~~~~~ -!!! error TS1286: ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled. export declare function funciton(): void; +==== /ambient.d.ts (0 errors) ==== + declare module "ambient" { + const _default: number; + export default _default; + } + ==== /main.ts (6 errors) ==== import esmy from "./decl"; // error ~~~~ diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.js b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.js index e48c08b8b4c..e8a03f7fb2f 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.js +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.js @@ -5,6 +5,12 @@ declare function esmy(): void; export default esmy; export declare function funciton(): void; +//// [ambient.d.ts] +declare module "ambient" { + const _default: number; + export default _default; +} + //// [main.ts] import esmy from "./decl"; // error import * as esmy2 from "./decl"; // error diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.symbols b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.symbols index e85557f10c9..45b089f4d4a 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.symbols +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.symbols @@ -8,6 +8,17 @@ export default esmy; export declare function funciton(): void; >funciton : Symbol(funciton, Decl(decl.d.ts, 1, 20)) +=== /ambient.d.ts === +declare module "ambient" { +>"ambient" : Symbol("ambient", Decl(ambient.d.ts, 0, 0)) + + const _default: number; +>_default : Symbol(_default, Decl(ambient.d.ts, 1, 9)) + + export default _default; +>_default : Symbol(_default, Decl(ambient.d.ts, 1, 9)) +} + === /main.ts === import esmy from "./decl"; // error >esmy : Symbol(esmy, Decl(main.ts, 0, 6)) diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.types b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.types index 968c15c3f93..cf5f4dbfd5f 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.types +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsCJS.types @@ -8,6 +8,17 @@ export default esmy; export declare function funciton(): void; >funciton : () => void +=== /ambient.d.ts === +declare module "ambient" { +>"ambient" : typeof import("ambient") + + const _default: number; +>_default : number + + export default _default; +>_default : number +} + === /main.ts === import esmy from "./decl"; // error >esmy : () => void diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).errors.txt b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).errors.txt index b8003fc5d39..f5d5aaad4f0 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).errors.txt +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).errors.txt @@ -17,6 +17,12 @@ declare class CJSy {} export = CJSy; +==== /ambient.d.ts (0 errors) ==== + declare module "ambient" { + const _export: number; + export = _export; + } + ==== /types.ts (0 errors) ==== interface Typey {} export type { Typey }; diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).js b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).js index 9246ef5022e..a1aa16107fc 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).js +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=false).js @@ -4,6 +4,12 @@ declare class CJSy {} export = CJSy; +//// [ambient.d.ts] +declare module "ambient" { + const _export: number; + export = _export; +} + //// [types.ts] interface Typey {} export type { Typey }; diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).errors.txt b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).errors.txt index 7a6b23e911e..d984e4effea 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).errors.txt +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).errors.txt @@ -13,6 +13,12 @@ declare class CJSy {} export = CJSy; +==== /ambient.d.ts (0 errors) ==== + declare module "ambient" { + const _export: number; + export = _export; + } + ==== /types.ts (0 errors) ==== interface Typey {} export type { Typey }; diff --git a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).js b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).js index 9246ef5022e..a1aa16107fc 100644 --- a/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).js +++ b/tests/baselines/reference/verbatimModuleSyntaxRestrictionsESM(esmoduleinterop=true).js @@ -4,6 +4,12 @@ declare class CJSy {} export = CJSy; +//// [ambient.d.ts] +declare module "ambient" { + const _export: number; + export = _export; +} + //// [types.ts] interface Typey {} export type { Typey }; diff --git a/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsCJS.ts b/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsCJS.ts index d1df5e8bbd5..c01dde661fd 100644 --- a/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsCJS.ts +++ b/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsCJS.ts @@ -9,6 +9,12 @@ declare function esmy(): void; export default esmy; export declare function funciton(): void; +// @Filename: /ambient.d.ts +declare module "ambient" { + const _default: number; + export default _default; +} + // @Filename: /main.ts import esmy from "./decl"; // error import * as esmy2 from "./decl"; // error diff --git a/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsESM.ts b/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsESM.ts index dcc87bdb4a2..74e8b3eb923 100644 --- a/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsESM.ts +++ b/tests/cases/conformance/externalModules/verbatimModuleSyntaxRestrictionsESM.ts @@ -8,6 +8,12 @@ declare class CJSy {} export = CJSy; +// @Filename: /ambient.d.ts +declare module "ambient" { + const _export: number; + export = _export; +} + // @Filename: /types.ts interface Typey {} export type { Typey }; From be488fa075fbae0f720238135999ff9848580553 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 25 Jan 2023 10:24:25 -0800 Subject: [PATCH 12/15] Revert part of catch clause PR which broke other declarations (#52403) --- src/compiler/checker.ts | 4 +--- .../potentiallyUnassignedVariableInCatch.js | 22 ++++++++++++++++++ ...tentiallyUnassignedVariableInCatch.symbols | 18 +++++++++++++++ ...potentiallyUnassignedVariableInCatch.types | 23 +++++++++++++++++++ .../potentiallyUnassignedVariableInCatch.ts | 10 ++++++++ 5 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 tests/baselines/reference/potentiallyUnassignedVariableInCatch.js create mode 100644 tests/baselines/reference/potentiallyUnassignedVariableInCatch.symbols create mode 100644 tests/baselines/reference/potentiallyUnassignedVariableInCatch.types create mode 100644 tests/cases/compiler/potentiallyUnassignedVariableInCatch.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 3f53795cbe6..4a0238fd2a1 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -27211,7 +27211,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { isFunctionLike(node) && !getImmediatelyInvokedFunctionExpression(node) || node.kind === SyntaxKind.ModuleBlock || node.kind === SyntaxKind.SourceFile || - node.kind === SyntaxKind.CatchClause || node.kind === SyntaxKind.PropertyDeclaration)!; } @@ -27587,7 +27586,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { const isParameter = getRootDeclaration(declaration).kind === SyntaxKind.Parameter; const declarationContainer = getControlFlowContainer(declaration); let flowContainer = getControlFlowContainer(node); - const isCatch = flowContainer.kind === SyntaxKind.CatchClause; const isOuterVariable = flowContainer !== declarationContainer; const isSpreadDestructuringAssignmentTarget = node.parent && node.parent.parent && isSpreadAssignment(node.parent) && isDestructuringAssignmentTarget(node.parent.parent); const isModuleExports = symbol.flags & SymbolFlags.ModuleExports; @@ -27602,7 +27600,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { // We only look for uninitialized variables in strict null checking mode, and only when we can analyze // the entire control flow graph from the variable's declaration (i.e. when the flow container and // declaration container are the same). - const assumeInitialized = isParameter || isCatch || isAlias || isOuterVariable || isSpreadDestructuringAssignmentTarget || isModuleExports || isSameScopedBindingElement(node, declaration) || + const assumeInitialized = isParameter || isAlias || isOuterVariable || isSpreadDestructuringAssignmentTarget || isModuleExports || isSameScopedBindingElement(node, declaration) || type !== autoType && type !== autoArrayType && (!strictNullChecks || (type.flags & (TypeFlags.AnyOrUnknown | TypeFlags.Void)) !== 0 || isInTypeQuery(node) || isInAmbientOrTypeNode(node) || node.parent.kind === SyntaxKind.ExportSpecifier) || node.parent.kind === SyntaxKind.NonNullExpression || diff --git a/tests/baselines/reference/potentiallyUnassignedVariableInCatch.js b/tests/baselines/reference/potentiallyUnassignedVariableInCatch.js new file mode 100644 index 00000000000..16cf0e40c23 --- /dev/null +++ b/tests/baselines/reference/potentiallyUnassignedVariableInCatch.js @@ -0,0 +1,22 @@ +//// [potentiallyUnassignedVariableInCatch.ts] +let foo; +try { + if (Math.random() > 0.5) { + foo = 1234; + } +} catch { + foo; +} + + +//// [potentiallyUnassignedVariableInCatch.js] +"use strict"; +var foo; +try { + if (Math.random() > 0.5) { + foo = 1234; + } +} +catch (_a) { + foo; +} diff --git a/tests/baselines/reference/potentiallyUnassignedVariableInCatch.symbols b/tests/baselines/reference/potentiallyUnassignedVariableInCatch.symbols new file mode 100644 index 00000000000..97040ebb5c4 --- /dev/null +++ b/tests/baselines/reference/potentiallyUnassignedVariableInCatch.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/potentiallyUnassignedVariableInCatch.ts === +let foo; +>foo : Symbol(foo, Decl(potentiallyUnassignedVariableInCatch.ts, 0, 3)) + +try { + if (Math.random() > 0.5) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + foo = 1234; +>foo : Symbol(foo, Decl(potentiallyUnassignedVariableInCatch.ts, 0, 3)) + } +} catch { + foo; +>foo : Symbol(foo, Decl(potentiallyUnassignedVariableInCatch.ts, 0, 3)) +} + diff --git a/tests/baselines/reference/potentiallyUnassignedVariableInCatch.types b/tests/baselines/reference/potentiallyUnassignedVariableInCatch.types new file mode 100644 index 00000000000..ff381216aa3 --- /dev/null +++ b/tests/baselines/reference/potentiallyUnassignedVariableInCatch.types @@ -0,0 +1,23 @@ +=== tests/cases/compiler/potentiallyUnassignedVariableInCatch.ts === +let foo; +>foo : any + +try { + if (Math.random() > 0.5) { +>Math.random() > 0.5 : boolean +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number +>0.5 : 0.5 + + foo = 1234; +>foo = 1234 : 1234 +>foo : any +>1234 : 1234 + } +} catch { + foo; +>foo : number | undefined +} + diff --git a/tests/cases/compiler/potentiallyUnassignedVariableInCatch.ts b/tests/cases/compiler/potentiallyUnassignedVariableInCatch.ts new file mode 100644 index 00000000000..8f1d4d26bf3 --- /dev/null +++ b/tests/cases/compiler/potentiallyUnassignedVariableInCatch.ts @@ -0,0 +1,10 @@ +// @strict: true + +let foo; +try { + if (Math.random() > 0.5) { + foo = 1234; + } +} catch { + foo; +} From a311e253057e7dc84464602cf7197b598fe63ce0 Mon Sep 17 00:00:00 2001 From: Oliver Radini Date: Wed, 25 Jan 2023 18:31:53 +0000 Subject: [PATCH 13/15] Add 2023 array methods to target features (#52242) --- src/compiler/utilities.ts | 14 + .../findLast(target=es2022).errors.txt | 109 ++++++ .../reference/findLast(target=es2022).js | 57 +++ .../reference/findLast(target=es2022).symbols | 135 ++++++++ .../reference/findLast(target=es2022).types | 325 ++++++++++++++++++ .../reference/findLast(target=esnext).js | 57 +++ .../reference/findLast(target=esnext).symbols | 187 ++++++++++ .../reference/findLast(target=esnext).types | 325 ++++++++++++++++++ tests/cases/compiler/findLast.ts | 2 +- 9 files changed, 1210 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/findLast(target=es2022).errors.txt create mode 100644 tests/baselines/reference/findLast(target=es2022).js create mode 100644 tests/baselines/reference/findLast(target=es2022).symbols create mode 100644 tests/baselines/reference/findLast(target=es2022).types create mode 100644 tests/baselines/reference/findLast(target=esnext).js create mode 100644 tests/baselines/reference/findLast(target=esnext).symbols create mode 100644 tests/baselines/reference/findLast(target=esnext).types diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index d3d5b0fda4c..57c7bf9aa83 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -1279,6 +1279,20 @@ export function getScriptTargetFeatures(): ScriptTargetFeatures { BigUint64Array: ["at"], ObjectConstructor: ["hasOwn"], Error: ["cause"] + }, + es2023: { + Array: ["findLastIndex", "findLast"], + Int8Array: ["findLastIndex", "findLast"], + Uint8Array: ["findLastIndex", "findLast"], + Uint8ClampedArray: ["findLastIndex", "findLast"], + Int16Array: ["findLastIndex", "findLast"], + Uint16Array: ["findLastIndex", "findLast"], + Int32Array: ["findLastIndex", "findLast"], + Uint32Array: ["findLastIndex", "findLast"], + Float32Array: ["findLastIndex", "findLast"], + Float64Array: ["findLastIndex", "findLast"], + BigInt64Array: ["findLastIndex", "findLast"], + BigUint64Array: ["findLastIndex", "findLast"], } }; } diff --git a/tests/baselines/reference/findLast(target=es2022).errors.txt b/tests/baselines/reference/findLast(target=es2022).errors.txt new file mode 100644 index 00000000000..cc70f5b9760 --- /dev/null +++ b/tests/baselines/reference/findLast(target=es2022).errors.txt @@ -0,0 +1,109 @@ +tests/cases/compiler/findLast.ts(1,44): error TS2550: Property 'findLast' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(2,51): error TS2550: Property 'findLast' does not exist on type 'string[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(3,17): error TS2550: Property 'findLast' does not exist on type 'Int8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(4,18): error TS2550: Property 'findLast' does not exist on type 'Uint8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(5,25): error TS2550: Property 'findLast' does not exist on type 'Uint8ClampedArray'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(6,18): error TS2550: Property 'findLast' does not exist on type 'Int16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(7,19): error TS2550: Property 'findLast' does not exist on type 'Uint16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(8,18): error TS2550: Property 'findLast' does not exist on type 'Int32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(9,19): error TS2550: Property 'findLast' does not exist on type 'Uint32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(10,20): error TS2550: Property 'findLast' does not exist on type 'Float32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(11,20): error TS2550: Property 'findLast' does not exist on type 'Float64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(12,21): error TS2550: Property 'findLast' does not exist on type 'BigInt64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(13,22): error TS2550: Property 'findLast' does not exist on type 'BigUint64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(15,33): error TS2550: Property 'findLastIndex' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(16,40): error TS2550: Property 'findLastIndex' does not exist on type 'string[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(17,17): error TS2550: Property 'findLastIndex' does not exist on type 'Int8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(18,18): error TS2550: Property 'findLastIndex' does not exist on type 'Uint8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(19,25): error TS2550: Property 'findLastIndex' does not exist on type 'Uint8ClampedArray'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(20,18): error TS2550: Property 'findLastIndex' does not exist on type 'Int16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(21,19): error TS2550: Property 'findLastIndex' does not exist on type 'Uint16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(22,18): error TS2550: Property 'findLastIndex' does not exist on type 'Int32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(23,19): error TS2550: Property 'findLastIndex' does not exist on type 'Uint32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(24,20): error TS2550: Property 'findLastIndex' does not exist on type 'Float32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(25,20): error TS2550: Property 'findLastIndex' does not exist on type 'Float64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(26,21): error TS2550: Property 'findLastIndex' does not exist on type 'BigInt64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. +tests/cases/compiler/findLast.ts(27,22): error TS2550: Property 'findLastIndex' does not exist on type 'BigUint64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + + +==== tests/cases/compiler/findLast.ts (26 errors) ==== + const itemNumber: number | undefined = [0].findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + const itemString: string | undefined = ["string"].findLast((item) => item === "string"); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'string[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Int8Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Int8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint8Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Uint8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint8ClampedArray().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Uint8ClampedArray'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Int16Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Int16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint16Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Uint16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Int32Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Int32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint32Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Uint32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Float32Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Float32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Float64Array().findLast((item) => item === 0); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'Float64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new BigInt64Array().findLast((item) => item === BigInt(0)); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'BigInt64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new BigUint64Array().findLast((item) => item === BigInt(0)); + ~~~~~~~~ +!!! error TS2550: Property 'findLast' does not exist on type 'BigUint64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + + const indexNumber: number = [0].findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + const indexString: number = ["string"].findLastIndex((item) => item === "string"); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'string[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Int8Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Int8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint8Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Uint8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint8ClampedArray().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Uint8ClampedArray'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Int16Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Int16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint16Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Uint16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Int32Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Int32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Uint32Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Uint32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Float32Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Float32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new Float64Array().findLastIndex((item) => item === 0); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'Float64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new BigInt64Array().findLastIndex((item) => item === BigInt(0)); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'BigInt64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + new BigUint64Array().findLastIndex((item) => item === BigInt(0)); + ~~~~~~~~~~~~~ +!!! error TS2550: Property 'findLastIndex' does not exist on type 'BigUint64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + \ No newline at end of file diff --git a/tests/baselines/reference/findLast(target=es2022).js b/tests/baselines/reference/findLast(target=es2022).js new file mode 100644 index 00000000000..b9ba7b1324b --- /dev/null +++ b/tests/baselines/reference/findLast(target=es2022).js @@ -0,0 +1,57 @@ +//// [findLast.ts] +const itemNumber: number | undefined = [0].findLast((item) => item === 0); +const itemString: string | undefined = ["string"].findLast((item) => item === "string"); +new Int8Array().findLast((item) => item === 0); +new Uint8Array().findLast((item) => item === 0); +new Uint8ClampedArray().findLast((item) => item === 0); +new Int16Array().findLast((item) => item === 0); +new Uint16Array().findLast((item) => item === 0); +new Int32Array().findLast((item) => item === 0); +new Uint32Array().findLast((item) => item === 0); +new Float32Array().findLast((item) => item === 0); +new Float64Array().findLast((item) => item === 0); +new BigInt64Array().findLast((item) => item === BigInt(0)); +new BigUint64Array().findLast((item) => item === BigInt(0)); + +const indexNumber: number = [0].findLastIndex((item) => item === 0); +const indexString: number = ["string"].findLastIndex((item) => item === "string"); +new Int8Array().findLastIndex((item) => item === 0); +new Uint8Array().findLastIndex((item) => item === 0); +new Uint8ClampedArray().findLastIndex((item) => item === 0); +new Int16Array().findLastIndex((item) => item === 0); +new Uint16Array().findLastIndex((item) => item === 0); +new Int32Array().findLastIndex((item) => item === 0); +new Uint32Array().findLastIndex((item) => item === 0); +new Float32Array().findLastIndex((item) => item === 0); +new Float64Array().findLastIndex((item) => item === 0); +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); + + +//// [findLast.js] +const itemNumber = [0].findLast((item) => item === 0); +const itemString = ["string"].findLast((item) => item === "string"); +new Int8Array().findLast((item) => item === 0); +new Uint8Array().findLast((item) => item === 0); +new Uint8ClampedArray().findLast((item) => item === 0); +new Int16Array().findLast((item) => item === 0); +new Uint16Array().findLast((item) => item === 0); +new Int32Array().findLast((item) => item === 0); +new Uint32Array().findLast((item) => item === 0); +new Float32Array().findLast((item) => item === 0); +new Float64Array().findLast((item) => item === 0); +new BigInt64Array().findLast((item) => item === BigInt(0)); +new BigUint64Array().findLast((item) => item === BigInt(0)); +const indexNumber = [0].findLastIndex((item) => item === 0); +const indexString = ["string"].findLastIndex((item) => item === "string"); +new Int8Array().findLastIndex((item) => item === 0); +new Uint8Array().findLastIndex((item) => item === 0); +new Uint8ClampedArray().findLastIndex((item) => item === 0); +new Int16Array().findLastIndex((item) => item === 0); +new Uint16Array().findLastIndex((item) => item === 0); +new Int32Array().findLastIndex((item) => item === 0); +new Uint32Array().findLastIndex((item) => item === 0); +new Float32Array().findLastIndex((item) => item === 0); +new Float64Array().findLastIndex((item) => item === 0); +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); diff --git a/tests/baselines/reference/findLast(target=es2022).symbols b/tests/baselines/reference/findLast(target=es2022).symbols new file mode 100644 index 00000000000..c9cbf11a1f3 --- /dev/null +++ b/tests/baselines/reference/findLast(target=es2022).symbols @@ -0,0 +1,135 @@ +=== tests/cases/compiler/findLast.ts === +const itemNumber: number | undefined = [0].findLast((item) => item === 0); +>itemNumber : Symbol(itemNumber, Decl(findLast.ts, 0, 5)) +>item : Symbol(item, Decl(findLast.ts, 0, 53)) +>item : Symbol(item, Decl(findLast.ts, 0, 53)) + +const itemString: string | undefined = ["string"].findLast((item) => item === "string"); +>itemString : Symbol(itemString, Decl(findLast.ts, 1, 5)) +>item : Symbol(item, Decl(findLast.ts, 1, 60)) +>item : Symbol(item, Decl(findLast.ts, 1, 60)) + +new Int8Array().findLast((item) => item === 0); +>Int8Array : Symbol(Int8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 2, 26)) +>item : Symbol(item, Decl(findLast.ts, 2, 26)) + +new Uint8Array().findLast((item) => item === 0); +>Uint8Array : Symbol(Uint8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 3, 27)) +>item : Symbol(item, Decl(findLast.ts, 3, 27)) + +new Uint8ClampedArray().findLast((item) => item === 0); +>Uint8ClampedArray : Symbol(Uint8ClampedArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 4, 34)) +>item : Symbol(item, Decl(findLast.ts, 4, 34)) + +new Int16Array().findLast((item) => item === 0); +>Int16Array : Symbol(Int16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 5, 27)) +>item : Symbol(item, Decl(findLast.ts, 5, 27)) + +new Uint16Array().findLast((item) => item === 0); +>Uint16Array : Symbol(Uint16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 6, 28)) +>item : Symbol(item, Decl(findLast.ts, 6, 28)) + +new Int32Array().findLast((item) => item === 0); +>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 7, 27)) +>item : Symbol(item, Decl(findLast.ts, 7, 27)) + +new Uint32Array().findLast((item) => item === 0); +>Uint32Array : Symbol(Uint32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 8, 28)) +>item : Symbol(item, Decl(findLast.ts, 8, 28)) + +new Float32Array().findLast((item) => item === 0); +>Float32Array : Symbol(Float32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 9, 29)) +>item : Symbol(item, Decl(findLast.ts, 9, 29)) + +new Float64Array().findLast((item) => item === 0); +>Float64Array : Symbol(Float64Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 10, 29)) +>item : Symbol(item, Decl(findLast.ts, 10, 29)) + +new BigInt64Array().findLast((item) => item === BigInt(0)); +>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 11, 30)) +>item : Symbol(item, Decl(findLast.ts, 11, 30)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +new BigUint64Array().findLast((item) => item === BigInt(0)); +>BigUint64Array : Symbol(BigUint64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 12, 31)) +>item : Symbol(item, Decl(findLast.ts, 12, 31)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +const indexNumber: number = [0].findLastIndex((item) => item === 0); +>indexNumber : Symbol(indexNumber, Decl(findLast.ts, 14, 5)) +>item : Symbol(item, Decl(findLast.ts, 14, 47)) +>item : Symbol(item, Decl(findLast.ts, 14, 47)) + +const indexString: number = ["string"].findLastIndex((item) => item === "string"); +>indexString : Symbol(indexString, Decl(findLast.ts, 15, 5)) +>item : Symbol(item, Decl(findLast.ts, 15, 54)) +>item : Symbol(item, Decl(findLast.ts, 15, 54)) + +new Int8Array().findLastIndex((item) => item === 0); +>Int8Array : Symbol(Int8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 16, 31)) +>item : Symbol(item, Decl(findLast.ts, 16, 31)) + +new Uint8Array().findLastIndex((item) => item === 0); +>Uint8Array : Symbol(Uint8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 17, 32)) +>item : Symbol(item, Decl(findLast.ts, 17, 32)) + +new Uint8ClampedArray().findLastIndex((item) => item === 0); +>Uint8ClampedArray : Symbol(Uint8ClampedArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 18, 39)) +>item : Symbol(item, Decl(findLast.ts, 18, 39)) + +new Int16Array().findLastIndex((item) => item === 0); +>Int16Array : Symbol(Int16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 19, 32)) +>item : Symbol(item, Decl(findLast.ts, 19, 32)) + +new Uint16Array().findLastIndex((item) => item === 0); +>Uint16Array : Symbol(Uint16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 20, 33)) +>item : Symbol(item, Decl(findLast.ts, 20, 33)) + +new Int32Array().findLastIndex((item) => item === 0); +>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 21, 32)) +>item : Symbol(item, Decl(findLast.ts, 21, 32)) + +new Uint32Array().findLastIndex((item) => item === 0); +>Uint32Array : Symbol(Uint32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 22, 33)) +>item : Symbol(item, Decl(findLast.ts, 22, 33)) + +new Float32Array().findLastIndex((item) => item === 0); +>Float32Array : Symbol(Float32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 23, 34)) +>item : Symbol(item, Decl(findLast.ts, 23, 34)) + +new Float64Array().findLastIndex((item) => item === 0); +>Float64Array : Symbol(Float64Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>item : Symbol(item, Decl(findLast.ts, 24, 34)) +>item : Symbol(item, Decl(findLast.ts, 24, 34)) + +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 25, 35)) +>item : Symbol(item, Decl(findLast.ts, 25, 35)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); +>BigUint64Array : Symbol(BigUint64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 26, 36)) +>item : Symbol(item, Decl(findLast.ts, 26, 36)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + diff --git a/tests/baselines/reference/findLast(target=es2022).types b/tests/baselines/reference/findLast(target=es2022).types new file mode 100644 index 00000000000..062ed5b047d --- /dev/null +++ b/tests/baselines/reference/findLast(target=es2022).types @@ -0,0 +1,325 @@ +=== tests/cases/compiler/findLast.ts === +const itemNumber: number | undefined = [0].findLast((item) => item === 0); +>itemNumber : number +>[0].findLast((item) => item === 0) : any +>[0].findLast : any +>[0] : number[] +>0 : 0 +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +const itemString: string | undefined = ["string"].findLast((item) => item === "string"); +>itemString : string +>["string"].findLast((item) => item === "string") : any +>["string"].findLast : any +>["string"] : string[] +>"string" : "string" +>findLast : any +>(item) => item === "string" : (item: any) => boolean +>item : any +>item === "string" : boolean +>item : any +>"string" : "string" + +new Int8Array().findLast((item) => item === 0); +>new Int8Array().findLast((item) => item === 0) : any +>new Int8Array().findLast : any +>new Int8Array() : Int8Array +>Int8Array : Int8ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint8Array().findLast((item) => item === 0); +>new Uint8Array().findLast((item) => item === 0) : any +>new Uint8Array().findLast : any +>new Uint8Array() : Uint8Array +>Uint8Array : Uint8ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint8ClampedArray().findLast((item) => item === 0); +>new Uint8ClampedArray().findLast((item) => item === 0) : any +>new Uint8ClampedArray().findLast : any +>new Uint8ClampedArray() : Uint8ClampedArray +>Uint8ClampedArray : Uint8ClampedArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Int16Array().findLast((item) => item === 0); +>new Int16Array().findLast((item) => item === 0) : any +>new Int16Array().findLast : any +>new Int16Array() : Int16Array +>Int16Array : Int16ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint16Array().findLast((item) => item === 0); +>new Uint16Array().findLast((item) => item === 0) : any +>new Uint16Array().findLast : any +>new Uint16Array() : Uint16Array +>Uint16Array : Uint16ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Int32Array().findLast((item) => item === 0); +>new Int32Array().findLast((item) => item === 0) : any +>new Int32Array().findLast : any +>new Int32Array() : Int32Array +>Int32Array : Int32ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint32Array().findLast((item) => item === 0); +>new Uint32Array().findLast((item) => item === 0) : any +>new Uint32Array().findLast : any +>new Uint32Array() : Uint32Array +>Uint32Array : Uint32ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Float32Array().findLast((item) => item === 0); +>new Float32Array().findLast((item) => item === 0) : any +>new Float32Array().findLast : any +>new Float32Array() : Float32Array +>Float32Array : Float32ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Float64Array().findLast((item) => item === 0); +>new Float64Array().findLast((item) => item === 0) : any +>new Float64Array().findLast : any +>new Float64Array() : Float64Array +>Float64Array : Float64ArrayConstructor +>findLast : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new BigInt64Array().findLast((item) => item === BigInt(0)); +>new BigInt64Array().findLast((item) => item === BigInt(0)) : any +>new BigInt64Array().findLast : any +>new BigInt64Array() : BigInt64Array +>BigInt64Array : BigInt64ArrayConstructor +>findLast : any +>(item) => item === BigInt(0) : (item: any) => boolean +>item : any +>item === BigInt(0) : boolean +>item : any +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + +new BigUint64Array().findLast((item) => item === BigInt(0)); +>new BigUint64Array().findLast((item) => item === BigInt(0)) : any +>new BigUint64Array().findLast : any +>new BigUint64Array() : BigUint64Array +>BigUint64Array : BigUint64ArrayConstructor +>findLast : any +>(item) => item === BigInt(0) : (item: any) => boolean +>item : any +>item === BigInt(0) : boolean +>item : any +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + +const indexNumber: number = [0].findLastIndex((item) => item === 0); +>indexNumber : number +>[0].findLastIndex((item) => item === 0) : any +>[0].findLastIndex : any +>[0] : number[] +>0 : 0 +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +const indexString: number = ["string"].findLastIndex((item) => item === "string"); +>indexString : number +>["string"].findLastIndex((item) => item === "string") : any +>["string"].findLastIndex : any +>["string"] : string[] +>"string" : "string" +>findLastIndex : any +>(item) => item === "string" : (item: any) => boolean +>item : any +>item === "string" : boolean +>item : any +>"string" : "string" + +new Int8Array().findLastIndex((item) => item === 0); +>new Int8Array().findLastIndex((item) => item === 0) : any +>new Int8Array().findLastIndex : any +>new Int8Array() : Int8Array +>Int8Array : Int8ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint8Array().findLastIndex((item) => item === 0); +>new Uint8Array().findLastIndex((item) => item === 0) : any +>new Uint8Array().findLastIndex : any +>new Uint8Array() : Uint8Array +>Uint8Array : Uint8ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint8ClampedArray().findLastIndex((item) => item === 0); +>new Uint8ClampedArray().findLastIndex((item) => item === 0) : any +>new Uint8ClampedArray().findLastIndex : any +>new Uint8ClampedArray() : Uint8ClampedArray +>Uint8ClampedArray : Uint8ClampedArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Int16Array().findLastIndex((item) => item === 0); +>new Int16Array().findLastIndex((item) => item === 0) : any +>new Int16Array().findLastIndex : any +>new Int16Array() : Int16Array +>Int16Array : Int16ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint16Array().findLastIndex((item) => item === 0); +>new Uint16Array().findLastIndex((item) => item === 0) : any +>new Uint16Array().findLastIndex : any +>new Uint16Array() : Uint16Array +>Uint16Array : Uint16ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Int32Array().findLastIndex((item) => item === 0); +>new Int32Array().findLastIndex((item) => item === 0) : any +>new Int32Array().findLastIndex : any +>new Int32Array() : Int32Array +>Int32Array : Int32ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Uint32Array().findLastIndex((item) => item === 0); +>new Uint32Array().findLastIndex((item) => item === 0) : any +>new Uint32Array().findLastIndex : any +>new Uint32Array() : Uint32Array +>Uint32Array : Uint32ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Float32Array().findLastIndex((item) => item === 0); +>new Float32Array().findLastIndex((item) => item === 0) : any +>new Float32Array().findLastIndex : any +>new Float32Array() : Float32Array +>Float32Array : Float32ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new Float64Array().findLastIndex((item) => item === 0); +>new Float64Array().findLastIndex((item) => item === 0) : any +>new Float64Array().findLastIndex : any +>new Float64Array() : Float64Array +>Float64Array : Float64ArrayConstructor +>findLastIndex : any +>(item) => item === 0 : (item: any) => boolean +>item : any +>item === 0 : boolean +>item : any +>0 : 0 + +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +>new BigInt64Array().findLastIndex((item) => item === BigInt(0)) : any +>new BigInt64Array().findLastIndex : any +>new BigInt64Array() : BigInt64Array +>BigInt64Array : BigInt64ArrayConstructor +>findLastIndex : any +>(item) => item === BigInt(0) : (item: any) => boolean +>item : any +>item === BigInt(0) : boolean +>item : any +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); +>new BigUint64Array().findLastIndex((item) => item === BigInt(0)) : any +>new BigUint64Array().findLastIndex : any +>new BigUint64Array() : BigUint64Array +>BigUint64Array : BigUint64ArrayConstructor +>findLastIndex : any +>(item) => item === BigInt(0) : (item: any) => boolean +>item : any +>item === BigInt(0) : boolean +>item : any +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + diff --git a/tests/baselines/reference/findLast(target=esnext).js b/tests/baselines/reference/findLast(target=esnext).js new file mode 100644 index 00000000000..b9ba7b1324b --- /dev/null +++ b/tests/baselines/reference/findLast(target=esnext).js @@ -0,0 +1,57 @@ +//// [findLast.ts] +const itemNumber: number | undefined = [0].findLast((item) => item === 0); +const itemString: string | undefined = ["string"].findLast((item) => item === "string"); +new Int8Array().findLast((item) => item === 0); +new Uint8Array().findLast((item) => item === 0); +new Uint8ClampedArray().findLast((item) => item === 0); +new Int16Array().findLast((item) => item === 0); +new Uint16Array().findLast((item) => item === 0); +new Int32Array().findLast((item) => item === 0); +new Uint32Array().findLast((item) => item === 0); +new Float32Array().findLast((item) => item === 0); +new Float64Array().findLast((item) => item === 0); +new BigInt64Array().findLast((item) => item === BigInt(0)); +new BigUint64Array().findLast((item) => item === BigInt(0)); + +const indexNumber: number = [0].findLastIndex((item) => item === 0); +const indexString: number = ["string"].findLastIndex((item) => item === "string"); +new Int8Array().findLastIndex((item) => item === 0); +new Uint8Array().findLastIndex((item) => item === 0); +new Uint8ClampedArray().findLastIndex((item) => item === 0); +new Int16Array().findLastIndex((item) => item === 0); +new Uint16Array().findLastIndex((item) => item === 0); +new Int32Array().findLastIndex((item) => item === 0); +new Uint32Array().findLastIndex((item) => item === 0); +new Float32Array().findLastIndex((item) => item === 0); +new Float64Array().findLastIndex((item) => item === 0); +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); + + +//// [findLast.js] +const itemNumber = [0].findLast((item) => item === 0); +const itemString = ["string"].findLast((item) => item === "string"); +new Int8Array().findLast((item) => item === 0); +new Uint8Array().findLast((item) => item === 0); +new Uint8ClampedArray().findLast((item) => item === 0); +new Int16Array().findLast((item) => item === 0); +new Uint16Array().findLast((item) => item === 0); +new Int32Array().findLast((item) => item === 0); +new Uint32Array().findLast((item) => item === 0); +new Float32Array().findLast((item) => item === 0); +new Float64Array().findLast((item) => item === 0); +new BigInt64Array().findLast((item) => item === BigInt(0)); +new BigUint64Array().findLast((item) => item === BigInt(0)); +const indexNumber = [0].findLastIndex((item) => item === 0); +const indexString = ["string"].findLastIndex((item) => item === "string"); +new Int8Array().findLastIndex((item) => item === 0); +new Uint8Array().findLastIndex((item) => item === 0); +new Uint8ClampedArray().findLastIndex((item) => item === 0); +new Int16Array().findLastIndex((item) => item === 0); +new Uint16Array().findLastIndex((item) => item === 0); +new Int32Array().findLastIndex((item) => item === 0); +new Uint32Array().findLastIndex((item) => item === 0); +new Float32Array().findLastIndex((item) => item === 0); +new Float64Array().findLastIndex((item) => item === 0); +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); diff --git a/tests/baselines/reference/findLast(target=esnext).symbols b/tests/baselines/reference/findLast(target=esnext).symbols new file mode 100644 index 00000000000..e4340f479f9 --- /dev/null +++ b/tests/baselines/reference/findLast(target=esnext).symbols @@ -0,0 +1,187 @@ +=== tests/cases/compiler/findLast.ts === +const itemNumber: number | undefined = [0].findLast((item) => item === 0); +>itemNumber : Symbol(itemNumber, Decl(findLast.ts, 0, 5)) +>[0].findLast : Symbol(Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>findLast : Symbol(Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 0, 53)) +>item : Symbol(item, Decl(findLast.ts, 0, 53)) + +const itemString: string | undefined = ["string"].findLast((item) => item === "string"); +>itemString : Symbol(itemString, Decl(findLast.ts, 1, 5)) +>["string"].findLast : Symbol(Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>findLast : Symbol(Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 1, 60)) +>item : Symbol(item, Decl(findLast.ts, 1, 60)) + +new Int8Array().findLast((item) => item === 0); +>new Int8Array().findLast : Symbol(Int8Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Int8Array : Symbol(Int8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Int8Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 2, 26)) +>item : Symbol(item, Decl(findLast.ts, 2, 26)) + +new Uint8Array().findLast((item) => item === 0); +>new Uint8Array().findLast : Symbol(Uint8Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Uint8Array : Symbol(Uint8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Uint8Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 3, 27)) +>item : Symbol(item, Decl(findLast.ts, 3, 27)) + +new Uint8ClampedArray().findLast((item) => item === 0); +>new Uint8ClampedArray().findLast : Symbol(Uint8ClampedArray.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Uint8ClampedArray : Symbol(Uint8ClampedArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Uint8ClampedArray.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 4, 34)) +>item : Symbol(item, Decl(findLast.ts, 4, 34)) + +new Int16Array().findLast((item) => item === 0); +>new Int16Array().findLast : Symbol(Int16Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Int16Array : Symbol(Int16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Int16Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 5, 27)) +>item : Symbol(item, Decl(findLast.ts, 5, 27)) + +new Uint16Array().findLast((item) => item === 0); +>new Uint16Array().findLast : Symbol(Uint16Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Uint16Array : Symbol(Uint16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Uint16Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 6, 28)) +>item : Symbol(item, Decl(findLast.ts, 6, 28)) + +new Int32Array().findLast((item) => item === 0); +>new Int32Array().findLast : Symbol(Int32Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Int32Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 7, 27)) +>item : Symbol(item, Decl(findLast.ts, 7, 27)) + +new Uint32Array().findLast((item) => item === 0); +>new Uint32Array().findLast : Symbol(Uint32Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Uint32Array : Symbol(Uint32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Uint32Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 8, 28)) +>item : Symbol(item, Decl(findLast.ts, 8, 28)) + +new Float32Array().findLast((item) => item === 0); +>new Float32Array().findLast : Symbol(Float32Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Float32Array : Symbol(Float32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Float32Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 9, 29)) +>item : Symbol(item, Decl(findLast.ts, 9, 29)) + +new Float64Array().findLast((item) => item === 0); +>new Float64Array().findLast : Symbol(Float64Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>Float64Array : Symbol(Float64Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLast : Symbol(Float64Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 10, 29)) +>item : Symbol(item, Decl(findLast.ts, 10, 29)) + +new BigInt64Array().findLast((item) => item === BigInt(0)); +>new BigInt64Array().findLast : Symbol(BigInt64Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>findLast : Symbol(BigInt64Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 11, 30)) +>item : Symbol(item, Decl(findLast.ts, 11, 30)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +new BigUint64Array().findLast((item) => item === BigInt(0)); +>new BigUint64Array().findLast : Symbol(BigUint64Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>BigUint64Array : Symbol(BigUint64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>findLast : Symbol(BigUint64Array.findLast, Decl(lib.es2023.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 12, 31)) +>item : Symbol(item, Decl(findLast.ts, 12, 31)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +const indexNumber: number = [0].findLastIndex((item) => item === 0); +>indexNumber : Symbol(indexNumber, Decl(findLast.ts, 14, 5)) +>[0].findLastIndex : Symbol(Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>findLastIndex : Symbol(Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 14, 47)) +>item : Symbol(item, Decl(findLast.ts, 14, 47)) + +const indexString: number = ["string"].findLastIndex((item) => item === "string"); +>indexString : Symbol(indexString, Decl(findLast.ts, 15, 5)) +>["string"].findLastIndex : Symbol(Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>findLastIndex : Symbol(Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 15, 54)) +>item : Symbol(item, Decl(findLast.ts, 15, 54)) + +new Int8Array().findLastIndex((item) => item === 0); +>new Int8Array().findLastIndex : Symbol(Int8Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Int8Array : Symbol(Int8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Int8Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 16, 31)) +>item : Symbol(item, Decl(findLast.ts, 16, 31)) + +new Uint8Array().findLastIndex((item) => item === 0); +>new Uint8Array().findLastIndex : Symbol(Uint8Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Uint8Array : Symbol(Uint8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Uint8Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 17, 32)) +>item : Symbol(item, Decl(findLast.ts, 17, 32)) + +new Uint8ClampedArray().findLastIndex((item) => item === 0); +>new Uint8ClampedArray().findLastIndex : Symbol(Uint8ClampedArray.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Uint8ClampedArray : Symbol(Uint8ClampedArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Uint8ClampedArray.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 18, 39)) +>item : Symbol(item, Decl(findLast.ts, 18, 39)) + +new Int16Array().findLastIndex((item) => item === 0); +>new Int16Array().findLastIndex : Symbol(Int16Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Int16Array : Symbol(Int16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Int16Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 19, 32)) +>item : Symbol(item, Decl(findLast.ts, 19, 32)) + +new Uint16Array().findLastIndex((item) => item === 0); +>new Uint16Array().findLastIndex : Symbol(Uint16Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Uint16Array : Symbol(Uint16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Uint16Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 20, 33)) +>item : Symbol(item, Decl(findLast.ts, 20, 33)) + +new Int32Array().findLastIndex((item) => item === 0); +>new Int32Array().findLastIndex : Symbol(Int32Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Int32Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 21, 32)) +>item : Symbol(item, Decl(findLast.ts, 21, 32)) + +new Uint32Array().findLastIndex((item) => item === 0); +>new Uint32Array().findLastIndex : Symbol(Uint32Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Uint32Array : Symbol(Uint32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Uint32Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 22, 33)) +>item : Symbol(item, Decl(findLast.ts, 22, 33)) + +new Float32Array().findLastIndex((item) => item === 0); +>new Float32Array().findLastIndex : Symbol(Float32Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Float32Array : Symbol(Float32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Float32Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 23, 34)) +>item : Symbol(item, Decl(findLast.ts, 23, 34)) + +new Float64Array().findLastIndex((item) => item === 0); +>new Float64Array().findLastIndex : Symbol(Float64Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>Float64Array : Symbol(Float64Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 2 more) +>findLastIndex : Symbol(Float64Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 24, 34)) +>item : Symbol(item, Decl(findLast.ts, 24, 34)) + +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +>new BigInt64Array().findLastIndex : Symbol(BigInt64Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>findLastIndex : Symbol(BigInt64Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 25, 35)) +>item : Symbol(item, Decl(findLast.ts, 25, 35)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); +>new BigUint64Array().findLastIndex : Symbol(BigUint64Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>BigUint64Array : Symbol(BigUint64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --), Decl(lib.es2023.array.d.ts, --, --)) +>findLastIndex : Symbol(BigUint64Array.findLastIndex, Decl(lib.es2023.array.d.ts, --, --)) +>item : Symbol(item, Decl(findLast.ts, 26, 36)) +>item : Symbol(item, Decl(findLast.ts, 26, 36)) +>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + diff --git a/tests/baselines/reference/findLast(target=esnext).types b/tests/baselines/reference/findLast(target=esnext).types new file mode 100644 index 00000000000..e3881545e05 --- /dev/null +++ b/tests/baselines/reference/findLast(target=esnext).types @@ -0,0 +1,325 @@ +=== tests/cases/compiler/findLast.ts === +const itemNumber: number | undefined = [0].findLast((item) => item === 0); +>itemNumber : number +>[0].findLast((item) => item === 0) : number +>[0].findLast : { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number; } +>[0] : number[] +>0 : 0 +>findLast : { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +const itemString: string | undefined = ["string"].findLast((item) => item === "string"); +>itemString : string +>["string"].findLast((item) => item === "string") : string +>["string"].findLast : { (predicate: (value: string, index: number, array: string[]) => value is S, thisArg?: any): S; (predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): string; } +>["string"] : string[] +>"string" : "string" +>findLast : { (predicate: (value: string, index: number, array: string[]) => value is S, thisArg?: any): S; (predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): string; } +>(item) => item === "string" : (item: string) => boolean +>item : string +>item === "string" : boolean +>item : string +>"string" : "string" + +new Int8Array().findLast((item) => item === 0); +>new Int8Array().findLast((item) => item === 0) : number +>new Int8Array().findLast : { (predicate: (value: number, index: number, array: Int8Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): number; } +>new Int8Array() : Int8Array +>Int8Array : Int8ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Int8Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint8Array().findLast((item) => item === 0); +>new Uint8Array().findLast((item) => item === 0) : number +>new Uint8Array().findLast : { (predicate: (value: number, index: number, array: Uint8Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): number; } +>new Uint8Array() : Uint8Array +>Uint8Array : Uint8ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Uint8Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint8ClampedArray().findLast((item) => item === 0); +>new Uint8ClampedArray().findLast((item) => item === 0) : number +>new Uint8ClampedArray().findLast : { (predicate: (value: number, index: number, array: Uint8ClampedArray) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): number; } +>new Uint8ClampedArray() : Uint8ClampedArray +>Uint8ClampedArray : Uint8ClampedArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Uint8ClampedArray) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Int16Array().findLast((item) => item === 0); +>new Int16Array().findLast((item) => item === 0) : number +>new Int16Array().findLast : { (predicate: (value: number, index: number, array: Int16Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): number; } +>new Int16Array() : Int16Array +>Int16Array : Int16ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Int16Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint16Array().findLast((item) => item === 0); +>new Uint16Array().findLast((item) => item === 0) : number +>new Uint16Array().findLast : { (predicate: (value: number, index: number, array: Uint16Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): number; } +>new Uint16Array() : Uint16Array +>Uint16Array : Uint16ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Uint16Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Int32Array().findLast((item) => item === 0); +>new Int32Array().findLast((item) => item === 0) : number +>new Int32Array().findLast : { (predicate: (value: number, index: number, array: Int32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): number; } +>new Int32Array() : Int32Array +>Int32Array : Int32ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Int32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint32Array().findLast((item) => item === 0); +>new Uint32Array().findLast((item) => item === 0) : number +>new Uint32Array().findLast : { (predicate: (value: number, index: number, array: Uint32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): number; } +>new Uint32Array() : Uint32Array +>Uint32Array : Uint32ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Uint32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Float32Array().findLast((item) => item === 0); +>new Float32Array().findLast((item) => item === 0) : number +>new Float32Array().findLast : { (predicate: (value: number, index: number, array: Float32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): number; } +>new Float32Array() : Float32Array +>Float32Array : Float32ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Float32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Float64Array().findLast((item) => item === 0); +>new Float64Array().findLast((item) => item === 0) : number +>new Float64Array().findLast : { (predicate: (value: number, index: number, array: Float64Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): number; } +>new Float64Array() : Float64Array +>Float64Array : Float64ArrayConstructor +>findLast : { (predicate: (value: number, index: number, array: Float64Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): number; } +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new BigInt64Array().findLast((item) => item === BigInt(0)); +>new BigInt64Array().findLast((item) => item === BigInt(0)) : bigint +>new BigInt64Array().findLast : { (predicate: (value: bigint, index: number, array: BigInt64Array) => value is S, thisArg?: any): S; (predicate: (value: bigint, index: number, array: BigInt64Array) => unknown, thisArg?: any): bigint; } +>new BigInt64Array() : BigInt64Array +>BigInt64Array : BigInt64ArrayConstructor +>findLast : { (predicate: (value: bigint, index: number, array: BigInt64Array) => value is S, thisArg?: any): S; (predicate: (value: bigint, index: number, array: BigInt64Array) => unknown, thisArg?: any): bigint; } +>(item) => item === BigInt(0) : (item: bigint) => boolean +>item : bigint +>item === BigInt(0) : boolean +>item : bigint +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + +new BigUint64Array().findLast((item) => item === BigInt(0)); +>new BigUint64Array().findLast((item) => item === BigInt(0)) : bigint +>new BigUint64Array().findLast : { (predicate: (value: bigint, index: number, array: BigUint64Array) => value is S, thisArg?: any): S; (predicate: (value: bigint, index: number, array: BigUint64Array) => unknown, thisArg?: any): bigint; } +>new BigUint64Array() : BigUint64Array +>BigUint64Array : BigUint64ArrayConstructor +>findLast : { (predicate: (value: bigint, index: number, array: BigUint64Array) => value is S, thisArg?: any): S; (predicate: (value: bigint, index: number, array: BigUint64Array) => unknown, thisArg?: any): bigint; } +>(item) => item === BigInt(0) : (item: bigint) => boolean +>item : bigint +>item === BigInt(0) : boolean +>item : bigint +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + +const indexNumber: number = [0].findLastIndex((item) => item === 0); +>indexNumber : number +>[0].findLastIndex((item) => item === 0) : number +>[0].findLastIndex : (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => number +>[0] : number[] +>0 : 0 +>findLastIndex : (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +const indexString: number = ["string"].findLastIndex((item) => item === "string"); +>indexString : number +>["string"].findLastIndex((item) => item === "string") : number +>["string"].findLastIndex : (predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any) => number +>["string"] : string[] +>"string" : "string" +>findLastIndex : (predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any) => number +>(item) => item === "string" : (item: string) => boolean +>item : string +>item === "string" : boolean +>item : string +>"string" : "string" + +new Int8Array().findLastIndex((item) => item === 0); +>new Int8Array().findLastIndex((item) => item === 0) : number +>new Int8Array().findLastIndex : (predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any) => number +>new Int8Array() : Int8Array +>Int8Array : Int8ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint8Array().findLastIndex((item) => item === 0); +>new Uint8Array().findLastIndex((item) => item === 0) : number +>new Uint8Array().findLastIndex : (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any) => number +>new Uint8Array() : Uint8Array +>Uint8Array : Uint8ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint8ClampedArray().findLastIndex((item) => item === 0); +>new Uint8ClampedArray().findLastIndex((item) => item === 0) : number +>new Uint8ClampedArray().findLastIndex : (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => number +>new Uint8ClampedArray() : Uint8ClampedArray +>Uint8ClampedArray : Uint8ClampedArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Int16Array().findLastIndex((item) => item === 0); +>new Int16Array().findLastIndex((item) => item === 0) : number +>new Int16Array().findLastIndex : (predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any) => number +>new Int16Array() : Int16Array +>Int16Array : Int16ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint16Array().findLastIndex((item) => item === 0); +>new Uint16Array().findLastIndex((item) => item === 0) : number +>new Uint16Array().findLastIndex : (predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any) => number +>new Uint16Array() : Uint16Array +>Uint16Array : Uint16ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Int32Array().findLastIndex((item) => item === 0); +>new Int32Array().findLastIndex((item) => item === 0) : number +>new Int32Array().findLastIndex : (predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any) => number +>new Int32Array() : Int32Array +>Int32Array : Int32ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Uint32Array().findLastIndex((item) => item === 0); +>new Uint32Array().findLastIndex((item) => item === 0) : number +>new Uint32Array().findLastIndex : (predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any) => number +>new Uint32Array() : Uint32Array +>Uint32Array : Uint32ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Float32Array().findLastIndex((item) => item === 0); +>new Float32Array().findLastIndex((item) => item === 0) : number +>new Float32Array().findLastIndex : (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => number +>new Float32Array() : Float32Array +>Float32Array : Float32ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new Float64Array().findLastIndex((item) => item === 0); +>new Float64Array().findLastIndex((item) => item === 0) : number +>new Float64Array().findLastIndex : (predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any) => number +>new Float64Array() : Float64Array +>Float64Array : Float64ArrayConstructor +>findLastIndex : (predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any) => number +>(item) => item === 0 : (item: number) => boolean +>item : number +>item === 0 : boolean +>item : number +>0 : 0 + +new BigInt64Array().findLastIndex((item) => item === BigInt(0)); +>new BigInt64Array().findLastIndex((item) => item === BigInt(0)) : number +>new BigInt64Array().findLastIndex : (predicate: (value: bigint, index: number, array: BigInt64Array) => unknown, thisArg?: any) => number +>new BigInt64Array() : BigInt64Array +>BigInt64Array : BigInt64ArrayConstructor +>findLastIndex : (predicate: (value: bigint, index: number, array: BigInt64Array) => unknown, thisArg?: any) => number +>(item) => item === BigInt(0) : (item: bigint) => boolean +>item : bigint +>item === BigInt(0) : boolean +>item : bigint +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + +new BigUint64Array().findLastIndex((item) => item === BigInt(0)); +>new BigUint64Array().findLastIndex((item) => item === BigInt(0)) : number +>new BigUint64Array().findLastIndex : (predicate: (value: bigint, index: number, array: BigUint64Array) => unknown, thisArg?: any) => number +>new BigUint64Array() : BigUint64Array +>BigUint64Array : BigUint64ArrayConstructor +>findLastIndex : (predicate: (value: bigint, index: number, array: BigUint64Array) => unknown, thisArg?: any) => number +>(item) => item === BigInt(0) : (item: bigint) => boolean +>item : bigint +>item === BigInt(0) : boolean +>item : bigint +>BigInt(0) : bigint +>BigInt : BigIntConstructor +>0 : 0 + diff --git a/tests/cases/compiler/findLast.ts b/tests/cases/compiler/findLast.ts index cba155e6c6b..ad0bddfb092 100644 --- a/tests/cases/compiler/findLast.ts +++ b/tests/cases/compiler/findLast.ts @@ -1,4 +1,4 @@ -// @target: esnext +// @target: esnext, es2022 const itemNumber: number | undefined = [0].findLast((item) => item === 0); const itemString: string | undefined = ["string"].findLast((item) => item === "string"); From 45c246f28c3dddc1d363257b13f7bcfffece5f98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Wed, 25 Jan 2023 19:50:29 +0100 Subject: [PATCH 14/15] Fixed a mistake in the `narrowingDestructuring` test (#52411) --- tests/baselines/reference/narrowingDestructuring.js | 7 ++++--- tests/baselines/reference/narrowingDestructuring.symbols | 3 ++- tests/baselines/reference/narrowingDestructuring.types | 8 +++++--- tests/cases/compiler/narrowingDestructuring.ts | 4 ++-- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/tests/baselines/reference/narrowingDestructuring.js b/tests/baselines/reference/narrowingDestructuring.js index 4bc052b7fa0..f2420c58ffe 100644 --- a/tests/baselines/reference/narrowingDestructuring.js +++ b/tests/baselines/reference/narrowingDestructuring.js @@ -34,10 +34,11 @@ function func3(t: function farr(x: T) { const [head, ...tail] = x; - if (x[0] === 'number') { + if (typeof x[0] === 'number') { const [head, ...tail] = x; } -} +} + //// [narrowingDestructuring.js] var __rest = (this && this.__rest) || function (s, e) { @@ -83,7 +84,7 @@ function func3(t) { } function farr(x) { var head = x[0], tail = x.slice(1); - if (x[0] === 'number') { + if (typeof x[0] === 'number') { var head_1 = x[0], tail_1 = x.slice(1); } } diff --git a/tests/baselines/reference/narrowingDestructuring.symbols b/tests/baselines/reference/narrowingDestructuring.symbols index 9e7b65997d6..aa4323fc27d 100644 --- a/tests/baselines/reference/narrowingDestructuring.symbols +++ b/tests/baselines/reference/narrowingDestructuring.symbols @@ -136,7 +136,7 @@ function farr(x: >tail : Symbol(tail, Decl(narrowingDestructuring.ts, 34, 16)) >x : Symbol(x, Decl(narrowingDestructuring.ts, 33, 77)) - if (x[0] === 'number') { + if (typeof x[0] === 'number') { >x : Symbol(x, Decl(narrowingDestructuring.ts, 33, 77)) >0 : Symbol(0) @@ -146,3 +146,4 @@ function farr(x: >x : Symbol(x, Decl(narrowingDestructuring.ts, 33, 77)) } } + diff --git a/tests/baselines/reference/narrowingDestructuring.types b/tests/baselines/reference/narrowingDestructuring.types index ee11c8c4448..0534332f787 100644 --- a/tests/baselines/reference/narrowingDestructuring.types +++ b/tests/baselines/reference/narrowingDestructuring.types @@ -135,16 +135,18 @@ function farr(x: >tail : [string, string] | [number, number] >x : [number, string, string] | [string, number, number] - if (x[0] === 'number') { ->x[0] === 'number' : boolean + if (typeof x[0] === 'number') { +>typeof x[0] === 'number' : boolean +>typeof x[0] : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" >x[0] : string | number >x : [number, string, string] | [string, number, number] >0 : 0 >'number' : "number" const [head, ...tail] = x; ->head : "number" +>head : number >tail : [string, string] | [number, number] >x : [number, string, string] | [string, number, number] } } + diff --git a/tests/cases/compiler/narrowingDestructuring.ts b/tests/cases/compiler/narrowingDestructuring.ts index a7458028259..34f0b54f8be 100644 --- a/tests/cases/compiler/narrowingDestructuring.ts +++ b/tests/cases/compiler/narrowingDestructuring.ts @@ -33,7 +33,7 @@ function func3(t: function farr(x: T) { const [head, ...tail] = x; - if (x[0] === 'number') { + if (typeof x[0] === 'number') { const [head, ...tail] = x; } -} \ No newline at end of file +} From 0141d1d5f26fdc8947dc2aaa8a0a977466f9be56 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 25 Jan 2023 11:59:02 -0800 Subject: [PATCH 15/15] Reuse Printers with common options (#52382) --- src/compiler/checker.ts | 16 ++++++++++------ src/compiler/emitter.ts | 12 ++++++++++++ src/services/callHierarchy.ts | 4 ++-- src/services/inlayHints.ts | 6 ++---- src/services/signatureHelp.ts | 8 ++++---- src/services/symbolDisplay.ts | 9 ++------- src/services/utilities.ts | 4 ++-- 7 files changed, 34 insertions(+), 25 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 4a0238fd2a1..4765c1aa334 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -111,7 +111,10 @@ import { createGetCanonicalFileName, createGetSymbolWalker, createModeAwareCacheKey, - createPrinter, + createPrinterWithDefaults, + createPrinterWithRemoveComments, + createPrinterWithRemoveCommentsNeverAsciiEscape, + createPrinterWithRemoveCommentsOmitTrailingSemicolon, createPropertyNameNodeForIdentifierOrLiteral, createSymbolTable, createTextWriter, @@ -6123,7 +6126,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { function symbolToStringWorker(writer: EmitTextWriter) { const entity = builder(symbol, meaning!, enclosingDeclaration, nodeFlags)!; // TODO: GH#18217 // add neverAsciiEscape for GH#39027 - const printer = enclosingDeclaration?.kind === SyntaxKind.SourceFile ? createPrinter({ removeComments: true, neverAsciiEscape: true }) : createPrinter({ removeComments: true }); + const printer = enclosingDeclaration?.kind === SyntaxKind.SourceFile + ? createPrinterWithRemoveCommentsNeverAsciiEscape() + : createPrinterWithRemoveComments(); const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration); printer.writeNode(EmitHint.Unspecified, entity, /*sourceFile*/ sourceFile, writer); return writer; @@ -6142,7 +6147,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { sigOutput = kind === SignatureKind.Construct ? SyntaxKind.ConstructSignature : SyntaxKind.CallSignature; } const sig = nodeBuilder.signatureToSignatureDeclaration(signature, sigOutput, enclosingDeclaration, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors | NodeBuilderFlags.WriteTypeParametersInQualifiedName); - const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true }); + const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon(); const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration); printer.writeNode(EmitHint.Unspecified, sig!, /*sourceFile*/ sourceFile, getTrailingSemicolonDeferringWriter(writer)); // TODO: GH#18217 return writer; @@ -6155,8 +6160,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { if (typeNode === undefined) return Debug.fail("should always get typenode"); // The unresolved type gets a synthesized comment on `any` to hint to users that it's not a plain `any`. // Otherwise, we always strip comments out. - const options = { removeComments: type !== unresolvedType }; - const printer = createPrinter(options); + const printer = type !== unresolvedType ? createPrinterWithRemoveComments() : createPrinterWithDefaults(); const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration); printer.writeNode(EmitHint.Unspecified, typeNode, /*sourceFile*/ sourceFile, writer); const result = writer.getText(); @@ -9636,7 +9640,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { typePredicate.kind === TypePredicateKind.Identifier || typePredicate.kind === TypePredicateKind.AssertsIdentifier ? factory.createIdentifier(typePredicate.parameterName) : factory.createThisTypeNode(), typePredicate.type && nodeBuilder.typeToTypeNode(typePredicate.type, enclosingDeclaration, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors | NodeBuilderFlags.WriteTypeParametersInQualifiedName)! // TODO: GH#18217 ); - const printer = createPrinter({ removeComments: true }); + const printer = createPrinterWithRemoveComments(); const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration); printer.writeNode(EmitHint.Unspecified, predicate, /*sourceFile*/ sourceFile, writer); return writer; diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 170ad79e7d5..e81f2b090a8 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1343,6 +1343,18 @@ const enum PipelinePhase { Emit, } +/** @internal */ +export const createPrinterWithDefaults = memoize(() => createPrinter({})); + +/** @internal */ +export const createPrinterWithRemoveComments = memoize(() => createPrinter({ removeComments: true })); + +/** @internal */ +export const createPrinterWithRemoveCommentsNeverAsciiEscape = memoize(() => createPrinter({ removeComments: true, neverAsciiEscape: true })); + +/** @internal */ +export const createPrinterWithRemoveCommentsOmitTrailingSemicolon = memoize(() => createPrinter({ removeComments: true, omitTrailingSemicolon: true })); + export function createPrinter(printerOptions: PrinterOptions = {}, handlers: PrintHandlers = {}): Printer { const { hasGlobalName, diff --git a/src/services/callHierarchy.ts b/src/services/callHierarchy.ts index fc4280802ee..a2d32e6da71 100644 --- a/src/services/callHierarchy.ts +++ b/src/services/callHierarchy.ts @@ -14,7 +14,7 @@ import { ClassLikeDeclaration, ClassStaticBlockDeclaration, compareStringsCaseSensitive, - createPrinter, + createPrinterWithRemoveCommentsOmitTrailingSemicolon, createTextRangeFromNode, createTextSpanFromBounds, createTextSpanFromRange, @@ -245,7 +245,7 @@ function getCallHierarchyItemName(program: Program, node: CallHierarchyDeclarati } if (text === undefined) { // get the text from printing the node on a single line without comments... - const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true }); + const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon(); text = usingSingleLineStringWriter(writer => printer.writeNode(EmitHint.Unspecified, node, node.getSourceFile(), writer)); } return { text, pos: declName.getStart(), end: declName.getEnd() }; diff --git a/src/services/inlayHints.ts b/src/services/inlayHints.ts index 5544aaa920c..49b113e9275 100644 --- a/src/services/inlayHints.ts +++ b/src/services/inlayHints.ts @@ -2,7 +2,7 @@ import { __String, ArrowFunction, CallExpression, - createPrinter, + createPrinterWithRemoveComments, Debug, EmitHint, EnumMember, @@ -53,7 +53,6 @@ import { NodeBuilderFlags, ParameterDeclaration, PrefixUnaryExpression, - PrinterOptions, PropertyDeclaration, Signature, skipParentheses, @@ -383,8 +382,7 @@ export function provideInlayHints(context: InlayHintsContext): InlayHint[] { function printTypeInSingleLine(type: Type) { const flags = NodeBuilderFlags.IgnoreErrors | TypeFormatFlags.AllowUniqueESSymbolType | TypeFormatFlags.UseAliasDefinedOutsideCurrentScope; - const options: PrinterOptions = { removeComments: true }; - const printer = createPrinter(options); + const printer = createPrinterWithRemoveComments(); return usingSingleLineStringWriter(writer => { const typeNode = checker.typeToTypeNode(type, /*enclosingDeclaration*/ undefined, flags); diff --git a/src/services/signatureHelp.ts b/src/services/signatureHelp.ts index f662021481c..c8923140c49 100644 --- a/src/services/signatureHelp.ts +++ b/src/services/signatureHelp.ts @@ -7,7 +7,7 @@ import { CheckFlags, contains, countWhere, - createPrinter, + createPrinterWithRemoveComments, createTextSpan, createTextSpanFromBounds, createTextSpanFromNode, @@ -659,7 +659,7 @@ function createTypeHelpItems( function getTypeHelpItem(symbol: Symbol, typeParameters: readonly TypeParameter[], checker: TypeChecker, enclosingDeclaration: Node, sourceFile: SourceFile): SignatureHelpItem { const typeSymbolDisplay = symbolToDisplayParts(checker, symbol); - const printer = createPrinter({ removeComments: true }); + const printer = createPrinterWithRemoveComments(); const parameters = typeParameters.map(t => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer)); const documentation = symbol.getDocumentationComment(checker); @@ -699,7 +699,7 @@ interface SignatureHelpItemInfo { readonly isVariadic: boolean; readonly paramet function itemInfoForTypeParameters(candidateSignature: Signature, checker: TypeChecker, enclosingDeclaration: Node, sourceFile: SourceFile): SignatureHelpItemInfo[] { const typeParameters = (candidateSignature.target || candidateSignature).typeParameters; - const printer = createPrinter({ removeComments: true }); + const printer = createPrinterWithRemoveComments(); const parameters = (typeParameters || emptyArray).map(t => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer)); const thisParameter = candidateSignature.thisParameter ? [checker.symbolToParameterDeclaration(candidateSignature.thisParameter, enclosingDeclaration, signatureHelpNodeBuilderFlags)!] : []; @@ -713,7 +713,7 @@ function itemInfoForTypeParameters(candidateSignature: Signature, checker: TypeC } function itemInfoForParameters(candidateSignature: Signature, checker: TypeChecker, enclosingDeclaration: Node, sourceFile: SourceFile): SignatureHelpItemInfo[] { - const printer = createPrinter({ removeComments: true }); + const printer = createPrinterWithRemoveComments(); const typeParameterParts = mapToDisplayParts(writer => { if (candidateSignature.typeParameters && candidateSignature.typeParameters.length) { const args = factory.createNodeArray(candidateSignature.typeParameters.map(p => checker.typeParameterToDeclaration(p, enclosingDeclaration, signatureHelpNodeBuilderFlags)!)); diff --git a/src/services/symbolDisplay.ts b/src/services/symbolDisplay.ts index bda7ba59509..be2e83a48bb 100644 --- a/src/services/symbolDisplay.ts +++ b/src/services/symbolDisplay.ts @@ -5,7 +5,7 @@ import { CallExpression, CheckFlags, contains, - createPrinter, + createPrinterWithRemoveComments, Debug, displayPart, EmitHint, @@ -75,7 +75,6 @@ import { NodeBuilderFlags, ObjectFlags, operatorPart, - Printer, PropertyAccessExpression, PropertyDeclaration, punctuationPart, @@ -259,7 +258,6 @@ export function getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker: Typ let hasAddedSymbolInfo = false; const isThisExpression = location.kind === SyntaxKind.ThisKeyword && isInExpressionContext(location) || isThisInTypeQuery(location); let type: Type | undefined; - let printer: Printer; let documentationFromAlias: SymbolDisplayPart[] | undefined; let tagsFromAlias: JSDocTagInfo[] | undefined; let hasMultipleSignatures = false; @@ -730,10 +728,7 @@ export function getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker: Typ return { displayParts, documentation, symbolKind, tags: tags.length === 0 ? undefined : tags }; function getPrinter() { - if (!printer) { - printer = createPrinter({ removeComments: true }); - } - return printer; + return createPrinterWithRemoveComments(); } function prefixNextMeaning() { diff --git a/src/services/utilities.ts b/src/services/utilities.ts index e3de3b30147..9935d419b2c 100644 --- a/src/services/utilities.ts +++ b/src/services/utilities.ts @@ -30,7 +30,7 @@ import { ConditionalExpression, contains, ContextFlags, - createPrinter, + createPrinterWithRemoveCommentsOmitTrailingSemicolon, createRange, createScanner, createTextSpan, @@ -2984,7 +2984,7 @@ export function signatureToDisplayParts(typechecker: TypeChecker, signature: Sig export function nodeToDisplayParts(node: Node, enclosingDeclaration: Node): SymbolDisplayPart[] { const file = enclosingDeclaration.getSourceFile(); return mapToDisplayParts(writer => { - const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true }); + const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon(); printer.writeNode(EmitHint.Unspecified, node, file, writer); }); }