Skip to content
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.

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

Support for auto-accessor fields from the Stage 3 Decorators proposal #49705

Merged
merged 3 commits into from Sep 12, 2022

Conversation

rbuckton
Copy link
Member

@rbuckton rbuckton commented Jun 28, 2022

This PR adds support for accessor field declarations described in the Stage 3 Decorators proposal.

An Auto-Accessor is a field declaration that will be transformed by the runtime into a pair of get and set accessors that access a private backing field:

class C {
  accessor x = 1;
}
// is transformed into
class C {
  // actual field is named `#x accessor storage` so that it isn't user-reachable
  #x_accessor_storage = 1;
  get x() { return this.#x_accessor_storage; }
  set x(value) { this.#x_accessor_storage = value; }
}

When you use --target ESNext, accessor fields will be left as is to be transformed by the runtime. Any earlier --target will result in TypeScript downleveling the accessor field to a compatible runtime implementation.

Auto-Accessor fields have several capabilities:

  • Allows subclasses to override the get/set without a superclass field potentially shadowing the property during initialization.
  • A decorator applied to an auto-accessor receives the get and set accessor pair and can replace them without changing the runtime shape of the class.
  • Native ECMAScript decorators will be able to replace the initializer.

In addition, there are several rules around the use of the accessor keyword:

  • accessor fields require a minimum of --target ES2015, similar to our support for private identifiers (i.e., #x) and for the same reasons (a dependency on WeakMap/WeakSet).
  • accessor may only appear in front of field declarations on a class. It is not supported in interface or object type literals.
  • accessor cannot be used with readonly or declare on the same field declaration.
  • accessor can be used in an ambient class declaration.
  • accessor field declarations can be decorated with TypeScript's legacy decorators (i.e., under --experimentalDecorators). They will behave as if you decorated a get or set declaration (i.e., you will receive a PropertyDescriptor at runtime with both get and set functions).
  • A field explicitly marked with accessor will also be marked with accessor in the output declaration file.
  • An accessor field does not make a class nominal, despite the synthetic private backing field.
  • The TypeScript Symbol for an accessor field is not a SymbolFlags.Property, but rather a SymbolFlags.GetAccessor | SymbolFlags.SetAccessor.

NOTE: This is not an implementation of the full Stage 3 Decorators proposal as that effort is still in progress.

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Jun 28, 2022
@rbuckton
Copy link
Member Author

@typescript-bot perf test
@typescript-bot run dt
@typescript-bot test this
@typescript-bot user test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 28, 2022

Heya @rbuckton, I've started to run the diff-based user code test suite on this PR at b3487dc. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 28, 2022

Heya @rbuckton, I've started to run the parallelized Definitely Typed test suite on this PR at b3487dc. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 28, 2022

Heya @rbuckton, I've started to run the extended test suite on this PR at b3487dc. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 28, 2022

Heya @rbuckton, I've started to run the perf test suite on this PR at b3487dc. You can monitor the build here.

@rbuckton
Copy link
Member Author

@typescript-bot perf test

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 28, 2022

Heya @rbuckton, I've started to run the perf test suite on this PR at a37f09a. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

@rbuckton
The results of the perf run you requested are in!

Here they are:

Comparison Report - main..49705

Metric main 49705 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 359,575k (± 0.02%) 359,665k (± 0.02%) +90k (+ 0.02%) 359,557k 359,933k
Parse Time 2.08s (± 0.45%) 2.09s (± 0.49%) +0.01s (+ 0.43%) 2.07s 2.11s
Bind Time 0.90s (± 0.66%) 0.90s (± 0.74%) +0.00s (+ 0.45%) 0.89s 0.91s
Check Time 5.97s (± 0.45%) 5.97s (± 0.46%) -0.00s (- 0.07%) 5.91s 6.04s
Emit Time 6.09s (± 0.54%) 6.18s (± 0.54%) +0.09s (+ 1.50%) 6.12s 6.29s
Total Time 15.03s (± 0.28%) 15.13s (± 0.36%) +0.10s (+ 0.67%) 15.04s 15.31s
Compiler-Unions - node (v10.16.3, x64)
Memory used 206,445k (± 0.04%) 206,542k (± 0.02%) +98k (+ 0.05%) 206,449k 206,633k
Parse Time 0.84s (± 1.07%) 0.83s (± 0.85%) -0.01s (- 0.84%) 0.81s 0.84s
Bind Time 0.53s (± 0.71%) 0.53s (± 1.71%) +0.00s (+ 0.76%) 0.51s 0.55s
Check Time 8.06s (± 0.78%) 8.04s (± 0.46%) -0.01s (- 0.15%) 7.98s 8.13s
Emit Time 2.50s (± 0.62%) 2.52s (± 0.73%) +0.02s (+ 0.88%) 2.48s 2.56s
Total Time 11.91s (± 0.62%) 11.93s (± 0.41%) +0.01s (+ 0.10%) 11.86s 12.06s
Monaco - node (v10.16.3, x64)
Memory used 343,924k (± 0.02%) 344,020k (± 0.02%) +96k (+ 0.03%) 343,897k 344,128k
Parse Time 1.59s (± 0.60%) 1.59s (± 0.14%) -0.01s (- 0.38%) 1.58s 1.59s
Bind Time 0.77s (± 0.67%) 0.77s (± 1.36%) +0.00s (+ 0.26%) 0.76s 0.80s
Check Time 5.95s (± 0.41%) 5.95s (± 0.41%) +0.01s (+ 0.08%) 5.89s 5.99s
Emit Time 3.25s (± 0.81%) 3.30s (± 0.43%) +0.05s (+ 1.54%) 3.27s 3.33s
Total Time 11.56s (± 0.26%) 11.61s (± 0.30%) +0.05s (+ 0.41%) 11.54s 11.69s
TFS - node (v10.16.3, x64)
Memory used 305,148k (± 0.03%) 305,218k (± 0.02%) +71k (+ 0.02%) 305,022k 305,370k
Parse Time 1.28s (± 0.46%) 1.28s (± 0.37%) -0.00s (- 0.31%) 1.27s 1.29s
Bind Time 0.72s (± 0.80%) 0.73s (± 0.80%) +0.01s (+ 0.97%) 0.72s 0.74s
Check Time 5.39s (± 0.34%) 5.40s (± 0.55%) +0.01s (+ 0.26%) 5.33s 5.48s
Emit Time 3.43s (± 0.80%) 3.51s (± 1.31%) +0.08s (+ 2.39%) 3.43s 3.63s
Total Time 10.82s (± 0.36%) 10.91s (± 0.66%) +0.09s (+ 0.85%) 10.77s 11.08s
material-ui - node (v10.16.3, x64)
Memory used 469,038k (± 0.01%) 469,122k (± 0.01%) +85k (+ 0.02%) 468,996k 469,237k
Parse Time 1.82s (± 0.64%) 1.83s (± 0.65%) +0.01s (+ 0.49%) 1.82s 1.87s
Bind Time 0.70s (± 1.72%) 0.69s (± 1.70%) -0.01s (- 1.15%) 0.67s 0.71s
Check Time 14.52s (± 0.93%) 14.50s (± 0.65%) -0.02s (- 0.17%) 14.36s 14.74s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 17.04s (± 0.82%) 17.02s (± 0.55%) -0.02s (- 0.15%) 16.88s 17.24s
xstate - node (v10.16.3, x64)
Memory used 580,972k (± 1.25%) 584,565k (± 1.68%) +3,594k (+ 0.62%) 577,878k 610,985k
Parse Time 2.59s (± 0.28%) 2.59s (± 0.38%) -0.00s (- 0.00%) 2.57s 2.61s
Bind Time 1.02s (± 0.81%) 1.03s (± 0.56%) +0.00s (+ 0.20%) 1.01s 1.04s
Check Time 1.54s (± 0.60%) 1.54s (± 0.60%) -0.00s (- 0.26%) 1.52s 1.56s
Emit Time 0.07s (± 3.14%) 0.07s (± 4.13%) +0.00s (+ 1.41%) 0.07s 0.08s
Total Time 5.22s (± 0.27%) 5.22s (± 0.30%) +0.00s (+ 0.08%) 5.18s 5.25s
Angular - node (v12.1.0, x64)
Memory used 337,081k (± 0.08%) 337,208k (± 0.02%) +127k (+ 0.04%) 337,082k 337,408k
Parse Time 2.10s (± 0.51%) 2.09s (± 0.55%) -0.00s (- 0.05%) 2.08s 2.13s
Bind Time 0.86s (± 0.77%) 0.87s (± 0.69%) +0.00s (+ 0.35%) 0.85s 0.88s
Check Time 5.78s (± 0.60%) 5.79s (± 0.47%) +0.01s (+ 0.24%) 5.72s 5.84s
Emit Time 6.37s (± 0.80%) 6.44s (± 0.54%) +0.07s (+ 1.12%) 6.37s 6.50s
Total Time 15.10s (± 0.53%) 15.18s (± 0.28%) +0.08s (+ 0.54%) 15.07s 15.28s
Compiler-Unions - node (v12.1.0, x64)
Memory used 194,078k (± 0.07%) 194,166k (± 0.03%) +88k (+ 0.05%) 194,024k 194,323k
Parse Time 0.82s (± 0.57%) 0.82s (± 1.01%) +0.00s (+ 0.61%) 0.81s 0.85s
Bind Time 0.55s (± 0.90%) 0.55s (± 1.09%) 0.00s ( 0.00%) 0.54s 0.56s
Check Time 7.57s (± 0.59%) 7.56s (± 0.61%) -0.01s (- 0.17%) 7.48s 7.72s
Emit Time 2.50s (± 1.00%) 2.56s (± 0.65%) +0.06s (+ 2.36%) 2.53s 2.61s
Total Time 11.43s (± 0.40%) 11.48s (± 0.39%) +0.05s (+ 0.45%) 11.42s 11.63s
Monaco - node (v12.1.0, x64)
Memory used 326,878k (± 0.01%) 327,004k (± 0.02%) +127k (+ 0.04%) 326,895k 327,135k
Parse Time 1.57s (± 0.90%) 1.57s (± 0.65%) -0.01s (- 0.57%) 1.55s 1.59s
Bind Time 0.76s (± 0.63%) 0.76s (± 0.87%) +0.00s (+ 0.40%) 0.75s 0.78s
Check Time 5.77s (± 0.40%) 5.77s (± 0.33%) -0.00s (- 0.02%) 5.74s 5.82s
Emit Time 3.31s (± 0.99%) 3.32s (± 0.33%) +0.01s (+ 0.36%) 3.30s 3.35s
Total Time 11.42s (± 0.40%) 11.42s (± 0.22%) +0.00s (+ 0.03%) 11.38s 11.49s
TFS - node (v12.1.0, x64)
Memory used 289,609k (± 0.05%) 289,827k (± 0.02%) +218k (+ 0.08%) 289,687k 289,958k
Parse Time 1.30s (± 0.51%) 1.29s (± 0.58%) -0.01s (- 1.00%) 1.27s 1.30s
Bind Time 0.72s (± 0.66%) 0.73s (± 0.61%) +0.01s (+ 0.69%) 0.72s 0.74s
Check Time 5.32s (± 0.31%) 5.32s (± 0.35%) -0.01s (- 0.11%) 5.28s 5.38s
Emit Time 3.53s (± 0.91%) 3.54s (± 1.06%) +0.00s (+ 0.06%) 3.43s 3.63s
Total Time 10.88s (± 0.30%) 10.87s (± 0.43%) -0.01s (- 0.10%) 10.78s 11.03s
material-ui - node (v12.1.0, x64)
Memory used 448,120k (± 0.01%) 448,113k (± 0.07%) -7k (- 0.00%) 446,935k 448,419k
Parse Time 1.83s (± 0.45%) 1.82s (± 0.56%) -0.00s (- 0.27%) 1.80s 1.84s
Bind Time 0.68s (± 0.99%) 0.68s (± 0.59%) +0.00s (+ 0.30%) 0.67s 0.69s
Check Time 12.94s (± 0.61%) 12.98s (± 0.80%) +0.03s (+ 0.27%) 12.79s 13.20s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.45s (± 0.52%) 15.48s (± 0.67%) +0.04s (+ 0.23%) 15.29s 15.71s
xstate - node (v12.1.0, x64)
Memory used 546,514k (± 1.31%) 546,666k (± 1.31%) +152k (+ 0.03%) 543,230k 575,660k
Parse Time 2.54s (± 0.42%) 2.54s (± 0.35%) -0.00s (- 0.16%) 2.52s 2.56s
Bind Time 1.03s (± 1.49%) 1.05s (± 1.32%) +0.02s (+ 1.75%) 1.02s 1.07s
Check Time 1.49s (± 0.62%) 1.48s (± 0.40%) -0.00s (- 0.27%) 1.47s 1.50s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 5.13s (± 0.35%) 5.14s (± 0.39%) +0.01s (+ 0.21%) 5.11s 5.19s
Angular - node (v14.15.1, x64)
Memory used 335,268k (± 0.01%) 335,379k (± 0.01%) +111k (+ 0.03%) 335,325k 335,439k
Parse Time 2.07s (± 0.84%) 2.07s (± 0.51%) +0.00s (+ 0.19%) 2.05s 2.09s
Bind Time 0.90s (± 0.44%) 0.90s (± 0.54%) +0.01s (+ 0.56%) 0.89s 0.91s
Check Time 5.73s (± 0.44%) 5.75s (± 0.49%) +0.01s (+ 0.24%) 5.70s 5.81s
Emit Time 6.39s (± 0.65%) 6.50s (± 0.54%) +0.11s (+ 1.80%) 6.43s 6.59s
Total Time 15.08s (± 0.47%) 15.22s (± 0.33%) +0.14s (+ 0.94%) 15.11s 15.34s
Compiler-Unions - node (v14.15.1, x64)
Memory used 192,576k (± 0.11%) 192,775k (± 0.02%) +199k (+ 0.10%) 192,671k 192,828k
Parse Time 0.85s (± 0.79%) 0.85s (± 0.68%) +0.00s (+ 0.35%) 0.84s 0.86s
Bind Time 0.57s (± 0.87%) 0.57s (± 0.58%) -0.00s (- 0.87%) 0.56s 0.58s
Check Time 7.66s (± 0.51%) 7.62s (± 0.27%) -0.04s (- 0.51%) 7.58s 7.67s
Emit Time 2.52s (± 0.91%) 2.56s (± 0.73%) +0.04s (+ 1.59%) 2.52s 2.60s
Total Time 11.60s (± 0.40%) 11.60s (± 0.23%) +0.00s (+ 0.01%) 11.53s 11.67s
Monaco - node (v14.15.1, x64)
Memory used 325,635k (± 0.01%) 325,714k (± 0.01%) +79k (+ 0.02%) 325,665k 325,753k
Parse Time 1.58s (± 0.47%) 1.58s (± 0.42%) +0.00s (+ 0.19%) 1.57s 1.60s
Bind Time 0.79s (± 1.07%) 0.80s (± 0.63%) +0.00s (+ 0.51%) 0.79s 0.81s
Check Time 5.68s (± 0.48%) 5.68s (± 0.60%) +0.01s (+ 0.14%) 5.61s 5.78s
Emit Time 3.37s (± 0.80%) 3.41s (± 0.85%) +0.04s (+ 1.34%) 3.36s 3.47s
Total Time 11.41s (± 0.27%) 11.47s (± 0.54%) +0.06s (+ 0.49%) 11.36s 11.63s
TFS - node (v14.15.1, x64)
Memory used 288,777k (± 0.01%) 288,863k (± 0.01%) +86k (+ 0.03%) 288,799k 288,932k
Parse Time 1.34s (± 1.57%) 1.32s (± 1.22%) -0.02s (- 1.64%) 1.29s 1.36s
Bind Time 0.77s (± 4.87%) 0.75s (± 2.28%) -0.02s (- 2.22%) 0.73s 0.81s
Check Time 5.31s (± 0.49%) 5.31s (± 0.38%) +0.00s (+ 0.08%) 5.28s 5.37s
Emit Time 3.57s (± 1.76%) 3.67s (± 0.52%) +0.10s (+ 2.89%) 3.63s 3.71s
Total Time 10.98s (± 0.72%) 11.06s (± 0.36%) +0.07s (+ 0.66%) 10.98s 11.14s
material-ui - node (v14.15.1, x64)
Memory used 446,327k (± 0.01%) 446,406k (± 0.01%) +79k (+ 0.02%) 446,349k 446,443k
Parse Time 1.87s (± 0.54%) 1.87s (± 0.47%) -0.00s (- 0.21%) 1.85s 1.89s
Bind Time 0.73s (± 1.32%) 0.73s (± 0.91%) -0.00s (- 0.14%) 0.71s 0.74s
Check Time 13.24s (± 1.33%) 12.99s (± 0.28%) -0.25s (- 1.90%) 12.90s 13.08s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.84s (± 1.15%) 15.59s (± 0.24%) -0.26s (- 1.62%) 15.52s 15.69s
xstate - node (v14.15.1, x64)
Memory used 541,032k (± 0.00%) 541,209k (± 0.00%) +177k (+ 0.03%) 541,149k 541,273k
Parse Time 2.60s (± 0.48%) 2.60s (± 0.33%) +0.00s (+ 0.08%) 2.58s 2.61s
Bind Time 1.15s (± 1.35%) 1.16s (± 1.10%) +0.01s (+ 1.04%) 1.13s 1.19s
Check Time 1.53s (± 0.39%) 1.53s (± 0.44%) -0.00s (- 0.13%) 1.52s 1.55s
Emit Time 0.07s (± 4.66%) 0.07s (± 4.92%) +0.00s (+ 1.37%) 0.07s 0.08s
Total Time 5.35s (± 0.48%) 5.36s (± 0.28%) +0.01s (+ 0.22%) 5.33s 5.39s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × 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)
  • xstate - node (v10.16.3, x64)
  • xstate - node (v12.1.0, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 49705 10
Baseline main 10

Developer Information:

Download Benchmark

@rbuckton
Copy link
Member Author

@typescript-bot run dt
@typescript-bot test this
@typescript-bot user test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 28, 2022

Heya @rbuckton, I've started to run the parallelized Definitely Typed test suite on this PR at 54024cf. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 28, 2022

Heya @rbuckton, I've started to run the diff-based user code test suite on this PR at 54024cf. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

typescript-bot commented Jun 28, 2022

Heya @rbuckton, I've started to run the extended test suite on this PR at 54024cf. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

Heya @rbuckton, I've run the RWC suite on this PR - assuming you're on the TS core team, you can view the resulting diff here.

@typescript-bot
Copy link
Collaborator

@rbuckton
Great news! no new errors were found between main..refs/pull/49705/merge

@fatcerberus
Copy link

fatcerberus commented Jun 28, 2022

Why is this a thing? Like, what problem does it actually solve (genuine question, not snark)? The generated accessors don't do anything and unlike, e.g., C#, changing a plain property to an accessor isn't generally an API break...

edit: Oh, I see, it's mostly because decorators will apparently make a distinction between field and accessor.

@rbuckton
Copy link
Member Author

Why is this a thing? Like, what problem does it actually solve (genuine question, not snark)? The generated accessors don't do anything and unlike, e.g., C#, changing a plain property to an accessor isn't generally an API break...

edit: Oh, I see, it's mostly because decorators will apparently make a distinction between field and accessor.

This was a requirement from VM implementers to avoid the potential hidden shape changes that could occur if you were able to convert a field declaration into an accessor dynamically rather than statically. It also helps to avoid issues with public field shadowing in cases like the following, such as with @observe in #48814:

class C {
  // observe attaches an accessor pair to C.prototype, but the field `x` is defined
  // on the instance, shadowing the accessor pair.
  @observe x = 1;
}

// vs
class C {
  // observe can now instead intercept the `{ get, set }` provided to attach its behavior.
  @observe accessor x = 1;
}

@sandersn
Copy link
Member

sandersn commented Jul 1, 2022

What are the assignability rules for auto-accessor fields? I guess that they're the same as a normal class field, but might be missing something.

@rbuckton
Copy link
Member Author

rbuckton commented Jul 1, 2022

They should be treated the same as we would a get/set pair.

@sandersn
Copy link
Member

sandersn commented Jul 6, 2022

Ah, that explains why the code in the checker is with the existing accessor code, not the property declaration code.

PR Backlog automation moved this from Waiting on author to Needs merge Sep 2, 2022
@rbuckton
Copy link
Member Author

rbuckton commented Sep 9, 2022

@typescript-bot perf test

@typescript-bot
Copy link
Collaborator

typescript-bot commented Sep 9, 2022

Heya @rbuckton, I've started to run the perf test suite on this PR at 02405ec. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

@rbuckton
The results of the perf run you requested are in!

Here they are:

Compiler

Comparison Report - main..49705
Metric main 49705 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 363,293k (± 0.01%) 363,318k (± 0.02%) +25k (+ 0.01%) 363,228k 363,520k
Parse Time 2.08s (± 0.60%) 2.09s (± 0.55%) +0.01s (+ 0.34%) 2.06s 2.12s
Bind Time 0.78s (± 0.74%) 0.79s (± 1.07%) +0.01s (+ 1.02%) 0.78s 0.82s
Check Time 6.17s (± 0.59%) 6.20s (± 0.54%) +0.03s (+ 0.47%) 6.13s 6.29s
Emit Time 5.97s (± 0.56%) 6.04s (± 0.91%) +0.07s (+ 1.14%) 5.97s 6.25s
Total Time 15.01s (± 0.40%) 15.12s (± 0.47%) +0.11s (+ 0.75%) 14.99s 15.32s
Compiler-Unions - node (v10.16.3, x64)
Memory used 206,164k (± 0.03%) 206,233k (± 0.04%) +70k (+ 0.03%) 206,085k 206,536k
Parse Time 0.83s (± 1.06%) 0.83s (± 1.14%) +0.00s (+ 0.12%) 0.82s 0.85s
Bind Time 0.47s (± 0.72%) 0.48s (± 1.46%) +0.01s (+ 1.69%) 0.47s 0.50s
Check Time 8.51s (± 0.64%) 8.51s (± 0.69%) +0.00s (+ 0.06%) 8.40s 8.65s
Emit Time 2.50s (± 1.41%) 2.46s (± 0.98%) -0.05s (- 1.96%) 2.40s 2.50s
Total Time 12.32s (± 0.63%) 12.28s (± 0.45%) -0.04s (- 0.30%) 12.17s 12.41s
Monaco - node (v10.16.3, x64)
Memory used 344,666k (± 0.02%) 344,758k (± 0.02%) +92k (+ 0.03%) 344,463k 344,862k
Parse Time 1.60s (± 0.74%) 1.61s (± 0.60%) +0.01s (+ 0.81%) 1.59s 1.63s
Bind Time 0.70s (± 0.57%) 0.70s (± 0.84%) +0.00s (+ 0.72%) 0.69s 0.72s
Check Time 6.26s (± 0.51%) 6.23s (± 0.60%) -0.02s (- 0.37%) 6.17s 6.30s
Emit Time 3.23s (± 0.78%) 3.20s (± 0.78%) -0.03s (- 1.02%) 3.16s 3.28s
Total Time 11.78s (± 0.35%) 11.75s (± 0.46%) -0.04s (- 0.30%) 11.62s 11.85s
TFS - node (v10.16.3, x64)
Memory used 305,891k (± 0.02%) 305,965k (± 0.02%) +74k (+ 0.02%) 305,845k 306,147k
Parse Time 1.28s (± 0.53%) 1.29s (± 0.67%) +0.00s (+ 0.31%) 1.27s 1.31s
Bind Time 0.67s (± 0.99%) 0.67s (± 0.50%) -0.00s (- 0.45%) 0.66s 0.68s
Check Time 5.50s (± 0.67%) 5.51s (± 0.48%) +0.01s (+ 0.15%) 5.46s 5.59s
Emit Time 3.44s (± 1.64%) 3.35s (± 1.39%) -0.09s (- 2.59%) 3.23s 3.45s
Total Time 10.90s (± 0.56%) 10.82s (± 0.41%) -0.08s (- 0.72%) 10.68s 10.91s
material-ui - node (v10.16.3, x64)
Memory used 459,020k (± 0.01%) 459,171k (± 0.01%) +151k (+ 0.03%) 459,080k 459,290k
Parse Time 1.82s (± 0.66%) 1.84s (± 0.55%) +0.03s (+ 1.54%) 1.82s 1.86s
Bind Time 0.59s (± 1.72%) 0.57s (± 1.30%) -0.01s (- 2.22%) 0.56s 0.60s
Check Time 15.68s (± 0.57%) 15.83s (± 0.70%) +0.15s (+ 0.96%) 15.54s 16.02s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 18.09s (± 0.52%) 18.25s (± 0.64%) +0.16s (+ 0.90%) 17.95s 18.44s
xstate - node (v10.16.3, x64)
Memory used 583,805k (± 0.02%) 584,038k (± 0.02%) +233k (+ 0.04%) 583,763k 584,220k
Parse Time 2.60s (± 0.51%) 2.61s (± 0.35%) +0.02s (+ 0.58%) 2.59s 2.63s
Bind Time 0.92s (± 0.65%) 0.92s (± 0.61%) +0.00s (+ 0.22%) 0.91s 0.93s
Check Time 1.60s (± 0.66%) 1.61s (± 0.58%) +0.01s (+ 0.88%) 1.58s 1.63s
Emit Time 0.07s (± 0.00%) 0.07s (± 4.13%) +0.00s (+ 2.86%) 0.07s 0.08s
Total Time 5.18s (± 0.32%) 5.21s (± 0.30%) +0.04s (+ 0.70%) 5.18s 5.24s
Angular - node (v12.1.0, x64)
Memory used 340,776k (± 0.02%) 340,766k (± 0.02%) -10k (- 0.00%) 340,623k 340,885k
Parse Time 2.07s (± 0.39%) 2.07s (± 0.79%) +0.00s (+ 0.05%) 2.04s 2.12s
Bind Time 0.77s (± 0.58%) 0.77s (± 0.52%) -0.00s (- 0.13%) 0.76s 0.78s
Check Time 5.82s (± 0.53%) 5.84s (± 0.39%) +0.02s (+ 0.40%) 5.79s 5.89s
Emit Time 6.22s (± 0.66%) 6.20s (± 0.57%) -0.02s (- 0.32%) 6.11s 6.27s
Total Time 14.88s (± 0.35%) 14.89s (± 0.35%) +0.00s (+ 0.03%) 14.80s 15.01s
Compiler-Unions - node (v12.1.0, x64)
Memory used 194,008k (± 0.53%) 193,158k (± 0.42%) -850k (- 0.44%) 190,734k 194,087k
Parse Time 0.82s (± 0.63%) 0.83s (± 0.70%) +0.01s (+ 0.73%) 0.81s 0.84s
Bind Time 0.48s (± 1.22%) 0.47s (± 1.04%) -0.00s (- 0.63%) 0.46s 0.48s
Check Time 6.68s (± 0.43%) 6.74s (± 0.78%) +0.06s (+ 0.82%) 6.59s 6.86s
Emit Time 2.48s (± 1.08%) 2.42s (± 1.70%) -0.06s (- 2.26%) 2.35s 2.53s
Total Time 10.46s (± 0.33%) 10.46s (± 0.78%) +0.00s (+ 0.02%) 10.28s 10.67s
Monaco - node (v12.1.0, x64)
Memory used 327,661k (± 0.06%) 327,705k (± 0.06%) +44k (+ 0.01%) 326,934k 327,858k
Parse Time 1.58s (± 1.30%) 1.58s (± 0.67%) +0.00s (+ 0.25%) 1.56s 1.61s
Bind Time 0.70s (± 1.11%) 0.70s (± 0.64%) -0.00s (- 0.14%) 0.69s 0.71s
Check Time 5.82s (± 0.75%) 5.83s (± 0.64%) +0.01s (+ 0.19%) 5.74s 5.90s
Emit Time 3.30s (± 1.38%) 3.29s (± 1.26%) -0.01s (- 0.42%) 3.21s 3.40s
Total Time 11.41s (± 0.72%) 11.40s (± 0.62%) -0.01s (- 0.04%) 11.22s 11.53s
TFS - node (v12.1.0, x64)
Memory used 290,365k (± 0.07%) 290,637k (± 0.03%) +271k (+ 0.09%) 290,442k 290,807k
Parse Time 1.29s (± 0.64%) 1.29s (± 0.56%) +0.00s (+ 0.16%) 1.28s 1.31s
Bind Time 0.67s (± 1.09%) 0.67s (± 0.66%) +0.00s (+ 0.60%) 0.66s 0.68s
Check Time 5.38s (± 0.49%) 5.37s (± 0.43%) -0.01s (- 0.24%) 5.32s 5.41s
Emit Time 3.49s (± 1.18%) 3.42s (± 0.89%) -0.07s (- 1.98%) 3.33s 3.48s
Total Time 10.82s (± 0.29%) 10.74s (± 0.41%) -0.08s (- 0.72%) 10.65s 10.86s
material-ui - node (v12.1.0, x64)
Memory used 437,911k (± 0.11%) 438,308k (± 0.02%) +397k (+ 0.09%) 438,099k 438,513k
Parse Time 1.81s (± 0.29%) 1.82s (± 0.41%) +0.01s (+ 0.44%) 1.80s 1.83s
Bind Time 0.55s (± 0.81%) 0.55s (± 0.54%) +0.00s (+ 0.00%) 0.55s 0.56s
Check Time 12.84s (± 0.54%) 12.76s (± 0.55%) -0.08s (- 0.59%) 12.68s 12.98s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.20s (± 0.47%) 15.13s (± 0.45%) -0.07s (- 0.44%) 15.05s 15.35s
xstate - node (v12.1.0, x64)
Memory used 548,925k (± 0.01%) 549,180k (± 0.01%) +255k (+ 0.05%) 549,065k 549,302k
Parse Time 2.54s (± 0.36%) 2.53s (± 0.50%) -0.01s (- 0.28%) 2.51s 2.56s
Bind Time 0.89s (± 0.75%) 0.89s (± 1.19%) +0.01s (+ 0.56%) 0.88s 0.93s
Check Time 1.47s (± 0.57%) 1.48s (± 0.49%) +0.01s (+ 0.48%) 1.46s 1.49s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 4.97s (± 0.28%) 4.97s (± 0.40%) -0.00s (- 0.06%) 4.94s 5.03s
Angular - node (v14.15.1, x64)
Memory used 338,830k (± 0.01%) 338,933k (± 0.01%) +104k (+ 0.03%) 338,888k 338,981k
Parse Time 2.06s (± 0.72%) 2.07s (± 1.56%) +0.01s (+ 0.63%) 2.04s 2.20s
Bind Time 0.79s (± 0.70%) 0.80s (± 0.43%) +0.00s (+ 0.63%) 0.79s 0.80s
Check Time 5.81s (± 0.50%) 5.84s (± 0.68%) +0.03s (+ 0.45%) 5.76s 5.93s
Emit Time 6.18s (± 0.55%) 6.22s (± 0.79%) +0.04s (+ 0.66%) 6.13s 6.38s
Total Time 14.85s (± 0.30%) 14.93s (± 0.52%) +0.09s (+ 0.58%) 14.82s 15.19s
Compiler-Unions - node (v14.15.1, x64)
Memory used 192,987k (± 0.38%) 190,136k (± 0.01%) -2,852k (- 1.48%) 190,098k 190,170k
Parse Time 0.85s (± 0.40%) 0.85s (± 0.55%) +0.00s (+ 0.35%) 0.84s 0.86s
Bind Time 0.48s (± 0.70%) 0.49s (± 0.75%) +0.00s (+ 0.62%) 0.48s 0.49s
Check Time 6.74s (± 0.50%) 6.77s (± 0.55%) +0.02s (+ 0.31%) 6.66s 6.82s
Emit Time 2.40s (± 0.92%) 2.38s (± 0.84%) -0.02s (- 0.75%) 2.34s 2.42s
Total Time 10.48s (± 0.37%) 10.49s (± 0.38%) +0.01s (+ 0.06%) 10.40s 10.56s
Monaco - node (v14.15.1, x64)
Memory used 326,529k (± 0.01%) 326,560k (± 0.01%) +30k (+ 0.01%) 326,506k 326,606k
Parse Time 1.58s (± 0.86%) 1.58s (± 0.74%) -0.00s (- 0.19%) 1.55s 1.60s
Bind Time 0.72s (± 0.50%) 0.73s (± 1.20%) +0.01s (+ 0.83%) 0.72s 0.76s
Check Time 5.71s (± 0.38%) 5.74s (± 0.45%) +0.03s (+ 0.54%) 5.68s 5.80s
Emit Time 3.31s (± 0.68%) 3.33s (± 0.75%) +0.02s (+ 0.70%) 3.28s 3.38s
Total Time 11.32s (± 0.37%) 11.37s (± 0.31%) +0.05s (+ 0.49%) 11.27s 11.44s
TFS - node (v14.15.1, x64)
Memory used 289,660k (± 0.01%) 289,685k (± 0.01%) +25k (+ 0.01%) 289,616k 289,735k
Parse Time 1.30s (± 0.50%) 1.30s (± 0.54%) -0.00s (- 0.08%) 1.29s 1.32s
Bind Time 0.79s (± 0.66%) 0.78s (± 2.36%) -0.01s (- 1.14%) 0.73s 0.81s
Check Time 5.33s (± 0.41%) 5.33s (± 0.46%) +0.00s (+ 0.04%) 5.29s 5.40s
Emit Time 3.56s (± 0.56%) 3.55s (± 1.39%) -0.01s (- 0.20%) 3.50s 3.74s
Total Time 10.99s (± 0.31%) 10.97s (± 0.74%) -0.02s (- 0.14%) 10.81s 11.24s
material-ui - node (v14.15.1, x64)
Memory used 436,273k (± 0.06%) 436,436k (± 0.06%) +163k (+ 0.04%) 435,358k 436,622k
Parse Time 1.86s (± 0.44%) 1.86s (± 0.65%) +0.00s (+ 0.22%) 1.84s 1.89s
Bind Time 0.58s (± 0.62%) 0.58s (± 0.77%) -0.00s (- 0.34%) 0.57s 0.59s
Check Time 12.90s (± 0.62%) 12.98s (± 0.71%) +0.08s (+ 0.62%) 12.77s 13.19s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.34s (± 0.55%) 15.43s (± 0.64%) +0.08s (+ 0.55%) 15.21s 15.66s
xstate - node (v14.15.1, x64)
Memory used 546,739k (± 0.00%) 546,977k (± 0.00%) +238k (+ 0.04%) 546,942k 547,028k
Parse Time 2.59s (± 0.59%) 2.61s (± 0.49%) +0.02s (+ 0.73%) 2.59s 2.65s
Bind Time 0.97s (± 0.72%) 0.97s (± 0.78%) +0.00s (+ 0.52%) 0.96s 1.00s
Check Time 1.51s (± 0.45%) 1.52s (± 0.62%) +0.00s (+ 0.33%) 1.50s 1.54s
Emit Time 0.07s (± 4.13%) 0.07s (± 0.00%) -0.00s (- 2.78%) 0.07s 0.07s
Total Time 5.15s (± 0.29%) 5.18s (± 0.41%) +0.03s (+ 0.58%) 5.14s 5.24s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × 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)
  • xstate - node (v10.16.3, x64)
  • xstate - node (v12.1.0, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 49705 10
Baseline main 10

TSServer

Comparison Report - main..49705
Metric main 49705 Delta Best Worst
Compiler-UnionsTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 1,402ms (± 0.65%) 1,407ms (± 0.62%) +5ms (+ 0.34%) 1,387ms 1,426ms
Req 2 - geterr 4,111ms (± 0.58%) 4,099ms (± 0.70%) -13ms (- 0.30%) 4,031ms 4,142ms
Req 3 - references 230ms (± 1.27%) 230ms (± 0.90%) -1ms (- 0.30%) 224ms 234ms
Req 4 - navto 173ms (± 0.79%) 175ms (± 1.06%) +1ms (+ 0.69%) 170ms 180ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 96ms (± 2.23%) 91ms (± 8.11%) 🟩-5ms (- 5.63%) 62ms 97ms
CompilerTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 1,495ms (± 0.67%) 1,501ms (± 0.40%) +6ms (+ 0.39%) 1,489ms 1,514ms
Req 2 - geterr 2,253ms (± 0.67%) 2,258ms (± 0.41%) +4ms (+ 0.20%) 2,234ms 2,277ms
Req 3 - references 242ms (± 0.79%) 245ms (± 0.72%) +3ms (+ 1.28%) 242ms 251ms
Req 4 - navto 185ms (± 0.54%) 185ms (± 0.67%) -1ms (- 0.38%) 183ms 187ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 62ms (± 1.97%) 62ms (± 2.78%) +0ms (+ 0.49%) 58ms 67ms
xstateTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 2,090ms (± 0.44%) 2,097ms (± 0.46%) +7ms (+ 0.34%) 2,077ms 2,117ms
Req 2 - geterr 794ms (± 0.38%) 796ms (± 0.69%) +2ms (+ 0.25%) 781ms 808ms
Req 3 - references 101ms (± 2.93%) 99ms (± 1.61%) -2ms (- 1.97%) 95ms 103ms
Req 4 - navto 235ms (± 1.26%) 232ms (± 0.76%) -3ms (- 1.28%) 227ms 235ms
Req 5 - completionInfo count 3,301 (± 0.00%) 3,301 (± 0.00%) 0 ( 0.00%) 3,301 3,301
Req 5 - completionInfo 280ms (± 1.16%) 280ms (± 1.22%) +0ms (+ 0.04%) 271ms 286ms
Compiler-UnionsTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 1,402ms (± 0.73%) 1,406ms (± 0.57%) +4ms (+ 0.25%) 1,392ms 1,427ms
Req 2 - geterr 3,368ms (± 0.39%) 3,394ms (± 0.73%) +26ms (+ 0.77%) 3,343ms 3,457ms
Req 3 - references 219ms (± 0.92%) 219ms (± 0.97%) +0ms (+ 0.18%) 215ms 225ms
Req 4 - navto 160ms (± 0.85%) 160ms (± 1.04%) -0ms (- 0.13%) 156ms 165ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 60ms (± 4.77%) 59ms (± 4.03%) -1ms (- 1.99%) 55ms 65ms
CompilerTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 1,487ms (± 0.61%) 1,496ms (± 0.71%) +9ms (+ 0.59%) 1,479ms 1,529ms
Req 2 - geterr 2,168ms (± 0.59%) 2,159ms (± 0.38%) -9ms (- 0.42%) 2,145ms 2,174ms
Req 3 - references 236ms (± 1.16%) 235ms (± 0.71%) -0ms (- 0.17%) 233ms 240ms
Req 4 - navto 172ms (± 1.00%) 170ms (± 0.89%) -2ms (- 1.16%) 166ms 174ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 59ms (± 2.93%) 60ms (± 3.17%) +1ms (+ 2.20%) 57ms 65ms
xstateTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 2,036ms (± 0.25%) 2,035ms (± 0.40%) -1ms (- 0.03%) 2,011ms 2,054ms
Req 2 - geterr 747ms (± 0.45%) 744ms (± 0.48%) -3ms (- 0.41%) 733ms 750ms
Req 3 - references 68ms (± 1.01%) 67ms (± 1.25%) -1ms (- 1.48%) 65ms 68ms
Req 4 - navto 223ms (± 1.30%) 224ms (± 1.35%) +0ms (+ 0.13%) 212ms 226ms
Req 5 - completionInfo count 3,301 (± 0.00%) 3,301 (± 0.00%) 0 ( 0.00%) 3,301 3,301
Req 5 - completionInfo 275ms (± 1.08%) 276ms (± 1.07%) +0ms (+ 0.11%) 269ms 283ms
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 1,441ms (± 0.57%) 1,446ms (± 0.44%) +5ms (+ 0.37%) 1,435ms 1,465ms
Req 2 - geterr 3,518ms (± 1.04%) 3,517ms (± 0.45%) -1ms (- 0.02%) 3,480ms 3,557ms
Req 3 - references 231ms (± 0.78%) 231ms (± 0.91%) +0ms (+ 0.13%) 227ms 238ms
Req 4 - navto 171ms (± 0.95%) 171ms (± 0.61%) -0ms (- 0.23%) 168ms 173ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 55ms (± 1.18%) 60ms (± 7.13%) +5ms (+ 9.49%) 54ms 67ms
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 1,512ms (± 0.55%) 1,519ms (± 0.56%) +7ms (+ 0.46%) 1,501ms 1,532ms
Req 2 - geterr 2,310ms (± 0.53%) 2,312ms (± 0.52%) +2ms (+ 0.10%) 2,284ms 2,335ms
Req 3 - references 242ms (± 0.61%) 243ms (± 0.72%) +1ms (+ 0.50%) 240ms 247ms
Req 4 - navto 178ms (± 0.67%) 178ms (± 0.70%) +0ms (+ 0.11%) 175ms 181ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 55ms (± 0.90%) 55ms (± 1.18%) +0ms (+ 0.37%) 54ms 57ms
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,133ms (± 0.63%) 2,142ms (± 0.48%) +9ms (+ 0.40%) 2,124ms 2,172ms
Req 2 - geterr 767ms (± 0.45%) 764ms (± 0.33%) -3ms (- 0.39%) 759ms 769ms
Req 3 - references 65ms (± 1.02%) 66ms (± 1.74%) +1ms (+ 1.53%) 64ms 69ms
Req 4 - navto 229ms (± 0.75%) 228ms (± 0.53%) -1ms (- 0.52%) 225ms 231ms
Req 5 - completionInfo count 3,301 (± 0.00%) 3,301 (± 0.00%) 0 ( 0.00%) 3,301 3,301
Req 5 - completionInfo 279ms (± 0.57%) 277ms (± 0.60%) -3ms (- 0.93%) 274ms 281ms
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × 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
  • Compiler-UnionsTSServer - node (v10.16.3, x64)
  • Compiler-UnionsTSServer - node (v12.1.0, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v10.16.3, x64)
  • CompilerTSServer - node (v12.1.0, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v10.16.3, x64)
  • xstateTSServer - node (v12.1.0, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 49705 10
Baseline main 10

Developer Information:

Download Benchmark

@rbuckton rbuckton merged commit a4cabe7 into main Sep 12, 2022
13 checks passed
PR Backlog automation moved this from Needs merge to Done Sep 12, 2022
@rbuckton rbuckton deleted the accessor-fields branch Sep 12, 2022
@fwienber
Copy link

fwienber commented Dec 8, 2022

accessor cannot be used with readonly or declare on the same field declaration.

Hi, I just noticed that using TypeScript 4.9.3,

class Foo {
    accessor readonly foo: number = 5;
}

does not give an error. It is simply ignored: Playground example
"... cannot be used" sounds like it should result in an error.
Is this worth being reported as an issue?

@fwienber
Copy link

fwienber commented Dec 8, 2022

Also,

class Foo {
    accessor declare foo: number;
}

works as I would expect. Is there any reason to not support it?

@rbuckton
Copy link
Member Author

rbuckton commented Dec 8, 2022

accessor cannot be used with readonly or declare on the same field declaration.

Hi, I just noticed that using TypeScript 4.9.3,

class Foo {
    accessor readonly foo: number = 5;
}

does not give an error. It is simply ignored: Playground example "... cannot be used" sounds like it should result in an error. Is this worth being reported as an issue?

Yes, this should be an error.

Also,

class Foo {
    accessor declare foo: number;
}

works as I would expect. Is there any reason to not support it?

declare was only intended for normal fields as a special case to work around issues with --useDefineForClassProperties and legacy decorators. It isn't intended to work for accessors since they are defined on the prototype. This should be an error.

@fwienber
Copy link

fwienber commented Dec 8, 2022

Thanks for the quick response, then I'm going to create an issue for that!

@ClementValot
Copy link

ClementValot commented Dec 20, 2022

Very naive question:
Is there a reason not to implement a similar keyword for public readonly properties which would do the same, but without a setter?

EDIT: I guess the keyword for readonly properties would be readonly :)
First thought is, the transpiler could, if target > ES2015, transform

class C {
    readonly x = 1;
}

into

class C {
    #x_accessor_storage = 1;
    get x() { return this.#x_accessor_storage; }
}

But that would be a very breaking change; which could be enabled by a --strictReadonly flag in the compiler options... Which would be a lot of work just for syntactic sugar

@wycats
Copy link

wycats commented Jan 4, 2023

Is there a reason not to implement a similar keyword for public readonly properties which would do the same, but without a setter?

More generally, is there a reason that readonly accessor isn't supported?

@rbuckton
Copy link
Member Author

rbuckton commented Jan 5, 2023

Is there a reason not to implement a similar keyword for public readonly properties which would do the same, but without a setter?

More generally, is there a reason that readonly accessor isn't supported?

It's not currently supported because the accessor isn't actually read-only (a setter is still generated) and that might break user expectations. Also, support for actual read-only accessors is planned as part of https://github.com/tc39/proposal-grouped-and-auto-accessors, which is blocked on any advancement until after Decorators reaches Stage 4.

With the full auto-accessors proposal, you could accomplish a true read-only accessor using the following syntax:

class C {
  accessor x { get; } = 1;
}

Which would transform into something like this:

class C {
    #x_accessor_storage = 1;
    get x() { return this.#x_accessor_storage; }
}

crapStone pushed a commit to Calciumdibromid/CaBr2 that referenced this pull request Jan 12, 2023
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [typescript](https://www.typescriptlang.org/) ([source](https://github.com/Microsoft/TypeScript)) | devDependencies | minor | [`4.8.4` -> `4.9.4`](https://renovatebot.com/diffs/npm/typescript/4.8.4/4.9.4) |

---

### Release Notes

<details>
<summary>Microsoft/TypeScript</summary>

### [`v4.9.4`](https://github.com/microsoft/TypeScript/releases/tag/v4.9.4): TypeScript 4.9.4

[Compare Source](https://github.com/Microsoft/TypeScript/compare/v4.9.3...v4.9.4)

For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9).

For the complete list of fixed issues, check out the

-   [fixed issues query for Typescript v4.9.4](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+4.9.4%22+is%3Aclosed+).

Downloads are available on:

-   [npm](https://www.npmjs.com/package/typescript)
-   [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)

#### Changes:

-   [`e286821`](https://github.com/Microsoft/TypeScript/commit/e2868216f637e875a74c675845625eb15dcfe9a2) Bump version to 4.9.4 and LKG.
-   [`eb5419f`](https://github.com/Microsoft/TypeScript/commit/eb5419fc8d980859b98553586dfb5f40d811a745) Cherry-pick [#&#8203;51704](https://github.com/Microsoft/TypeScript/issues/51704) to release 4.9 ([#&#8203;51712](https://github.com/Microsoft/TypeScript/issues/51712))
-   [`b4d382b`](https://github.com/Microsoft/TypeScript/commit/b4d382b9b12460adf2da4cc0d1429cf19f8dc8be) Cherry-pick changes for narrowing to tagged literal types.
-   [`e7a02f4`](https://github.com/Microsoft/TypeScript/commit/e7a02f43fce47e1a39259ada5460bcc33c8e98b5) Port of [#&#8203;51626](https://github.com/Microsoft/TypeScript/issues/51626) and [#&#8203;51689](https://github.com/Microsoft/TypeScript/issues/51689) to release-4.9 ([#&#8203;51627](https://github.com/Microsoft/TypeScript/issues/51627))
-   [`1727912`](https://github.com/Microsoft/TypeScript/commit/1727912f0437a7f367d90040fc4b0b4f3efd017a) Cherry-pick fix around `visitEachChild` to release-4.9. ([#&#8203;51544](https://github.com/Microsoft/TypeScript/issues/51544))

This list of changes was [auto generated](https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/\_release?releaseId=117&\_a=release-summary).

### [`v4.9.3`](https://github.com/microsoft/TypeScript/releases/tag/v4.9.3): TypeScript 4.9

[Compare Source](https://github.com/Microsoft/TypeScript/compare/v4.8.4...v4.9.3)

For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/).

Downloads are available on:

-   [npm](https://www.npmjs.com/package/typescript)
-   [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)

#### Changes:

-   [`93bd577`](https://github.com/Microsoft/TypeScript/commit/93bd577458d55cd720b2677705feab5c91eb12ce) Bump version to 4.9.3 and LKG.
-   [`107f832`](https://github.com/Microsoft/TypeScript/commit/107f832b80df2dc97748021cb00af2b6813db75b) Update LKG.
-   [`31bee56`](https://github.com/Microsoft/TypeScript/commit/31bee5682df130a14ffdd5742f994dbe7313dd0e) Cherry-pick PR [#&#8203;50977](https://github.com/Microsoft/TypeScript/issues/50977) into release-4.9 ([#&#8203;51363](https://github.com/Microsoft/TypeScript/issues/51363)) \[ [#&#8203;50872](https://github.com/Microsoft/TypeScript/issues/50872) ]
-   [`1e2fa7a`](https://github.com/Microsoft/TypeScript/commit/1e2fa7ae15f8530910fef8b916ec8a4ed0b59c45) Update version to 4.9.2-rc and LKG.
-   [`7ab89e5`](https://github.com/Microsoft/TypeScript/commit/7ab89e5c6e401d161f31f28a6c555a3ba530910e) Merge remote-tracking branch 'origin/main' into release-4.9
-   [`e5cd686`](https://github.com/Microsoft/TypeScript/commit/e5cd686defb1a4cbdb36bd012357ba5bed28f371) Update package-lock.json
-   [`8d40dc1`](https://github.com/Microsoft/TypeScript/commit/8d40dc15d1b9945837e7860320fdccfe27c40cad) Update package-lock.json
-   [`5cfb3a2`](https://github.com/Microsoft/TypeScript/commit/5cfb3a2fe344a5350734305193e6cc99516285ca) Only call return() for an abrupt completion in user code ([#&#8203;51297](https://github.com/Microsoft/TypeScript/issues/51297))
-   [`a7a9d15`](https://github.com/Microsoft/TypeScript/commit/a7a9d158e817fcb0e94dc1c24e0a401b21be0cc9) Fix for broken baseline in yieldInForInInDownlevelGenerator ([#&#8203;51345](https://github.com/Microsoft/TypeScript/issues/51345))
-   [`7f8426f`](https://github.com/Microsoft/TypeScript/commit/7f8426f4df0d0a7dd8b72079dafc3e60164a23b1) fix for-in enumeration containing yield in generator ([#&#8203;51295](https://github.com/Microsoft/TypeScript/issues/51295))

<details><summary><b>See More</b></summary>

-   [`3d2b401`](https://github.com/Microsoft/TypeScript/commit/3d2b4017eb6b9a2b94bc673291e56ae95e8beddd) Fix assertion functions accessed via wildcard imports ([#&#8203;51324](https://github.com/Microsoft/TypeScript/issues/51324))
-   [`64d0d5a`](https://github.com/Microsoft/TypeScript/commit/64d0d5ae140b7b26a09e75114517b418d6bcaa9f) fix(51301): Fixing an unused import at the end of a line removes the newline ([#&#8203;51320](https://github.com/Microsoft/TypeScript/issues/51320))
-   [`754eeb2`](https://github.com/Microsoft/TypeScript/commit/754eeb2986bde30d5926e0fa99c87dda9266d01b) Update CodeQL workflow and configuration, fix found bugs ([#&#8203;51263](https://github.com/Microsoft/TypeScript/issues/51263))
-   [`d8aad26`](https://github.com/Microsoft/TypeScript/commit/d8aad262006ad2d2c91aa7a0e4449b4b83c57f7b) Update package-lock.json
-   [`d4f26c8`](https://github.com/Microsoft/TypeScript/commit/d4f26c840b1db76c0b25a405c8e73830a2b45cbc) fix(51245): Class with parameter decorator in arrow function causes "convert to default export" refactoring failure ([#&#8203;51256](https://github.com/Microsoft/TypeScript/issues/51256))
-   [`16faf45`](https://github.com/Microsoft/TypeScript/commit/16faf45682173ea437a50330feb4785578923d7f) Update package-lock.json
-   [`8b1ecdb`](https://github.com/Microsoft/TypeScript/commit/8b1ecdb701e2a2e19e9f8bcdd6b2beac087eabee) fix(50654): "Move to a new file" breaks the declaration of referenced variable ([#&#8203;50681](https://github.com/Microsoft/TypeScript/issues/50681))
-   [`170a17f`](https://github.com/Microsoft/TypeScript/commit/170a17fad57eae619c5ef2b7bdb3ac00d6c32c47) Dom update 2022-10-25 ([#&#8203;51300](https://github.com/Microsoft/TypeScript/issues/51300))
-   [`9c4e14d`](https://github.com/Microsoft/TypeScript/commit/9c4e14d75174432f6a4dc5967a09712a6784ab88) Remove "No type information for this code" from baseline ([#&#8203;51311](https://github.com/Microsoft/TypeScript/issues/51311))
-   [`88d25b4`](https://github.com/Microsoft/TypeScript/commit/88d25b4f232929df59729156dfda6b65277affec) fix(50068): Refactors trigger debug failure when JSX text has a ' and a tag on the same line. ([#&#8203;51299](https://github.com/Microsoft/TypeScript/issues/51299))
-   [`8bee69a`](https://github.com/Microsoft/TypeScript/commit/8bee69acf410d4986cb0cc102b949e2d133d5380) Update package-lock.json
-   [`702de1e`](https://github.com/Microsoft/TypeScript/commit/702de1eeaaef88a189e4d06e5a2aae287853790a) Fix early call to return/throw on generator ([#&#8203;51294](https://github.com/Microsoft/TypeScript/issues/51294))
-   [`2c12b14`](https://github.com/Microsoft/TypeScript/commit/2c12b1499908ad7718e65d20e264561207c22375) Add a GH Action to file a new issue if we go a week without seeing a typescript-error-deltas issue ([#&#8203;51271](https://github.com/Microsoft/TypeScript/issues/51271))
-   [`6af270d`](https://github.com/Microsoft/TypeScript/commit/6af270dee09d62516f6dc02ec102a745ffebc037) Update package-lock.json
-   [`2cc4c16`](https://github.com/Microsoft/TypeScript/commit/2cc4c16a26672a7ba6c97ba16309fcf334db7cae) Update package-lock.json
-   [`6093491`](https://github.com/Microsoft/TypeScript/commit/60934915d9ccc4ca9c0fb2cd060d7ec81601942b) Fix apparent typo in getStringMappingType ([#&#8203;51248](https://github.com/Microsoft/TypeScript/issues/51248))
-   [`61c2609`](https://github.com/Microsoft/TypeScript/commit/61c26096e3373719ece686b84c698423890e9a5f) Update package-lock.json
-   [`ef69116`](https://github.com/Microsoft/TypeScript/commit/ef69116c41cb6805f89e6592eacb0ccb7f02207d) Generate shortest `rootDirs` module specifier instead of first possible ([#&#8203;51244](https://github.com/Microsoft/TypeScript/issues/51244))
-   [`bbb42f4`](https://github.com/Microsoft/TypeScript/commit/bbb42f453dc684e03d977c5b70391124d57543a9) Fix typo in canWatchDirectoryOrFile found by CodeQL ([#&#8203;51262](https://github.com/Microsoft/TypeScript/issues/51262))
-   [`a56b254`](https://github.com/Microsoft/TypeScript/commit/a56b254ad3c52b598bc5d44f83f3d0a1cf806068) Include 'this' type parameter in isRelatedTo fast path ([#&#8203;51230](https://github.com/Microsoft/TypeScript/issues/51230))
-   [`3abd351`](https://github.com/Microsoft/TypeScript/commit/3abd351c0eea55758f27ee5558a4a1525b77f45b) Fix super property transform in async arrow in method ([#&#8203;51240](https://github.com/Microsoft/TypeScript/issues/51240))
-   [`eed0511`](https://github.com/Microsoft/TypeScript/commit/eed05112180e0d94f78aa02d676d49468f15dc31) Update package-lock.json
-   [`2625c1f`](https://github.com/Microsoft/TypeScript/commit/2625c1feae25aede35465ca835440fc57bf13d52) Make the init config category order predictable ([#&#8203;51247](https://github.com/Microsoft/TypeScript/issues/51247))
-   [`1ca99b3`](https://github.com/Microsoft/TypeScript/commit/1ca99b34029dafad2c18af7bdc0711f4abf7e522) fix(50551): Destructuring assignment with var bypasses "variable is used before being assigned" check (2454) ([#&#8203;50560](https://github.com/Microsoft/TypeScript/issues/50560))
-   [`3f28fa1`](https://github.com/Microsoft/TypeScript/commit/3f28fa12dfecb8dfd66ce4684bf26f64e1f092f1) Update package-lock.json
-   [`906ebe4`](https://github.com/Microsoft/TypeScript/commit/906ebe49334a3a9c2dbd73cd3c902898bc712b66) Revert structuredTypeRelatedTo change and fix isUnitLikeType ([#&#8203;51076](https://github.com/Microsoft/TypeScript/issues/51076))
-   [`8ac4652`](https://github.com/Microsoft/TypeScript/commit/8ac465239f52de1da3ada8cdc4c3f107f4d62e45) change type ([#&#8203;51231](https://github.com/Microsoft/TypeScript/issues/51231))
-   [`245a02c`](https://github.com/Microsoft/TypeScript/commit/245a02cbed7ad50a21289730159abc8d19a66f40) fix(51222): Go-to-definition on return statements should jump to the containing function declaration ([#&#8203;51227](https://github.com/Microsoft/TypeScript/issues/51227))
-   [`2dff34e`](https://github.com/Microsoft/TypeScript/commit/2dff34e8c4a91c0005ca9ccfb7e045e225b6f2e4) markAliasReferenced should include ExportValue as well ([#&#8203;51219](https://github.com/Microsoft/TypeScript/issues/51219))
-   [`5ef2634`](https://github.com/Microsoft/TypeScript/commit/5ef2634f3df138323383c7f2e5a05163a924ee86) Update package-lock.json
-   [`d0f0e35`](https://github.com/Microsoft/TypeScript/commit/d0f0e35c88ae017fc4c1213eb2f83303ee22ebde) Remove old tslint comments ([#&#8203;51220](https://github.com/Microsoft/TypeScript/issues/51220))
-   [`85d405a`](https://github.com/Microsoft/TypeScript/commit/85d405a1d74c0730a9d8d6307b26e8d6f3f75421) Fixed a false positive "await has no effect on the type" diagnostic with mixed generic union ([#&#8203;50833](https://github.com/Microsoft/TypeScript/issues/50833))
-   [`1f8959f`](https://github.com/Microsoft/TypeScript/commit/1f8959f5dc04b2b2c2fc8a7dc53b6ac761e1f754) fix: avoid downleveled dynamic import closing over specifier expression ([#&#8203;49663](https://github.com/Microsoft/TypeScript/issues/49663))
-   [`11066b2`](https://github.com/Microsoft/TypeScript/commit/11066b264f5d30fb5ac1f6c2f3a155c0190e75d2) Rename internal functions to `narrowTypeBySwitchOnTypeOf` and `narrowTypeByInKeyword` ([#&#8203;51215](https://github.com/Microsoft/TypeScript/issues/51215))
-   [`4c9afe8`](https://github.com/Microsoft/TypeScript/commit/4c9afe8812fcdb4658472ccbced4a5cd4bae70ea) Update package-lock.json
-   [`f25bcb7`](https://github.com/Microsoft/TypeScript/commit/f25bcb7c27d78ce89e9c9356d27058cf86dbfb5c) fix(49196): add jsdoc snippet for interface member functions ([#&#8203;51135](https://github.com/Microsoft/TypeScript/issues/51135))
-   [`7406ee9`](https://github.com/Microsoft/TypeScript/commit/7406ee9c145cd7d6117391818d5a1eca2d66ca8f) fix(51170): Completing an unimplemented property overwrites rest of line ([#&#8203;51175](https://github.com/Microsoft/TypeScript/issues/51175))
-   [`a1d82fc`](https://github.com/Microsoft/TypeScript/commit/a1d82fc9dcced6ca6bde6e21c385d152d083679f) Remove some unnecessary code discovered by rollup ([#&#8203;51204](https://github.com/Microsoft/TypeScript/issues/51204))
-   [`0481773`](https://github.com/Microsoft/TypeScript/commit/0481773a27fc6a0132c34502fd2a3b0c73cf63a3) LEGO: Merge pull request 51200
-   [`98c19cb`](https://github.com/Microsoft/TypeScript/commit/98c19cbbbe83c2ae3c89a4e08317a4b9ccbcb206) LEGO: Merge pull request 51190
-   [`13c9b05`](https://github.com/Microsoft/TypeScript/commit/13c9b05384544262363f3fd8b942b36aeb84fc61) Update package-lock.json
-   [`673475e`](https://github.com/Microsoft/TypeScript/commit/673475e1c5e582f2fd0bf8d89e33c7708607c8d8) Update package-lock.json
-   [`f6cf510`](https://github.com/Microsoft/TypeScript/commit/f6cf51053e024714dd6b8463fe6f8e7e33461e6b) Add more tracing to node16/nodenext resolution ([#&#8203;51168](https://github.com/Microsoft/TypeScript/issues/51168))
-   [`83c5581`](https://github.com/Microsoft/TypeScript/commit/83c5581588f660247bd9648bafe67b49de060a55) Update package-lock.json
-   [`be5f0fe`](https://github.com/Microsoft/TypeScript/commit/be5f0fe5acfed5146514ebe7c1b65529def8e490) Add an extra regression test for awaited unresolvable recursive union ([#&#8203;51167](https://github.com/Microsoft/TypeScript/issues/51167))
-   [`2cb7e77`](https://github.com/Microsoft/TypeScript/commit/2cb7e779d70d57ef0d46dd3f768e646b8bbe783a) fix(50416): correctly names disabled export refactors ([#&#8203;50663](https://github.com/Microsoft/TypeScript/issues/50663)) \[ [#&#8203;50416](https://github.com/Microsoft/TypeScript/issues/50416) ]
-   [`2bcfed0`](https://github.com/Microsoft/TypeScript/commit/2bcfed01f3458996e71ce37af43e3495cb7e4950) feat(37440): Provide a quick-fix for non-exported types ([#&#8203;51038](https://github.com/Microsoft/TypeScript/issues/51038))
-   [`a24201c`](https://github.com/Microsoft/TypeScript/commit/a24201c8ef6f82b5729ab677b7a1a1d6d745fcb8) Remove VSDevMode.ps1 and createPlaygroundBuild ([#&#8203;51166](https://github.com/Microsoft/TypeScript/issues/51166))
-   [`2da62a7`](https://github.com/Microsoft/TypeScript/commit/2da62a784bbba237b8239e84c8629cfafb0f595e) fix(51112): omit parameter names that precede the type ([#&#8203;51142](https://github.com/Microsoft/TypeScript/issues/51142))
-   [`cf1b6b7`](https://github.com/Microsoft/TypeScript/commit/cf1b6b73330eab2dd484d71cbdb662a83b3c726f) feat(51163): show QF to fill in the missing properties for the mapped type. ([#&#8203;51165](https://github.com/Microsoft/TypeScript/issues/51165))
-   [`bdcc240`](https://github.com/Microsoft/TypeScript/commit/bdcc240d68245e4be865b385bd6a8fd8fa546f56) Remove bug-causing carve-out in conditional type instantiation that hopefully is no longer required ([#&#8203;51151](https://github.com/Microsoft/TypeScript/issues/51151))
-   [`37317a2`](https://github.com/Microsoft/TypeScript/commit/37317a208f34c141b64e26d0e92b3aed346e531f) Check nested weak types in intersections on target side of relation ([#&#8203;51140](https://github.com/Microsoft/TypeScript/issues/51140))
-   [`9f49f9c`](https://github.com/Microsoft/TypeScript/commit/9f49f9ccb05a7bb56b8ca84b8036a3ad4e0e7c2b) Update package-lock.json
-   [`4f54e7e`](https://github.com/Microsoft/TypeScript/commit/4f54e7e947298162d29f3104265e74dcfbc90d82) Fix isExhaustiveSwitchStatement to better handle circularities ([#&#8203;51095](https://github.com/Microsoft/TypeScript/issues/51095))
-   [`503604c`](https://github.com/Microsoft/TypeScript/commit/503604c884bd0557c851b11b699ef98cdb65b93b) Overloads shouldn't gain [@&#8203;deprecated](https://github.com/deprecated) tags of other overloads in quick info ([#&#8203;50904](https://github.com/Microsoft/TypeScript/issues/50904))
-   [`e14a229`](https://github.com/Microsoft/TypeScript/commit/e14a2298c5add93816c6f487bcfc5ac72e3a4c59) Update package-lock.json
-   [`67256e5`](https://github.com/Microsoft/TypeScript/commit/67256e50c41aa9178a60c52de8416477f070b190) Remove unused declarations array in extractSymbol's TargetRange ([#&#8203;51091](https://github.com/Microsoft/TypeScript/issues/51091))
-   [`9c87ded`](https://github.com/Microsoft/TypeScript/commit/9c87ded2b3fc4ba4a9a7656e9be39d5e404e6ab6) fix(51100): ensure tsserver shuts down when parent process is killed ([#&#8203;51107](https://github.com/Microsoft/TypeScript/issues/51107))
-   [`c01ae01`](https://github.com/Microsoft/TypeScript/commit/c01ae01fac37268bac3362fb6e6d26db730f7ed5) Fix nightly publish oops in Gulpfile ([#&#8203;51131](https://github.com/Microsoft/TypeScript/issues/51131))
-   [`a7d10f1`](https://github.com/Microsoft/TypeScript/commit/a7d10f15bbd28166b869ae00482214e360891613) Update package-lock.json
-   [`d0bfd8c`](https://github.com/Microsoft/TypeScript/commit/d0bfd8caed521bfd24fc44960d9936a891744bb7) fix(51072): ts.preProcessFile finds import in template string after conditional expression with template strings ([#&#8203;51082](https://github.com/Microsoft/TypeScript/issues/51082))
-   [`ad56b5c`](https://github.com/Microsoft/TypeScript/commit/ad56b5ca56b763ab377e07121ecfebb457a2e810) Convert scripts/Gulpfile to checked mjs/cjs so they can run without compilation ([#&#8203;50988](https://github.com/Microsoft/TypeScript/issues/50988))
-   [`dbeae5d`](https://github.com/Microsoft/TypeScript/commit/dbeae5d943c784661862c52b8e215a2907c31a33) fix(51017): Make lineText in the references response opt-out ([#&#8203;51081](https://github.com/Microsoft/TypeScript/issues/51081))
-   [`d06a592`](https://github.com/Microsoft/TypeScript/commit/d06a592d02955822a7407b70969fb7a82bc17d59) Properly defer resolution of mapped types with generic `as` clauses ([#&#8203;51050](https://github.com/Microsoft/TypeScript/issues/51050))
-   [`42b1049`](https://github.com/Microsoft/TypeScript/commit/42b1049aee8c655631cb4f0065de86ec1023d20a) Update package-lock.json
-   [`5f3e6cc`](https://github.com/Microsoft/TypeScript/commit/5f3e6cc4980d26af5d8a8f463e59b2c3338165c6) Plugin probe location is higher priority than peer node_modules ([#&#8203;51079](https://github.com/Microsoft/TypeScript/issues/51079)) \[ [#&#8203;34616](https://github.com/Microsoft/TypeScript/issues/34616) ]
-   [`2648f6a`](https://github.com/Microsoft/TypeScript/commit/2648f6ab09e3176c7da2c07c54066d3a3433a298) Plugins in project were adding up after every config file reload ([#&#8203;51087](https://github.com/Microsoft/TypeScript/issues/51087))
-   [`c18791c`](https://github.com/Microsoft/TypeScript/commit/c18791ccf165672df3b55f5bdd4a8655f33be26c) Fix incorrect options type to WatchOptions ([#&#8203;51064](https://github.com/Microsoft/TypeScript/issues/51064))
-   [`b0795e9`](https://github.com/Microsoft/TypeScript/commit/b0795e9c94757a8ee78077d160cde8819a9801ea) Update package-lock.json
-   [`43c6fd4`](https://github.com/Microsoft/TypeScript/commit/43c6fd4c09464204bc6a6e1c6c1d32fa12270414) Covert some of the config testing to baselines for easy validation ([#&#8203;51063](https://github.com/Microsoft/TypeScript/issues/51063))
-   [`fc5e72b`](https://github.com/Microsoft/TypeScript/commit/fc5e72b92cb8ea13c5e0f2cfc35d8b2cbfd1fe36) Remove unused defaultWatchFileKind method since useFsEvents is default for tsserver and tsc ([#&#8203;51044](https://github.com/Microsoft/TypeScript/issues/51044))
-   [`8af9a93`](https://github.com/Microsoft/TypeScript/commit/8af9a936b5240398370887c22cacaff65fee707b) Use typescript.d.ts in APISample tests ([#&#8203;51061](https://github.com/Microsoft/TypeScript/issues/51061))
-   [`4953316`](https://github.com/Microsoft/TypeScript/commit/49533168dbb4e19f243b9dbdfd6a3aac69f5b3dd) Remove configureLanguageServiceBuild, instrumenter ([#&#8203;51048](https://github.com/Microsoft/TypeScript/issues/51048))
-   [`9dfffd0`](https://github.com/Microsoft/TypeScript/commit/9dfffd0fbb406d7f2e5e2ca85768624ca388a7bf) Update GitHub Actions ([#&#8203;51045](https://github.com/Microsoft/TypeScript/issues/51045))
-   [`4635a5c`](https://github.com/Microsoft/TypeScript/commit/4635a5cef9aefa9aa847ef7ce2e6767ddf4f54c2) Update package-lock.json
-   [`33a34e5`](https://github.com/Microsoft/TypeScript/commit/33a34e5b96bfe086266f4765ab9789a2a02507f9) Adding a JSDoc comment to the es5 type declarations to describe the functionality of Date.now() ([#&#8203;50630](https://github.com/Microsoft/TypeScript/issues/50630))
-   [`299745c`](https://github.com/Microsoft/TypeScript/commit/299745cb217c2fc061f75b3735f8420d78b8360a) Fix crash in goto-def on `@override` ([#&#8203;51016](https://github.com/Microsoft/TypeScript/issues/51016))
-   [`7dcf11f`](https://github.com/Microsoft/TypeScript/commit/7dcf11f13985be927886ebea353d282a9b3418e0) fix(50750): Object type literal with string literal property in contextual typing position causes language service error on all literal type references ([#&#8203;50757](https://github.com/Microsoft/TypeScript/issues/50757))
-   [`5cd49f6`](https://github.com/Microsoft/TypeScript/commit/5cd49f6cbcd2effe9d425dee3a39cb49209bb656) Update package-lock.json
-   [`8a1b858`](https://github.com/Microsoft/TypeScript/commit/8a1b85880f89c9cff606c5844e8883e5f483c7db) Update package-lock.json
-   [`96894db`](https://github.com/Microsoft/TypeScript/commit/96894db6cb5b7af6857b4d0c7f70f7d8ac782d51) Include type parameter defaults in contextual typing ([#&#8203;50994](https://github.com/Microsoft/TypeScript/issues/50994)) \[ [#&#8203;51002](https://github.com/Microsoft/TypeScript/issues/51002) ]
-   [`0d0a793`](https://github.com/Microsoft/TypeScript/commit/0d0a79371471d627ae298a145f8009b05cbccb72) Allow Unicode extended escapes in ES5 and earlier ([#&#8203;50918](https://github.com/Microsoft/TypeScript/issues/50918))
-   [`58bae8d`](https://github.com/Microsoft/TypeScript/commit/58bae8db69b275a3efa57b14b486778c55185552) Update package-lock.json
-   [`0ce72ef`](https://github.com/Microsoft/TypeScript/commit/0ce72ef6c8b39cd2d07e5b0eb3a0c144a7783ad2) Add option to OrganizeImports for removal only ([#&#8203;50931](https://github.com/Microsoft/TypeScript/issues/50931))
-   [`42f9143`](https://github.com/Microsoft/TypeScript/commit/42f9143e114c5c07f40df83ed07ffeb3cbaf2101) feat: codefix for `for await of` ([#&#8203;50623](https://github.com/Microsoft/TypeScript/issues/50623))
-   [`ecf50e8`](https://github.com/Microsoft/TypeScript/commit/ecf50e81a7a9cccd9bf5ea7598764082981faab0) Properly compute `SymbolFlags.Optional` for intersected properties ([#&#8203;50958](https://github.com/Microsoft/TypeScript/issues/50958))
-   [`d1586de`](https://github.com/Microsoft/TypeScript/commit/d1586de0434567b998876929eb8229235b85b350) Fully resolve aliases when checking symbol flags ([#&#8203;50853](https://github.com/Microsoft/TypeScript/issues/50853))
-   [`45148dd`](https://github.com/Microsoft/TypeScript/commit/45148dd715a7c3776840778b4df41e7e0bd0bf12) Update LKG to 4.8.4 ([#&#8203;50987](https://github.com/Microsoft/TypeScript/issues/50987))
-   [`9a83f25`](https://github.com/Microsoft/TypeScript/commit/9a83f2551ded0d88a0ba0ec9af260f83eb3568cd) Update package-lock.json
-   [`865848f`](https://github.com/Microsoft/TypeScript/commit/865848fcfb9e6ce7dd64be563fc09f83d4bc9df5) Fix `<=` and `>` comparisons when compared against prerelease versions ([#&#8203;50915](https://github.com/Microsoft/TypeScript/issues/50915))
-   [`fbfe934`](https://github.com/Microsoft/TypeScript/commit/fbfe9340a90777dee03b30f736fab44056123be0) Fix comparability between type parameters related by a union constraint ([#&#8203;50978](https://github.com/Microsoft/TypeScript/issues/50978))
-   [`b09e93d`](https://github.com/Microsoft/TypeScript/commit/b09e93d3f6d3e999df001b53984954974c25b81f) Merge pull request [#&#8203;50041](https://github.com/Microsoft/TypeScript/issues/50041) from microsoft/fix/47969
-   [`0ac12bb`](https://github.com/Microsoft/TypeScript/commit/0ac12bbe7a410238ca992a42f41816a97f6906f4) Update package-lock.json
-   [`8192d55`](https://github.com/Microsoft/TypeScript/commit/8192d550496d884263e292488e325ae96893dc78) Pick correct compilerOptions when checking if we can share emitSignatures ([#&#8203;50910](https://github.com/Microsoft/TypeScript/issues/50910)) \[ [#&#8203;50902](https://github.com/Microsoft/TypeScript/issues/50902) ]
-   [`16faef1`](https://github.com/Microsoft/TypeScript/commit/16faef1d8d522b66b6c672bdd15b4026e2018a62) During uptodate ness check with buildInfo, check if there are errors explicitly with noEmit ([#&#8203;50974](https://github.com/Microsoft/TypeScript/issues/50974)) \[ [#&#8203;50959](https://github.com/Microsoft/TypeScript/issues/50959) ]
-   [`63791f5`](https://github.com/Microsoft/TypeScript/commit/63791f52d4e7a3bf461b974e94abd8cbb6b546c5) Update package-lock.json
-   [`09368bc`](https://github.com/Microsoft/TypeScript/commit/09368bcbaebd157d1e66859ab6f5b30c2fd6eaff) Handle if project for open file will get recollected because of pending cleanup from closed script info ([#&#8203;50908](https://github.com/Microsoft/TypeScript/issues/50908)) \[ [#&#8203;50868](https://github.com/Microsoft/TypeScript/issues/50868) ]
-   [`c81bf4d`](https://github.com/Microsoft/TypeScript/commit/c81bf4d8b0c12410a082d6598fcc24cc721b6e9e) fix(49594): Typescript 4.7.3 bracketed class property compilation error strictPropertyInitialization:true ([#&#8203;49619](https://github.com/Microsoft/TypeScript/issues/49619))
-   [`bc9cbbe`](https://github.com/Microsoft/TypeScript/commit/bc9cbbef421ae907f7dfd5a84ca69c4f68a8935b) Merge pull request [#&#8203;49912](https://github.com/Microsoft/TypeScript/issues/49912) from microsoft/fix/47508
-   [`5a10f46`](https://github.com/Microsoft/TypeScript/commit/5a10f46c0028790120cb85c826efa4248707a964) Update package-lock.json
-   [`8e71f42`](https://github.com/Microsoft/TypeScript/commit/8e71f429c811ac7811533d7b0e02c32bad5a1b47) Fixing pr comments
-   [`c100c64`](https://github.com/Microsoft/TypeScript/commit/c100c6488db0482dcc1455290f456dece91cac0a) Update package-lock.json
-   [`2a91107`](https://github.com/Microsoft/TypeScript/commit/2a91107f7548eeb5e32673e76277d27264ea88e2) Update package-lock.json
-   [`4ab9e76`](https://github.com/Microsoft/TypeScript/commit/4ab9e76fb748b08712f9d0017dd8f0ba74d1859f) Use paths in package.json 'files' array that work with npm 6 and later. ([#&#8203;50930](https://github.com/Microsoft/TypeScript/issues/50930))
-   [`549b542`](https://github.com/Microsoft/TypeScript/commit/549b5429d4837344e8c99657109bb6538fd2dbb5) Use paths in package.json 'files' array that work with npm 6 and later.
-   [`7f37d25`](https://github.com/Microsoft/TypeScript/commit/7f37d251fc69da34659e4c60792177e1e9a8e7a6) Update version to 4.9.1-beta and LKG.
-   [`f16ca7d`](https://github.com/Microsoft/TypeScript/commit/f16ca7dd364e57ee7ce337f987b20dbc1e34941f) Remove 'async' dependency, used only in errorCheck.ts, modernize file ([#&#8203;50667](https://github.com/Microsoft/TypeScript/issues/50667))
-   [`c6bef3f`](https://github.com/Microsoft/TypeScript/commit/c6bef3f02874bddf6df120aa4f0d130c58478468) LEGO: Merge pull request 50921
-   [`6753027`](https://github.com/Microsoft/TypeScript/commit/675302730b8ca525d47c910bf2d3174bd3b66a1b) Update package-lock.json
-   [`9740bcc`](https://github.com/Microsoft/TypeScript/commit/9740bcc53418e8792a4dbb978059ff5a02b55c91) Pluralized `hasInvalidatedResolution` -> `hasInvalidatedResolutions` ([#&#8203;50912](https://github.com/Microsoft/TypeScript/issues/50912))
-   [`84c29cd`](https://github.com/Microsoft/TypeScript/commit/84c29cd576fd1facb9b3a353d5342df04acdb184) 🤖 Pick PR [#&#8203;50912](https://github.com/Microsoft/TypeScript/issues/50912) (Pluralized \`hasInvalidatedResolutio...) into release-4.9 ([#&#8203;50913](https://github.com/Microsoft/TypeScript/issues/50913))
-   [`a26f634`](https://github.com/Microsoft/TypeScript/commit/a26f63424de249bb106804dfc9a024bb525de93e) Merge remote-tracking branch 'origin/main' into release-4.9
-   [`a455955`](https://github.com/Microsoft/TypeScript/commit/a455955aac85ecc5b2182fe50b83670188955feb) Make hasInvalidatedResolution non internal for program and add it watchApi ([#&#8203;50776](https://github.com/Microsoft/TypeScript/issues/50776)) \[ [#&#8203;48057](https://github.com/Microsoft/TypeScript/issues/48057) ]
-   [`645d1cd`](https://github.com/Microsoft/TypeScript/commit/645d1cd7c1ee1d65a87b2183b173611467256a09) Fix assert in addIndirectUser in FAR ([#&#8203;50905](https://github.com/Microsoft/TypeScript/issues/50905))
-   [`bbec17d`](https://github.com/Microsoft/TypeScript/commit/bbec17d9003246fa00d6bf676bb4ce7c54ff2be4) LEGO: Merge pull request 50900
-   [`a9ecc67`](https://github.com/Microsoft/TypeScript/commit/a9ecc675d636c3bbca697bc4881b019e8645a7a6) Update package-lock.json
-   [`221cf55`](https://github.com/Microsoft/TypeScript/commit/221cf55a21e448bd3fe2cf26a754c9c0dda3dca3) package.json `exports` should have priority over `typesVersions` ([#&#8203;50890](https://github.com/Microsoft/TypeScript/issues/50890))
-   [`acb8977`](https://github.com/Microsoft/TypeScript/commit/acb89771901f8c81c6046fa7c16361a83388ddab) Remove .github/tsc.json ([#&#8203;50664](https://github.com/Microsoft/TypeScript/issues/50664))
-   [`7a3de81`](https://github.com/Microsoft/TypeScript/commit/7a3de819bfb93fb27ef7ea8305d2df069866c380) fix(49993): skip the quick fix for an expression with an enum type ([#&#8203;50625](https://github.com/Microsoft/TypeScript/issues/50625))
-   [`2644f28`](https://github.com/Microsoft/TypeScript/commit/2644f2867734d77a3a3939c55d5cc0a5004df0ed) fix(49200): skip duplicated method declarations ([#&#8203;50609](https://github.com/Microsoft/TypeScript/issues/50609))
-   [`98652a3`](https://github.com/Microsoft/TypeScript/commit/98652a349a67be718e8e8b5fcf590972eb62a104) Bump version to 4.9.0-beta and LKG.
-   [`4d91204`](https://github.com/Microsoft/TypeScript/commit/4d91204c9d9f27756785f62fade44d93824d47f4) fix(37030): Expand Selection in function and arrow function skips body block ([#&#8203;50711](https://github.com/Microsoft/TypeScript/issues/50711))
-   [`e2dd508`](https://github.com/Microsoft/TypeScript/commit/e2dd5084f75ac37a78102d212b67d36595596137) DOM update 2022/09/21 ([#&#8203;50884](https://github.com/Microsoft/TypeScript/issues/50884))
-   [`1d9ab83`](https://github.com/Microsoft/TypeScript/commit/1d9ab83914a551936ce5ef80340ee65cfd1422ba) fix(50866): emit modifiers from export declarations ([#&#8203;50874](https://github.com/Microsoft/TypeScript/issues/50874))
-   [`92a1b12`](https://github.com/Microsoft/TypeScript/commit/92a1b124c178e1ff4871b29cb9abc00307e21742) LEGO: Merge pull request 50877
-   [`e383db6`](https://github.com/Microsoft/TypeScript/commit/e383db692eb44561333c1bbe353788b337aebc99) Fix debug.ts \__debugKind check ([#&#8203;50871](https://github.com/Microsoft/TypeScript/issues/50871))
-   [`01054e0`](https://github.com/Microsoft/TypeScript/commit/01054e05ab7638e96515619c4ce62200fdf4e0fd) Consistently add undefined/missing to optional tuple element types ([#&#8203;50831](https://github.com/Microsoft/TypeScript/issues/50831))
-   [`d90795e`](https://github.com/Microsoft/TypeScript/commit/d90795e799ca8e41aabd6d0852abb585138200ef) Improve escape sequence handling in private names ([#&#8203;50856](https://github.com/Microsoft/TypeScript/issues/50856))
-   [`938a69a`](https://github.com/Microsoft/TypeScript/commit/938a69a526166ca4e7880fa140fba432936f0fe3) Fix import statement completions followed by interface declaration ([#&#8203;50350](https://github.com/Microsoft/TypeScript/issues/50350))
-   [`e002159`](https://github.com/Microsoft/TypeScript/commit/e002159ad133a024bae48a2e190e54ad93f6b52d) feat(49962): Disallow comparison against NaN  ([#&#8203;50626](https://github.com/Microsoft/TypeScript/issues/50626))
-   [`80ae43d`](https://github.com/Microsoft/TypeScript/commit/80ae43d2399503a04651e3705823137d36148b00) Fixing spaces
-   [`abc58bd`](https://github.com/Microsoft/TypeScript/commit/abc58bdabcf536bd5204fbc84fb7f45d75f1a9ad) Fixing baseline errors
-   [`305f4bd`](https://github.com/Microsoft/TypeScript/commit/305f4bd420bf9edc0239fd3a740aa83fbdeb9ba2) Merge branch 'main' into fix/47969
-   [`23746af`](https://github.com/Microsoft/TypeScript/commit/23746af766b53fcc3afecfa16478809a5a36628a) fix(50591): RangeError: Maximum call stack size exceeded ([#&#8203;50594](https://github.com/Microsoft/TypeScript/issues/50594))
-   [`168186f`](https://github.com/Microsoft/TypeScript/commit/168186f93d23ae59dbea3fea2adba453527343fd) Allow a union property of a private/protected member and an intersection property including that same member ([#&#8203;50328](https://github.com/Microsoft/TypeScript/issues/50328))
-   [`812ebcf`](https://github.com/Microsoft/TypeScript/commit/812ebcf6e3aebfa72b976a6ae4d65929759a2867) Update package-lock.json
-   [`16156b1`](https://github.com/Microsoft/TypeScript/commit/16156b1baf26a39ce428423f7106f3ef2b4e98bb) Add rules from eslint's recommended set that triggered good lints ([#&#8203;50422](https://github.com/Microsoft/TypeScript/issues/50422))
-   [`a11c416`](https://github.com/Microsoft/TypeScript/commit/a11c41621bbbab100a391dd348651c6661549663) Improve checking of `in` operator ([#&#8203;50666](https://github.com/Microsoft/TypeScript/issues/50666))
-   [`67f2b62`](https://github.com/Microsoft/TypeScript/commit/67f2b62ed2bd1de0299781ba659fa638346bcecf) Gabritto/jsemitfixsilly ([#&#8203;50849](https://github.com/Microsoft/TypeScript/issues/50849))
-   [`3014dec`](https://github.com/Microsoft/TypeScript/commit/3014dec8878a9ff8d86186a6ac3fd9fad4f3b739) Don't elide imports when transforming JS files ([#&#8203;50404](https://github.com/Microsoft/TypeScript/issues/50404))
-   [`57c7aa7`](https://github.com/Microsoft/TypeScript/commit/57c7aa755ca3028ff13eb6a37d91775a6fac71e3) LEGO: Merge pull request 50842
-   [`48a8e89`](https://github.com/Microsoft/TypeScript/commit/48a8e8953a1e609970dc85e08f99ac499bfe8356) Improve check of whether type query node possibly contains reference to type parameter ([#&#8203;50070](https://github.com/Microsoft/TypeScript/issues/50070))
-   [`af9ced1`](https://github.com/Microsoft/TypeScript/commit/af9ced11f50c8ac15079d2f88f8961f1e5b62f7f) LEGO: Merge pull request 50825
-   [`a8e13f7`](https://github.com/Microsoft/TypeScript/commit/a8e13f7340c5229426072d443fa511bba82a0054) Fixed an issue with destructured bindings from a generic union constraint not being narrowed correctly ([#&#8203;50221](https://github.com/Microsoft/TypeScript/issues/50221))
-   [`08af0b6`](https://github.com/Microsoft/TypeScript/commit/08af0b6bf0041fef52ca8c1b69d6d4a3db439196) Update package-lock.json
-   [`0df46e8`](https://github.com/Microsoft/TypeScript/commit/0df46e873322b8eeb271a442eaf034d91ae68770) Fix test around RegExp match vs. exec results ([#&#8203;50813](https://github.com/Microsoft/TypeScript/issues/50813))
-   [`906510e`](https://github.com/Microsoft/TypeScript/commit/906510e0f30590a4c8fdc892905ccb8dbe512e3d) Fixes for pr
-   [`2970c5d`](https://github.com/Microsoft/TypeScript/commit/2970c5d1671b2376711cd55594c4597d6da7d8c3) make `RegExpExecArray` always include index 0 ([#&#8203;50713](https://github.com/Microsoft/TypeScript/issues/50713))
-   [`0507192`](https://github.com/Microsoft/TypeScript/commit/05071920a03f8ea530fe01f79f2537c999ec8b02) Accepting baselines
-   [`29e50b3`](https://github.com/Microsoft/TypeScript/commit/29e50b314900d22b08f6472918f59ae2b40aba08) Rewording documentation
-   [`01cae69`](https://github.com/Microsoft/TypeScript/commit/01cae69e3403a831bc5c752b95c8b7547dd95821) fix(50796): omit questionToken in object literal method completions ([#&#8203;50802](https://github.com/Microsoft/TypeScript/issues/50802))
-   [`3b84f76`](https://github.com/Microsoft/TypeScript/commit/3b84f76fb23bd39d14c7243e5cd495fd207916c0) Fix crash caused by incorrect bounds check (regression in 4.8) ([#&#8203;50797](https://github.com/Microsoft/TypeScript/issues/50797))
-   [`7e51306`](https://github.com/Microsoft/TypeScript/commit/7e51306d30b72ce474054c3f3047f57d90dca41a) Update package-lock.json
-   [`8b35c13`](https://github.com/Microsoft/TypeScript/commit/8b35c1300e14ebc026b4f1621db8f6f1bba30833) The error "Object is possibly null or undefined" is ambiguous. ([#&#8203;49797](https://github.com/Microsoft/TypeScript/issues/49797))
-   [`a3f51b3`](https://github.com/Microsoft/TypeScript/commit/a3f51b3b8278b7dc5f59d83f35458338f57c81c7) Update user baselines +cc [@&#8203;sandersn](https://github.com/sandersn) ([#&#8203;43554](https://github.com/Microsoft/TypeScript/issues/43554))
-   [`ba10a0d`](https://github.com/Microsoft/TypeScript/commit/ba10a0d7c06df259e620645a8d6fd9a5262d8b5d) Removing duplicated code
-   [`ec6ae1c`](https://github.com/Microsoft/TypeScript/commit/ec6ae1c4d0f48f15cd01b1502d0b2e5ac387dcf5) Partially revert [#&#8203;41044](https://github.com/Microsoft/TypeScript/issues/41044), restoring parameter destructurings in d.ts files ([#&#8203;50779](https://github.com/Microsoft/TypeScript/issues/50779))
-   [`28232ca`](https://github.com/Microsoft/TypeScript/commit/28232ca4b8833957cdf8d592f085fb80d97ef604) LEGO: Merge pull request 50783
-   [`49cfa1d`](https://github.com/Microsoft/TypeScript/commit/49cfa1db17b593191601736a11cbf165d42510a0) Update package-lock.json
-   [`4110b80`](https://github.com/Microsoft/TypeScript/commit/4110b80fbb24f2ac6dd284ef3511ca69ac6db517) Fix equality narrowing and comparable relation for intersections with {} ([#&#8203;50735](https://github.com/Microsoft/TypeScript/issues/50735))
-   [`b23f1d6`](https://github.com/Microsoft/TypeScript/commit/b23f1d6b59beabde1072d14b7fb65781ce209c15) LEGO: Merge pull request 50771
-   [`618fb2d`](https://github.com/Microsoft/TypeScript/commit/618fb2d8b92357d564ddb8596296ecaba5468002) Update package-lock.json
-   [`08b91f6`](https://github.com/Microsoft/TypeScript/commit/08b91f6b827e9ee98407c0eb969579ab77fa9f0c) fix(50717): tsc crashes when it sees a JSDoc tag inside an [@&#8203;override](https://github.com/override) annotation ([#&#8203;50724](https://github.com/Microsoft/TypeScript/issues/50724))
-   [`60963d7`](https://github.com/Microsoft/TypeScript/commit/60963d7216266bca6ef3236f43913de703fe5c7a) Discriminant of type `never` should never be matched ([#&#8203;50755](https://github.com/Microsoft/TypeScript/issues/50755))
-   [`e37ea53`](https://github.com/Microsoft/TypeScript/commit/e37ea53715a725dd13699dc1be5190c6ebd0d8f8) Update package-lock.json
-   [`a88c366`](https://github.com/Microsoft/TypeScript/commit/a88c36655b575d3039f187e64016b971efc0f173) Fix test baselining for tsserver host timeouts ([#&#8203;50748](https://github.com/Microsoft/TypeScript/issues/50748))
-   [`6d38487`](https://github.com/Microsoft/TypeScript/commit/6d384876e5adeffd6e04cf4e6dd7ea5fc0dd0584) Fix workflow typo ([#&#8203;50746](https://github.com/Microsoft/TypeScript/issues/50746))
-   [`6b890f9`](https://github.com/Microsoft/TypeScript/commit/6b890f93c491d3496dfd7909592c1df8a771fcd0) Handle more places where package direcroy is converted to canonical file path ([#&#8203;50740](https://github.com/Microsoft/TypeScript/issues/50740))
-   [`f5f2923`](https://github.com/Microsoft/TypeScript/commit/f5f2923c7d0f0963a78b9c5f233b635d4e78ae91) Revert removal of nonInferrableAnyType ([#&#8203;50691](https://github.com/Microsoft/TypeScript/issues/50691))
-   [`7120b52`](https://github.com/Microsoft/TypeScript/commit/7120b520cfe7b92d2b4bbfd679f1f5bd0c559c2c) Update twoslash workflow ([#&#8203;50738](https://github.com/Microsoft/TypeScript/issues/50738))
-   [`68d526c`](https://github.com/Microsoft/TypeScript/commit/68d526c200a0a5c51024586890b2473c9819c6ea) Don't run linter after tests runs ([#&#8203;50597](https://github.com/Microsoft/TypeScript/issues/50597))
-   [`8e5e2e0`](https://github.com/Microsoft/TypeScript/commit/8e5e2e08ead119910d6eb177eab9beb84e3ab311) Fix backticks in our JSDoc comments ([#&#8203;50737](https://github.com/Microsoft/TypeScript/issues/50737))
-   [`a4cabe7`](https://github.com/Microsoft/TypeScript/commit/a4cabe725b413f154f738b48c1fe2f053cff7d26) Support for auto-accessor fields from the Stage 3 Decorators proposal ([#&#8203;49705](https://github.com/Microsoft/TypeScript/issues/49705))
-   [`7737473`](https://github.com/Microsoft/TypeScript/commit/77374732df82c9d5c1319677dc595868bbc648b5) Update package-lock.json
-   [`12ab0fe`](https://github.com/Microsoft/TypeScript/commit/12ab0fea9f45c48ea644c8273bedde235c8bcc61) Update package-lock.json
-   [`eb40134`](https://github.com/Microsoft/TypeScript/commit/eb40134373cc524bd15432e15490d4e369754c50) Don't leave space for property access on non-integer literals ([#&#8203;50703](https://github.com/Microsoft/TypeScript/issues/50703))
-   [`a70bb9d`](https://github.com/Microsoft/TypeScript/commit/a70bb9d3ff102e044e83d2db43e585105e9a1761) Preserve special intersections in mapped types ([#&#8203;50704](https://github.com/Microsoft/TypeScript/issues/50704))
-   [`1a1c271`](https://github.com/Microsoft/TypeScript/commit/1a1c27167536e005a4d241ef84c43c0c0ca0aaf9) Don't remove space before dot if in property access on numeric literal ([#&#8203;50695](https://github.com/Microsoft/TypeScript/issues/50695))
-   [`7c918fb`](https://github.com/Microsoft/TypeScript/commit/7c918fb76682e79e8fd460cf1c2da9f2f22c91a3) Baseline host state when baselining tsserver tests ([#&#8203;50678](https://github.com/Microsoft/TypeScript/issues/50678))
-   [`2f1ba45`](https://github.com/Microsoft/TypeScript/commit/2f1ba45cbaca5e95959f9fd43c42edd64bc5638c) Update LKG and devDep of typescript to v4.8.3 ([#&#8203;50689](https://github.com/Microsoft/TypeScript/issues/50689))
-   [`be4e9ba`](https://github.com/Microsoft/TypeScript/commit/be4e9bac8ff66174d4e856dae06f69aa4ef7e479) Update package-lock.json
-   [`f46a680`](https://github.com/Microsoft/TypeScript/commit/f46a680863d7ecf7b7aa46b5e056acfe702b78bb) Remove error message in node16 ([#&#8203;50673](https://github.com/Microsoft/TypeScript/issues/50673))
-   [`ab831d0`](https://github.com/Microsoft/TypeScript/commit/ab831d018030304b886590fc4253f9dab593ddb0) Ignore `--help` and `-?` in `tsc init` generated `compilerOptions` ([#&#8203;50628](https://github.com/Microsoft/TypeScript/issues/50628))
-   [`bb6f36f`](https://github.com/Microsoft/TypeScript/commit/bb6f36f7c80c290b98759823445dae73ebfd3eb2) Forward intersection state flag to conditional type target check ([#&#8203;50620](https://github.com/Microsoft/TypeScript/issues/50620))
-   [`b58721f`](https://github.com/Microsoft/TypeScript/commit/b58721fe15a9d58aa9c2b53b6e6fdb7966f56d2c) Update package-lock.json
-   [`3c3820b`](https://github.com/Microsoft/TypeScript/commit/3c3820b1a4033de90a6f9369b3e714ba58231e99) Simplify CI detection ([#&#8203;50661](https://github.com/Microsoft/TypeScript/issues/50661))
-   [`9ac1fce`](https://github.com/Microsoft/TypeScript/commit/9ac1fce1175964f71117f6574d96eda127282bf4) Fix eslint not looking at certain scripts, fix lints ([#&#8203;50660](https://github.com/Microsoft/TypeScript/issues/50660))
-   [`fd05c0c`](https://github.com/Microsoft/TypeScript/commit/fd05c0cc6da676c5b9183ad2a7ced7ce363b855a) Make useFsEvents as default strategy for the watching ([#&#8203;50366](https://github.com/Microsoft/TypeScript/issues/50366))
-   [`5c2f770`](https://github.com/Microsoft/TypeScript/commit/5c2f770d9714276567e6ef9ec805368756539725) Remove unused cancellation from build ([#&#8203;50658](https://github.com/Microsoft/TypeScript/issues/50658))
-   [`66fbf05`](https://github.com/Microsoft/TypeScript/commit/66fbf058ece7882f2a964aeeda81bc352e4a6329) Update package-lock.json
-   [`7910c50`](https://github.com/Microsoft/TypeScript/commit/7910c509c4545517489d6264571bb6c05248fb4a) Update package-lock.json
-   [`fd3a84c`](https://github.com/Microsoft/TypeScript/commit/fd3a84c3f0c80cb201c47399a055625f919a9b91) Report every instance of TS1208 ([#&#8203;50101](https://github.com/Microsoft/TypeScript/issues/50101))
-   [`62f980a`](https://github.com/Microsoft/TypeScript/commit/62f980aff82ac8b5939bc9b65cf6e55d122b42d9) Check if its same buildinfo only for directly referenced projects and not recursively ([#&#8203;50617](https://github.com/Microsoft/TypeScript/issues/50617)) \[ [#&#8203;50545](https://github.com/Microsoft/TypeScript/issues/50545) ]
-   [`856c7c5`](https://github.com/Microsoft/TypeScript/commit/856c7c5fdd25833dbb0e1e67071200cd706eae4f) Allow `{}` to narrow in same special cases as `unknown` ([#&#8203;50601](https://github.com/Microsoft/TypeScript/issues/50601))
-   [`854d448`](https://github.com/Microsoft/TypeScript/commit/854d448e5ccf542a05d0b5dcb97e1b925905e258) `in` operator shouldn't narrow `{}` originating in `unknown` ([#&#8203;50610](https://github.com/Microsoft/TypeScript/issues/50610))
-   [`549e61d`](https://github.com/Microsoft/TypeScript/commit/549e61d0af1ba885be29d69f341e7d3a00686071) Update package-lock.json
-   [`bcf9949`](https://github.com/Microsoft/TypeScript/commit/bcf994996ea0ddd8ca7daadd6b5fbc712eb5ce6b) fix(50079): show deprecated on JSX attributes ([#&#8203;50084](https://github.com/Microsoft/TypeScript/issues/50084))
-   [`5df09a5`](https://github.com/Microsoft/TypeScript/commit/5df09a514c99010d3126d8a9f11aa00ecbd0bd21) Use bidirectional comparability in narrowing ([#&#8203;50592](https://github.com/Microsoft/TypeScript/issues/50592))
-   [`891cdc5`](https://github.com/Microsoft/TypeScript/commit/891cdc58aa4005d7197e76ec0a48afcbc3b44ac3) Remove unused baselines ([#&#8203;50593](https://github.com/Microsoft/TypeScript/issues/50593))
-   [`6db2c88`](https://github.com/Microsoft/TypeScript/commit/6db2c882f389c95c526df0e890354205b5696a7d) {} & null and {} & undefined should always be never  ([#&#8203;50553](https://github.com/Microsoft/TypeScript/issues/50553))
-   [`238c341`](https://github.com/Microsoft/TypeScript/commit/238c341701439a95d5eb71a4cf421c0574d0ee47) Defer distributing index over generic object types ([#&#8203;50540](https://github.com/Microsoft/TypeScript/issues/50540))
-   [`2983092`](https://github.com/Microsoft/TypeScript/commit/298309271bc526b9753c10c1c916bfe9d5c89a8b) Do not canonicalize the file names when getting absolute paths during nodenext resolution ([#&#8203;50557](https://github.com/Microsoft/TypeScript/issues/50557)) \[ [#&#8203;50544](https://github.com/Microsoft/TypeScript/issues/50544) ]
-   [`dcade77`](https://github.com/Microsoft/TypeScript/commit/dcade7732c142abba88eecae78c115fa37b95e01) Update package-lock.json
-   [`a9797d2`](https://github.com/Microsoft/TypeScript/commit/a9797d218d34fefc61b823d0e1dd24f6eb5363c8) fix(50340): typeof ... === "undefined" check on discriminated union of undefined and object type doesn't narrow correctly ([#&#8203;50344](https://github.com/Microsoft/TypeScript/issues/50344))
-   [`43f8ae6`](https://github.com/Microsoft/TypeScript/commit/43f8ae6df4ffefb7e4795808b94bcfbf74628682) Only normalize intersections that include {} ([#&#8203;50535](https://github.com/Microsoft/TypeScript/issues/50535))
-   [`d293e72`](https://github.com/Microsoft/TypeScript/commit/d293e723a20cdba258238397097e9a4e409bc41f) Rename API to importPlugin ([#&#8203;50554](https://github.com/Microsoft/TypeScript/issues/50554))
-   [`cd312d3`](https://github.com/Microsoft/TypeScript/commit/cd312d3076c054cdf9ed6f33c2d3e3995bca92eb) Managing control flow
-   [`19defbf`](https://github.com/Microsoft/TypeScript/commit/19defbfe576f3f2da32b5372274e4664b66ec00d) Update package-lock.json
-   [`f071d30`](https://github.com/Microsoft/TypeScript/commit/f071d303c182c2a776da1471a3ec9ef05297a9d8) Move contributing related info out of README to CONTRIBUTING ([#&#8203;50543](https://github.com/Microsoft/TypeScript/issues/50543))
-   [`488d0ee`](https://github.com/Microsoft/TypeScript/commit/488d0eebd0556fcc6e5f4cfc69c2ef7e5c2708ed) Retain name and propertyName in declaration emit copies of binding patterns if property name is a keyword ([#&#8203;50537](https://github.com/Microsoft/TypeScript/issues/50537))
-   [`8b482b5`](https://github.com/Microsoft/TypeScript/commit/8b482b513d87c6fcda8ece18b99f8a01cff5c605) Update package-lock.json
-   [`c89f355`](https://github.com/Microsoft/TypeScript/commit/c89f355a41b18c96eccb67dade04fce8c330068b) Remove redundant pretest script ([#&#8203;50518](https://github.com/Microsoft/TypeScript/issues/50518))
-   [`6d170b4`](https://github.com/Microsoft/TypeScript/commit/6d170b490d5ff5f881f6cbf8cd749e0103ee5d1f) Handle intersections in isGenericTypeWithoutNullableConstraint ([#&#8203;50497](https://github.com/Microsoft/TypeScript/issues/50497))
-   [`ed6889c`](https://github.com/Microsoft/TypeScript/commit/ed6889cd5b61b9fa5156018362d867def18e281d) LEGO: Merge pull request 50506
-   [`29cbfe9`](https://github.com/Microsoft/TypeScript/commit/29cbfe9a2504cfae30bae938bdb2be6081ccc5c8) LEGO: Merge pull request 50493
-   [`6faa291`](https://github.com/Microsoft/TypeScript/commit/6faa291b453987192d996517b4376b14980b25c4) LEGO: Merge pull request 50484
-   [`71b2ba6`](https://github.com/Microsoft/TypeScript/commit/71b2ba6111e934f2b4ee112bc4d8d2f47ced22f5) Reuse computed type of condition expressions ([#&#8203;49881](https://github.com/Microsoft/TypeScript/issues/49881))
-   [`8778c1d`](https://github.com/Microsoft/TypeScript/commit/8778c1ded3a1955dce1063d72caf4523bec37c90) Update package-lock.json
-   [`4579245`](https://github.com/Microsoft/TypeScript/commit/4579245f36d9c3deccb097da9d5545f9c5c1ab26) fix(50427): allow convert function expressions ([#&#8203;50430](https://github.com/Microsoft/TypeScript/issues/50430))
-   [`cbc0b17`](https://github.com/Microsoft/TypeScript/commit/cbc0b17eac1fcb011a66f0544c813968cdf065c4) Push package-lock.json updates via typescript-bot token ([#&#8203;50476](https://github.com/Microsoft/TypeScript/issues/50476))
-   [`bb3a7ae`](https://github.com/Microsoft/TypeScript/commit/bb3a7aec11a20afb30c5098a75e001d1a4eb08f9) fix(50415): Language server debug failure - Did not expect GetAccessor to have an Identifier in its trivia ([#&#8203;50470](https://github.com/Microsoft/TypeScript/issues/50470))
-   [`3557092`](https://github.com/Microsoft/TypeScript/commit/3557092b1474bc3405a29da93bd15c108ab2f8b3) Rephrase error message to be 100% technically correct ([#&#8203;50471](https://github.com/Microsoft/TypeScript/issues/50471))
-   [`71d1911`](https://github.com/Microsoft/TypeScript/commit/71d19115031ae1c48fa34a24636dfae5e87e1b08) add unknown to DateTimeFormatTypes ([#&#8203;50402](https://github.com/Microsoft/TypeScript/issues/50402))
-   [`8f89599`](https://github.com/Microsoft/TypeScript/commit/8f895997d2cb79deb937d50fa1bed1c470528025) Don't include .gitattributes in package ([#&#8203;50475](https://github.com/Microsoft/TypeScript/issues/50475))
-   [`6e8337e`](https://github.com/Microsoft/TypeScript/commit/6e8337ef70e4a36a4df76a3362a41cbcac0dcb84) Optimize substitution types ([#&#8203;50397](https://github.com/Microsoft/TypeScript/issues/50397))
-   [`226dd0b`](https://github.com/Microsoft/TypeScript/commit/226dd0b7bf5cb5e5bb4dc34ab0e8e14f408f3e20) Fix typechecking related lints that changed post 4.8, update LKG to 4.8.2 ([#&#8203;50472](https://github.com/Microsoft/TypeScript/issues/50472))
-   [`164dddc`](https://github.com/Microsoft/TypeScript/commit/164dddc48e1eaa83780b8e72bc7afeebe768437b) feat(7481): Operator to ensure an expression is contextually typed by, and satisfies, some type ([#&#8203;46827](https://github.com/Microsoft/TypeScript/issues/46827))
-   [`0715791`](https://github.com/Microsoft/TypeScript/commit/07157914eb26a6e9abdcda7255c4094c9efff4cd) Update package-lock.json
-   [`e675ea8`](https://github.com/Microsoft/TypeScript/commit/e675ea8dd83aaed018a67534323305c36d373b40) Remove AUTHORS.md, .mailmap, authors.ts script ([#&#8203;50410](https://github.com/Microsoft/TypeScript/issues/50410))
-   [`38076df`](https://github.com/Microsoft/TypeScript/commit/38076df3465af555051db06006bbf30323af0e2d) Fix auto import crash due to difference in `paths` handling ([#&#8203;50419](https://github.com/Microsoft/TypeScript/issues/50419))
-   [`12eb519`](https://github.com/Microsoft/TypeScript/commit/12eb519b3f81d0999bbc4ce9a845744f4dfc215e) fix(50435): Duplicate seeming Code Actions for convert const to let ([#&#8203;50442](https://github.com/Microsoft/TypeScript/issues/50442))
-   [`a08b045`](https://github.com/Microsoft/TypeScript/commit/a08b045d2b22c87a6341a0c1d1318271d14acc86) Jsdoc property description ([#&#8203;50269](https://github.com/Microsoft/TypeScript/issues/50269)) \[ [#&#8203;47933](https://github.com/Microsoft/TypeScript/issues/47933) ]
-   [`5ba22e0`](https://github.com/Microsoft/TypeScript/commit/5ba22e05a96538498a78ab206e1b9892f420e7a1) Remove top level loc folder ([#&#8203;50421](https://github.com/Microsoft/TypeScript/issues/50421))
-   [`c4eb37c`](https://github.com/Microsoft/TypeScript/commit/c4eb37c8a0d5915d64e3992a91a34724aab19fe6) Update package-lock.json
-   [`8d7ad8c`](https://github.com/Microsoft/TypeScript/commit/8d7ad8c3aee4130e2b8cc6438e03e12a39cd398a) fix(50375): Errors for missing enum-named properties should attempt to preserve names ([#&#8203;50382](https://github.com/Microsoft/TypeScript/issues/50382))
-   [`fb717df`](https://github.com/Microsoft/TypeScript/commit/fb717df6bf85318c3d1e833a1dde6789d394cdb2) Discard union types before considering weak type checks on unit-like types ([#&#8203;50423](https://github.com/Microsoft/TypeScript/issues/50423))
-   [`b9a5bbc`](https://github.com/Microsoft/TypeScript/commit/b9a5bbc9afe9fa231aba5162c258bf1e2fa1e82e) Syntax operations also need to ensure project is present for the open script infos since update could be pending to make sure open script info has project ([#&#8203;50418](https://github.com/Microsoft/TypeScript/issues/50418)) \[ [#&#8203;50131](https://github.com/Microsoft/TypeScript/issues/50131) ]
-   [`1d4fbbb`](https://github.com/Microsoft/TypeScript/commit/1d4fbbb529d183b1e6988447e6744cfa7750b9f6) Update package-lock.json
-   [`44ce3cf`](https://github.com/Microsoft/TypeScript/commit/44ce3cff70cb79d1a45b48def04413db5303a151) fix(50224): Intellisense for strings within a type's Union doesn't work properly for JSX ([#&#8203;50231](https://github.com/Microsoft/TypeScript/issues/50231))
-   [`6ee5db9`](https://github.com/Microsoft/TypeScript/commit/6ee5db95c2ad4fee74ad02368afa1d2cc693407e) Use package.json files array instead of .npmignore ([#&#8203;50408](https://github.com/Microsoft/TypeScript/issues/50408))

This list of changes was [auto generated](https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/\_release?releaseId=116&\_a=release-summary).</details>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yNC4xIiwidXBkYXRlZEluVmVyIjoiMzQuOTkuMiJ9-->

Co-authored-by: cabr2-bot <cabr2.help@gmail.com>
Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1642
Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org>
Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug
Projects
PR Backlog
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

7 participants