Skip to content

Fixed syntactic nullisness semantics for tagged template expressions - #60616

Merged
Ryan Cavanaugh (RyanCavanaugh) merged 1 commit into
microsoft:mainfrom
Andarist:fix/nullish-syntactic-semantics-tagged-templates
Nov 26, 2024
Merged

Fixed syntactic nullisness semantics for tagged template expressions#60616
Ryan Cavanaugh (RyanCavanaugh) merged 1 commit into
microsoft:mainfrom
Andarist:fix/nullish-syntactic-semantics-tagged-templates

Conversation

@Andarist

Copy link
Copy Markdown
Contributor

fixes#60614

@typescript-botTypeScript Bot (typescript-bot) added the For Uncommitted Bug PR for untriaged, rejected, closed or missing bug label Nov 26, 2024
@Andarist
Mateusz Burzyński (Andarist)force-pushed the fix/nullish-syntactic-semantics-tagged-templates branch from b918877 to 4a63167CompareNovember 26, 2024 20:29
@jakebailey

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) test it

@typescript-bot

TypeScript Bot (typescript-bot) commented Nov 26, 2024

Copy link
Copy Markdown
Contributor

Starting jobs; this comment will be updated as builds start and complete.

CommandStatusResults
test top400✅ Started✅ Results
user test this✅ Started✅ Results
run dt✅ Started✅ Results
perf test this faster✅ Started👀 Results

@typescript-bot

Copy link
Copy Markdown
Contributor

Hey Jake Bailey (@jakebailey), the results of running the DT tests are ready.

Everything looks the same!

You can check the log here.

@typescript-bot

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey) Here are the results of running the user tests with tsc comparing main and refs/pull/60616/merge:

Everything looks good!

@typescript-bot

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey)
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
MetricbaselineprDeltaBestWorstp-value
Compiler-Unions - node (v18.15.0, x64)
Errors3434~~~p=1.000 n=6
Symbols62,36362,363~~~p=1.000 n=6
Types50,39550,395~~~p=1.000 n=6
Memory used194,356k (± 0.92%)193,030k (± 0.01%)~192,997k193,047kp=0.128 n=6
Parse Time1.29s (± 1.06%)1.32s (± 0.39%)+0.02s (+ 1.80%)1.31s1.32sp=0.022 n=6
Bind Time0.72s0.72s~~~p=1.000 n=6
Check Time9.83s (± 0.20%)9.81s (± 0.64%)~9.69s9.87sp=0.742 n=6
Emit Time2.73s (± 0.44%)2.73s (± 0.59%)~2.70s2.74sp=1.000 n=6
Total Time14.57s (± 0.28%)14.58s (± 0.45%)~14.46s14.65sp=0.687 n=6
angular-1 - node (v18.15.0, x64)
Errors3737~~~p=1.000 n=6
Symbols947,936947,936~~~p=1.000 n=6
Types410,955410,955~~~p=1.000 n=6
Memory used1,226,042k (± 0.00%)1,226,027k (± 0.00%)~1,225,994k1,226,061kp=0.748 n=6
Parse Time6.65s (± 0.58%)6.66s (± 0.83%)~6.55s6.70sp=0.466 n=6
Bind Time1.88s (± 0.29%)1.88s (± 0.43%)~1.87s1.89sp=0.859 n=6
Check Time31.87s (± 0.10%)31.96s (± 0.30%)~31.82s32.08sp=0.126 n=6
Emit Time15.22s (± 0.38%)15.22s (± 0.24%)~15.18s15.27sp=1.000 n=6
Total Time55.61s (± 0.14%)55.72s (± 0.21%)~55.59s55.87sp=0.173 n=6
mui-docs - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols2,500,0132,500,013~~~p=1.000 n=6
Types909,416909,416~~~p=1.000 n=6
Memory used2,318,018k (± 0.00%)2,318,213k (± 0.01%)+195k (+ 0.01%)2,318,096k2,318,509kp=0.008 n=6
Parse Time11.16s (± 0.83%)11.19s (± 0.35%)~11.16s11.27sp=0.872 n=6
Bind Time2.64s (± 0.70%)2.63s (± 0.40%)~2.61s2.64sp=0.086 n=6
Check Time91.17s (± 2.19%)90.72s (± 1.39%)~89.27s92.58sp=0.936 n=6
Emit Time0.35s (± 2.16%)0.36s (± 2.08%)+0.01s (+ 3.83%)0.35s0.37sp=0.024 n=6
Total Time105.32s (± 1.85%)104.89s (± 1.20%)~103.43s106.74sp=1.000 n=6
self-build-src - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols1,225,2511,225,251~~~p=1.000 n=6
Types266,545266,545~~~p=1.000 n=6
Memory used2,720,992k (±14.64%)2,841,774k (±13.20%)~2,356,785k3,084,967kp=0.873 n=6
Parse Time6.69s (± 1.63%)6.71s (± 1.88%)~6.57s6.89sp=0.810 n=6
Bind Time2.13s (± 0.91%)2.13s (± 0.91%)~2.10s2.15sp=0.687 n=6
Check Time42.51s (± 0.38%)42.60s (± 0.50%)~42.32s42.92sp=0.471 n=6
Emit Time3.39s (± 1.16%)3.52s (± 3.50%)+0.13s (+ 3.83%)3.42s3.74sp=0.037 n=6
Total Time54.73s (± 0.45%)54.98s (± 0.42%)~54.64s55.25sp=0.149 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols1,225,2511,225,251~~~p=1.000 n=6
Types266,545266,545~~~p=1.000 n=6
Memory used2,907,326k (±12.88%)3,149,634k (± 0.03%)~3,148,316k3,150,854kp=0.128 n=6
Parse Time6.94s (± 1.71%)7.03s (± 0.98%)~6.93s7.10sp=0.261 n=6
Bind Time2.16s (± 1.57%)2.14s (± 1.57%)~2.11s2.19sp=0.418 n=6
Check Time42.75s (± 0.38%)42.79s (± 0.56%)~42.42s43.05sp=0.575 n=6
Emit Time3.45s (± 1.84%)3.46s (± 3.38%)~3.32s3.64sp=1.000 n=6
Total Time55.28s (± 0.43%)55.42s (± 0.24%)~55.18s55.53sp=0.336 n=6
self-compiler - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols262,223262,223~~~p=1.000 n=6
Types106,606106,606~~~p=1.000 n=6
Memory used439,757k (± 0.01%)439,793k (± 0.01%)~439,713k439,881kp=0.471 n=6
Parse Time3.54s (± 0.79%)3.56s (± 1.03%)~3.52s3.61sp=0.256 n=6
Bind Time1.32s (± 2.77%)1.31s (± 1.04%)~1.30s1.33sp=0.934 n=6
Check Time18.94s (± 0.48%)18.92s (± 0.41%)~18.83s19.03sp=0.630 n=6
Emit Time1.53s (± 0.87%)1.52s (± 0.68%)~1.51s1.54sp=0.301 n=6
Total Time25.33s (± 0.52%)25.32s (± 0.32%)~25.19s25.40sp=0.809 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors7070~~~p=1.000 n=6
Symbols226,062226,062~~~p=1.000 n=6
Types94,48894,488~~~p=1.000 n=6
Memory used371,686k (± 0.03%)371,595k (± 0.01%)~371,566k371,667kp=0.065 n=6
Parse Time2.88s (± 1.15%)2.88s (± 1.41%)~2.85s2.96sp=0.871 n=6
Bind Time1.59s (± 0.89%)1.58s (± 0.76%)~1.57s1.60sp=0.458 n=6
Check Time16.49s (± 0.46%)16.52s (± 0.40%)~16.43s16.61sp=0.630 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time20.96s (± 0.42%)20.98s (± 0.47%)~20.87s21.14sp=0.809 n=6
vscode - node (v18.15.0, x64)
Errors44~~~p=1.000 n=6
Symbols3,179,7333,179,733~~~p=1.000 n=6
Types1,093,5371,093,537~~~p=1.000 n=6
Memory used3,254,653k (± 0.01%)3,254,834k (± 0.01%)~3,254,390k3,255,424kp=1.000 n=6
Parse Time14.13s (± 0.19%)14.07s (± 0.33%)-0.06s (- 0.41%)14.01s14.13sp=0.029 n=6
Bind Time4.52s (± 0.80%)4.50s (± 0.61%)~4.47s4.55sp=0.466 n=6
Check Time87.01s (± 1.60%)87.53s (± 1.83%)~85.96s90.11sp=0.575 n=6
Emit Time27.41s (± 7.82%)27.37s (± 8.00%)~23.08s28.88sp=0.936 n=6
Total Time133.06s (± 0.66%)133.48s (± 0.93%)~131.74s134.80sp=0.298 n=6
webpack - node (v18.15.0, x64)
Errors00~~~p=1.000 n=6
Symbols288,684288,684~~~p=1.000 n=6
Types117,136117,136~~~p=1.000 n=6
Memory used440,706k (± 0.01%)440,667k (± 0.02%)~440,596k440,765kp=0.298 n=6
Parse Time3.27s (± 0.16%)3.27s (± 0.23%)~3.26s3.28sp=0.241 n=6
Bind Time1.47s (± 0.35%)1.47s (± 0.51%)~1.46s1.48sp=0.241 n=6
Check Time15.62s (± 0.31%)15.60s (± 0.42%)~15.49s15.66sp=0.629 n=6
Emit Time0.00s0.00s~~~p=1.000 n=6
Total Time20.36s (± 0.22%)20.34s (± 0.31%)~20.24s20.40sp=0.560 n=6
xstate-main - node (v18.15.0, x64)
Errors88~~~p=1.000 n=6
Symbols551,583551,583~~~p=1.000 n=6
Types184,808184,808~~~p=1.000 n=6
Memory used491,878k (± 0.02%)491,874k (± 0.01%)~491,783k491,921kp=0.471 n=6
Parse Time3.44s (± 0.80%)3.43s (± 0.65%)~3.40s3.45sp=1.000 n=6
Bind Time1.18s (± 1.07%)1.18s (± 1.07%)~1.16s1.19sp=1.000 n=6
Check Time19.71s (± 1.11%)19.64s (± 0.18%)~19.61s19.70sp=0.872 n=6
Emit Time0.00s (±244.70%)0.00s (±244.70%)~0.00s0.01sp=1.000 n=6
Total Time24.33s (± 0.92%)24.25s (± 0.16%)~24.19s24.29sp=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)
BenchmarkNameIterations
Currentpr6
Baselinebaseline6

Developer Information:

Download Benchmarks

@jakebaileyJake Bailey (jakebailey) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is right, though a shame. At least regular template strings are not affected.

@typescript-bot

Copy link
Copy Markdown
Contributor

Jake Bailey (@jakebailey) Here are the results of running the top 400 repos with tsc comparing main and refs/pull/60616/merge:

Everything looks good!

@RyanCavanaugh
Ryan Cavanaugh (RyanCavanaugh) merged commit 9fe6c36 into microsoft:mainNov 26, 2024
@jakebailey

Copy link
Copy Markdown
Member

TypeScript Bot (@typescript-bot) cherry-pick this to release-5.7

@typescript-bot

TypeScript Bot (typescript-bot) commented Nov 27, 2024

Copy link
Copy Markdown
Contributor

Starting jobs; this comment will be updated as builds start and complete.

CommandStatusResults
cherry-pick this to release-5.7✅ Started❌ Results

@typescript-bot

Copy link
Copy Markdown
Contributor

Hey, Jake Bailey (@jakebailey)! I was unable to cherry-pick this PR.

Check the logs at: https://github.com/microsoft/TypeScript/actions/runs/12041395613

@Andarist
Mateusz Burzyński (Andarist) deleted the fix/nullish-syntactic-semantics-tagged-templates branch November 27, 2024 06:21
@jakebailey

Copy link
Copy Markdown
Member

This failed to cherry pick because these two are not in the release branch:

Daniel Rosenwasser (DanielRosenwasser) pushed a commit that referenced this pull request Dec 17, 2024
Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
Co-authored-by: Ryan Cavanaugh <RyanCavanaugh@users.noreply.github.com>
@microsoftMicrosoft (microsoft) locked as resolved and limited conversation to collaborators Oct 15, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

For Uncommitted BugPR for untriaged, rejected, closed or missing bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

False positive: Right operand of ?? is unreachable

5 participants

@Andarist@jakebailey@typescript-bot@sandersn@RyanCavanaugh