-
Notifications
You must be signed in to change notification settings - Fork 12.8k
Don't skip elaborations when reporting errors for cached failed relations #55234
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
Don't skip elaborations when reporting errors for cached failed relations #55234
Conversation
@typescript-bot perf test this faster |
Heya @RyanCavanaugh, I've started to run the abridged perf test suite on this PR at eaba5a1. You can monitor the build here. Update: The results are in! |
@RyanCavanaugh Here they are:Comparison Report - main..55234
System
Hosts
Scenarios
Developer Information: |
2bf3cf9
to
4a88fbd
Compare
@RyanCavanaugh since the perf run came up clean I updated the baselines and cleaned up this a little bit further. Looking at the changed baselines it seems like a neat improvement to me :) |
@typescript-bot test this |
Heya @weswigham, I've started to run the diff-based top-repos suite on this PR at 4a88fbd. You can monitor the build here. Update: The results are in! |
Heya @weswigham, I've started to run the regular perf test suite on this PR at 4a88fbd. You can monitor the build here. Update: The results are in! |
Heya @weswigham, I've started to run the parallelized Definitely Typed test suite on this PR at 4a88fbd. You can monitor the build here. Update: The results are in! |
@weswigham Here they are:
CompilerComparison Report - baseline..pr
System info unknown
Hosts
Scenarios
tsserverComparison Report - baseline..pr
System info unknown
Hosts
Scenarios
StartupComparison Report - baseline..pr
System info unknown
Hosts
Scenarios
Developer Information: |
@weswigham Here are the results of running the top-repos suite comparing Everything looks good! |
Hey @weswigham, the results of running the DT tests are ready. |
…-on-cached-entries
@weswigham @ahejlsberg I'd like to merge this at the start of 5.4 development. Is it good to go? |
// Record this relation as having failed such that we don't attempt the overflowing operation again. | ||
const id = getRelationKey(source, target, /*intersectionState*/ IntersectionState.None, relation, /*ignoreConstraints*/ false); | ||
relation.set(id, RelationComparisonResult.Reported | RelationComparisonResult.Failed); | ||
relation.set(id, RelationComparisonResult.Failed); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sandersn @ahejlsberg those are lines that were not at all here when I created this PR. When syncing with main
now I removed the RelationComparisonResult.Reported
- just like it was done everywhere else here but I'm not sure if this should actually be done here.
Those lines come from #55851
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, the CI shows that this actually is important as now it's doing a lot of heavy work twice in this pathological case and the CI timeouts.
If we take a closer look at this baseline (even on main
) we might notice that it's actually reporting 2 errors at the same location:
relationComplexityError.ts(12,5): error TS2322: Type 'T1 & T2' is not assignable to type 'T1 | null'. | |
relationComplexityError.ts(12,5): error TS2859: Excessive complexity comparing types 'T1 & T2' and 'T1 | null'. |
So perhaps If I manage to report this once, the perf problems will go away naturally.
@typescript-bot perf test this |
Heya @sandersn, I've started to run the regular perf test suite on this PR at 0611fbb. You can monitor the build here. Update: The results are in! |
@sandersn Here they are:
CompilerComparison Report - baseline..pr
System info unknown
Hosts
Scenarios
tsserverComparison Report - baseline..pr
System info unknown
Hosts
Scenarios
StartupComparison Report - baseline..pr
System info unknown
Hosts
Scenarios
Developer Information: |
We had this PR all this time and never merged it? Oh well. |
@gabritto does it overlap with some other fresh work/issue? I can certainly try to prioritize this PR more and bring it up to speed |
Yeah, #57842, since we may report diagnostics out of order and therefore elaborations may jump around. |
To give more details, I'm doing some diagnostics work in preparation for #57842. Right now I'm trying to have less duplicated diagnostics, but next on my list is to provide assignability elaboration consistently in editor scenarios, and as a consequence get rid of some of the diagnostics differences that arise when using #57842 vs not using them. |
This work has landed as part of #58859 |
Thanks for doing this! |
fixes #3276
to learn more about what's happening you can read my comment here
I'm just opening this as a draft, even without updating baselines. It might be interesting to run the perf suite on this one.