Skip to content

Detect TSC polyfills to avoid marking them as CJS#9318

Merged
mattcompiles merged 3 commits into
v2from
detect-tsc-polyfills
Oct 18, 2023
Merged

Detect TSC polyfills to avoid marking them as CJS#9318
mattcompiles merged 3 commits into
v2from
detect-tsc-polyfills

Conversation

@mattcompiles

Copy link
Copy Markdown
Contributor

↪️ Pull Request

Some TSC polyfills check for prior existence of themselves via a this._polyfill check. Currently Parcel marks any file using a top-level this as CJS. This can de-opt or even break packaged output in some cases.

This PR adds a check in the JSTransformer to ensure we don't de-opt ESM modules that contain these TSC polyfills. It currently checks for the following AST pattern this && this._polyfills, which is a binary expression containing a this reference and a member expression with this and an identifier. This is a little naive but probably enough?

🚨 Test instructions

✔️ PR Todo

  • Added/updated unit tests for this change
  • Filled out test instructions (In case there aren't any unit tests)
  • Included links to related issues/PRs

@parcel-benchmark

parcel-benchmark commented Oct 16, 2023

Copy link
Copy Markdown

Benchmark Results

Kitchen Sink ✅

Timings

Description Time Difference
Cold 2.34s +240.00ms ⚠️
Cached 423.00ms +68.00ms ⚠️

Cold Bundles

Bundle Size Difference Time Difference
dist/legacy/parcel.7cdb0fad.webp 102.94kb +0.00b 488.00ms +123.00ms ⚠️
dist/legacy/parcel.7cdb0fad.webp 102.94kb +0.00b 489.00ms +114.00ms ⚠️
dist/modern/parcel.7cdb0fad.webp 102.94kb +0.00b 497.00ms +122.00ms ⚠️
dist/legacy/index.ff03421b.js 1.48kb +0.00b 874.00ms +327.00ms ⚠️
dist/legacy/index.e9bb1616.js 1.06kb +0.00b 873.00ms +325.00ms ⚠️
dist/modern/index.4a29d309.js 921.00b +0.00b 872.00ms +325.00ms ⚠️
dist/legacy/index.html 826.00b +0.00b 720.00ms +139.00ms ⚠️
dist/modern/index.html 749.00b +0.00b 720.00ms +141.00ms ⚠️
dist/legacy/index.b8ae99ba.css 94.00b +0.00b 554.00ms +163.00ms ⚠️
dist/modern/index.31cedca9.css 94.00b +0.00b 554.00ms +164.00ms ⚠️

Cached Bundles

Bundle Size Difference Time Difference
dist/legacy/parcel.7cdb0fad.webp 102.94kb +0.00b 396.00ms +44.00ms ⚠️
dist/legacy/parcel.7cdb0fad.webp 102.94kb +0.00b 407.00ms +54.00ms ⚠️
dist/modern/parcel.7cdb0fad.webp 102.94kb +0.00b 406.00ms +52.00ms ⚠️
dist/legacy/index.ff03421b.js 1.48kb +0.00b 584.00ms +57.00ms ⚠️
dist/legacy/index.e9bb1616.js 1.06kb +0.00b 584.00ms +58.00ms ⚠️
dist/modern/index.4a29d309.js 921.00b +0.00b 585.00ms +59.00ms ⚠️
dist/legacy/index.html 826.00b +0.00b 625.00ms +51.00ms ⚠️
dist/modern/index.html 749.00b +0.00b 624.00ms +51.00ms ⚠️
dist/legacy/index.b8ae99ba.css 94.00b +0.00b 439.00ms +73.00ms ⚠️
dist/modern/index.31cedca9.css 94.00b +0.00b 439.00ms +74.00ms ⚠️

React HackerNews ✅

Timings

Description Time Difference
Cold 5.51s +15.00ms
Cached 546.00ms -22.00ms

Cold Bundles

Bundle Size Difference Time Difference
dist/logo.8dd07848.png 244.00b +0.00b 345.00ms +21.00ms ⚠️

Cached Bundles

Bundle Size Difference Time Difference
dist/index.js 459.11kb +0.00b 1.27s -172.00ms 🚀

AtlasKit Editor ✅

Timings

Description Time Difference
Cold 47.27s -590.00ms
Cached 2.82s -62.00ms

Cold Bundles

Bundle Size Difference Time Difference
dist/index.41c1abf7.js 3.78mb +4.12kb ⚠️ 22.16s -548.00ms
dist/pdfRenderer.ba28cccc.js 1.11mb +0.00b 16.50s -922.00ms 🚀
dist/ConfigPanelFieldsLoader.182d39bc.js 303.43kb +0.00b 10.54s -537.00ms 🚀
dist/card.d06de810.js 138.91kb +0.00b 10.54s -535.00ms 🚀
dist/mobile-upload.63ab2b72.js 66.34kb +0.00b 6.61s -492.00ms 🚀
dist/ElementBrowser.e8f01080.js 61.94kb +0.00b 10.54s -543.00ms 🚀
dist/esm.271a6e34.js 59.30kb +0.00b 10.53s -546.00ms 🚀
dist/component-lazy.51d1dec9.js 58.94kb +0.00b 6.97s -519.00ms 🚀
dist/component.ea8ea9a2.js 57.16kb +0.00b 6.59s -511.00ms 🚀
dist/DatePicker.042aeb21.js 47.46kb +0.00b 7.71s -656.00ms 🚀
dist/Modal.fa93d531.js 27.83kb +0.00b 6.59s -506.00ms 🚀
dist/DatePicker.e51a79b1.js 24.96kb +0.00b 7.71s -656.00ms 🚀
dist/component.f7f8c338.js 18.68kb +0.00b 6.60s -503.00ms 🚀
dist/js.e1035d4d.js 17.15kb +0.00b 6.59s -510.00ms 🚀
dist/ConfigPanelFieldsLoader.3384e28b.js 15.74kb +0.00b 10.53s -543.00ms 🚀
dist/ui.8c117104.js 14.48kb +0.00b 10.54s -543.00ms 🚀
dist/ConfigPanelFieldsLoader.aa7dd375.js 13.63kb +0.00b 10.54s -543.00ms 🚀
dist/pdfRenderer.a0700f46.js 11.90kb +0.00b 13.21s +2.14s ⚠️
dist/mobile-upload.3747b689.js 7.79kb +0.00b 6.59s -501.00ms 🚀
dist/mobile-upload.3baad8e4.js 7.79kb +0.00b 10.54s -538.00ms 🚀
dist/mobile-upload.7a892a37.js 7.79kb +0.00b 10.53s -546.00ms 🚀
dist/Modal.850345b4.js 3.86kb +0.00b 6.59s -505.00ms 🚀
dist/component.360dba95.js 3.20kb +0.00b 6.59s -505.00ms 🚀
dist/png-chunks-extract.92497b2d.js 3.06kb +0.00b 6.59s -506.00ms 🚀
dist/ru.0cf3f40e.js 2.81kb +0.00b 10.53s -543.00ms 🚀
dist/uk.282f23b1.js 2.76kb +0.00b 10.53s -543.00ms 🚀
dist/codeViewerRenderer.51140ec8.js 2.61kb +0.00b 13.21s +2.14s ⚠️
dist/th.137e1013.js 2.60kb +0.00b 10.53s -544.00ms 🚀
dist/ResourcedEmojiComponent.9a253c26.js 2.47kb +0.00b 7.71s -656.00ms 🚀
dist/pl.bce591be.js 2.25kb +0.00b 7.71s -657.00ms 🚀
dist/cs.bf42283b.js 2.23kb +0.00b 7.71s -658.00ms 🚀
dist/de.90d5c4fa.js 2.17kb +0.00b 7.71s -658.00ms 🚀
dist/fr.ff5d335f.js 2.13kb +0.00b 7.71s -657.00ms 🚀
dist/es.80bf0476.js 2.12kb +0.00b 7.71s -657.00ms 🚀
dist/hu.223c2cde.js 2.10kb +0.00b 7.71s -657.00ms 🚀
dist/fi.98bb8fa8.js 2.09kb +0.00b 7.71s -657.00ms 🚀
dist/ja.7d4156df.js 2.09kb +0.00b 7.71s -656.00ms 🚀
dist/vi.b46097db.js 2.09kb +0.00b 10.53s -543.00ms 🚀
dist/pt_BR.b9e37d37.js 2.06kb +0.00b 7.71s -657.00ms 🚀
dist/tr.c85d90a9.js 2.03kb +0.00b 10.53s -543.00ms 🚀
dist/ko.9c6bf469.js 1.98kb +0.00b 7.71s -657.00ms 🚀
dist/sv.1c06c95c.js 1.98kb +0.00b 10.53s -543.00ms 🚀
dist/it.04edb54a.js 1.97kb +0.00b 7.71s -656.00ms 🚀
dist/nb.9bd6db78.js 1.96kb +0.00b 7.71s -657.00ms 🚀
dist/date.139a08b0.js 1.95kb +0.00b 6.97s -517.00ms 🚀
dist/da.d2d8303e.js 1.95kb +0.00b 7.71s -658.00ms 🚀
dist/nl.c4d12122.js 1.94kb +0.00b 7.71s -657.00ms 🚀
dist/images.774ef3be.js 1.90kb +0.00b 6.97s -517.00ms 🚀
dist/zh_TW.b7c55aa6.js 1.86kb +0.00b 10.53s -543.00ms 🚀
dist/zh.b01fe721.js 1.84kb +0.00b 10.53s -543.00ms 🚀
dist/feedback.4b745631.js 1.76kb +0.00b 7.71s -656.00ms 🚀
dist/status.20808f9b.js 1.67kb +0.00b 6.97s -518.00ms 🚀
dist/code.3ce450f8.js 1.56kb +0.00b 6.97s -519.00ms 🚀
dist/workerHasher.4f6584da.js 1.56kb +0.00b 6.59s -505.00ms 🚀
dist/workerHasher.540c9790.js 1.56kb +0.00b 10.54s -543.00ms 🚀
dist/workerHasher.c840c607.js 1.56kb +0.00b 10.54s -537.00ms 🚀
dist/list-number.fdc97a50.js 1.47kb +0.00b 6.97s -517.00ms 🚀
dist/heading6.e6e03f52.js 1.36kb +0.00b 7.71s -656.00ms 🚀
dist/16.4998f52b.js 1.35kb +0.00b 6.60s -505.00ms 🚀
dist/heading3.73972e33.js 1.35kb +0.00b 6.97s -517.00ms 🚀
dist/16.330880f6.js 1.29kb +0.00b 6.59s -505.00ms 🚀
dist/link.71e06c5e.js 1.28kb +0.00b 6.97s -518.00ms 🚀
dist/emoji.8f9f45dc.js 1.25kb +0.00b 6.97s -516.00ms 🚀
dist/heading5.d2f94d9d.js 1.23kb +0.00b 7.71s -656.00ms 🚀
dist/expand.c983e90a.js 1.18kb +0.00b 7.71s -656.00ms 🚀
dist/heading2.c27d912d.js 1.17kb +0.00b 6.97s -517.00ms 🚀
dist/heading4.be08fc9e.js 1.12kb +0.00b 6.97s -524.00ms 🚀
dist/mention.f4723418.js 1.09kb +0.00b 6.97s -517.00ms 🚀
dist/layout.b5e3a7ef.js 1.05kb +0.00b 6.97s -518.00ms 🚀
dist/divider.7bb33712.js 1.04kb +0.00b 6.97s -517.00ms 🚀
dist/action.c407ac14.js 1.02kb +0.00b 6.97s -519.00ms 🚀
dist/heading1.d7caae19.js 1.02kb +0.00b 6.97s -517.00ms 🚀
dist/16.371e251f.js 1.00kb +0.00b 6.59s -505.00ms 🚀
dist/list.bd698aa0.js 1011.00b +0.00b 6.97s -516.00ms 🚀
dist/quote.d6bda47a.js 1011.00b +0.00b 6.97s -518.00ms 🚀
dist/decision.a17a0d00.js 992.00b +0.00b 6.97s -517.00ms 🚀
dist/16.8adad466.js 980.00b +0.00b 6.59s -506.00ms 🚀
dist/16.71432140.js 980.00b +0.00b 6.59s -505.00ms 🚀
dist/panel-warning.772e8569.js 968.00b +0.00b 6.97s -517.00ms 🚀
dist/16.e5f05248.js 960.00b +0.00b 6.59s -505.00ms 🚀
dist/16.549c63e3.js 955.00b +0.00b 6.97s -518.00ms 🚀
dist/table.e0e68580.js 946.00b +0.00b 6.97s -518.00ms 🚀
dist/16.79864de1.js 920.00b +0.00b 6.61s -491.00ms 🚀
dist/panel.45c00b08.js 887.00b +0.00b 6.97s -517.00ms 🚀
dist/panel-error.bfda44fb.js 864.00b +0.00b 6.97s -517.00ms 🚀
dist/16.7d7d7930.js 862.00b +0.00b 6.60s -505.00ms 🚀
dist/16.4556c00f.js 834.00b +0.00b 6.60s -505.00ms 🚀
dist/16.a44bb474.js 827.00b +0.00b 6.59s -505.00ms 🚀
dist/16.bf9fb66d.js 821.00b +0.00b 6.97s -519.00ms 🚀
dist/panel-success.4afcba7a.js 805.00b +0.00b 6.97s -517.00ms 🚀
dist/panel-note.58ef2b52.js 795.00b +0.00b 6.97s -517.00ms 🚀
dist/16.dffb58fe.js 782.00b +0.00b 6.60s -505.00ms 🚀
dist/16.0118b1f8.js 776.00b +0.00b 6.59s -505.00ms 🚀
dist/16.9a311f76.js 776.00b +0.00b 6.59s -505.00ms 🚀
dist/16.edf70d70.js 775.00b +0.00b 6.59s -506.00ms 🚀
dist/16.4af9f37f.js 774.00b +0.00b 6.59s -505.00ms 🚀
dist/16.aa70dcce.js 773.00b +0.00b 6.59s -505.00ms 🚀
dist/16.c715b7e1.js 746.00b +0.00b 6.97s -519.00ms 🚀
dist/16.54ffa2b2.js 725.00b +0.00b 6.59s -504.00ms 🚀
dist/16.d7c3881b.js 697.00b +0.00b 6.61s -490.00ms 🚀
dist/sk.4be9c93f.js 656.00b +0.00b 10.53s -544.00ms 🚀
dist/pt_PT.e211e609.js 635.00b +0.00b 7.71s -657.00ms 🚀
dist/et.88ef7cb4.js 633.00b +0.00b 7.71s -657.00ms 🚀
dist/simpleHasher.09765db3.js 589.00b +0.00b 6.59s -506.00ms 🚀
dist/simpleHasher.c14e20b4.js 589.00b +0.00b 10.54s -538.00ms 🚀
dist/simpleHasher.23db7a52.js 589.00b +0.00b 10.54s -538.00ms 🚀
dist/is.5f045a22.js 495.00b +0.00b 7.71s -657.00ms 🚀
dist/ro.8d5b380a.js 482.00b +0.00b 7.72s -656.00ms 🚀
dist/en_GB.4c40e6c6.js 472.00b +0.00b 7.71s -657.00ms 🚀
dist/en.e1d21f6d.js 469.00b +0.00b 7.71s -657.00ms 🚀

Cached Bundles

Bundle Size Difference Time Difference
dist/index.41c1abf7.js 3.78mb +4.12kb ⚠️ 22.21s -1.80s 🚀
dist/pdfRenderer.ba28cccc.js 1.11mb +0.00b 17.57s -889.00ms 🚀
dist/refractor.3e0cc31b.js 598.96kb +0.00b 15.52s -1.46s 🚀
dist/media-viewer.e993d1a1.js 536.13kb +0.00b 14.04s -2.94s 🚀
dist/popup.a77286c1.js 321.45kb +0.00b 15.52s -1.46s 🚀
dist/ConfigPanelFieldsLoader.182d39bc.js 303.43kb +0.00b 11.35s -3.22s 🚀
dist/EmojiPickerComponent.1e4c5464.js 188.61kb +0.00b 15.49s -1.51s 🚀
dist/card.d06de810.js 138.91kb +0.00b 11.34s -4.40s 🚀
dist/ConfigPanelFieldsLoader.3b50a158.js 82.73kb +0.00b 15.49s -836.00ms 🚀
dist/esm.34897092.js 62.95kb +0.00b 15.52s -1.46s 🚀
dist/archive.c374f622.js 59.90kb +0.00b 15.52s -1.46s 🚀
dist/esm.271a6e34.js 59.30kb +0.00b 11.34s -4.40s 🚀
dist/component-lazy.51d1dec9.js 58.94kb +0.00b 8.34s -450.00ms 🚀
dist/component.ea8ea9a2.js 57.16kb +0.00b 7.02s -371.00ms 🚀
dist/DatePicker.042aeb21.js 47.46kb +0.00b 8.36s -426.00ms 🚀
dist/esm.cb0d3833.js 39.11kb +0.00b 15.52s -1.48s 🚀
dist/Modal.fa93d531.js 27.83kb +0.00b 7.02s -372.00ms 🚀
dist/DatePicker.e51a79b1.js 24.96kb +0.00b 8.36s -426.00ms 🚀
dist/smartMediaEditor.efa59853.js 21.68kb +0.00b 15.52s -1.48s 🚀
dist/esm.fedda0d0.js 20.43kb +0.00b 15.52s -1.48s 🚀
dist/component.f7f8c338.js 18.68kb +0.00b 7.02s -372.00ms 🚀
dist/js.e1035d4d.js 17.15kb +0.00b 7.02s -371.00ms 🚀
dist/dropzone.464b3150.js 13.40kb +0.00b 15.52s -1.46s 🚀
dist/pdfRenderer.a0700f46.js 11.90kb +0.00b 11.35s -4.39s 🚀
dist/dropzone.1c15cdc1.js 11.48kb +0.00b 15.52s -1.46s 🚀
dist/Toolbar.4d256e97.js 9.36kb +0.00b 15.52s -1.49s 🚀
dist/clipboard.400013a2.js 7.92kb +0.00b 15.52s -1.46s 🚀
dist/mobile-upload.3747b689.js 7.79kb +0.00b 7.02s -376.00ms 🚀
dist/mobile-upload.3baad8e4.js 7.79kb +0.00b 11.35s -4.39s 🚀
dist/mobile-upload.7a892a37.js 7.79kb +0.00b 11.35s -4.39s 🚀
dist/mobile-upload.2102debb.js 7.79kb +0.00b 15.52s -1.48s 🚀
dist/index.runtime.c6050a4b.js 7.29kb +0.00b 15.52s -1.49s 🚀
dist/browser.0009c8b4.js 7.19kb +0.00b 15.52s -1.46s 🚀
dist/index.b16227d6.css 4.08kb +0.00b 15.56s -1.48s 🚀
dist/Modal.850345b4.js 3.86kb +0.00b 7.02s -373.00ms 🚀
dist/component.360dba95.js 3.20kb +0.00b 7.02s -372.00ms 🚀
dist/media-viewer-analytics-error-boundary.60bdaa4c.js 3.18kb +0.00b 15.52s -1.46s 🚀
dist/media-picker-analytics-error-boundary.c493f011.js 3.18kb +0.00b 15.52s -1.46s 🚀
dist/media-card-analytics-error-boundary.74e0c7f9.js 3.18kb +0.00b 15.52s -1.46s 🚀
dist/png-chunks-extract.92497b2d.js 3.06kb +0.00b 7.02s -375.00ms 🚀
dist/codeViewerRenderer.51140ec8.js 2.61kb +0.00b 11.35s -5.63s 🚀
dist/ResourcedEmojiComponent.9a253c26.js 2.47kb +0.00b 8.36s -426.00ms 🚀
dist/pl.bce591be.js 2.25kb +0.00b 8.37s -1.42s 🚀
dist/cs.bf42283b.js 2.23kb +0.00b 8.36s -426.00ms 🚀
dist/de.90d5c4fa.js 2.17kb +0.00b 8.36s -427.00ms 🚀
dist/fr.ff5d335f.js 2.13kb +0.00b 8.36s -430.00ms 🚀
dist/es.80bf0476.js 2.12kb +0.00b 8.36s -427.00ms 🚀
dist/hu.223c2cde.js 2.10kb +0.00b 8.36s -1.42s 🚀
dist/fi.98bb8fa8.js 2.09kb +0.00b 8.36s -426.00ms 🚀
dist/ja.7d4156df.js 2.09kb +0.00b 8.36s -1.42s 🚀
dist/pt_BR.b9e37d37.js 2.06kb +0.00b 8.37s -1.42s 🚀
dist/ko.9c6bf469.js 1.98kb +0.00b 8.36s -1.42s 🚀
dist/it.04edb54a.js 1.97kb +0.00b 8.36s -1.42s 🚀
dist/nb.9bd6db78.js 1.96kb +0.00b 8.36s -1.42s 🚀
dist/da.d2d8303e.js 1.95kb +0.00b 8.36s -426.00ms 🚀
dist/nl.c4d12122.js 1.94kb +0.00b 8.37s -1.42s 🚀
dist/feedback.4b745631.js 1.76kb +0.00b 8.36s -426.00ms 🚀
dist/workerHasher.4f6584da.js 1.56kb +0.00b 7.02s -376.00ms 🚀
dist/workerHasher.c840c607.js 1.56kb +0.00b 11.35s -4.39s 🚀
dist/workerHasher.730f3766.js 1.56kb +0.00b 15.52s -1.46s 🚀
dist/workerHasher.9b1fcdbf.js 1.56kb +0.00b 15.52s -1.46s 🚀
dist/workerHasher.02b63a21.js 1.56kb +0.00b 15.52s -1.49s 🚀
dist/heading6.e6e03f52.js 1.36kb +0.00b 8.36s -427.00ms 🚀
dist/16.4998f52b.js 1.35kb +0.00b 7.03s -364.00ms 🚀
dist/16.330880f6.js 1.29kb +0.00b 7.02s -371.00ms 🚀
dist/heading5.d2f94d9d.js 1.23kb +0.00b 8.36s -426.00ms 🚀
dist/expand.c983e90a.js 1.18kb +0.00b 8.36s -427.00ms 🚀
dist/16.371e251f.js 1.00kb +0.00b 7.03s -367.00ms 🚀
dist/16.8adad466.js 980.00b +0.00b 7.02s -372.00ms 🚀
dist/16.71432140.js 980.00b +0.00b 7.02s -371.00ms 🚀
dist/16.e5f05248.js 960.00b +0.00b 7.02s -371.00ms 🚀
dist/16.7d7d7930.js 862.00b +0.00b 7.03s -363.00ms 🚀
dist/16.a44bb474.js 827.00b +0.00b 7.02s -371.00ms 🚀
dist/16.dffb58fe.js 782.00b +0.00b 7.03s -364.00ms 🚀
dist/16.0118b1f8.js 776.00b +0.00b 7.02s -373.00ms 🚀
dist/16.9a311f76.js 776.00b +0.00b 7.03s -363.00ms 🚀
dist/16.edf70d70.js 775.00b +0.00b 7.03s -366.00ms 🚀
dist/16.4af9f37f.js 774.00b +0.00b 7.02s -372.00ms 🚀
dist/16.aa70dcce.js 773.00b +0.00b 7.02s -372.00ms 🚀
dist/16.54ffa2b2.js 725.00b +0.00b 7.02s -371.00ms 🚀
dist/pt_PT.e211e609.js 635.00b +0.00b 8.37s -1.42s 🚀
dist/et.88ef7cb4.js 633.00b +0.00b 8.36s -427.00ms 🚀
dist/simpleHasher.09765db3.js 589.00b +0.00b 7.02s -376.00ms 🚀
dist/simpleHasher.23db7a52.js 589.00b +0.00b 11.35s -4.39s 🚀
dist/simpleHasher.eefc98b4.js 589.00b +0.00b 15.52s -1.46s 🚀
dist/simpleHasher.47b9c809.js 589.00b +0.00b 15.52s -1.48s 🚀
dist/simpleHasher.cadc19c6.js 589.00b +0.00b 15.52s -1.49s 🚀
dist/is.5f045a22.js 495.00b +0.00b 8.36s -429.00ms 🚀
dist/ro.8d5b380a.js 482.00b +0.00b 8.37s -3.41s 🚀
dist/en_GB.4c40e6c6.js 472.00b +0.00b 8.36s -426.00ms 🚀
dist/en.e1d21f6d.js 469.00b +0.00b 8.36s -427.00ms 🚀
dist/index.html 248.00b +0.00b 15.83s -1.25s 🚀

Three.js ✅

Timings

Description Time Difference
Cold 3.94s +75.00ms
Cached 394.00ms +12.00ms

Cold Bundles

No bundle changes detected.

Cached Bundles

Bundle Size Difference Time Difference
dist/Three.js 572.25kb +0.00b 1.24s +94.00ms ⚠️

Click here to view a detailed benchmark overview.

Comment thread packages/transformers/js/core/src/collect.rs Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants