Computed names in declarations files are resolved even when non-literal, preserve computed names when expressions are entity names by weswigham · Pull Request #60052 · microsoft/TypeScript (original) (raw)
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 andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation44 Commits11 Checks32 Files changed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})
This PR basically removes the grammar error requiring computed names in declaration files/other contexts resolve to literal types, and allows them to resolve to whatever so long as they're an entity name expression (a.b.c
), and endeavors in declaration emit to preserve those input computed names that imply index signatures wherever possible. This clears the way for isolatedDeclarations
to allow always emitting a computed property name on the output for a computed property name on the input, so long as the expression is an entity name expression.
@weswigham Here are the results of running the user tests with tsc comparing main
and refs/pull/60052/merge
:
Something interesting changed - please have a look.
Details
effect
tsconfig.json
- [MISSING]
error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.
tsconfig.base.json
- [MISSING]
error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.
- [MISSING]
error TS1170: A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.
packages/schema/dtslint/tsconfig.json
- [MISSING]
error TS1170: A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.
@weswigham
The results of the perf run you requested are in!
Here they are:
tsc
Comparison Report - baseline..pr
Metric | baseline | pr | Delta | Best | Worst | p-value |
---|---|---|---|---|---|---|
Compiler-Unions - node (v18.15.0, x64) | ||||||
Errors | 30 | 30 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 62,340 | 62,340 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 50,378 | 50,378 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 193,214k (± 0.82%) | 195,011k (± 0.98%) | ~ | 192,422k | 196,310k | p=0.298 n=6 |
Parse Time | 1.93s (± 0.89%) | 1.96s (± 0.42%) | +0.03s (+ 1.64%) | 1.95s | 1.97s | p=0.006 n=6 |
Bind Time | 1.05s (± 0.79%) | 1.07s (± 0.98%) | ~ | 1.05s | 1.08s | p=0.122 n=6 |
Check Time | 13.98s (± 0.48%) | 13.97s (± 0.27%) | ~ | 13.91s | 14.00s | p=0.872 n=6 |
Emit Time | 4.09s (± 4.96%) | 4.04s (± 3.26%) | ~ | 3.97s | 4.31s | p=0.572 n=6 |
Total Time | 21.05s (± 0.79%) | 21.03s (± 0.54%) | ~ | 20.94s | 21.25s | p=0.686 n=6 |
angular-1 - node (v18.15.0, x64) | ||||||
Errors | 7 | 7 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 947,102 | 947,102 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 410,738 | 410,738 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 1,224,040k (± 0.00%) | 1,224,060k (± 0.00%) | ~ | 1,224,033k | 1,224,144k | p=0.689 n=6 |
Parse Time | 6.62s (± 0.57%) | 6.61s (± 0.67%) | ~ | 6.56s | 6.69s | p=0.688 n=6 |
Bind Time | 1.87s (± 0.22%) | 1.87s (± 0.40%) | ~ | 1.86s | 1.88s | p=1.000 n=6 |
Check Time | 31.30s (± 0.25%) | 31.41s (± 0.34%) | ~ | 31.27s | 31.56s | p=0.064 n=6 |
Emit Time | 15.05s (± 0.41%) | 15.03s (± 0.28%) | ~ | 14.98s | 15.07s | p=0.288 n=6 |
Total Time | 54.84s (± 0.25%) | 54.93s (± 0.31%) | ~ | 54.68s | 55.14s | p=0.378 n=6 |
mui-docs - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 2,521,651 | 2,521,652 | +1 (+ 0.00%) | ~ | ~ | p=0.001 n=6 |
Types | 936,037 | 936,038 | +1 (+ 0.00%) | ~ | ~ | p=0.001 n=6 |
Memory used | 2,351,731k (± 0.00%) | 2,351,955k (± 0.00%) | +224k (+ 0.01%) | 2,351,914k | 2,351,986k | p=0.005 n=6 |
Parse Time | 9.29s (± 0.33%) | 9.29s (± 0.22%) | ~ | 9.26s | 9.32s | p=0.871 n=6 |
Bind Time | 2.14s (± 0.35%) | 2.14s (± 0.55%) | ~ | 2.12s | 2.15s | p=0.933 n=6 |
Check Time | 73.26s (± 0.29%) | 73.48s (± 0.76%) | ~ | 73.00s | 74.46s | p=0.689 n=6 |
Emit Time | 0.28s (± 3.19%) | 0.27s (± 3.31%) | ~ | 0.26s | 0.28s | p=0.113 n=6 |
Total Time | 84.97s (± 0.27%) | 85.17s (± 0.66%) | ~ | 84.68s | 86.18s | p=0.688 n=6 |
self-build-src - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 1,250,056 | 1,250,396 | +340 (+ 0.03%) | ~ | ~ | p=0.001 n=6 |
Types | 264,970 | 265,020 | +50 (+ 0.02%) | ~ | ~ | p=0.001 n=6 |
Memory used | 2,404,455k (± 0.03%) | 2,405,163k (± 0.03%) | +708k (+ 0.03%) | 2,404,332k | 2,405,839k | p=0.045 n=6 |
Parse Time | 5.12s (± 0.51%) | 5.12s (± 0.43%) | ~ | 5.08s | 5.14s | p=1.000 n=6 |
Bind Time | 1.90s (± 0.47%) | 1.91s (± 0.39%) | ~ | 1.90s | 1.92s | p=0.149 n=6 |
Check Time | 34.91s (± 0.30%) | 34.95s (± 0.37%) | ~ | 34.70s | 35.07s | p=0.422 n=6 |
Emit Time | 3.02s (± 3.84%) | 2.99s (± 0.89%) | ~ | 2.95s | 3.03s | p=0.748 n=6 |
Total Time | 44.97s (± 0.45%) | 44.98s (± 0.33%) | ~ | 44.70s | 45.11s | p=0.298 n=6 |
self-build-src-public-api - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 1,250,056 | 1,250,396 | +340 (+ 0.03%) | ~ | ~ | p=0.001 n=6 |
Types | 264,970 | 265,020 | +50 (+ 0.02%) | ~ | ~ | p=0.001 n=6 |
Memory used | 2,478,660k (± 0.02%) | 2,479,162k (± 0.02%) | ~ | 2,478,578k | 2,480,282k | p=0.093 n=6 |
Parse Time | 6.37s (± 0.30%) | 6.35s (± 0.94%) | ~ | 6.25s | 6.41s | p=1.000 n=6 |
Bind Time | 2.05s (± 0.57%) | 2.06s (± 0.60%) | ~ | 2.04s | 2.07s | p=0.625 n=6 |
Check Time | 41.61s (± 0.92%) | 41.82s (± 0.83%) | ~ | 41.44s | 42.19s | p=0.298 n=6 |
Emit Time | 3.58s (± 1.28%) | 3.67s (± 3.57%) | ~ | 3.51s | 3.85s | p=0.173 n=6 |
Total Time | 53.63s (± 0.71%) | 53.92s (± 0.58%) | ~ | 53.50s | 54.21s | p=0.128 n=6 |
self-compiler - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 260,936 | 261,221 | +285 (+ 0.11%) | ~ | ~ | p=0.001 n=6 |
Types | 106,385 | 106,435 | +50 (+ 0.05%) | ~ | ~ | p=0.001 n=6 |
Memory used | 436,588k (± 0.03%) | 436,904k (± 0.01%) | +316k (+ 0.07%) | 436,835k | 436,951k | p=0.005 n=6 |
Parse Time | 2.85s (± 0.31%) | 2.86s (± 0.97%) | ~ | 2.83s | 2.90s | p=0.683 n=6 |
Bind Time | 1.08s (± 1.43%) | 1.07s (± 1.40%) | ~ | 1.06s | 1.09s | p=0.423 n=6 |
Check Time | 15.37s (± 0.35%) | 15.46s (± 0.25%) | +0.09s (+ 0.56%) | 15.39s | 15.51s | p=0.020 n=6 |
Emit Time | 1.28s (± 1.45%) | 1.29s (± 1.61%) | ~ | 1.26s | 1.32s | p=0.744 n=6 |
Total Time | 20.58s (± 0.30%) | 20.68s (± 0.36%) | ~ | 20.56s | 20.75s | p=0.065 n=6 |
ts-pre-modules - node (v18.15.0, x64) | ||||||
Errors | 68 | 68 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 225,916 | 225,916 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 94,414 | 94,414 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 370,841k (± 0.02%) | 370,962k (± 0.02%) | +121k (+ 0.03%) | 370,873k | 371,066k | p=0.013 n=6 |
Parse Time | 2.76s (± 1.24%) | 2.79s (± 0.67%) | ~ | 2.76s | 2.81s | p=0.259 n=6 |
Bind Time | 1.57s (± 1.38%) | 1.58s (± 1.06%) | ~ | 1.56s | 1.60s | p=0.463 n=6 |
Check Time | 15.78s (± 0.40%) | 15.77s (± 0.22%) | ~ | 15.73s | 15.82s | p=0.467 n=6 |
Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
Total Time | 20.11s (± 0.44%) | 20.14s (± 0.12%) | ~ | 20.12s | 20.18s | p=0.872 n=6 |
vscode - node (v18.15.0, x64) | ||||||
Errors | 1 | 1 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 3,099,775 | 3,099,775 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 1,068,973 | 1,068,973 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 3,196,811k (± 0.00%) | 3,197,123k (± 0.00%) | +312k (+ 0.01%) | 3,197,050k | 3,197,255k | p=0.005 n=6 |
Parse Time | 17.20s (± 0.22%) | 17.23s (± 0.41%) | ~ | 17.17s | 17.37s | p=0.332 n=6 |
Bind Time | 5.42s (± 2.44%) | 5.39s (± 2.61%) | ~ | 5.27s | 5.58s | p=0.936 n=6 |
Check Time | 100.10s (± 0.42%) | 100.11s (± 0.39%) | ~ | 99.73s | 100.78s | p=1.000 n=6 |
Emit Time | 27.43s (± 0.72%) | 27.45s (± 0.48%) | ~ | 27.31s | 27.67s | p=0.689 n=6 |
Total Time | 150.15s (± 0.33%) | 150.18s (± 0.39%) | ~ | 149.55s | 151.03s | p=0.689 n=6 |
webpack - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 278,920 | 278,920 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 113,837 | 113,837 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 428,349k (± 0.02%) | 428,371k (± 0.02%) | ~ | 428,277k | 428,542k | p=0.936 n=6 |
Parse Time | 3.95s (± 0.44%) | 3.94s (± 0.31%) | ~ | 3.93s | 3.96s | p=0.622 n=6 |
Bind Time | 1.72s (± 0.52%) | 1.72s (± 0.57%) | ~ | 1.71s | 1.73s | p=0.798 n=6 |
Check Time | 17.69s (± 0.24%) | 17.61s (± 0.39%) | ~ | 17.54s | 17.72s | p=0.065 n=6 |
Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
Total Time | 23.36s (± 0.18%) | 23.28s (± 0.32%) | ~ | 23.19s | 23.39s | p=0.073 n=6 |
xstate-main - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 540,027 | 540,027 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 181,292 | 181,292 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 483,548k (± 0.01%) | 483,586k (± 0.01%) | ~ | 483,525k | 483,677k | p=0.298 n=6 |
Parse Time | 4.02s (± 0.52%) | 4.01s (± 0.37%) | ~ | 3.99s | 4.03s | p=0.514 n=6 |
Bind Time | 1.42s (± 1.45%) | 1.43s (± 0.53%) | ~ | 1.42s | 1.44s | p=0.935 n=6 |
Check Time | 22.90s (± 0.55%) | 22.91s (± 0.36%) | ~ | 22.79s | 23.04s | p=0.873 n=6 |
Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
Total Time | 28.35s (± 0.43%) | 28.35s (± 0.29%) | ~ | 28.25s | 28.50s | p=1.000 n=6 |
System info unknown
Hosts
- node (v18.15.0, x64)
Scenarios
- Compiler-Unions - node (v18.15.0, x64)
- angular-1 - node (v18.15.0, x64)
- mui-docs - node (v18.15.0, x64)
- self-build-src - node (v18.15.0, x64)
- self-build-src-public-api - node (v18.15.0, x64)
- self-compiler - node (v18.15.0, x64)
- ts-pre-modules - node (v18.15.0, x64)
- vscode - node (v18.15.0, x64)
- webpack - node (v18.15.0, x64)
- xstate-main - node (v18.15.0, x64)
Benchmark | Name | Iterations |
---|---|---|
Current | pr | 6 |
Baseline | baseline | 6 |
Developer Information:
@weswigham Here are the results of running the top 400 repos with tsc comparing main
and refs/pull/60052/merge
:
Something interesting changed - please have a look.
Details
alibaba/lowcode-engine
40 of 42 projects failed to build with the old tsc and were ignored
modules/code-generator/tsconfig.json
error TS4082: Default export of the module has or is using private name 'CLASS_DEFINE_CHUNK_NAME'.
error TS4082: Default export of the module has or is using private name 'COMMON_CHUNK_NAME'.
FormidableLabs/victory
9 of 63 projects failed to build with the old tsc and were ignored
packages/victory-axis/tsconfig.json
error TS4025: Exported variable 'getBaseProps' has or is using private name 'axis'.
error TS4050: Return type of public static method from exported class has or is using name 'axis' from external module "/mnt/ts_downloads/_/m/victory/packages/victory-axis/src/helper-methods" but cannot be named.
packages/victory-axis/tsconfig.build.json
error TS4025: Exported variable 'getBaseProps' has or is using private name 'axis'.
error TS4050: Return type of public static method from exported class has or is using name 'axis' from external module "/mnt/ts_downloads/_/m/victory/packages/victory-axis/src/helper-methods" but cannot be named.
tinacms/tinacms
13 of 25 projects failed to build with the old tsc and were ignored
packages/@tinacms/schema-tools/tsconfig.json
error TS4031: Public property 'transformPayload' of exported class has or is using private name 'collectionName'.
packages/@tinacms/graphql/tsconfig.json
error TS2305: Module '"@tinacms/schema-tools"' has no exported member 'TinaSchema'.
- packages/@tinacms/graphql/src/build.ts#L6
- packages/@tinacms/graphql/src/builder/index.ts#L29
- packages/@tinacms/graphql/src/database/index.ts#L26
- packages/@tinacms/graphql/src/database/util.ts#L13
- packages/@tinacms/graphql/src/resolve.ts#L6
- packages/@tinacms/graphql/src/resolver/index.ts#L18
- packages/@tinacms/graphql/src/schema/createSchema.ts#L4
- packages/@tinacms/graphql/src/sdkBuilder/index.ts#L5
error TS2345: Argument of type 'unknown' is not assignable to parameter of type 'Collection<true>'.
- packages/@tinacms/graphql/src/build.ts#L60
- packages/@tinacms/graphql/src/build.ts#L180
- packages/@tinacms/graphql/src/build.ts#L184
- packages/@tinacms/graphql/src/build.ts#L187
- packages/@tinacms/graphql/src/build.ts#L190
- packages/@tinacms/graphql/src/build.ts#L195
- packages/@tinacms/graphql/src/build.ts#L198
- packages/@tinacms/graphql/src/build.ts#L201
- packages/@tinacms/graphql/src/database/util.ts#L191
error TS2339: Property 'namespace' does not exist on type 'unknown'.
- packages/@tinacms/graphql/src/build.ts#L84
- packages/@tinacms/graphql/src/build.ts#L85
- packages/@tinacms/graphql/src/build.ts#L87
- packages/@tinacms/graphql/src/build.ts#L89
- packages/@tinacms/graphql/src/builder/index.ts#L975
- packages/@tinacms/graphql/src/builder/index.ts#L975
- packages/@tinacms/graphql/src/builder/index.ts#L1009
- packages/@tinacms/graphql/src/builder/index.ts#L1009
- packages/@tinacms/graphql/src/resolver/index.ts#L584
- packages/@tinacms/graphql/src/resolver/index.ts#L599
error TS2339: Property 'isAuthCollection' does not exist on type 'unknown'.
error TS2345: Argument of type 'unknown' is not assignable to parameter of type 'TinaField<true>'.
error TS2345: Argument of type 'unknown' is not assignable to parameter of type 'Template<true>'.
error TS2339: Property 'name' does not exist on type 'unknown'.
- packages/@tinacms/graphql/src/builder/index.ts#L1320
- packages/@tinacms/graphql/src/builder/index.ts#L1321
- packages/@tinacms/graphql/src/builder/index.ts#L1362
- packages/@tinacms/graphql/src/builder/index.ts#L1363
- packages/@tinacms/graphql/src/database/util.ts#L174
- packages/@tinacms/graphql/src/database/util.ts#L177
error TS2339: Property 'path' does not exist on type 'unknown'.
error TS2339: Property 'format' does not exist on type 'unknown'.
packages/@tinacms/cli/tsconfig.json
error TS2305: Module '"@tinacms/schema-tools"' has no exported member 'TinaSchema'.
tusen-ai/naive-ui
3 of 6 projects failed to build with the old tsc and were ignored
src/tsconfig.demo.json
error TS4082: Default export of the module has or is using private name 'styleDirection'.
vuetifyjs/vuetify
3 of 7 projects failed to build with the old tsc and were ignored
packages/vuetify/tsconfig.json
error TS4060: Return type of exported function has or is using private name 'scopeId'.
packages/vuetify/tsconfig.dist.json
error TS4060: Return type of exported function has or is using private name 'scopeId'.
packages/vuetify/tsconfig.checks.json
error TS4060: Return type of exported function has or is using private name 'scopeId'.
You can't ship this before we do because it produces declaration files that can't be correctly read by current versions of TS 😉
…re entity name expressions
@weswigham Here are the results of running the user tests with tsc comparing main
and refs/pull/60052/merge
:
Something interesting changed - please have a look.
Details
effect
tsconfig.json
- [MISSING]
error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.
tsconfig.base.json
- [MISSING]
error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.
- [MISSING]
error TS1170: A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.
packages/schema/dtslint/tsconfig.json
- [MISSING]
error TS1170: A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.
@weswigham
The results of the perf run you requested are in!
Here they are:
tsc
Comparison Report - baseline..pr
Metric | baseline | pr | Delta | Best | Worst | p-value |
---|---|---|---|---|---|---|
Compiler-Unions - node (v18.15.0, x64) | ||||||
Errors | 31 | 31 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 62,340 | 62,340 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 50,379 | 50,379 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 193,378k (± 0.73%) | 192,924k (± 0.09%) | ~ | 192,779k | 193,152k | p=0.471 n=6 |
Parse Time | 1.31s (± 0.57%) | 1.31s (± 0.57%) | ~ | 1.30s | 1.32s | p=1.000 n=6 |
Bind Time | 0.72s | 0.72s | ~ | ~ | ~ | p=1.000 n=6 |
Check Time | 9.75s (± 0.53%) | 9.74s (± 0.25%) | ~ | 9.71s | 9.78s | p=0.872 n=6 |
Emit Time | 2.72s (± 0.59%) | 2.73s (± 0.51%) | ~ | 2.70s | 2.74s | p=0.315 n=6 |
Total Time | 14.50s (± 0.35%) | 14.50s (± 0.18%) | ~ | 14.46s | 14.53s | p=1.000 n=6 |
angular-1 - node (v18.15.0, x64) | ||||||
Errors | 33 | 33 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 947,886 | 947,886 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 410,840 | 410,840 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 1,224,800k (± 0.01%) | 1,224,879k (± 0.00%) | +78k (+ 0.01%) | 1,224,780k | 1,224,952k | p=0.031 n=6 |
Parse Time | 8.05s (± 0.83%) | 8.06s (± 0.86%) | ~ | 7.97s | 8.16s | p=0.810 n=6 |
Bind Time | 2.26s (± 0.72%) | 2.27s (± 1.24%) | ~ | 2.24s | 2.32s | p=0.739 n=6 |
Check Time | 37.72s (± 0.43%) | 37.62s (± 0.41%) | ~ | 37.39s | 37.79s | p=0.296 n=6 |
Emit Time | 18.08s (± 0.82%) | 18.17s (± 0.42%) | ~ | 18.09s | 18.25s | p=0.468 n=6 |
Total Time | 66.11s (± 0.24%) | 66.11s (± 0.22%) | ~ | 65.89s | 66.27s | p=0.873 n=6 |
mui-docs - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 2,522,038 | 2,522,038 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 936,053 | 936,053 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 2,352,501k (± 0.00%) | 2,352,657k (± 0.00%) | +156k (+ 0.01%) | 2,352,576k | 2,352,706k | p=0.005 n=6 |
Parse Time | 9.37s (± 0.23%) | 9.33s (± 0.25%) | -0.04s (- 0.46%) | 9.29s | 9.36s | p=0.014 n=6 |
Bind Time | 2.16s (± 0.24%) | 2.16s (± 0.29%) | ~ | 2.15s | 2.17s | p=0.386 n=6 |
Check Time | 75.87s (± 0.27%) | 75.65s (± 0.17%) | ~ | 75.49s | 75.79s | p=0.066 n=6 |
Emit Time | 0.28s (± 2.95%) | 0.28s (± 2.26%) | ~ | 0.27s | 0.29s | p=0.432 n=6 |
Total Time | 87.67s (± 0.23%) | 87.41s (± 0.15%) | ~ | 87.26s | 87.54s | p=0.066 n=6 |
self-build-src - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 1,258,106 | 1,258,459 | +353 (+ 0.03%) | ~ | ~ | p=0.001 n=6 |
Types | 266,266 | 266,354 | +88 (+ 0.03%) | ~ | ~ | p=0.001 n=6 |
Memory used | 3,146,790k (± 0.03%) | 3,146,909k (± 0.02%) | ~ | 3,146,389k | 3,147,720k | p=1.000 n=6 |
Parse Time | 6.59s (± 0.55%) | 6.59s (± 0.54%) | ~ | 6.54s | 6.63s | p=0.810 n=6 |
Bind Time | 2.35s (± 0.73%) | 2.34s (± 1.82%) | ~ | 2.28s | 2.41s | p=0.468 n=6 |
Check Time | 43.00s (± 0.25%) | 43.08s (± 0.33%) | ~ | 42.86s | 43.28s | p=0.378 n=6 |
Emit Time | 3.51s (± 2.00%) | 3.52s (± 1.40%) | ~ | 3.45s | 3.60s | p=0.936 n=6 |
Total Time | 55.45s (± 0.31%) | 55.54s (± 0.31%) | ~ | 55.27s | 55.79s | p=0.471 n=6 |
self-build-src-public-api - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 1,258,106 | 1,258,459 | +353 (+ 0.03%) | ~ | ~ | p=0.001 n=6 |
Types | 266,266 | 266,354 | +88 (+ 0.03%) | ~ | ~ | p=0.001 n=6 |
Memory used | 2,496,029k (± 0.01%) | 2,496,975k (± 0.01%) | +946k (+ 0.04%) | 2,496,399k | 2,497,391k | p=0.008 n=6 |
Parse Time | 5.41s (± 0.54%) | 5.37s (± 1.00%) | ~ | 5.32s | 5.47s | p=0.107 n=6 |
Bind Time | 1.74s (± 0.48%) | 1.74s (± 0.32%) | ~ | 1.73s | 1.74s | p=0.855 n=6 |
Check Time | 35.83s (± 0.20%) | 35.82s (± 0.16%) | ~ | 35.75s | 35.92s | p=0.810 n=6 |
Emit Time | 3.05s (± 1.10%) | 3.05s (± 2.13%) | ~ | 2.93s | 3.12s | p=1.000 n=6 |
Total Time | 46.03s (± 0.21%) | 45.98s (± 0.27%) | ~ | 45.91s | 46.23s | p=0.378 n=6 |
self-compiler - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 261,785 | 262,083 | +298 (+ 0.11%) | ~ | ~ | p=0.001 n=6 |
Types | 106,508 | 106,596 | +88 (+ 0.08%) | ~ | ~ | p=0.001 n=6 |
Memory used | 438,475k (± 0.01%) | 438,838k (± 0.01%) | +363k (+ 0.08%) | 438,803k | 438,875k | p=0.005 n=6 |
Parse Time | 2.90s (± 0.42%) | 2.88s (± 0.42%) | ~ | 2.87s | 2.90s | p=0.138 n=6 |
Bind Time | 1.10s | 1.10s | ~ | ~ | ~ | p=1.000 n=6 |
Check Time | 15.71s (± 0.25%) | 15.72s (± 0.27%) | ~ | 15.66s | 15.78s | p=0.809 n=6 |
Emit Time | 1.31s (± 1.31%) | 1.32s (± 0.96%) | ~ | 1.31s | 1.34s | p=0.359 n=6 |
Total Time | 21.02s (± 0.22%) | 21.03s (± 0.19%) | ~ | 20.98s | 21.07s | p=0.809 n=6 |
ts-pre-modules - node (v18.15.0, x64) | ||||||
Errors | 68 | 68 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 225,919 | 225,919 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 94,415 | 94,415 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 371,091k (± 0.02%) | 371,081k (± 0.01%) | ~ | 371,048k | 371,129k | p=0.575 n=6 |
Parse Time | 2.88s (± 1.13%) | 2.90s (± 0.55%) | ~ | 2.89s | 2.93s | p=0.224 n=6 |
Bind Time | 1.60s (± 1.84%) | 1.58s (± 0.89%) | ~ | 1.56s | 1.60s | p=0.258 n=6 |
Check Time | 16.32s (± 0.24%) | 16.30s (± 0.28%) | ~ | 16.25s | 16.38s | p=0.573 n=6 |
Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
Total Time | 20.80s (± 0.37%) | 20.79s (± 0.20%) | ~ | 20.74s | 20.85s | p=1.000 n=6 |
vscode - node (v18.15.0, x64) | ||||||
Errors | 3 | 3 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 3,110,299 | 3,110,299 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 1,072,179 | 1,072,179 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 3,202,479k (± 0.01%) | 3,203,049k (± 0.00%) | +570k (+ 0.02%) | 3,202,916k | 3,203,338k | p=0.005 n=6 |
Parse Time | 14.02s (± 0.33%) | 14.02s (± 0.45%) | ~ | 13.94s | 14.09s | p=0.872 n=6 |
Bind Time | 4.44s (± 0.44%) | 4.43s (± 0.24%) | ~ | 4.42s | 4.45s | p=0.871 n=6 |
Check Time | 85.29s (± 1.42%) | 86.61s (± 3.30%) | ~ | 84.75s | 92.09s | p=0.575 n=6 |
Emit Time | 24.92s (± 9.42%) | 24.08s (± 9.10%) | ~ | 22.53s | 26.93s | p=0.377 n=6 |
Total Time | 128.67s (± 2.09%) | 129.14s (± 2.74%) | ~ | 125.83s | 133.40s | p=0.936 n=6 |
webpack - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 279,484 | 279,484 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 114,024 | 114,024 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 429,365k (± 0.03%) | 429,460k (± 0.04%) | ~ | 429,295k | 429,739k | p=0.230 n=6 |
Parse Time | 5.02s (± 0.98%) | 5.06s (± 0.44%) | ~ | 5.04s | 5.10s | p=0.225 n=6 |
Bind Time | 2.14s (± 1.56%) | 2.15s (± 1.28%) | ~ | 2.12s | 2.19s | p=0.746 n=6 |
Check Time | 22.47s (± 0.56%) | 22.48s (± 0.54%) | ~ | 22.35s | 22.63s | p=0.936 n=6 |
Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
Total Time | 29.64s (± 0.30%) | 29.70s (± 0.42%) | ~ | 29.53s | 29.85s | p=0.572 n=6 |
xstate-main - node (v18.15.0, x64) | ||||||
Errors | 3 | 3 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 540,560 | 540,560 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 181,448 | 181,448 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 484,360k (± 0.01%) | 484,386k (± 0.01%) | ~ | 484,284k | 484,461k | p=0.298 n=6 |
Parse Time | 3.36s (± 0.72%) | 3.37s (± 0.56%) | ~ | 3.34s | 3.39s | p=0.571 n=6 |
Bind Time | 1.18s (± 0.89%) | 1.18s (± 1.16%) | ~ | 1.16s | 1.19s | p=0.804 n=6 |
Check Time | 19.12s (± 0.40%) | 19.04s (± 0.27%) | ~ | 18.97s | 19.10s | p=0.091 n=6 |
Emit Time | 0.00s (±244.70%) | 0.00s | ~ | ~ | ~ | p=0.405 n=6 |
Total Time | 23.66s (± 0.25%) | 23.59s (± 0.22%) | ~ | 23.51s | 23.65s | p=0.125 n=6 |
System info unknown
Hosts
- node (v18.15.0, x64)
Scenarios
- Compiler-Unions - node (v18.15.0, x64)
- angular-1 - node (v18.15.0, x64)
- mui-docs - node (v18.15.0, x64)
- self-build-src - node (v18.15.0, x64)
- self-build-src-public-api - node (v18.15.0, x64)
- self-compiler - node (v18.15.0, x64)
- ts-pre-modules - node (v18.15.0, x64)
- vscode - node (v18.15.0, x64)
- webpack - node (v18.15.0, x64)
- xstate-main - node (v18.15.0, x64)
Benchmark | Name | Iterations |
---|---|---|
Current | pr | 6 |
Baseline | baseline | 6 |
Developer Information:
@weswigham Here are the results of running the user tests with tsc comparing main
and refs/pull/60052/merge
:
Something interesting changed - please have a look.
Details
effect
tsconfig.json
- [MISSING]
error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.
tsconfig.base.json
- [MISSING]
error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.
- [MISSING]
error TS1170: A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.
packages/schema/dtslint/tsconfig.json
- [MISSING]
error TS1170: A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.
@weswigham
The results of the perf run you requested are in!
Here they are:
tsc
Comparison Report - baseline..pr
Metric | baseline | pr | Delta | Best | Worst | p-value |
---|---|---|---|---|---|---|
Compiler-Unions - node (v18.15.0, x64) | ||||||
Errors | 31 | 31 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 62,340 | 62,340 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 50,379 | 50,379 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 194,035k (± 0.98%) | 193,440k (± 0.74%) | ~ | 192,753k | 196,365k | p=0.575 n=6 |
Parse Time | 1.32s (± 0.48%) | 1.30s (± 0.97%) | -0.02s (- 1.52%) | 1.29s | 1.32s | p=0.019 n=6 |
Bind Time | 0.72s | 0.72s | ~ | ~ | ~ | p=1.000 n=6 |
Check Time | 9.73s (± 0.28%) | 9.73s (± 0.26%) | ~ | 9.69s | 9.77s | p=0.566 n=6 |
Emit Time | 2.73s (± 0.59%) | 2.71s (± 1.15%) | ~ | 2.66s | 2.75s | p=0.191 n=6 |
Total Time | 14.50s (± 0.31%) | 14.46s (± 0.27%) | ~ | 14.41s | 14.50s | p=0.125 n=6 |
angular-1 - node (v18.15.0, x64) | ||||||
Errors | 33 | 33 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 947,886 | 947,886 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 410,840 | 410,840 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 1,224,561k (± 0.00%) | 1,224,687k (± 0.00%) | +126k (+ 0.01%) | 1,224,644k | 1,224,743k | p=0.005 n=6 |
Parse Time | 6.66s (± 0.89%) | 6.63s (± 0.83%) | ~ | 6.55s | 6.69s | p=0.514 n=6 |
Bind Time | 1.89s (± 0.44%) | 1.88s (± 0.29%) | ~ | 1.88s | 1.89s | p=0.855 n=6 |
Check Time | 31.81s (± 0.38%) | 31.86s (± 0.15%) | ~ | 31.77s | 31.91s | p=0.377 n=6 |
Emit Time | 15.21s (± 0.88%) | 15.18s (± 0.40%) | ~ | 15.10s | 15.26s | p=1.000 n=6 |
Total Time | 55.56s (± 0.45%) | 55.56s (± 0.17%) | ~ | 55.40s | 55.65s | p=0.575 n=6 |
mui-docs - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 2,522,038 | 2,522,038 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 936,053 | 936,053 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 2,352,496k (± 0.00%) | 2,352,669k (± 0.00%) | +173k (+ 0.01%) | 2,352,612k | 2,352,740k | p=0.005 n=6 |
Parse Time | 9.37s (± 0.55%) | 9.35s (± 0.30%) | ~ | 9.30s | 9.37s | p=0.517 n=6 |
Bind Time | 2.17s (± 0.41%) | 2.16s (± 0.65%) | ~ | 2.14s | 2.18s | p=0.215 n=6 |
Check Time | 76.04s (± 0.38%) | 76.14s (± 0.26%) | ~ | 75.79s | 76.35s | p=0.575 n=6 |
Emit Time | 0.28s | 0.28s (± 1.47%) | ~ | 0.27s | 0.28s | p=0.405 n=6 |
Total Time | 87.86s (± 0.36%) | 87.92s (± 0.23%) | ~ | 87.57s | 88.17s | p=0.575 n=6 |
self-build-src - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 1,258,106 | 1,258,500 | +394 (+ 0.03%) | ~ | ~ | p=0.001 n=6 |
Types | 266,266 | 266,376 | +110 (+ 0.04%) | ~ | ~ | p=0.001 n=6 |
Memory used | 2,422,532k (± 0.01%) | 2,423,377k (± 0.02%) | +845k (+ 0.03%) | 2,423,035k | 2,424,182k | p=0.005 n=6 |
Parse Time | 5.20s (± 0.89%) | 5.20s (± 0.76%) | ~ | 5.14s | 5.24s | p=0.748 n=6 |
Bind Time | 1.93s (± 0.39%) | 1.93s (± 0.72%) | ~ | 1.91s | 1.94s | p=0.740 n=6 |
Check Time | 35.52s (± 0.28%) | 35.37s (± 0.34%) | ~ | 35.21s | 35.52s | p=0.054 n=6 |
Emit Time | 3.01s (± 1.85%) | 3.02s (± 0.71%) | ~ | 2.98s | 3.04s | p=1.000 n=6 |
Total Time | 45.68s (± 0.15%) | 45.52s (± 0.26%) | -0.16s (- 0.34%) | 45.35s | 45.64s | p=0.020 n=6 |
self-build-src-public-api - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 1,258,106 | 1,258,500 | +394 (+ 0.03%) | ~ | ~ | p=0.001 n=6 |
Types | 266,266 | 266,376 | +110 (+ 0.04%) | ~ | ~ | p=0.001 n=6 |
Memory used | 2,859,100k (±13.77%) | 2,766,705k (±12.90%) | ~ | 2,499,732k | 3,222,096k | p=0.689 n=6 |
Parse Time | 6.72s (± 2.99%) | 6.63s (± 2.17%) | ~ | 6.47s | 6.89s | p=0.748 n=6 |
Bind Time | 2.14s (± 1.99%) | 2.19s (± 3.98%) | ~ | 2.11s | 2.36s | p=0.336 n=6 |
Check Time | 43.19s (± 0.48%) | 43.07s (± 0.40%) | ~ | 42.81s | 43.33s | p=0.471 n=6 |
Emit Time | 3.57s (± 2.43%) | 3.49s (± 1.70%) | ~ | 3.41s | 3.59s | p=0.173 n=6 |
Total Time | 55.63s (± 0.46%) | 55.39s (± 0.29%) | ~ | 55.20s | 55.65s | p=0.128 n=6 |
self-compiler - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 261,785 | 262,124 | +339 (+ 0.13%) | ~ | ~ | p=0.001 n=6 |
Types | 106,508 | 106,618 | +110 (+ 0.10%) | ~ | ~ | p=0.001 n=6 |
Memory used | 438,789k (± 0.01%) | 439,077k (± 0.01%) | +288k (+ 0.07%) | 439,040k | 439,137k | p=0.005 n=6 |
Parse Time | 3.54s (± 0.67%) | 3.54s (± 1.41%) | ~ | 3.48s | 3.63s | p=0.809 n=6 |
Bind Time | 1.31s (± 0.89%) | 1.32s (± 1.12%) | ~ | 1.30s | 1.33s | p=0.219 n=6 |
Check Time | 18.94s (± 0.42%) | 18.84s (± 0.36%) | ~ | 18.72s | 18.92s | p=0.064 n=6 |
Emit Time | 1.55s (± 1.27%) | 1.54s (± 1.26%) | ~ | 1.52s | 1.57s | p=0.466 n=6 |
Total Time | 25.33s (± 0.40%) | 25.24s (± 0.24%) | ~ | 25.14s | 25.31s | p=0.172 n=6 |
ts-pre-modules - node (v18.15.0, x64) | ||||||
Errors | 68 | 68 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 225,919 | 225,919 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 94,415 | 94,415 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 371,077k (± 0.01%) | 371,092k (± 0.01%) | ~ | 371,027k | 371,165k | p=0.630 n=6 |
Parse Time | 3.59s (± 1.59%) | 3.62s (± 1.41%) | ~ | 3.52s | 3.66s | p=0.260 n=6 |
Bind Time | 1.96s (± 1.66%) | 1.96s (± 0.95%) | ~ | 1.93s | 1.98s | p=1.000 n=6 |
Check Time | 20.27s (± 0.28%) | 20.31s (± 0.32%) | ~ | 20.24s | 20.41s | p=0.145 n=6 |
Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
Total Time | 25.82s (± 0.25%) | 25.88s (± 0.29%) | ~ | 25.78s | 25.97s | p=0.227 n=6 |
vscode - node (v18.15.0, x64) | ||||||
Errors | 3 | 3 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 3,110,459 | 3,110,459 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 1,072,226 | 1,072,226 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 3,202,640k (± 0.01%) | 3,203,131k (± 0.00%) | +491k (+ 0.02%) | 3,202,948k | 3,203,256k | p=0.008 n=6 |
Parse Time | 14.10s (± 0.70%) | 14.00s (± 0.28%) | ~ | 13.94s | 14.05s | p=0.077 n=6 |
Bind Time | 4.44s (± 0.23%) | 4.43s (± 0.26%) | ~ | 4.41s | 4.44s | p=0.491 n=6 |
Check Time | 86.30s (± 1.71%) | 85.42s (± 1.41%) | ~ | 84.13s | 87.72s | p=0.173 n=6 |
Emit Time | 24.62s (± 8.98%) | 23.45s (± 7.52%) | ~ | 22.60s | 27.04s | p=0.471 n=6 |
Total Time | 129.44s (± 2.70%) | 127.31s (± 2.30%) | ~ | 125.26s | 133.20s | p=0.093 n=6 |
webpack - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 279,484 | 279,484 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 114,024 | 114,024 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 429,471k (± 0.03%) | 429,554k (± 0.02%) | ~ | 429,430k | 429,687k | p=0.230 n=6 |
Parse Time | 4.07s (± 0.36%) | 4.06s (± 0.93%) | ~ | 3.99s | 4.09s | p=0.806 n=6 |
Bind Time | 1.74s (± 0.63%) | 1.73s (± 1.69%) | ~ | 1.69s | 1.78s | p=0.319 n=6 |
Check Time | 18.11s (± 0.58%) | 18.21s (± 0.23%) | ~ | 18.13s | 18.25s | p=0.197 n=6 |
Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
Total Time | 23.92s (± 0.41%) | 23.99s (± 0.29%) | ~ | 23.90s | 24.08s | p=0.199 n=6 |
xstate-main - node (v18.15.0, x64) | ||||||
Errors | 3 | 3 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 540,560 | 540,560 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 181,448 | 181,448 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 484,316k (± 0.01%) | 484,365k (± 0.01%) | ~ | 484,311k | 484,418k | p=0.066 n=6 |
Parse Time | 3.35s (± 0.74%) | 3.35s (± 1.09%) | ~ | 3.31s | 3.41s | p=0.934 n=6 |
Bind Time | 1.17s (± 0.84%) | 1.18s (± 1.03%) | ~ | 1.17s | 1.20s | p=0.734 n=6 |
Check Time | 19.05s (± 0.28%) | 19.06s (± 0.39%) | ~ | 18.99s | 19.18s | p=0.872 n=6 |
Emit Time | 0.00s (±244.70%) | 0.00s | ~ | ~ | ~ | p=0.405 n=6 |
Total Time | 23.57s (± 0.26%) | 23.59s (± 0.29%) | ~ | 23.48s | 23.67s | p=0.689 n=6 |
System info unknown
Hosts
- node (v18.15.0, x64)
Scenarios
- Compiler-Unions - node (v18.15.0, x64)
- angular-1 - node (v18.15.0, x64)
- mui-docs - node (v18.15.0, x64)
- self-build-src - node (v18.15.0, x64)
- self-build-src-public-api - node (v18.15.0, x64)
- self-compiler - node (v18.15.0, x64)
- ts-pre-modules - node (v18.15.0, x64)
- vscode - node (v18.15.0, x64)
- webpack - node (v18.15.0, x64)
- xstate-main - node (v18.15.0, x64)
Benchmark | Name | Iterations |
---|---|---|
Current | pr | 6 |
Baseline | baseline | 6 |
Developer Information:
1 similar comment
@weswigham
The results of the perf run you requested are in!
Here they are:
tsc
Comparison Report - baseline..pr
Metric | baseline | pr | Delta | Best | Worst | p-value |
---|---|---|---|---|---|---|
Compiler-Unions - node (v18.15.0, x64) | ||||||
Errors | 34 | 34 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 62,363 | 62,363 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 50,395 | 50,395 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 195,543k (± 0.93%) | 194,863k (± 1.04%) | ~ | 192,999k | 196,767k | p=0.336 n=6 |
Parse Time | 1.30s (± 0.94%) | 1.31s (± 0.92%) | ~ | 1.29s | 1.32s | p=0.300 n=6 |
Bind Time | 0.72s | 0.72s | ~ | ~ | ~ | p=1.000 n=6 |
Check Time | 9.79s (± 0.43%) | 9.80s (± 0.43%) | ~ | 9.76s | 9.87s | p=1.000 n=6 |
Emit Time | 2.73s (± 0.49%) | 2.73s (± 0.75%) | ~ | 2.70s | 2.76s | p=0.605 n=6 |
Total Time | 14.54s (± 0.32%) | 14.56s (± 0.36%) | ~ | 14.50s | 14.64s | p=0.747 n=6 |
angular-1 - node (v18.15.0, x64) | ||||||
Errors | 37 | 37 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 947,936 | 947,936 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 410,955 | 410,955 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 1,225,834k (± 0.00%) | 1,225,865k (± 0.00%) | ~ | 1,225,827k | 1,225,927k | p=0.471 n=6 |
Parse Time | 6.66s (± 0.61%) | 6.66s (± 0.67%) | ~ | 6.59s | 6.71s | p=0.872 n=6 |
Bind Time | 1.89s (± 0.33%) | 1.89s (± 0.27%) | ~ | 1.88s | 1.89s | p=0.386 n=6 |
Check Time | 32.05s (± 0.43%) | 31.97s (± 0.39%) | ~ | 31.79s | 32.11s | p=0.297 n=6 |
Emit Time | 15.17s (± 0.18%) | 15.19s (± 0.42%) | ~ | 15.09s | 15.28s | p=0.318 n=6 |
Total Time | 55.78s (± 0.29%) | 55.71s (± 0.20%) | ~ | 55.56s | 55.84s | p=0.378 n=6 |
mui-docs - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 2,501,827 | 2,501,827 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 909,625 | 909,625 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 2,319,533k (± 0.00%) | 2,319,775k (± 0.00%) | +242k (+ 0.01%) | 2,319,672k | 2,319,971k | p=0.005 n=6 |
Parse Time | 11.21s (± 0.48%) | 11.21s (± 0.73%) | ~ | 11.08s | 11.32s | p=1.000 n=6 |
Bind Time | 2.61s (± 0.58%) | 2.62s (± 0.74%) | ~ | 2.60s | 2.65s | p=0.408 n=6 |
Check Time | 91.22s (± 2.56%) | 90.44s (± 1.49%) | ~ | 88.96s | 92.19s | p=0.471 n=6 |
Emit Time | 0.35s (± 3.32%) | 0.35s (± 3.32%) | ~ | 0.34s | 0.37s | p=1.000 n=6 |
Total Time | 105.39s (± 2.18%) | 104.62s (± 1.25%) | ~ | 103.17s | 106.37s | p=0.575 n=6 |
self-build-src - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 1,225,330 | 1,225,725 | +395 (+ 0.03%) | ~ | ~ | p=0.001 n=6 |
Types | 266,569 | 266,679 | +110 (+ 0.04%) | ~ | ~ | p=0.001 n=6 |
Memory used | 3,084,924k (± 0.03%) | 2,842,889k (±13.22%) | ~ | 2,356,448k | 3,085,999k | p=0.810 n=6 |
Parse Time | 6.79s (± 0.77%) | 6.72s (± 1.14%) | ~ | 6.61s | 6.82s | p=0.298 n=6 |
Bind Time | 2.11s (± 1.57%) | 2.14s (± 0.42%) | ~ | 2.13s | 2.15s | p=0.065 n=6 |
Check Time | 42.81s (± 0.37%) | 42.70s (± 0.40%) | ~ | 42.49s | 42.95s | p=0.378 n=6 |
Emit Time | 3.44s (± 2.41%) | 3.57s (± 3.73%) | ~ | 3.47s | 3.79s | p=0.109 n=6 |
Total Time | 55.15s (± 0.39%) | 55.13s (± 0.44%) | ~ | 54.80s | 55.43s | p=0.810 n=6 |
self-build-src-public-api - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 1,225,330 | 1,225,725 | +395 (+ 0.03%) | ~ | ~ | p=0.001 n=6 |
Types | 266,569 | 266,679 | +110 (+ 0.04%) | ~ | ~ | p=0.001 n=6 |
Memory used | 2,421,934k (± 0.02%) | 2,422,995k (± 0.02%) | +1,062k (+ 0.04%) | 2,422,352k | 2,423,695k | p=0.013 n=6 |
Parse Time | 5.45s (± 1.18%) | 5.48s (± 1.01%) | ~ | 5.41s | 5.56s | p=0.336 n=6 |
Bind Time | 1.83s (± 0.67%) | 1.82s (± 0.41%) | ~ | 1.81s | 1.83s | p=0.929 n=6 |
Check Time | 35.26s (± 0.17%) | 35.30s (± 0.24%) | ~ | 35.21s | 35.42s | p=0.423 n=6 |
Emit Time | 3.02s (± 3.83%) | 3.01s (± 1.24%) | ~ | 2.95s | 3.05s | p=0.422 n=6 |
Total Time | 45.57s (± 0.47%) | 45.61s (± 0.16%) | ~ | 45.53s | 45.73s | p=0.092 n=6 |
self-compiler - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 262,269 | 262,609 | +340 (+ 0.13%) | ~ | ~ | p=0.001 n=6 |
Types | 106,628 | 106,738 | +110 (+ 0.10%) | ~ | ~ | p=0.001 n=6 |
Memory used | 439,863k (± 0.02%) | 440,355k (± 0.01%) | +492k (+ 0.11%) | 440,275k | 440,440k | p=0.005 n=6 |
Parse Time | 2.88s (± 0.72%) | 2.89s (± 0.44%) | ~ | 2.88s | 2.91s | p=0.867 n=6 |
Bind Time | 1.10s (± 0.37%) | 1.10s | ~ | ~ | ~ | p=0.405 n=6 |
Check Time | 15.78s (± 0.37%) | 15.76s (± 0.32%) | ~ | 15.70s | 15.84s | p=0.519 n=6 |
Emit Time | 1.30s (± 0.90%) | 1.31s (± 0.92%) | ~ | 1.30s | 1.33s | p=0.138 n=6 |
Total Time | 21.06s (± 0.38%) | 21.06s (± 0.32%) | ~ | 20.99s | 21.17s | p=0.936 n=6 |
ts-pre-modules - node (v18.15.0, x64) | ||||||
Errors | 70 | 70 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 226,062 | 226,062 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 94,488 | 94,488 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 371,608k (± 0.01%) | 371,625k (± 0.01%) | ~ | 371,574k | 371,648k | p=0.575 n=6 |
Parse Time | 2.90s (± 0.98%) | 2.88s (± 1.17%) | ~ | 2.84s | 2.92s | p=0.333 n=6 |
Bind Time | 1.58s (± 0.66%) | 1.59s (± 1.19%) | ~ | 1.56s | 1.62s | p=0.549 n=6 |
Check Time | 16.49s (± 0.36%) | 16.47s (± 0.26%) | ~ | 16.42s | 16.53s | p=0.575 n=6 |
Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
Total Time | 20.98s (± 0.32%) | 20.94s (± 0.29%) | ~ | 20.85s | 21.03s | p=0.294 n=6 |
vscode - node (v18.15.0, x64) | ||||||
Errors | 3 | 3 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 3,197,901 | 3,197,901 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 1,099,331 | 1,099,331 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 3,271,892k (± 0.01%) | 3,271,915k (± 0.01%) | ~ | 3,271,523k | 3,272,515k | p=0.936 n=6 |
Parse Time | 14.16s (± 0.33%) | 14.17s (± 0.27%) | ~ | 14.13s | 14.22s | p=1.000 n=6 |
Bind Time | 4.54s (± 0.64%) | 4.52s (± 0.44%) | ~ | 4.49s | 4.54s | p=0.195 n=6 |
Check Time | 88.08s (± 2.16%) | 86.79s (± 0.57%) | ~ | 86.18s | 87.42s | p=0.575 n=6 |
Emit Time | 27.06s (± 7.58%) | 28.24s (± 2.44%) | ~ | 27.26s | 28.84s | p=0.173 n=6 |
Total Time | 133.84s (± 1.20%) | 133.71s (± 0.80%) | ~ | 132.31s | 134.59s | p=0.810 n=6 |
webpack - node (v18.15.0, x64) | ||||||
Errors | 0 | 0 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 288,747 | 288,747 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 117,158 | 117,158 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 440,950k (± 0.02%) | 441,056k (± 0.02%) | ~ | 440,907k | 441,165k | p=0.093 n=6 |
Parse Time | 4.08s (± 0.94%) | 4.10s (± 1.27%) | ~ | 4.02s | 4.16s | p=0.871 n=6 |
Bind Time | 1.76s (± 0.91%) | 1.76s (± 1.63%) | ~ | 1.72s | 1.79s | p=0.627 n=6 |
Check Time | 18.85s (± 0.37%) | 18.79s (± 0.49%) | ~ | 18.67s | 18.89s | p=0.226 n=6 |
Emit Time | 0.00s | 0.00s | ~ | ~ | ~ | p=1.000 n=6 |
Total Time | 24.69s (± 0.27%) | 24.64s (± 0.66%) | ~ | 24.41s | 24.84s | p=0.748 n=6 |
xstate-main - node (v18.15.0, x64) | ||||||
Errors | 5 | 5 | ~ | ~ | ~ | p=1.000 n=6 |
Symbols | 552,389 | 552,389 | ~ | ~ | ~ | p=1.000 n=6 |
Types | 185,093 | 185,093 | ~ | ~ | ~ | p=1.000 n=6 |
Memory used | 492,432k (± 0.02%) | 492,546k (± 0.02%) | ~ | 492,413k | 492,676k | p=0.066 n=6 |
Parse Time | 3.42s (± 0.75%) | 3.41s (± 0.49%) | ~ | 3.39s | 3.43s | p=0.869 n=6 |
Bind Time | 1.18s (± 1.49%) | 1.17s (± 1.04%) | ~ | 1.15s | 1.18s | p=0.328 n=6 |
Check Time | 19.57s (± 1.12%) | 19.50s (± 0.35%) | ~ | 19.39s | 19.58s | p=0.809 n=6 |
Emit Time | 0.00s | 0.00s (±244.70%) | ~ | 0.00s | 0.01s | p=0.405 n=6 |
Total Time | 24.17s (± 0.86%) | 24.08s (± 0.32%) | ~ | 23.98s | 24.17s | p=0.423 n=6 |
System info unknown
Hosts
- node (v18.15.0, x64)
Scenarios
- Compiler-Unions - node (v18.15.0, x64)
- angular-1 - node (v18.15.0, x64)
- mui-docs - node (v18.15.0, x64)
- self-build-src - node (v18.15.0, x64)
- self-build-src-public-api - node (v18.15.0, x64)
- self-compiler - node (v18.15.0, x64)
- ts-pre-modules - node (v18.15.0, x64)
- vscode - node (v18.15.0, x64)
- webpack - node (v18.15.0, x64)
- xstate-main - node (v18.15.0, x64)
Benchmark | Name | Iterations |
---|---|---|
Current | pr | 6 |
Baseline | baseline | 6 |
Developer Information:
@weswigham Here are the results of running the top 400 repos with tsc comparing main
and refs/pull/60052/merge
:
Everything looks good!
Computed properties that have a computed name of a literal type seem to be duplicated when another computed property that is not a literal type is present:
// index.ts declare const x: string; declare const y: "y";
export class Test { [x] = 10; [y] = 10; }
// index.d.ts declare const x: string; declare const y: "y"; export declare class Test { [x]: number; [y]: number; [y]: number; // ❌ } export {};
Does this definitely fix #60818?
Not intentionally, since it's only a.b.c
style names this PR special-cases to copy through to declaration emit, but the late bound index signature logic may be generic enough to at least remove the index error and make an indexer on the resulting type, rather than not and issuing an error. Though it'd obviously be better if the element access behaved more like the equivalent dotted name and produced a concrete property, which is what I'd say the "real fix" aughta be.
@typescript-bot pack this
Starting jobs; this comment will be updated as builds start and complete.
Command | Status | Results |
---|---|---|
pack this | ✅ Started | ✅ Results |
Hey @weswigham, I've packed this into an installable tgz. You can install it for testing by referencing it in your package.json
like so:
{
"devDependencies": {
"typescript": "https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/_apis/build/builds/164590/artifacts?artifactName=tgz&fileId=F6ABB72746FFE8FA00220E3BDB1DD1A1944C2317AEEF5C0C73BAC8C6962134A102&fileName=/typescript-5.8.0-insiders.20250121.tgz"
}
}
and then running npm install
.
There is also a playground for this build and an npm module you can use via "typescript": "npm:@typescript-deploys/pr-build@5.8.0-pr-60052-36"
.;
I think this does what it should, but what's our strategy for dealing with the fact that this PR will cause index expressions to be emitted in such a way that TS<5.8 will be unable to read them?
Is this break acceptable? I think it has to be, because we really want to do it, but it seems like we're going to have to be really clear in the blog post to people that the types may have to be downleveled somehow...
Concretely, before:
declare class Base1 { [x: string]: () => void; }
After:
declare let prop: string; declare class Base1 { [prop]: () => void; }
Is this break acceptable? I think it has to be, because we really want to do it, but it seems like we're going to have to be really clear in the blog post to people that the types may have to be downleveled somehow
Yeah. Wouldn't be the first time. It's also notable that while you do have to downlevel the declaration to inline the computed name's type to remove the A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.
error in old versions of TS, it actually does still typecheck as expected despite the error in TS 5.7, thanks to the existing index signature work. So there's a tiny bit of versioning grace there, at least.
What's the minimal input file that would cause a freshly-generated .d.ts file to not be readable by 5.7?
In testing this, I think I found a bug:
let prop!: string;
export class Base1 { [x: string]: () => void; [prop]!: () => void; }
export class Base2 { [prop]!: () => void; [x: string]: () => void; }
The d.ts emit for this after the PR is:
export declare class Base1 { [x: string]: () => void; } export declare class Base2 { [x: string]: () => void; }
But, we can't know without type analysis that the computed property is safe to drop, and the emitter can't make that decision based on whether or not isolatedDeclarations is enabled (and those kinds of emitters would preserve both).
What's the minimal input file that would cause a freshly-generated .d.ts file to not be readable by 5.7?
let prop!: string;
export class Base1 { [prop]!: () => void; }
which will produce
declare prop: string;
declare export class Base1 { [prop]: () => void; }
except it is readable in 5.7, where I introduced the new computed name index signature behavior for classes (but not earlier), it just has an error in the .d.ts
(though will typecheck correctly).
In testing this, I think I found a bug:
A full ID emitter will be forced to retain all possibly-conflicting names, yeah. Which is fine, duplicate declarations basically merge. Where you can, removing dupes from the output is our expected behavior, though.
A full ID emitter will be forced to retain all possibly-conflicting names, yeah. Which is fine, duplicate declarations basically merge. Where you can, removing dupes from the output is our expected behavior, though.
Don't we want to keep declaration emit in sync to what an ID emitter could produce though? Because what I understand form this is that TS will remove the dupes while an ID emitter will not (since it needs type info to do so).
Yes, that is why I am concerned; I do not think we should be removing them as we have previously said that we should have one emit that does the same as ID.