https://github.com/microsoft/TypeScript/pull/46266 Skip to content Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Issues - + Integrations - + GitHub Sponsors - + Customer stories- * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Education - [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} microsoft / TypeScript Public * Notifications * Star 75.5k * Fork 9.9k * * Code * Issues 5k+ * Pull requests 282 * Actions * Projects 8 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights New issue Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community. Pick a username [ ] Email Address [ ] Password [ ] [ ] Sign up for GitHub By clicking "Sign up for GitHub", you agree to our terms of service and privacy statement. We'll occasionally send you account related emails. Already on GitHub? Sign in to your account Jump to bottom Control flow analysis for destructured discriminated unions #46266 Merged ahejlsberg merged 5 commits into main from fix46143 Nov 2, 2021 Merged Control flow analysis for destructured discriminated unions #46266 ahejlsberg merged 5 commits into main from fix46143 Nov 2, 2021 +1,457 -50 Conversation 22 Commits 5 Checks 10 Files changed 8 Conversation Reviewers @JoostK JoostK @andrewbranch andrewbranch @DanielRosenwasser DanielRosenwasser Assignees @ahejlsberg ahejlsberg Labels Author: Team For Milestone Bug Projects PR Backlog Done Milestone TypeScript 4.6.0 Linked issues Successfully merging this pull request may close these issues. Alias type conditions to desctrutured variables Union discrimination breaks when destructuring parameters Type refinement does not get applied to a destructured shared field in a discriminated union aliasing discriminated union tag breaks case analysis 4 participants @ahejlsberg @DanielRosenwasser @typescript-bot @JoostK @ahejlsberg Copy link Member @ahejlsberg ahejlsberg commented Oct 7, 2021 * edited This PR implements control flow analysis for dependent parameters and variables declared by destructuring discriminated unions. Specifically, when non-rest binding elements are declared as const variables or const-like parameters (parameters for which there are no assignments in the function body) and the parent type for the destructuring is a discriminated union type, conditional checks for variables destructured from discriminant properties now affect the types of other variables declared in the same destructuring. Some examples: type Action = | { kind: 'A', payload: number } | { kind: 'B', payload: string }; function f10({ kind, payload }: Action) { if (kind === 'A') { payload.toFixed(); } if (kind === 'B') { payload.toUpperCase(); } } function f11(action: Action) { const { kind, payload } = action; if (kind === 'A') { payload.toFixed(); } if (kind === 'B') { payload.toUpperCase(); } } function f12({ kind, payload }: Action) { switch (kind) { case 'A': payload.toFixed(); break; case 'B': payload.toUpperCase(); break; default: payload; // never } } function f13(it: Iterator) { const { value, done } = it.next(); if (!done) { value; // number } } Fixes #10830. Fixes #35283. Fixes #38020. Fixes #46143. The text was updated successfully, but these errors were encountered: 92 66 [?] 72 41 11 ahejlsberg added 3 commits Oct 7, 2021 @ahejlsberg CFA for dependent variables destructured from discriminated union 5c6a856 @ahejlsberg Accept new baselines c468a25 @ahejlsberg Add tests dd07cdc @typescript-bot typescript-bot assigned ahejlsberg Oct 7, 2021 @typescript-bot typescript-bot added Author: Team For Uncommitted Bug labels Oct 7, 2021 @DanielRosenwasser Copy link Member @DanielRosenwasser DanielRosenwasser commented Oct 8, 2021 @typescript-bot pack this @typescript-bot test this @typescript-bot user test this @typescript-bot run dt @typescript-bot perf test this Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Oct 8, 2021 * edited Heya @DanielRosenwasser, I've started to run the extended test suite on this PR at dd07cdc. You can monitor the build here. Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Oct 8, 2021 * edited Heya @DanielRosenwasser, I've started to run the tarball bundle task on this PR at dd07cdc. You can monitor the build here. Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Oct 8, 2021 * edited Heya @DanielRosenwasser, I've started to run the parallelized community code test suite on this PR at dd07cdc. You can monitor the build here. Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Oct 8, 2021 * edited Heya @DanielRosenwasser, I've started to run the perf test suite on this PR at dd07cdc. You can monitor the build here. Update: The results are in! Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Oct 8, 2021 * edited Heya @DanielRosenwasser, I've started to run the parallelized Definitely Typed test suite on this PR at dd07cdc. You can monitor the build here. Sorry, something went wrong. @ahejlsberg ahejlsberg requested review from andrewbranch and DanielRosenwasser Oct 8, 2021 @ahejlsberg ahejlsberg added this to the TypeScript 4.6.0 milestone Oct 8, 2021 @typescript-bot typescript-bot mentioned this pull request Oct 8, 2021 User test baselines have changed for fix46143 typescript-bot/ TypeScript#210 Open @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Oct 8, 2021 The user suite test run you requested has finished and failed. I've opened a PR with the baseline diff from master. Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Oct 8, 2021 @DanielRosenwasser The results of the perf run you requested are in! Here they are: Comparison Report - main..46266 [Metric] [main] [46266] [Delta] [Best] [Worst] [Angular - node (v10.16.3, x64)] [Memory [354,215k (+- [354,186k (+- [-29k (- [354,087k [354,305k used] 0.03%)] 0.01%)] 0.01%)] ] ] [Parse [1.96s (+- [1.96s (+- [+0.00s (+ [1.93s] [1.99s] Time] 0.53%)] 0.71%)] 0.05%)] [Bind [0.84s (+- [0.84s (+- [+0.01s (+ [0.83s] [0.86s] Time] 0.95%)] 0.90%)] 0.84%)] [Check [5.46s (+- [5.48s (+- [+0.03s (+ [5.45s] [5.56s] Time] 0.35%)] 0.45%)] 0.48%)] [Emit [5.87s (+- [5.86s (+- [-0.00s (- [5.79s] [5.97s] Time] 0.62%)] 0.57%)] 0.05%)] [Total [14.12s (+- [14.16s (+- [+0.04s (+ [14.05s] [14.27s] Time] 0.27%)] 0.36%)] 0.25%)] [Compiler-Unions - node (v10.16.3, x64)] [Memory [203,893k (+- [203,892k (+- [-1k (- [203,797k [203,997k used] 0.03%)] 0.02%)] 0.00%)] ] ] [Parse [0.78s (+- [0.79s (+- [+0.01s (+ [0.78s] [0.81s] Time] 0.63%)] 0.84%)] 1.15%)] [Bind [0.52s (+- [0.52s (+- [+0.00s (+ [0.51s] [0.54s] Time] 1.19%)] 1.39%)] 0.58%)] [Check [7.88s (+- [7.96s (+- [+0.08s (+ [7.79s] [8.15s] Time] 0.53%)] 0.90%)] 1.05%)] [Emit [2.44s (+- [2.45s (+- [+0.01s (+ [2.42s] [2.50s] Time] 1.14%)] 0.70%)] 0.33%)] [Total [11.63s (+- [11.73s (+- [+0.10s (+ [11.56s] [11.91s] Time] 0.46%)] 0.58%)] 0.89%)] [Monaco - node (v10.16.3, x64)] [Memory [342,126k (+- [342,090k (+- [-36k (- [341,983k [342,353k used] 0.03%)] 0.02%)] 0.01%)] ] ] [Parse [1.48s (+- [1.48s (+- [-0.00s (- [1.45s] [1.50s] Time] 0.58%)] 0.73%)] 0.20%)] [Bind [0.74s (+- [0.75s (+- [+0.01s (+ [0.74s] [0.75s] Time] 0.64%)] 0.30%)] 0.81%)] [Check [5.44s (+- [5.46s (+- [+0.02s (+ [5.40s] [5.56s] Time] 0.50%)] 0.70%)] 0.44%)] [Emit [3.20s (+- [3.16s (+- [-0.04s (- [3.11s] [3.22s] Time] 0.57%)] 0.65%)] 1.25%)] [Total [10.87s (+- [10.85s (+- [-0.02s (- [10.75s] [10.92s] Time] 0.36%)] 0.32%)] 0.14%)] [TFS - node (v10.16.3, x64)] [Memory [304,810k (+- [304,836k (+- [+26k (+ [304,675k [304,993k used] 0.02%)] 0.02%)] 0.01%)] ] ] [Parse [1.19s (+- [1.20s (+- [+0.01s (+ [1.19s] [1.22s] Time] 0.54%)] 0.72%)] 0.84%)] [Bind [0.71s (+- [0.71s (+- [-0.00s (- [0.69s] [0.72s] Time] 0.87%)] 0.87%)] 0.28%)] [Check [4.98s (+- [4.99s (+- [+0.01s (+ [4.95s] [5.03s] Time] 0.49%)] 0.44%)] 0.24%)] [Emit [3.31s (+- [3.36s (+- [+0.05s (+ [3.28s] [3.60s] Time] 1.01%)] 1.92%)] 1.39%)] [Total [10.20s (+- [10.26s (+- [+0.07s (+ [10.13s] [10.52s] Time] 0.47%)] 0.76%)] 0.65%)] [material-ui - node (v10.16.3, x64)] [Memory [472,371k (+- [472,446k (+- [+75k (+ [472,275k [472,678k used] 0.01%)] 0.02%)] 0.02%)] ] ] [Parse [1.77s (+- [1.78s (+- [+0.01s (+ [1.76s] [1.79s] Time] 0.38%)] 0.41%)] 0.62%)] [Bind [0.66s (+- [0.66s (+- [-0.00s (- [0.65s] [0.66s] Time] 0.79%)] 0.55%)] 0.46%)] [Check [14.38s (+- [14.49s (+- [+0.11s (+ [14.32s] [14.77s] Time] 0.27%)] 0.66%)] 0.74%)] [Emit [0.00s (+- [0.00s (+- [0.00s ( [0.00s] [0.00s] Time] 0.00%)] 0.00%)] NaN%)] [Total [16.81s (+- [16.93s (+- [+0.12s (+ [16.75s] [17.22s] Time] 0.22%)] 0.59%)] 0.68%)] [Angular - node (v12.1.0, x64)] [Memory [332,133k (+- [332,132k (+- [-1k (- [332,036k [332,241k used] 0.02%)] 0.02%)] 0.00%)] ] ] [Parse [1.94s (+- [1.96s (+- [+0.02s (+ [1.94s] [1.98s] Time] 0.88%)] 0.55%)] 1.13%)] [Bind [0.81s (+- [0.83s (+- [+0.02s (+ [0.80s] [0.86s] Time] 0.64%)] 1.29%)] 1.98%)] [Check [5.28s (+- [5.34s (+- [+0.06s (+ [5.27s] [5.39s] Time] 0.29%)] 0.60%)] 1.10%)] [Emit [6.12s (+- [6.12s (+- [+0.01s (+ [6.02s] [6.23s] Time] 0.83%)] 0.68%)] 0.10%)] [Total [14.15s (+- [14.25s (+- [+0.10s (+ [14.07s] [14.36s] Time] 0.41%)] 0.54%)] 0.69%)] [Compiler-Unions - node (v12.1.0, x64)] [Memory [191,377k (+- [191,369k (+- [-8k (- [190,745k [191,518k used] 0.03%)] 0.08%)] 0.00%)] ] ] [Parse [0.78s (+- [0.79s (+- [+0.01s (+ [0.77s] [0.80s] Time] 0.75%)] 0.82%)] 1.42%)] [Bind [0.53s (+- [0.53s (+- [+0.00s (+ [0.52s] [0.54s] Time] 0.71%)] 0.76%)] 0.76%)] [Check [7.35s (+- [7.43s (+- [+0.08s (+ [7.34s] [7.53s] Time] 0.49%)] 0.57%)] 1.09%)] [Emit [2.47s (+- [2.46s (+- [-0.00s (- [2.41s] [2.50s] Time] 0.69%)] 0.77%)] 0.16%)] [Total [11.12s (+- [11.21s (+- [+0.09s (+ [11.12s] [11.35s] Time] 0.42%)] 0.49%)] 0.81%)] [Monaco - node (v12.1.0, x64)] [Memory [325,207k (+- [325,124k (+- [-82k (- [324,858k [325,256k used] 0.03%)] 0.03%)] 0.03%)] ] ] [Parse [1.46s (+- [1.47s (+- [+0.00s (+ [1.45s] [1.49s] Time] 0.73%)] 0.56%)] 0.07%)] [Bind [0.73s (+- [0.73s (+- [+0.00s (+ [0.72s] [0.75s] Time] 0.45%)] 0.76%)] 0.27%)] [Check [5.33s (+- [5.34s (+- [+0.02s (+ [5.29s] [5.38s] Time] 0.60%)] 0.43%)] 0.28%)] [Emit [3.19s (+- [3.19s (+- [+0.01s (+ [3.13s] [3.28s] Time] 0.87%)] 1.05%)] 0.25%)] [Total [10.71s (+- [10.74s (+- [+0.03s (+ [10.67s] [10.85s] Time] 0.48%)] 0.42%)] 0.26%)] [TFS - node (v12.1.0, x64)] [Memory [289,482k (+- [289,479k (+- [-3k (- [289,379k [289,609k used] 0.02%)] 0.02%)] 0.00%)] ] ] [Parse [1.21s (+- [1.23s (+- [+0.01s (+ [1.21s] [1.25s] Time] 0.74%)] 0.87%)] 0.82%)] [Bind [0.69s (+- [0.69s (+- [+0.00s (+ [0.68s] [0.70s] Time] 0.83%)] 0.69%)] 0.43%)] [Check [4.91s (+- [4.91s (+- [+0.01s (+ [4.88s] [4.95s] Time] 0.64%)] 0.30%)] 0.14%)] [Emit [3.36s (+- [3.36s (+- [+0.00s (+ [3.29s] [3.47s] Time] 0.86%)] 1.15%)] 0.06%)] [Total [10.17s (+- [10.19s (+- [+0.02s (+ [10.09s] [10.32s] Time] 0.44%)] 0.54%)] 0.24%)] [material-ui - node (v12.1.0, x64)] [Memory [450,968k (+- [451,115k (+- [+147k (+ [451,009k [451,259k used] 0.05%)] 0.01%)] 0.03%)] ] ] [Parse [1.77s (+- [1.79s (+- [+0.01s (+ [1.75s] [1.82s] Time] 0.60%)] 0.71%)] 0.79%)] [Bind [0.64s (+- [0.64s (+- [+0.00s (+ [0.63s] [0.66s] Time] 0.87%)] 1.18%)] 0.47%)] [Check [12.95s (+- [13.11s (+- [+0.16s (+ [12.91s] [13.30s] Time] 0.37%)] 0.62%)] 1.27%)] [Emit [0.00s (+- [0.00s (+- [0.00s ( [0.00s] [0.00s] Time] 0.00%)] 0.00%)] NaN%)] [Total [15.37s (+- [15.55s (+- [+0.18s (+ [15.32s] [15.74s] Time] 0.35%)] 0.58%)] 1.15%)] [Angular - node (v14.15.1, x64)] [Memory [330,493k (+- [330,531k (+- [+38k (+ [330,483k [330,588k used] 0.01%)] 0.01%)] 0.01%)] ] ] [Parse [1.94s (+- [1.95s (+- [+0.01s (+ [1.93s] [1.98s] Time] 0.77%)] 0.55%)] 0.31%)] [Bind [0.86s (+- [0.86s (+- [+0.00s (+ [0.85s] [0.87s] Time] 0.55%)] 0.61%)] 0.23%)] [Check [5.36s (+- [5.41s (+- [+0.05s (+ [5.34s] [5.45s] Time] 0.69%)] 0.52%)] 0.95%)] [Emit [6.21s (+- [6.26s (+- [+0.05s (+ [6.15s] [6.38s] Time] 0.84%)] 0.73%)] 0.81%)] [Total [14.37s (+- [14.48s (+- [+0.11s (+ [14.30s] [14.57s] Time] 0.48%)] 0.43%)] 0.77%)] [Compiler-Unions - node (v14.15.1, x64)] [Memory [193,198k (+- [192,904k (+- [-293k (- [190,010k [193,286k used] 0.02%)] 0.37%)] 0.15%)] ] ] [Parse [0.80s (+- [0.81s (+- [+0.01s (+ [0.80s] [0.82s] Time] 0.62%)] 0.64%)] 0.75%)] [Bind [0.55s (+- [0.56s (+- [+0.01s (+ [0.55s] [0.57s] Time] 0.54%)] 0.84%)] 1.45%)] [Check [7.54s (+- [7.60s (+- [+0.06s (+ [7.45s] [7.76s] Time] 0.65%)] 0.77%)] 0.85%)] [Emit [2.44s (+- [2.45s (+- [+0.01s (+ [2.43s] [2.48s] Time] 0.95%)] 0.47%)] 0.53%)] [Total [11.34s (+- [11.42s (+- [+0.09s (+ [11.26s] [11.59s] Time] 0.59%)] 0.58%)] 0.77%)] [Monaco - node (v14.15.1, x64)] [Memory [323,993k (+- [323,996k (+- [+4k (+ [323,961k [324,042k used] 0.01%)] 0.01%)] 0.00%)] ] ] [Parse [1.51s (+- [1.52s (+- [+0.01s (+ [1.50s] [1.54s] Time] 0.55%)] 0.53%)] 0.86%)] [Bind [0.76s (+- [0.76s (+- [+0.01s (+ [0.75s] [0.77s] Time] 0.65%)] 0.58%)] 0.79%)] [Check [5.29s (+- [5.34s (+- [+0.04s (+ [5.27s] [5.40s] Time] 0.28%)] 0.44%)] 0.83%)] [Emit [3.22s (+- [3.24s (+- [+0.01s (+ [3.20s] [3.27s] Time] 0.69%)] 0.52%)] 0.40%)] [Total [10.78s (+- [10.85s (+- [+0.08s (+ [10.81s] [10.93s] Time] 0.30%)] 0.23%)] 0.72%)] [TFS - node (v14.15.1, x64)] [Memory [288,362k (+- [288,344k (+- [-18k (- [288,291k [288,400k used] 0.01%)] 0.01%)] 0.01%)] ] ] [Parse [1.23s (+- [1.24s (+- [+0.01s (+ [1.22s] [1.26s] Time] 0.54%)] 0.63%)] 0.73%)] [Bind [0.73s (+- [0.74s (+- [+0.00s (+ [0.72s] [0.74s] Time] 0.61%)] 0.68%)] 0.41%)] [Check [4.91s (+- [4.96s (+- [+0.05s (+ [4.91s] [5.00s] Time] 0.46%)] 0.43%)] 1.08%)] [Emit [3.47s (+- [3.51s (+- [+0.04s (+ [3.47s] [3.58s] Time] 0.65%)] 0.79%)] 1.24%)] [Total [10.34s (+- [10.44s (+- [+0.11s (+ [10.34s] [10.57s] Time] 0.37%)] 0.48%)] 1.04%)] [material-ui - node (v14.15.1, x64)] [Memory [449,073k (+- [449,399k (+- [+326k (+ [449,363k [449,460k used] 0.08%)] 0.00%)] 0.07%)] ] ] [Parse [1.81s (+- [1.83s (+- [+0.02s (+ [1.82s] [1.85s] Time] 0.43%)] 0.32%)] 1.38%)] [Bind [0.68s (+- [0.68s (+- [+0.01s (+ [0.68s] [0.69s] Time] 0.70%)] 0.53%)] 1.03%)] [Check [13.14s (+- [13.32s (+- [+0.18s (+ [13.05s] [13.53s] Time] 1.08%)] 0.73%)] 1.34%)] [Emit [0.00s (+- [0.00s (+- [0.00s ( [0.00s] [0.00s] Time] 0.00%)] 0.00%)] NaN%)] [Total [15.63s (+- [15.84s (+- [+0.21s (+ [15.57s] [16.03s] Time] 0.92%)] 0.60%)] 1.32%)] System [Machine Name] [ts-ci-ubuntu] [Platform] [linux 4.4.0-210-generic] [Architecture] [x64] [Available Memory] [16 GB] [Available Memory] [8 GB] [CPUs] [4 x Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz] Hosts * node (v10.16.3, x64) * node (v12.1.0, x64) * node (v14.15.1, x64) Scenarios * Angular - node (v10.16.3, x64) * Angular - node (v12.1.0, x64) * Angular - node (v14.15.1, x64) * Compiler-Unions - node (v10.16.3, x64) * Compiler-Unions - node (v12.1.0, x64) * Compiler-Unions - node (v14.15.1, x64) * Monaco - node (v10.16.3, x64) * Monaco - node (v12.1.0, x64) * Monaco - node (v14.15.1, x64) * TFS - node (v10.16.3, x64) * TFS - node (v12.1.0, x64) * TFS - node (v14.15.1, x64) * material-ui - node (v10.16.3, x64) * material-ui - node (v12.1.0, x64) * material-ui - node (v14.15.1, x64) [Benchmark] [Name] [Iterations] [Current] [46266] [10] [Baseline] [main] [10] Developer Information: Download Benchmark Sorry, something went wrong. @ahejlsberg Limit calls to isSymbolAssigned 76fbe25 @typescript-bot typescript-bot added For Milestone Bug and removed For Uncommitted Bug labels Oct 8, 2021 @ahejlsberg Copy link Member Author @ahejlsberg ahejlsberg commented Oct 8, 2021 @typescript-bot perf test this Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Oct 8, 2021 * edited Heya @ahejlsberg, I've started to run the perf test suite on this PR at 76fbe25. You can monitor the build here. Update: The results are in! Sorry, something went wrong. JoostK JoostK reviewed Oct 8, 2021 View changes src/compiler/checker.ts const declaration = symbol.valueDeclaration; if (declaration && isBindingElement(declaration) && ! declaration.initializer && !declaration.dotDotDotToken && declaration.parent.elements.length >= 2) { const parent = declaration.parent.parent; if (parent.kind === SyntaxKind.VariableDeclaration && getCombinedNodeFlags(declaration) && NodeFlags.Const || parent.kind === SyntaxKind.Parameter) { Copy link Contributor @JoostK JoostK Oct 8, 2021 Small typo here: Suggested change if (parent.kind === SyntaxKind.VariableDeclaration && getCombinedNodeFlags(declaration) && NodeFlags.Const || parent.kind === SyntaxKind.Parameter) { if (parent.kind === SyntaxKind.VariableDeclaration && getCombinedNodeFlags(declaration) & NodeFlags.Const || parent.kind = == SyntaxKind.Parameter) { Sorry, something went wrong. 2 Copy link Member Author @ahejlsberg ahejlsberg Oct 8, 2021 Oh, good catch! Sorry, something went wrong. 2 @ahejlsberg Fix wrong operator cf546e8 @ahejlsberg Copy link Member Author @ahejlsberg ahejlsberg commented Oct 8, 2021 @typescript-bot perf test this faster Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Oct 8, 2021 * edited Heya @ahejlsberg, I've started to run the abridged perf test suite on this PR at cf546e8. You can monitor the build here. Update: The results are in! Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Oct 8, 2021 * edited Heya @ahejlsberg, I've started to run the perf test suite on this PR at cf546e8. You can monitor the build here. Update: The results are in! Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Oct 8, 2021 @ahejlsberg The results of the perf run you requested are in! Here they are: Comparison Report - main..46266 [Metric] [main] [46266] [Delta] [Best] [Worst] [Angular - node (v10.16.3, x64)] [Memory [354,210k (+- [354,233k (+- [+24k (+ [354,043k [354,385k used] 0.02%)] 0.02%)] 0.01%)] ] ] [Parse [1.95s (+- [1.94s (+- [-0.00s (- [1.93s] [1.97s] Time] 0.34%)] 0.43%)] 0.10%)] [Bind [0.84s (+- [0.84s (+- [+0.00s (+ [0.83s] [0.85s] Time] 1.00%)] 0.58%)] 0.36%)] [Check [5.45s (+- [5.47s (+- [+0.02s (+ [5.43s] [5.51s] Time] 0.31%)] 0.35%)] 0.44%)] [Emit [5.85s (+- [5.85s (+- [-0.00s (- [5.76s] [5.97s] Time] 0.43%)] 0.76%)] 0.07%)] [Total [14.09s (+- [14.11s (+- [+0.02s (+ [13.96s] [14.30s] Time] 0.19%)] 0.47%)] 0.15%)] [Compiler-Unions - node (v10.16.3, x64)] [Memory [203,833k (+- [203,809k (+- [-24k (- [203,681k [204,026k used] 0.04%)] 0.04%)] 0.01%)] ] ] [Parse [0.79s (+- [0.79s (+- [+0.00s (+ [0.77s] [0.80s] Time] 0.71%)] 0.98%)] 0.13%)] [Bind [0.52s (+- [0.52s (+- [+0.01s (+ [0.50s] [0.54s] Time] 1.54%)] 1.56%)] 0.97%)] [Check [7.87s (+- [7.95s (+- [+0.08s (+ [7.82s] [8.04s] Time] 0.57%)] 0.68%)] 0.95%)] [Emit [2.45s (+- [2.46s (+- [+0.01s (+ [2.41s] [2.52s] Time] 1.43%)] 1.10%)] 0.45%)] [Total [11.64s (+- [11.72s (+- [+0.09s (+ [11.59s] [11.83s] Time] 0.53%)] 0.58%)] 0.74%)] [Monaco - node (v10.16.3, x64)] [Memory [342,076k (+- [342,109k (+- [+33k (+ [341,936k [342,287k used] 0.02%)] 0.03%)] 0.01%)] ] ] [Parse [1.49s (+- [1.48s (+- [-0.01s (- [1.45s] [1.49s] Time] 0.24%)] 0.61%)] 0.47%)] [Bind [0.75s (+- [0.75s (+- [+0.00s (+ [0.73s] [0.75s] Time] 0.66%)] 0.64%)] 0.13%)] [Check [5.44s (+- [5.46s (+- [+0.02s (+ [5.34s] [5.52s] Time] 0.79%)] 0.67%)] 0.42%)] [Emit [3.17s (+- [3.18s (+- [+0.01s (+ [3.08s] [3.25s] Time] 0.59%)] 1.10%)] 0.28%)] [Total [10.84s (+- [10.86s (+- [+0.02s (+ [10.70s] [10.93s] Time] 0.30%)] 0.45%)] 0.22%)] [TFS - node (v10.16.3, x64)] [Memory [304,778k (+- [304,852k (+- [+73k (+ [304,693k [304,958k used] 0.02%)] 0.02%)] 0.02%)] ] ] [Parse [1.20s (+- [1.20s (+- [+0.00s (+ [1.18s] [1.23s] Time] 0.54%)] 1.06%)] 0.33%)] [Bind [0.71s (+- [0.71s (+- [+0.00s (+ [0.70s] [0.73s] Time] 1.31%)] 0.81%)] 0.71%)] [Check [4.97s (+- [5.02s (+- [+0.05s (+ [4.98s] [5.06s] Time] 0.54%)] 0.36%)] 0.97%)] [Emit [3.32s (+- [3.32s (+- [+0.01s (+ [3.27s] [3.40s] Time] 1.15%)] 0.76%)] 0.18%)] [Total [10.19s (+- [10.25s (+- [+0.06s (+ [10.16s] [10.35s] Time] 0.47%)] 0.36%)] 0.61%)] [material-ui - node (v10.16.3, x64)] [Memory [472,372k (+- [472,383k (+- [+11k (+ [472,258k [472,497k used] 0.02%)] 0.01%)] 0.00%)] ] ] [Parse [1.77s (+- [1.77s (+- [+0.00s (+ [1.75s] [1.80s] Time] 0.55%)] 0.65%)] 0.06%)] [Bind [0.65s (+- [0.66s (+- [+0.01s (+ [0.65s] [0.68s] Time] 0.56%)] 0.87%)] 1.38%)] [Check [14.41s (+- [14.52s (+- [+0.10s (+ [14.36s] [14.68s] Time] 0.32%)] 0.44%)] 0.69%)] [Emit [0.00s (+- [0.00s (+- [0.00s ( [0.00s] [0.00s] Time] 0.00%)] 0.00%)] NaN%)] [Total [16.84s (+- [16.95s (+- [+0.11s (+ [16.80s] [17.12s] Time] 0.28%)] 0.40%)] 0.65%)] [Angular - node (v12.1.0, x64)] [Memory [332,068k (+- [332,158k (+- [+90k (+ [331,986k [332,291k used] 0.02%)] 0.02%)] 0.03%)] ] ] [Parse [1.94s (+- [1.95s (+- [+0.01s (+ [1.92s] [2.00s] Time] 0.80%)] 0.75%)] 0.67%)] [Bind [0.82s (+- [0.82s (+- [-0.00s (- [0.81s] [0.83s] Time] 0.82%)] 0.60%)] 0.12%)] [Check [5.28s (+- [5.33s (+- [+0.05s (+ [5.27s] [5.39s] Time] 0.41%)] 0.51%)] 0.87%)] [Emit [6.10s (+- [6.17s (+- [+0.07s (+ [6.03s] [6.35s] Time] 0.55%)] 1.04%)] 1.18%)] [Total [14.13s (+- [14.26s (+- [+0.13s (+ [14.06s] [14.45s] Time] 0.36%)] 0.60%)] 0.91%)] [Compiler-Unions - node (v12.1.0, x64)] [Memory [191,388k (+- [191,346k (+- [-42k (- [190,687k [191,554k used] 0.04%)] 0.09%)] 0.02%)] ] ] [Parse [0.78s (+- [0.78s (+- [+0.00s (+ [0.77s] [0.80s] Time] 0.93%)] 0.85%)] 0.13%)] [Bind [0.53s (+- [0.53s (+- [+0.01s (+ [0.52s] [0.55s] Time] 1.27%)] 1.25%)] 1.14%)] [Check [7.36s (+- [7.45s (+- [+0.10s (+ [7.39s] [7.55s] Time] 0.84%)] 0.47%)] 1.29%)] [Emit [2.45s (+- [2.46s (+- [+0.00s (+ [2.41s] [2.51s] Time] 0.73%)] 0.85%)] 0.16%)] [Total [11.12s (+- [11.23s (+- [+0.11s (+ [11.16s] [11.29s] Time] 0.65%)] 0.29%)] 0.94%)] [Monaco - node (v12.1.0, x64)] [Memory [325,154k (+- [325,110k (+- [-44k (- [324,311k [325,313k used] 0.02%)] 0.06%)] 0.01%)] ] ] [Parse [1.46s (+- [1.48s (+- [+0.01s (+ [1.46s] [1.50s] Time] 0.65%)] 0.71%)] 0.82%)] [Bind [0.72s (+- [0.73s (+- [+0.00s (+ [0.72s] [0.74s] Time] 0.50%)] 0.61%)] 0.55%)] [Check [5.34s (+- [5.38s (+- [+0.03s (+ [5.31s] [5.42s] Time] 0.28%)] 0.48%)] 0.62%)] [Emit [3.20s (+- [3.20s (+- [+0.00s (+ [3.14s] [3.34s] Time] 0.39%)] 1.40%)] 0.09%)] [Total [10.73s (+- [10.79s (+- [+0.05s (+ [10.72s] [10.97s] Time] 0.15%)] 0.49%)] 0.49%)] [TFS - node (v12.1.0, x64)] [Memory [289,435k (+- [289,512k (+- [+77k (+ [289,449k [289,621k used] 0.02%)] 0.01%)] 0.03%)] ] ] [Parse [1.22s (+- [1.22s (+- [-0.01s (- [1.19s] [1.23s] Time] 0.96%)] 0.83%)] 0.49%)] [Bind [0.69s (+- [0.69s (+- [+0.00s (+ [0.68s] [0.72s] Time] 0.80%)] 1.09%)] 0.43%)] [Check [4.89s (+- [4.95s (+- [+0.06s (+ [4.88s] [4.99s] Time] 0.43%)] 0.54%)] 1.31%)] [Emit [3.35s (+- [3.39s (+- [+0.04s (+ [3.32s] [3.46s] Time] 0.86%)] 0.93%)] 1.22%)] [Total [10.15s (+- [10.25s (+- [+0.10s (+ [10.14s] [10.38s] Time] 0.43%)] 0.51%)] 0.99%)] [material-ui - node (v12.1.0, x64)] [Memory [451,082k (+- [451,118k (+- [+36k (+ [450,953k [451,256k used] 0.02%)] 0.02%)] 0.01%)] ] ] [Parse [1.78s (+- [1.78s (+- [+0.00s (+ [1.75s] [1.81s] Time] 0.53%)] 0.67%)] 0.17%)] [Bind [0.64s (+- [0.65s (+- [+0.01s (+ [0.63s] [0.67s] Time] 1.14%)] 1.39%)] 1.10%)] [Check [12.95s (+- [13.06s (+- [+0.11s (+ [12.92s] [13.28s] Time] 0.57%)] 0.55%)] 0.83%)] [Emit [0.00s (+- [0.00s (+- [0.00s ( [0.00s] [0.00s] Time] 0.00%)] 0.00%)] NaN%)] [Total [15.37s (+- [15.49s (+- [+0.12s (+ [15.32s] [15.73s] Time] 0.47%)] 0.52%)] 0.78%)] [Angular - node (v14.15.1, x64)] [Memory [330,505k (+- [330,510k (+- [+6k (+ [330,485k [330,541k used] 0.00%)] 0.00%)] 0.00%)] ] ] [Parse [1.94s (+- [1.95s (+- [+0.01s (+ [1.92s] [1.99s] Time] 0.56%)] 0.76%)] 0.62%)] [Bind [0.86s (+- [0.86s (+- [+0.00s (+ [0.85s] [0.87s] Time] 0.87%)] 0.67%)] 0.35%)] [Check [5.34s (+- [5.40s (+- [+0.05s (+ [5.35s] [5.44s] Time] 0.44%)] 0.37%)] 1.01%)] [Emit [6.17s (+- [6.22s (+- [+0.05s (+ [6.14s] [6.36s] Time] 0.69%)] 0.72%)] 0.78%)] [Total [14.31s (+- [14.43s (+- [+0.12s (+ [14.32s] [14.59s] Time] 0.39%)] 0.39%)] 0.82%)] [Compiler-Unions - node (v14.15.1, x64)] [Memory [192,887k (+- [192,859k (+- [-28k (- [190,053k [193,271k used] 0.37%)] 0.36%)] 0.01%)] ] ] [Parse [0.81s (+- [0.81s (+- [+0.00s (+ [0.80s] [0.83s] Time] 0.45%)] 0.71%)] 0.50%)] [Bind [0.55s (+- [0.56s (+- [+0.01s (+ [0.55s] [0.57s] Time] 0.66%)] 1.03%)] 1.08%)] [Check [7.53s (+- [7.59s (+- [+0.06s (+ [7.51s] [7.70s] Time] 0.56%)] 0.58%)] 0.76%)] [Emit [2.46s (+- [2.47s (+- [+0.01s (+ [2.41s] [2.52s] Time] 0.92%)] 0.95%)] 0.33%)] [Total [11.35s (+- [11.43s (+- [+0.08s (+ [11.29s] [11.57s] Time] 0.48%)] 0.48%)] 0.66%)] [Monaco - node (v14.15.1, x64)] [Memory [324,019k (+- [324,007k (+- [-11k (- [323,961k [324,051k used] 0.00%)] 0.01%)] 0.00%)] ] ] [Parse [1.50s (+- [1.51s (+- [+0.01s (+ [1.49s] [1.55s] Time] 0.35%)] 0.85%)] 0.47%)] [Bind [0.76s (+- [0.76s (+- [+0.00s (+ [0.75s] [0.79s] Time] 0.48%)] 1.11%)] 0.40%)] [Check [5.31s (+- [5.32s (+- [+0.01s (+ [5.26s] [5.37s] Time] 0.63%)] 0.46%)] 0.17%)] [Emit [3.21s (+- [3.24s (+- [+0.03s (+ [3.19s] [3.28s] Time] 0.89%)] 0.69%)] 0.97%)] [Total [10.79s (+- [10.83s (+- [+0.05s (+ [10.71s] [10.91s] Time] 0.51%)] 0.45%)] 0.44%)] [TFS - node (v14.15.1, x64)] [Memory [288,348k (+- [288,347k (+- [-1k (- [288,322k [288,362k used] 0.01%)] 0.00%)] 0.00%)] ] ] [Parse [1.24s (+- [1.23s (+- [-0.01s (- [1.22s] [1.24s] Time] 0.52%)] 0.50%)] 0.73%)] [Bind [0.73s (+- [0.73s (+- [+0.00s (+ [0.73s] [0.74s] Time] 0.71%)] 0.41%)] 0.14%)] [Check [4.91s (+- [4.94s (+- [+0.03s (+ [4.88s] [4.99s] Time] 0.62%)] 0.48%)] 0.61%)] [Emit [3.49s (+- [3.48s (+- [-0.01s (- [3.40s] [3.56s] Time] 0.57%)] 0.98%)] 0.43%)] [Total [10.37s (+- [10.37s (+- [+0.01s (+ [10.26s] [10.50s] Time] 0.40%)] 0.52%)] 0.08%)] [material-ui - node (v14.15.1, x64)] [Memory [449,122k (+- [449,271k (+- [+149k (+ [448,213k [449,436k used] 0.06%)] 0.06%)] 0.03%)] ] ] [Parse [1.81s (+- [1.82s (+- [+0.01s (+ [1.81s] [1.84s] Time] 0.48%)] 0.34%)] 0.50%)] [Bind [0.68s (+- [0.68s (+- [+0.00s (+ [0.67s] [0.69s] Time] 0.85%)] 0.59%)] 0.15%)] [Check [13.16s (+- [13.28s (+- [+0.11s (+ [13.10s] [13.44s] Time] 0.89%)] 0.63%)] 0.87%)] [Emit [0.00s (+- [0.00s (+- [0.00s ( [0.00s] [0.00s] Time] 0.00%)] 0.00%)] NaN%)] [Total [15.65s (+- [15.78s (+- [+0.13s (+ [15.59s] [15.94s] Time] 0.77%)] 0.51%)] 0.80%)] System [Machine Name] [ts-ci-ubuntu] [Platform] [linux 4.4.0-210-generic] [Architecture] [x64] [Available Memory] [16 GB] [Available Memory] [8 GB] [CPUs] [4 x Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz] Hosts * node (v10.16.3, x64) * node (v12.1.0, x64) * node (v14.15.1, x64) Scenarios * Angular - node (v10.16.3, x64) * Angular - node (v12.1.0, x64) * Angular - node (v14.15.1, x64) * Compiler-Unions - node (v10.16.3, x64) * Compiler-Unions - node (v12.1.0, x64) * Compiler-Unions - node (v14.15.1, x64) * Monaco - node (v10.16.3, x64) * Monaco - node (v12.1.0, x64) * Monaco - node (v14.15.1, x64) * TFS - node (v10.16.3, x64) * TFS - node (v12.1.0, x64) * TFS - node (v14.15.1, x64) * material-ui - node (v10.16.3, x64) * material-ui - node (v12.1.0, x64) * material-ui - node (v14.15.1, x64) [Benchmark] [Name] [Iterations] [Current] [46266] [10] [Baseline] [main] [10] Developer Information: Download Benchmark Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Oct 8, 2021 @ahejlsberg The results of the perf run you requested are in! Here they are: Comparison Report - main..46266 [Metric] [main] [46266] [Delta] [Best] [Worst] [Angular - node (v14.15.1, x64)] [Memory [330,505k (+- [330,506k (+- [+2k (+ [330,466k [330,542k used] 0.00%)] 0.00%)] 0.00%)] ] ] [Parse [1.94s (+- [1.99s (+- [+0.04s (+ [1.92s] [2.39s] Time] 0.56%)] 5.05%)] 2.32%)] [Bind [0.86s (+- [0.86s (+- [+0.00s (+ [0.84s] [0.87s] Time] 0.87%)] 0.75%)] 0.12%)] [Check [5.34s (+- [5.41s (+- [+0.07s (+ [5.37s] [5.45s] Time] 0.44%)] 0.31%)] 1.25%)] [Emit [6.17s (+- [6.20s (+- [+0.04s (+ [6.11s] [6.30s] Time] 0.69%)] 0.70%)] 0.58%)] [Total [14.31s (+- [14.46s (+- [+0.15s (+ [14.33s] [14.86s] Time] 0.39%)] 0.75%)] 1.04%)] [Compiler-Unions - node (v14.15.1, x64)] [Memory [192,887k (+- [193,207k (+- [+320k (+ [193,084k [193,294k used] 0.37%)] 0.03%)] 0.17%)] ] ] [Parse [0.81s (+- [0.81s (+- [+0.00s (+ [0.80s] [0.82s] Time] 0.45%)] 0.64%)] 0.37%)] [Bind [0.55s (+- [0.56s (+- [+0.00s (+ [0.55s] [0.56s] Time] 0.66%)] 0.67%)] 0.18%)] [Check [7.53s (+- [7.56s (+- [+0.03s (+ [7.44s] [7.73s] Time] 0.56%)] 0.73%)] 0.40%)] [Emit [2.46s (+- [2.46s (+- [+0.01s (+ [2.42s] [2.56s] Time] 0.92%)] 1.16%)] 0.33%)] [Total [11.35s (+- [11.39s (+- [+0.04s (+ [11.30s] [11.54s] Time] 0.48%)] 0.47%)] 0.37%)] [Monaco - node (v14.15.1, x64)] [Memory [324,019k (+- [323,991k (+- [-28k (- [323,965k [324,031k used] 0.00%)] 0.00%)] 0.01%)] ] ] [Parse [1.50s (+- [1.51s (+- [+0.00s (+ [1.49s] [1.58s] Time] 0.35%)] 1.25%)] 0.27%)] [Bind [0.76s (+- [0.76s (+- [-0.00s (- [0.75s] [0.77s] Time] 0.48%)] 0.65%)] 0.00%)] [Check [5.31s (+- [5.29s (+- [-0.03s (- [5.24s] [5.33s] Time] 0.63%)] 0.38%)] 0.51%)] [Emit [3.21s (+- [3.21s (+- [-0.00s (- [3.14s] [3.28s] Time] 0.89%)] 1.03%)] 0.12%)] [Total [10.79s (+- [10.76s (+- [-0.03s (- [10.66s] [10.85s] Time] 0.51%)] 0.39%)] 0.27%)] [TFS - node (v14.15.1, x64)] [Memory [288,348k (+- [288,341k (+- [-7k (- [288,291k [288,396k used] 0.01%)] 0.01%)] 0.00%)] ] ] [Parse [1.24s (+- [1.24s (+- [+0.00s (+ [1.22s] [1.28s] Time] 0.52%)] 1.07%)] 0.16%)] [Bind [0.73s (+- [0.73s (+- [+0.00s (+ [0.72s] [0.75s] Time] 0.71%)] 0.93%)] 0.41%)] [Check [4.91s (+- [4.92s (+- [+0.01s (+ [4.85s] [4.95s] Time] 0.62%)] 0.44%)] 0.18%)] [Emit [3.49s (+- [3.47s (+- [-0.02s (- [3.42s] [3.52s] Time] 0.57%)] 0.70%)] 0.60%)] [Total [10.37s (+- [10.36s (+- [-0.01s (- [10.26s] [10.43s] Time] 0.40%)] 0.44%)] 0.09%)] [material-ui - node (v14.15.1, x64)] [Memory [449,122k (+- [449,323k (+- [+200k (+ [448,607k [449,447k used] 0.06%)] 0.04%)] 0.04%)] ] ] [Parse [1.81s (+- [1.83s (+- [+0.02s (+ [1.79s] [1.98s] Time] 0.48%)] 2.09%)] 1.05%)] [Bind [0.68s (+- [0.68s (+- [+0.00s (+ [0.67s] [0.69s] Time] 0.85%)] 0.76%)] 0.15%)] [Check [13.16s (+- [13.24s (+- [+0.08s (+ [13.03s] [13.51s] Time] 0.89%)] 0.97%)] 0.60%)] [Emit [0.00s (+- [0.00s (+- [0.00s ( [0.00s] [0.00s] Time] 0.00%)] 0.00%)] NaN%)] [Total [15.65s (+- [15.75s (+- [+0.10s (+ [15.51s] [16.02s] Time] 0.77%)] 0.78%)] 0.63%)] System [Machine Name] [ts-ci-ubuntu] [Platform] [linux 4.4.0-210-generic] [Architecture] [x64] [Available Memory] [16 GB] [Available Memory] [6 GB] [CPUs] [4 x Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz] Hosts * node (v14.15.1, x64) Scenarios * Angular - node (v14.15.1, x64) * Compiler-Unions - node (v14.15.1, x64) * Monaco - node (v14.15.1, x64) * TFS - node (v14.15.1, x64) * material-ui - node (v14.15.1, x64) [Benchmark] [Name] [Iterations] [Current] [46266] [10] [Baseline] [main] [10] Developer Information: Download Benchmark Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Oct 8, 2021 @ahejlsberg The results of the perf run you requested are in! Here they are: Comparison Report - main..46266 [Metric] [main] [46266] [Delta] [Best] [Worst] [Angular - node (v10.16.3, x64)] [Memory [354,210k (+- [354,207k (+- [-3k (- [354,120k [354,340k used] 0.02%)] 0.01%)] 0.00%)] ] ] [Parse [1.95s (+- [1.94s (+- [-0.00s (- [1.91s] [1.96s] Time] 0.34%)] 0.55%)] 0.10%)] [Bind [0.84s (+- [0.85s (+- [+0.00s (+ [0.83s] [0.87s] Time] 1.00%)] 1.12%)] 0.59%)] [Check [5.45s (+- [5.50s (+- [+0.05s (+ [5.41s] [5.55s] Time] 0.31%)] 0.60%)] 0.95%)] [Emit [5.85s (+- [5.87s (+- [+0.02s (+ [5.81s] [5.97s] Time] 0.43%)] 0.61%)] 0.32%)] [Total [14.09s (+- [14.16s (+- [+0.07s (+ [14.06s] [14.27s] Time] 0.19%)] 0.40%)] 0.53%)] [Compiler-Unions - node (v10.16.3, x64)] [Memory [203,833k (+- [203,882k (+- [+49k (+ [203,599k [204,103k used] 0.04%)] 0.05%)] 0.02%)] ] ] [Parse [0.79s (+- [0.78s (+- [-0.01s (- [0.77s] [0.80s] Time] 0.71%)] 0.90%)] 0.89%)] [Bind [0.52s (+- [0.52s (+- [-0.00s (- [0.50s] [0.53s] Time] 1.54%)] 1.12%)] 0.19%)] [Check [7.87s (+- [7.91s (+- [+0.04s (+ [7.81s] [8.02s] Time] 0.57%)] 0.58%)] 0.52%)] [Emit [2.45s (+- [2.45s (+- [-0.01s (- [2.42s] [2.49s] Time] 1.43%)] 0.69%)] 0.29%)] [Total [11.64s (+- [11.66s (+- [+0.02s (+ [11.55s] [11.76s] Time] 0.53%)] 0.43%)] 0.20%)] [Monaco - node (v10.16.3, x64)] [Memory [342,076k (+- [342,096k (+- [+20k (+ [342,028k [342,242k used] 0.02%)] 0.01%)] 0.01%)] ] ] [Parse [1.49s (+- [1.49s (+- [-0.00s (- [1.47s] [1.51s] Time] 0.24%)] 0.51%)] 0.07%)] [Bind [0.75s (+- [0.74s (+- [-0.00s (- [0.73s] [0.76s] Time] 0.66%)] 0.80%)] 0.27%)] [Check [5.44s (+- [5.49s (+- [+0.05s (+ [5.41s] [5.57s] Time] 0.79%)] 0.55%)] 0.88%)] [Emit [3.17s (+- [3.18s (+- [+0.01s (+ [3.12s] [3.23s] Time] 0.59%)] 0.74%)] 0.19%)] [Total [10.84s (+- [10.89s (+- [+0.05s (+ [10.83s] [10.97s] Time] 0.30%)] 0.28%)] 0.48%)] [TFS - node (v10.16.3, x64)] [Memory [304,778k (+- [304,807k (+- [+29k (+ [304,597k [305,062k used] 0.02%)] 0.03%)] 0.01%)] ] ] [Parse [1.20s (+- [1.19s (+- [-0.00s (- [1.19s] [1.21s] Time] 0.54%)] 0.50%)] 0.25%)] [Bind [0.71s (+- [0.71s (+- [+0.00s (+ [0.70s] [0.72s] Time] 1.31%)] 0.56%)] 0.42%)] [Check [4.97s (+- [5.00s (+- [+0.03s (+ [4.92s] [5.05s] Time] 0.54%)] 0.56%)] 0.52%)] [Emit [3.32s (+- [3.33s (+- [+0.01s (+ [3.29s] [3.35s] Time] 1.15%)] 0.53%)] 0.30%)] [Total [10.19s (+- [10.23s (+- [+0.04s (+ [10.14s] [10.30s] Time] 0.47%)] 0.40%)] 0.35%)] [material-ui - node (v10.16.3, x64)] [Memory [472,372k (+- [472,441k (+- [+69k (+ [472,296k [472,599k used] 0.02%)] 0.01%)] 0.01%)] ] ] [Parse [1.77s (+- [1.77s (+- [+0.00s (+ [1.75s] [1.79s] Time] 0.55%)] 0.46%)] 0.06%)] [Bind [0.65s (+- [0.66s (+- [+0.00s (+ [0.65s] [0.66s] Time] 0.56%)] 0.57%)] 0.15%)] [Check [14.41s (+- [14.47s (+- [+0.05s (+ [14.33s] [14.64s] Time] 0.32%)] 0.59%)] 0.36%)] [Emit [0.00s (+- [0.00s (+- [0.00s ( [0.00s] [0.00s] Time] 0.00%)] 0.00%)] NaN%)] [Total [16.84s (+- [16.89s (+- [+0.05s (+ [16.74s] [17.08s] Time] 0.28%)] 0.54%)] 0.32%)] [Angular - node (v12.1.0, x64)] [Memory [332,068k (+- [332,019k (+- [-49k (- [331,829k [332,416k used] 0.02%)] 0.03%)] 0.01%)] ] ] [Parse [1.94s (+- [1.95s (+- [+0.02s (+ [1.93s] [1.98s] Time] 0.80%)] 0.68%)] 0.77%)] [Bind [0.82s (+- [0.81s (+- [-0.00s (- [0.80s] [0.83s] Time] 0.82%)] 0.73%)] 0.37%)] [Check [5.28s (+- [5.31s (+- [+0.04s (+ [5.23s] [5.39s] Time] 0.41%)] 0.60%)] 0.68%)] [Emit [6.10s (+- [6.13s (+- [+0.03s (+ [6.06s] [6.18s] Time] 0.55%)] 0.52%)] 0.46%)] [Total [14.13s (+- [14.21s (+- [+0.08s (+ [14.09s] [14.34s] Time] 0.36%)] 0.42%)] 0.55%)] [Compiler-Unions - node (v12.1.0, x64)] [Memory [191,388k (+- [191,344k (+- [-44k (- [190,429k [191,648k used] 0.04%)] 0.13%)] 0.02%)] ] ] [Parse [0.78s (+- [0.78s (+- [-0.00s (- [0.76s] [0.79s] Time] 0.93%)] 0.85%)] 0.26%)] [Bind [0.53s (+- [0.53s (+- [+0.00s (+ [0.52s] [0.54s] Time] 1.27%)] 0.89%)] 0.57%)] [Check [7.36s (+- [7.42s (+- [+0.07s (+ [7.33s] [7.50s] Time] 0.84%)] 0.54%)] 0.90%)] [Emit [2.45s (+- [2.46s (+- [+0.00s (+ [2.41s] [2.51s] Time] 0.73%)] 0.93%)] 0.16%)] [Total [11.12s (+- [11.19s (+- [+0.07s (+ [11.09s] [11.31s] Time] 0.65%)] 0.52%)] 0.66%)] [Monaco - node (v12.1.0, x64)] [Memory [325,154k (+- [325,219k (+- [+66k (+ [325,077k [325,354k used] 0.02%)] 0.02%)] 0.02%)] ] ] [Parse [1.46s (+- [1.46s (+- [-0.00s (- [1.44s] [1.49s] Time] 0.65%)] 0.88%)] 0.07%)] [Bind [0.72s (+- [0.73s (+- [+0.00s (+ [0.72s] [0.74s] Time] 0.50%)] 0.76%)] 0.55%)] [Check [5.34s (+- [5.36s (+- [+0.02s (+ [5.30s] [5.45s] Time] 0.28%)] 0.60%)] 0.36%)] [Emit [3.20s (+- [3.20s (+- [0.00s ( [3.14s] [3.30s] Time] 0.39%)] 1.04%)] 0.00%)] [Total [10.73s (+- [10.75s (+- [+0.02s (+ [10.66s] [10.96s] Time] 0.15%)] 0.62%)] 0.21%)] [TFS - node (v12.1.0, x64)] [Memory [289,435k (+- [289,464k (+- [+29k (+ [289,394k [289,555k used] 0.02%)] 0.01%)] 0.01%)] ] ] [Parse [1.22s (+- [1.22s (+- [-0.00s (- [1.20s] [1.25s] Time] 0.96%)] 0.81%)] 0.25%)] [Bind [0.69s (+- [0.69s (+- [+0.00s (+ [0.68s] [0.70s] Time] 0.80%)] 0.96%)] 0.14%)] [Check [4.89s (+- [4.94s (+- [+0.05s (+ [4.86s] [4.97s] Time] 0.43%)] 0.47%)] 1.00%)] [Emit [3.35s (+- [3.39s (+- [+0.04s (+ [3.34s] [3.44s] Time] 0.86%)] 0.65%)] 1.25%)] [Total [10.15s (+- [10.24s (+- [+0.09s (+ [10.10s] [10.28s] Time] 0.43%)] 0.37%)] 0.90%)] [material-ui - node (v12.1.0, x64)] [Memory [451,082k (+- [450,985k (+- [-97k (- [449,729k [451,179k used] 0.02%)] 0.07%)] 0.02%)] ] ] [Parse [1.78s (+- [1.78s (+- [+0.01s (+ [1.75s] [1.80s] Time] 0.53%)] 0.69%)] 0.28%)] [Bind [0.64s (+- [0.64s (+- [+0.00s (+ [0.63s] [0.65s] Time] 1.14%)] 0.63%)] 0.16%)] [Check [12.95s (+- [13.00s (+- [+0.05s (+ [12.85s] [13.19s] Time] 0.57%)] 0.67%)] 0.41%)] [Emit [0.00s (+- [0.00s (+- [0.00s ( [0.00s] [0.00s] Time] 0.00%)] 0.00%)] NaN%)] [Total [15.37s (+- [15.43s (+- [+0.06s (+ [15.26s] [15.63s] Time] 0.47%)] 0.59%)] 0.39%)] [Angular - node (v14.15.1, x64)] [Memory [330,505k (+- [330,508k (+- [+4k (+ [330,414k [330,550k used] 0.00%)] 0.01%)] 0.00%)] ] ] [Parse [1.94s (+- [1.94s (+- [+0.00s (+ [1.92s] [1.98s] Time] 0.56%)] 0.62%)] 0.05%)] [Bind [0.86s (+- [0.86s (+- [+0.01s (+ [0.86s] [0.88s] Time] 0.87%)] 0.58%)] 0.93%)] [Check [5.34s (+- [5.38s (+- [+0.04s (+ [5.34s] [5.42s] Time] 0.44%)] 0.40%)] 0.79%)] [Emit [6.17s (+- [6.23s (+- [+0.06s (+ [6.12s] [6.35s] Time] 0.69%)] 0.76%)] 1.01%)] [Total [14.31s (+- [14.42s (+- [+0.11s (+ [14.33s] [14.57s] Time] 0.39%)] 0.40%)] 0.79%)] [Compiler-Unions - node (v14.15.1, x64)] [Memory [192,887k (+- [193,175k (+- [+288k (+ [193,130k [193,233k used] 0.37%)] 0.01%)] 0.15%)] ] ] [Parse [0.81s (+- [0.82s (+- [+0.01s (+ [0.80s] [0.84s] Time] 0.45%)] 1.10%)] 1.12%)] [Bind [0.55s (+- [0.56s (+- [+0.00s (+ [0.54s] [0.56s] Time] 0.66%)] 0.90%)] 0.18%)] [Check [7.53s (+- [7.56s (+- [+0.03s (+ [7.46s] [7.66s] Time] 0.56%)] 0.66%)] 0.36%)] [Emit [2.46s (+- [2.45s (+- [-0.00s (- [2.40s] [2.50s] Time] 0.92%)] 0.85%)] 0.12%)] [Total [11.35s (+- [11.38s (+- [+0.03s (+ [11.22s] [11.49s] Time] 0.48%)] 0.55%)] 0.28%)] [Monaco - node (v14.15.1, x64)] [Memory [324,019k (+- [324,005k (+- [-14k (- [323,960k [324,086k used] 0.00%)] 0.01%)] 0.00%)] ] ] [Parse [1.50s (+- [1.51s (+- [+0.01s (+ [1.48s] [1.54s] Time] 0.35%)] 0.88%)] 0.87%)] [Bind [0.76s (+- [0.76s (+- [+0.00s (+ [0.75s] [0.77s] Time] 0.48%)] 0.68%)] 0.40%)] [Check [5.31s (+- [5.31s (+- [+0.00s (+ [5.25s] [5.36s] Time] 0.63%)] 0.47%)] 0.02%)] [Emit [3.21s (+- [3.25s (+- [+0.04s (+ [3.16s] [3.29s] Time] 0.89%)] 0.81%)] 1.15%)] [Total [10.79s (+- [10.84s (+- [+0.05s (+ [10.76s] [10.91s] Time] 0.51%)] 0.37%)] 0.50%)] [TFS - node (v14.15.1, x64)] [Memory [288,348k (+- [288,336k (+- [-12k (- [288,303k [288,374k used] 0.01%)] 0.01%)] 0.00%)] ] ] [Parse [1.24s (+- [1.24s (+- [-0.00s (- [1.22s] [1.28s] Time] 0.52%)] 1.05%)] 0.16%)] [Bind [0.73s (+- [0.73s (+- [+0.00s (+ [0.72s] [0.75s] Time] 0.71%)] 0.88%)] 0.14%)] [Check [4.91s (+- [4.93s (+- [+0.03s (+ [4.90s] [4.98s] Time] 0.62%)] 0.35%)] 0.55%)] [Emit [3.49s (+- [3.51s (+- [+0.02s (+ [3.44s] [3.57s] Time] 0.57%)] 0.85%)] 0.66%)] [Total [10.37s (+- [10.41s (+- [+0.04s (+ [10.32s] [10.50s] Time] 0.40%)] 0.32%)] 0.43%)] [material-ui - node (v14.15.1, x64)] [Memory [449,122k (+- [449,420k (+- [+298k (+ [449,351k [449,485k used] 0.06%)] 0.01%)] 0.07%)] ] ] [Parse [1.81s (+- [1.82s (+- [+0.01s (+ [1.80s] [1.84s] Time] 0.48%)] 0.46%)] 0.39%)] [Bind [0.68s (+- [0.68s (+- [0.00s ( [0.67s] [0.69s] Time] 0.85%)] 0.69%)] 0.00%)] [Check [13.16s (+- [13.22s (+- [+0.06s (+ [13.02s] [13.43s] Time] 0.89%)] 0.70%)] 0.43%)] [Emit [0.00s (+- [0.00s (+- [0.00s ( [0.00s] [0.00s] Time] 0.00%)] 0.00%)] NaN%)] [Total [15.65s (+- [15.72s (+- [+0.07s (+ [15.55s] [15.92s] Time] 0.77%)] 0.55%)] 0.43%)] System [Machine Name] [ts-ci-ubuntu] [Platform] [linux 4.4.0-210-generic] [Architecture] [x64] [Available Memory] [16 GB] [Available Memory] [6 GB] [CPUs] [4 x Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz] Hosts * node (v10.16.3, x64) * node (v12.1.0, x64) * node (v14.15.1, x64) Scenarios * Angular - node (v10.16.3, x64) * Angular - node (v12.1.0, x64) * Angular - node (v14.15.1, x64) * Compiler-Unions - node (v10.16.3, x64) * Compiler-Unions - node (v12.1.0, x64) * Compiler-Unions - node (v14.15.1, x64) * Monaco - node (v10.16.3, x64) * Monaco - node (v12.1.0, x64) * Monaco - node (v14.15.1, x64) * TFS - node (v10.16.3, x64) * TFS - node (v12.1.0, x64) * TFS - node (v14.15.1, x64) * material-ui - node (v10.16.3, x64) * material-ui - node (v12.1.0, x64) * material-ui - node (v14.15.1, x64) [Benchmark] [Name] [Iterations] [Current] [46266] [10] [Baseline] [main] [10] Developer Information: Download Benchmark Sorry, something went wrong. @ahejlsberg Copy link Member Author @ahejlsberg ahejlsberg commented Oct 8, 2021 Tests look good (best I can tell, lots of existing noise), performance impact is less than 0.5% and possibly just noise. Sorry, something went wrong. @acid-chicken acid-chicken mentioned this pull request Oct 12, 2021 refactor: publishHogeStreamtoStreamnoEventEmitterniXing Ding Yi suru misskey-dev/misskey#7769 Merged @uhyo uhyo mentioned this pull request Oct 12, 2021 Idea for allowing destructuring non-common property of discriminated unions #46318 Open 5 tasks @jcalz jcalz mentioned this pull request Oct 12, 2021 Wishlist: support for correlated union types #30581 Open @sandersn sandersn added this to Not started in PR Backlog Oct 19, 2021 @sandersn sandersn moved this from Not started to Waiting on reviewers in PR Backlog Oct 19, 2021 @ShuiRuTian ShuiRuTian mentioned this pull request Oct 20, 2021 Type guard by deep property #38839 Open @ahejlsberg Copy link Member Author @ahejlsberg ahejlsberg commented Nov 2, 2021 @typescript-bot perf test faster Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Nov 2, 2021 * edited Heya @ahejlsberg, I've started to run the abridged perf test suite on this PR at cf546e8. You can monitor the build here. Update: The results are in! Sorry, something went wrong. @typescript-bot Copy link Collaborator @typescript-bot typescript-bot commented Nov 2, 2021 @ahejlsberg The results of the perf run you requested are in! Here they are: Comparison Report - main..46266 [Metric] [main] [46266] [Delta] [Best] [Worst] [Angular - node (v14.15.1, x64)] [Memory [330,570k (+- [330,872k (+- [+302k (+ [330,833k [330,897k used] 0.01%)] 0.00%)] 0.09%)] ] ] [Parse [1.95s (+- [1.94s (+- [-0.00s (- [1.93s] [1.96s] Time] 0.67%)] 0.43%)] 0.10%)] [Bind [0.86s (+- [0.86s (+- [-0.00s (- [0.85s] [0.86s] Time] 1.05%)] 0.43%)] 0.58%)] [Check [5.33s (+- [5.38s (+- [+0.05s (+ [5.34s] [5.43s] Time] 0.46%)] 0.43%)] 0.96%)] [Emit [6.15s (+- [6.16s (+- [+0.01s (+ [6.10s] [6.25s] Time] 0.51%)] 0.62%)] 0.16%)] [Total [14.29s (+- [14.34s (+- [+0.05s (+ [14.25s] [14.46s] Time] 0.40%)] 0.38%)] 0.38%)] [Compiler-Unions - node (v14.15.1, x64)] [Memory [192,661k (+- [192,118k (+- [-543k (- [190,139k [193,476k used] 0.49%)] 0.61%)] 0.28%)] ] ] [Parse [0.81s (+- [0.80s (+- [-0.00s (- [0.80s] [0.81s] Time] 0.64%)] 0.45%)] 0.62%)] [Bind [0.55s (+- [0.55s (+- [-0.00s (- [0.55s] [0.56s] Time] 0.62%)] 0.54%)] 0.18%)] [Check [7.36s (+- [7.38s (+- [+0.01s (+ [7.32s] [7.45s] Time] 0.68%)] 0.36%)] 0.16%)] [Emit [2.47s (+- [2.48s (+- [+0.02s (+ [2.44s] [2.53s] Time] 0.72%)] 0.86%)] 0.61%)] [Total [11.19s (+- [11.22s (+- [+0.03s (+ [11.14s] [11.30s] Time] 0.55%)] 0.28%)] 0.22%)] [Monaco - node (v14.15.1, x64)] [Memory [324,138k (+- [324,313k (+- [+175k (+ [324,283k [324,344k used] 0.01%)] 0.00%)] 0.05%)] ] ] [Parse [1.51s (+- [1.51s (+- [-0.00s (- [1.50s] [1.53s] Time] 0.79%)] 0.54%)] 0.20%)] [Bind [0.76s (+- [0.76s (+- [-0.00s (- [0.75s] [0.77s] Time] 0.73%)] 0.65%)] 0.26%)] [Check [5.28s (+- [5.27s (+- [-0.00s (- [5.23s] [5.33s] Time] 0.36%)] 0.40%)] 0.06%)] [Emit [3.25s (+- [3.24s (+- [-0.02s (- [3.22s] [3.26s] Time] 0.65%)] 0.33%)] 0.46%)] [Total [10.80s (+- [10.78s (+- [-0.02s (- [10.69s] [10.88s] Time] 0.25%)] 0.36%)] 0.19%)] [TFS - node (v14.15.1, x64)] [Memory [288,489k (+- [289,153k (+- [+664k (+ [289,121k [289,205k used] 0.01%)] 0.01%)] 0.23%)] ] ] [Parse [1.24s (+- [1.23s (+- [-0.00s (- [1.22s] [1.25s] Time] 0.82%)] 0.54%)] 0.16%)] [Bind [0.73s (+- [0.73s (+- [+0.00s (+ [0.72s] [0.74s] Time] 0.64%)] 0.84%)] 0.14%)] [Check [4.89s (+- [4.90s (+- [+0.01s (+ [4.86s] [4.93s] Time] 0.51%)] 0.38%)] 0.20%)] [Emit [3.45s (+- [3.50s (+- [+0.05s (+ [3.44s] [3.56s] Time] 1.85%)] 0.85%)] 1.45%)] [Total [10.30s (+- [10.36s (+- [+0.06s (+ [10.27s] [10.41s] Time] 0.61%)] 0.31%)] 0.56%)] [material-ui - node (v14.15.1, x64)] [Memory [448,017k (+- [448,276k (+- [+258k (+ [448,233k [448,329k used] 0.01%)] 0.00%)] 0.06%)] ] ] [Parse [1.84s (+- [1.82s (+- [-0.01s (- [1.80s] [1.85s] Time] 0.76%)] 0.52%)] 0.82%)] [Bind [0.68s (+- [0.68s (+- [-0.00s (- [0.67s] [0.68s] Time] 0.77%)] 0.54%)] 0.44%)] [Check [12.74s (+- [12.79s (+- [+0.05s (+ [12.58s] [13.32s] Time] 0.51%)] 1.14%)] 0.36%)] [Emit [0.00s (+- [0.00s (+- [0.00s ( [0.00s] [0.00s] Time] 0.00%)] 0.00%)] NaN%)] [Total [15.26s (+- [15.28s (+- [+0.03s (+ [15.09s] [15.82s] Time] 0.44%)] 0.95%)] 0.18%)] [xstate - node (v14.15.1, x64)] [Memory [532,727k (+- [532,773k (+- [+46k (+ [532,643k [532,854k used] 0.01%)] 0.01%)] 0.01%)] ] ] [Parse [2.56s (+- [2.55s (+- [-0.01s (- [2.52s] [2.59s] Time] 0.41%)] 0.56%)] 0.47%)] [Bind [1.15s (+- [1.16s (+- [+0.00s (+ [1.13s] [1.18s] Time] 0.92%)] 1.04%)] 0.26%)] [Check [1.48s (+- [1.48s (+- [+0.01s (+ [1.47s] [1.51s] Time] 0.68%)] 0.51%)] 0.61%)] [Emit [0.07s (+- [0.07s (+- [0.00s ( [0.07s] [0.07s] Time] 0.00%)] 0.00%)] 0.00%)] [Total [5.27s (+- [5.26s (+- [-0.00s (- [5.22s] [5.31s] Time] 0.36%)] 0.41%)] 0.08%)] System [Machine Name] [ts-ci-ubuntu] [Platform] [linux 4.4.0-210-generic] [Architecture] [x64] [Available Memory] [16 GB] [Available Memory] [9 GB] [CPUs] [4 x Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz] Hosts * node (v14.15.1, x64) Scenarios * Angular - node (v14.15.1, x64) * Compiler-Unions - node (v14.15.1, x64) * Monaco - node (v14.15.1, x64) * TFS - node (v14.15.1, x64) * material-ui - node (v14.15.1, x64) * xstate - node (v14.15.1, x64) [Benchmark] [Name] [Iterations] [Current] [46266] [10] [Baseline] [main] [10] Developer Information: Download Benchmark Sorry, something went wrong. Hide details View details @ahejlsberg ahejlsberg merged commit 831b770 into main Nov 2, 2021 11 checks passed PR Backlog automation moved this from Waiting on reviewers to Done Nov 2, 2021 @ahejlsberg ahejlsberg deleted the fix46143 branch Nov 2, 2021 @Andarist Andarist mentioned this pull request Nov 3, 2021 Add a test for a destructured union with tuple members #46656 Open @Andarist Andarist mentioned this pull request Nov 3, 2021 Control flow analysis for dependent function parameters "destructured" from a tuple type #46658 Open 5 tasks @dwelle dwelle mentioned this pull request Nov 3, 2021 Warning for 'exhaustive-deps' keeps asking for the full 'props' object instead of allowing single 'props' properties as dependencies facebook/react#16265 Open Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.